Here is my reverse engineering work on the Bendix 9 Adaptive Brake Module found in 89-90 Renix Jeeps. This self contained unit is in charge of operating the vehicles entire ABS system and has a data stream output that we can use for data and diagnostics.
TX output is found on Pin C4 of the ABM which connects to Pin D2-5 in the 15 pin Renix Diagnostic Adapter found in the engine bay. This is an open collector output circuit to vehicle ground, so the Receiver pulls the line high and the ABM will pull the line low to transmit. This gives us an inverted signal that will need to be flipped to be read with standard UART.
Data Protocol:
This ABM unit uses the standard Bendix Data Protocol which is as follows:
– Protocol: UART, Inverted Logic
– Baud: 62,500
– Frame Length: 16 Bytes
– Frame Start: value 0 is sent
– Frame End: value 255 is sent
– Special Case: data bytes must send duplicate 255 value to differentiate from Frame End. Duplicate must be discarded to maintain proper framing.
Data Framing
Byte Order | MT2500 Reading | Math | Dump |
Start Byte | 0 | ||
Byte 0 | PROM 1 | HEX | 146 |
Byte 1 | PROM 2 | HEX | 20 |
Byte 2 | LF Wheel(MPH) | #/3.1 | 0 |
Byte 3 | RF Wheel(MPH) | #/3.1 | 0 |
Byte 4 | LR Wheel(MPH) | #/3.1 | 0 |
Byte 5 | RR Wheel(MPH) | #/3.1 | 0 |
Byte 6 | LF Sol RF Sol Rear Sol | Bit 0, 3, 6 Bit 1, 4 Bit 2, 5 | 0 |
Byte 7 | RF Sol Rear Sol G-Switch Diff Press Boost Press | Bit 0 Bit 1 Bit 3 Bit 4 Bit 5 | 40 |
Byte 8 | Low Accum Pump Modulator Rly Sol Undervolt P-Brk/Lo Flu Brake | Bit 0 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 | 25 |
Byte 9 | ? | 17 | |
Byte 10 | ? | 0 | |
Byte 11 | ? | 0 | |
Byte 12 | Error Codes | Bit 0 – 6 | 0 |
Byte 13 | Error Codes | Bit 0 – 6 | 0 |
End Byte | 255 |
NOTES:
– Bytes 9, 10, and 11 are not displayed on the MT2500. I affectionately refer to these as Mystery Bytes.
– Byte 9 displays a non-zero value while bench testing, indicating a possibly meaningful value.
Bit Logic Breakdowns
Byte 6 | FALSE | TRUE |
Bit 0 | LF Off | LF Build |
Bit 1 | RF Off | RF Build |
Bit 2 | Rear Off | Rear Build |
Bit 3 | LF Off | LF Decay |
Bit 4 | RF Off | RF Decay |
Bit 5 | Rear Off | Rear Decay |
Bit 6 | LF Off | LF Isol |
Bit 7 |
NOTES:
– Build and Decay can display simultaneously
– Isol will take priority over Build/Decay inputs
Byte 7 | FALSE | TRUE |
Bit 0 | RF Off | RF Isol |
Bit 1 | Rear Off | Rear Isol |
Bit 2 | ||
Bit 3 | G-Sw Closed | G-Sw Open |
Bit 4 | Diff P Open | Diff P Closed |
Bit 5 | Boost P Open | Boost P Closed |
Bit 6 | ||
Bit 7 |
NOTES:
– Isol will take priority over Build/Decay inputs
Byte 8 | FALSE | TRUE |
Bit 0 | Low Acc False | Low Acc True |
Bit 1 | ||
Bit 2 | Pump Off | Pump On |
Bit 3 | Mod Rly False | Mod Rly True |
Bit 4 | Sol UndV False | Sol UndV True |
Bit 5 | P-Brk Flu False | P-Brk Flu True |
Bit 6 | Brake No | Brake Yes |
Bit 7 |
Byte 12 | FALSE | TRUE |
Bit 0 | – | 809 ECU-Test |
Bit 1 | – | 808 Modulator |
Bit 2 | – | 810 Solenoid Undervoltage |
Bit 3 | – | 813 Brake Switch |
Bit 4 | – | 814 Low-Fluid |
Bit 5 | – | 811 System Relay |
Bit 6 | – | 812 Motor Pump |
Bit 7 | – | – |
NOTE:
– Bit 2 fault code was incorrectly labeled “801” on Cartridge MT25001099 Display
Byte 13 | FALSE | TRUE |
Bit 0 | – | 815 RR Speed Sensor |
Bit 1 | – | 816 LR Speed Sensor |
Bit 2 | – | 817 RF Speed Sensor |
Bit 3 | – | 818 LF Speed Sensor |
Bit 4 | – | 805 Differential Pressure |
Bit 5 | – | 806 Boost Pressure |
Bit 6 | – | 807 Low Accumulator |
Bit 7 | – | – |
Fun Facts:
– First off, I’d like to thank David for sending me this module all the way from the Czech Republic! It was due to his generosity that I was able to do this in the first place, so thanks!
– The Diagnostic Adapter Pinouts changed at the 88-89 crossover to make room for the new ABS Module features. Pin D2-5 was “Latch B+” but moved to Pin D2-12 to make room for the ABM TX line.
– These Bendix Units always seem to have a strange byte gap pattern to them. This has the most uniform pattern I’ve seen so far. Starting with frame end, Bytes will be sent in pairs of 2 for 5 sets, then send 4 single sets, then finish with 1 final pair of 2. Total Frame Length is 52.3ms with byte gaps of 1ms, 4ms, and 5ms.
– There is another ABM pin D6 which goes to 6 pin Diagnostic Connector D1-4 but is not needed for data. I noticed the MT2500 pulled the pin to 12v, where the data line was only pulled to 5v. I have no idea what this is for, but it’s there!
– There is another ABM pin C2 which goes to 15 pin Diagnostic Connector D2-14 labeled “BRAKE ALERT-A.L.M. C2”
– There are some missing fault codes according to a Bendix 9 Manual here: https://www.aa1car.com/library/abs_bendix9.htm
800 – No voltage at ECM
801 – No serial data from ECM
802 – No parking brake signal
803 – Warning lights inoperative
804 – Yellow ABS warning light inoperative
819 – Open circuit at diagnostic connector