Volvo C30 Custom Gauge And CAN Bus Reverse Engineering

With cars being essentially CAN buses on wheels, it’s no wonder that there’s a lot of juicy information about the car’s status zipping about on these buses. The main question is usually how to get access to this information, both in terms of wiring into the relevant CAN bus, and decoding the used (proprietary) protocol. Fortunately for [Alex], decoding the Volvo VIDA protocol used with his Volvo C30 was relatively straightforward, enabling the creation of a custom gauge that displays information like boost pressure and coolant temperature.

The physical interfacing is accomplished via the car’s OBD port, which conveniently provides access to the car’s two (high-speed and low-speed) CAN buses. Hardware of choice is an M2 UTH (Under the Hood) board, sporting a SAM3X Cortex-M3-based MCU, designed for permanent automotive installations. On [Alex]’s GitHub project page it is explained how the protocol works, and which bytes to look for when replicating the project.

Rounding off the project is a round LCD display from 4D Systems that cycles through the status update screens. As a bonus, the dashboard illumination level is also read out in real-time, so the brightness of the display is adjusted to fit this level. All in all a well-rounded project, with interesting prospects for a more permanent integration of the gauge into the dashboard proper.

8 thoughts on “Volvo C30 Custom Gauge And CAN Bus Reverse Engineering

  1. It’s nice that Napoleon Dynamite found a life skill after his movie.
    B^)

    Using round LCDs as guages, great idea!
    Instead of cycling through readings, I would like several dedicated to a particular parameter, in addition to a cycling one.

      1. That is exactly what happens. In practice, I tend to leave it on the boost gauge display 99% of the time, and only switch over to the other screens on rare occasions and usually at stoplights anyway. I considered using the play/pause or track forward/backwards commands but those would mess with my radio which is even more annoying to me than canceling cruise control.

        1. When I had my Volvo V50 (practically the same car as the C30, just longer), I wanted to change the screen in the center console of the car with a tablet, but I would have lost the climate controls status and the steering wheel media controls. With your system have would you be able to listen/control all that? Like, receiving the signals from the climate controls and intercepting the media control?

    1. Note that almost any modern MCU (it just needs one UART port) is CAN-bus capable. Pair an arduino, blue-pill or what-have-you with a $1.50 MCP2551 off Digikey (along with a few passives and a breadboard) and you’re off to the races.

  2. “With cars being essentially CAN buses on wheels, it’s no wonder that there’s a lot of juicy information about the car’s status zipping about on these buses.”

    I could see an owner data mining their vehicle for long-term trends. Especially when paired with outside information (telematics).

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.