{"id":26318012,"url":"https://github.com/jakka351/restraintscontrolmodule","last_synced_at":"2026-04-27T18:04:50.642Z","repository":{"id":183210864,"uuid":"668969215","full_name":"jakka351/RestraintsControlModule","owner":"jakka351","description":"Documenting the process of disassembling RCM firmware.","archived":false,"fork":false,"pushed_at":"2024-01-24T13:11:02.000Z","size":360,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-01-25T06:39:24.665Z","etag":null,"topics":["airbag","cdr","edr","ford","rcm"],"latest_commit_sha":null,"homepage":"https://testerpresent.com.au","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jakka351.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-07-21T03:21:09.000Z","updated_at":"2024-01-25T06:39:24.666Z","dependencies_parsed_at":"2024-01-24T06:46:04.026Z","dependency_job_id":null,"html_url":"https://github.com/jakka351/RestraintsControlModule","commit_stats":null,"previous_names":["jakka351/rcm","jakka351/restraintscontrolmodule"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakka351%2FRestraintsControlModule","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakka351%2FRestraintsControlModule/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakka351%2FRestraintsControlModule/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakka351%2FRestraintsControlModule/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jakka351","download_url":"https://codeload.github.com/jakka351/RestraintsControlModule/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243738902,"owners_count":20340003,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["airbag","cdr","edr","ford","rcm"],"created_at":"2025-03-15T14:16:28.097Z","updated_at":"2025-12-30T18:12:44.686Z","avatar_url":"https://github.com/jakka351.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![image](https://user-images.githubusercontent.com/57064943/163714778-8598c24a-6ae2-49f6-ba4c-42de94dfa025.png)\n# Restraints Control Module\n\n\u003ca href=\"https://testerpresent.com.au/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Tester Present -Specialist Automotive Solutions-blue\" /\u003e\u003c/a\u003e  \n\u003csup\u003e\u003cb\u003e\nPart No: 8R29-14B321-BC  \nManufactured: 19/03/2009\n\n    \n\u003c/b\u003e\u003c/sup\u003e\n\u003cimg src=\"https://github.com/jakka351/RestraintsControlModule/assets/57064943/1d827b03-9315-4bc7-9a2a-b62f2df04c48\" height=\"40%\" width=\"40%\" align=\"center\" /\u003e\n\nDocumenting discovery of diagnostic services and firmware diassembly of a Ford FG Restraints Control Module, including search for event data recorder and crash data recovery processes.\n\n\n[`FG Falcon Repo`](https://github.com/jakka351/fg-falcon). \n[`PCM Hacking forum thread`](https://pcmhacking.net/forums/viewtopic.php?f=41\u0026t=8425)\n\n![image](https://user-images.githubusercontent.com/57064943/163714778-8598c24a-6ae2-49f6-ba4c-42de94dfa025.png)\n## Bench Testing Module  \n![image](https://github.com/jakka351/RestraintsControlModule/assets/57064943/59e965e9-68e3-44c4-b839-e33040117d43)\n\n## Connectors\n![image](https://github.com/jakka351/RestraintsControlModule/assets/57064943/37238430-fbb0-481e-849d-f7929ccc0c29)\n\n## Wiring Diagram\n![image](https://github.com/jakka351/RestraintsControlModule/assets/57064943/98b192b1-1486-4358-95f1-fae10abbe59a)\n\n## Diagnostics\n### Security Access\n\n`Seed Key: DIODE`\n\nSecurity Access is unlocked with service 0x27 and FEPS. \n\n### Service 0x21\nAs Built Data - 6 Blocks of data including an empty spot for VIN.\n```\n;Block 1\n737G1G14080\n;Block 2 \n737G2G1000000000041\n737G2G2000000000042\n737G2G3000000000043\n737G2G4000044\n;Block 3\n737G3G1000042\n;Block 4\n737G4G179F0AC\n;Block 5\n737G5G1C70B\n;Block 6\n737G6G198FDDA\n```\n### Service 0x22\nMemory locations `0x5800` to `0x5B58`:\n```\nPrivateSubNodeIdentifierCode1 = 0x5800;\nPrivateSubNodeIdentifierCode2 = 0x5801;\nPrivateSubNodeIdentifierCode3 = 0x5802;\nPrivateSubNodeIdentifierCode4 = 0x5803;\nPrivateSubNodeIdentifierCode5 = 0x5804;\nPrivateSubNodeIdentifierCode6 = 0x5805;\nPrivateSubNodeIdentifierCode7 = 0x5806;\nDriverSeatTrackPositionSwitchStatus = 0x5807;\nOccupantClassificationSensorDTCClearedStatus = 0x5808;\nOccupantClassificationSystemCalibrationStatus = 0x5809;\nOccupantClassificationSystemmeasuredWeightofPassenger = 0x580A;\nPassengerAirbagDeactivationLampStatus = 0x580B;\nPassengerAirbagEnableLampStatus = 0x580C;\nImpactTriggerOutputStatus = 0x580D;\nPassengerRetractorSensorVersionID = 0x580E;\nDriverRetractorSensorVersionID = 0x580F;\nPCMVehicleIdentification = 0x5810;\nRestraintsAdditionalEquipment = 0x5811;\nCrashrecord4 = 0x5812;\nCrashrecord4B = 0x5813;\nCrash1Telegram = 0x5814;\nCrash2Telegram = 0x5815;\nCrash3Telegram = 0x5816;\nEventDataRecord = 0x5817;\nEventDataRecord = 0x5818;\nThirdRowCenterSeatbeltSensorCurrent = 0x5819;\nRearSeatbeltSensorStatus = 0x581A;\nThirdRowRightSeatbeltSensorCurrent = 0x581B;\nThirdRowLeftSeatbeltSensorCurrent = 0x581C;\nVehicleSpeedandQualityFactor = 0x581D;\nExternalAmbientTemperature = 0x581E;\nRestraintsEventNotificationStatus = 0x5820;\nEmergencyCallRetrievableData = 0x5821;\nPassengerSeatIDNumber = 0x5B00;\nVoltageAutarchyCapacitor = 0x5B02;\nDeploymentControl0Resistance = 0x5B03;\nDeploymentControl1Resistance = 0x5B04;\nDeploymentControl2Resistance = 0x5B05;\nDeploymentControl3Resistance = 0x5B06;\nDeploymentControl4Resistance = 0x5B07;\nDeploymentControl5Resistance = 0x5B08;\nDeploymentControl6Resistance = 0x5B09;\nDeploymentControl7Resistance = 0x5B0A;\nDeploymentControl8Resistance = 0x5B0B;\nDeploymentControl9Resistance = 0x5B0C;\nDeploymentControl10Resistance = 0x5B0D;\nDeploymentControl11Resistance = 0x5B0E;\nDeploymentControl12Resistance = 0x5B0F;\nDeploymentControl13Resistance = 0x5B10;\nAccelerometerValue0 = 0x5B11;\nAccelerometerValue1 = 0x5B12;\nPassengerAirbagEnable = 0x5B13;\nSystemTime = 0x5B14;\nStoredSystemTime = 0x5B15;\nCrashStatus = 0x5B17;\nModuleStatus = 0x5B18;\nDriverSeatbeltSensorStatus = 0x5B19;\nPassengerSeatbeltSensorStatus = 0x5B1A;\nRestraintSystemPassengerDisableIndicator = 0x5B1B;\nRestraintSystemMalfunctionIndicator = 0x5B1C;\nDoorStatus = 0x5B1D;\nCrash1Telegram = 0x5B1F;\nCrash2Telegram = 0x5B20;\nCrash3Telegram = 0x5B21;\nCrashRecord1 = 0x5B22;\nCrashRecord2 = 0x5B23;\nCrashRecord3 = 0x5B24;\nOccupantClassificationSensorStatus = 0x5B25;\nModuleDeliveryMode = 0x5B26;\nSeatTrackSensor = 0x5B27;\nPassengerAirbagCut = 0x5B28;\nPassengerRestraintDeviceStatus = 0x5B29;\nDoorSlamProtection = 0x5B2A;\nDriverSeatTrackPositionRestraintsSensor = 0x5B2B;\nPassengerSeatTrackPositionRestraintsSensor = 0x5B2C;\nPassengerRestraintDisableSwitchSensorA = 0x5B2D;\nPassengerRestraintDisableSwitchSensorB = 0x5B2E;\nDriverSeatbeltSensorCurrent = 0x5B2F;\nPassengerSeatbeltSensorCurrent = 0x5B30;\nSecondRowLeftSeatbeltSensorCurrent = 0x5B31;\nSecondRowCenterSeatbeltSensorCurrent = 0x5B32;\nSecondRowRightSeatbeltSensorCurrent = 0x5B33;\nDeploymentControl14Resistance = 0x5B34;\nDeploymentControl15Resistance = 0x5B35;\nDeploymentControl16Resistance = 0x5B36;\nDeploymentControl17Resistance = 0x5B37;\nDeploymentControl18Resistance = 0x5B38;\nDeploymentControl19Resistance = 0x5B39;\nDeploymentControl20Resistance = 0x5B3A;\nDeploymentControl21Resistance = 0x5B3B;\nDeploymentControl22Resistance = 0x5B3C;\nDeploymentControl23Resistance = 0x5B3D;\nDeploymentControl24Resistance = 0x5B3E;\nDeploymentControl25Resistance = 0x5B3F;\nDeploymentControl26Resistance = 0x5B40;\nDeploymentControl27Resistance = 0x5B41;\nDeploymentControl28Resistance = 0x5B42;\nDeploymentControl29Resistance = 0x5B43;\nDeploymentControl30Resistance = 0x5B44;\nImpactStatusFlag = 0x5B45;\nSecondRowLeftSeatbeltSensorStatus = 0x5B46;\nSecondRowCenterSeatbeltSensorStatus = 0x5B47;\nSecondRowRightSeatbeltSensorStatus = 0x5B48;\nSelfconfigurationmode = 0x5B49;\nEquipmentconfiguration = 0x5B4A;\nOccupantWeightSensorID = 0x5B4B;\nOccupantWeightSensorStatusMessage = 0x5B4C;\nCrash1Telegram = 0x5B4D;\nCrash2Telegram = 0x5B4E;\nCrash3Telegram = 0x5B4F;\nCrashrecord1B = 0x5B50;\nCrashrecord2B = 0x5B51;\nCrashrecord3B = 0x5B52;\nCrashcounter = 0x5B53;\nCrashStatus = 0x5B54;\nEquipmentconfiguration = 0x5B55;\nFuelCutoffRequestStatus = 0x5B56;\nOccupantClassificationPressureSensor = 0x5B57;\nPassengerSeatbeltSensor = 0x5B58;\n```\n### Service 0x23\nDMRs Direct Memory Read by Address:\n### Read Flash\n### Write Flash\n\n***\n## Owners Manual\n![image](https://raw.githubusercontent.com/jakka351/RCM/main/Data/Screenshot_20230727-121937.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakka351%2Frestraintscontrolmodule","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjakka351%2Frestraintscontrolmodule","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakka351%2Frestraintscontrolmodule/lists"}