REVERSE ENGINEERING THE CRUZE CAN BUS


After a thrilling track weekend, I was eager to access and log specific data and parameters with the AEM dash display installed in the Cruze. However, these were not readily accessible through the OBDII port. It’s important to note that OEMs have the power to determine the parameters accessible through the OBDII port. Typically, these are chosen for diagnostic purposes and used by service technicians, not for the specific needs of motorsport enthusiasts like myself. I believe that OEMs should take into account the unique requirements of motorsport enthusiasts when designing car features. After all, we are a passionate and dedicated community! Am I right?

Let’s discuss the CAN bus or Controller Area Network, which is accessible through the OBDII connector. GM calls its protocol GM Local Area Network (GMLAN). If you’re unfamiliar with CAN bus systems, it’s basically a vehicle bus that allows all the control modules in your car to talk to each other. You can find more detailed explanations on Google, but let’s keep it simple for now.

Here’s the interesting part-if you tap into the network, you can access data from every sensor installed on the vehicle. However, the not-so-interesting part is that this data is displayed in frames made up of data bits, bytes, and a bunch of other technical terms that can be quite daunting. The real challenge is that this data isn’t in a format we can easily understand. It must be decoded and scaled to convert into a physical value, such as miles per hour or degrees Celsius.

Before I bought the AEM dash, I had a phone app and a Bluetooth OBDII adapter, and that’s when I started learning about PIDs and CAN bus data. I spent about two years trying to figure out how to interpret CAN frames into readable data, but none of the resources I found fully explained it. I was able to use a CAN bus sniffer that plugs into the OBDII port, and it connects to a laptop to display live traffic on the CAN bus, but I was never able to figure out how to decode it. That is until High Performance Academy released a course on decoding and reverse engineering the data. I learned more in one day than in the past two years trying to figure it out on my own.

Upon completing the course, a world of data opened up to me. I could now locate and interpret all the parameters I sought and more. I decoded gear position, throttle position, brake pressure, steering angle, and even the check engine light status. I was so enthralled by my newfound knowledge that I found myself decoding data I didn’t even need simply because I was excited about what I could now understand. The next step in my journey was to figure out how to effectively display or record the parameters I needed with the AEM dash.

The AEM dash has two CAN ports: Port 1, which allows AEM devices to communicate with each other using their protocol named AEMnet, and Port 2, which is configurable to any CAN bus network you choose. Port 2 is what the OBDII connects to. The AEM software will automatically scan the vehicle and import whatever PIDs the OEM has given access to. Although AEM told me receiving data from any other PID was impossible, I’m here to tell you that it can be done if you reverse engineer and decode the data.

When I decoded the messages earlier, I made an Excel sheet with the IDs and the scalars if needed. I deleted the OBDII data from Port 2 in the software and configured it for the GMLAN bus. I could then add each ID I wanted to record or display into the software on Port 2 and Vuala; I had all the parameters I needed or wanted.

I mounted the AEM dash in the best place possible to easily see the information I needed while on the track. However, the downside of this placement is that it blocks the OEM gauges. It wasn’t too much of a concern because the display shows speed and RPM, but I couldn’t see gear position and certain indicator lights. I’ve successfully decoded most indicator lights, so that’s no longer an issue. I can use the AEM dash for everything now.

I also installed the AEM Vehicle Dynamics Module, which transmits G-forces, speed, lap times, etc., to be recorded by the dash logger. That, paired with throttle position, brake pressure, and steering angle, will give me enough data to analyze and hopefully improve my driving skills.

DS