Troubleshooting a CAN bus project can be challenging. This post details an attempt to decode steering wheel radio controls using an MCP2515 CAN controller, a TJA1050 transceiver, an Arduino, and an OBDII connection. Initial success with loopback testing and a simple two-module CAN network contrasted sharply with difficulties encountered when connecting to the vehicle’s CAN bus.
Initial Success and Loopback Testing
Loopback testing confirmed the functionality of the MCP2515 and TJA1050 modules. A separate test with two Arduino boards and two CAN modules, complete with terminators, also demonstrated successful communication. This indicated the hardware and basic code were functioning correctly. Voltage levels on the modules appeared normal.
Challenges with Vehicle CAN Connection
The goal was to intercept and decode the CAN bus messages controlling the steering wheel radio buttons. Connecting to the OBDII port yielded CAN messages, but they lacked the desired steering wheel control data. Research suggested these controls operate on a separate CAN bus.
Referring to online resources, including a Peugeot CAN bus specification (https://autowp.github.io/) and wiring diagrams (http://www.tehnomagazin.com/Auto-radio-car-connector/PEUGEOT-Car-Radio-Wiring-Connector.htm), an attempt was made to connect to the radio’s CAN bus wires. However, this led to unexpected issues.
Firstly, the measured voltages on the radio’s CAN wires were inverted compared to the schematic. Connecting according to the schematic triggered dashboard error messages. Reversing the connection eliminated the errors but resulted in no received messages, even after trying various baud rates (125k, 250k, and 500k).
Secondly, a significant voltage difference was observed between the radio’s CAN bus (4.58V vs 0.34V) and the OBDII port (3.13V vs 2.36V). This discrepancy strongly suggested these were distinct CAN networks.
Conclusion and Next Steps
The project encountered obstacles in identifying the correct CAN bus for steering wheel controls and dealing with unexpected voltage discrepancies. Further investigation is required to:
- Identify the Correct CAN Bus: Determine the specific CAN bus carrying the desired steering wheel control data. This may involve consulting vehicle-specific documentation or using a CAN bus analyzer.
- Address Voltage Differences: Understand and resolve the significant voltage difference between the OBDII and radio CAN buses. This might involve level shifting or using a CAN bus interface with galvanic isolation.
Decoding vehicle CAN bus data often requires careful analysis and experimentation. While initial testing showed promise, connecting to the correct network and ensuring compatibility are crucial for success.