GM Infotainment bus (low speed, single wire, 33kbps)


I've got a 2010 Saab 9-3, which has both a 2-wire 500kbps power-train bus & a 1-wire 33kbps infotainment bus. The Canbus Triple successfully detected the rate for the power-train bus and connected no problem!

Not some much for the 33kbps infotainment bus. 33 kbps isn't a selectable rate through the Canbus App. I scanned through the desktop app source code and found that the rates are hard coded in. After that I came across a post where someone was attempting to set the rate to 88kbps and tried to follow. Though I'm at a loss as to how to get the correct hex values to achieve that certain rate...

Any help or steps to calculate the hex values would be greatly appreciated!!

Anyone? This doesn't seem that far off to accomplish given someone got 88kbps to work. I've been scouring the internet for days now trying to figure out to calculate the hex values for 33kbps.... Based on the docs I found for the MCP2515 controller, it is possible.

The device it self is beautiful (housing & board), extremely functional, and I don't regret buying it at all. Though at this point in the development, "CANBus Triple gives you an easy way to read and write raw CAN data packets" should come with a disclaimer that you're apparently only able to select from a very limited set of baud rates out of the box. Venturing outside of that, even for a common GM standard, requires in-depth research of the hardware.

Any help would be much appreciated!! :)

From an arduino/CANBus shield setup that I was previously using to interface to the steering wheel controls of my Pontiac G8:

case 33:
// Serial.println("Speed 33kbps");

Thanks!! That worked perfectly! Now I'm off to log some traffic... :)

How did you connect to your GMLAN port? Did you tie the CANLow to ground and CAN HI to the dataline?

Also, I have an older system that I believe is 10.5K baud that doesn't have a high speed bus.
GM added the high speed bus in 2006 and my truck is a 2003.


Also, are you able to just monitor or also send out information? And any idea how to set the baudrate for 10.5k baud.

The older trucks arent CAN....they're Class 2 (J1850 VPW) the CANbus triple wont even work on your truck.

You'll need an ELM-327 tool to play around with the Class 2 bus on older GM vehicles.

I have heard conflicting stories on that dura.
I have been told that the older GMLAN is the same setup as the "new" entertainment bus just slower.

My GF has a 2013 so I might just try hooking into hers first to insure it works. With that in mind is it as simple as tying the low canbus to ground and the high canbus to the entertainment bus?

No that is incorrect. The older databus is <b>not </b>GMLAN. Its not even any sort of CAN.

Its J1850 variable-pulse-width and called "Class 2" bus. It is in no way compatible with the CANbus triple, or any CAN-related hardware. You need a specific transceiver chip that is designed for J1850 VPW. The ELM327 will work fine....they're about $15 on ebay.

The GM trucks/SUV's went to CAN (high speed GMLAN, 2-wire) in 2006 on the Duramax diesel trucks only. And that CAN was ONLY FOR POWERTRAIN. The rest of the body/chassis/4wd/ABS was still the old Class 2 bus. GMLAN on the 2006-2007 Duramax trucks was only for ECM-TCM-GPCM (glow plug control module) communication, and for scan tool communication. The ECM acted as the gateway between GMLAN and Class 2, because the instrument cluster and all that only speaks Class 2.

The 2006-2007 non-Duramax pickup trucks were still Class 2 CAN/GMLAN anywhere. (unless it was one of those rare 04-06 hybrid trucks, those had CAN/GMLAN, but thats beside the point).

With the redesign of the GM trucks and SUV's in 2007.5 (for the trucks, SUV's got redesign in 2007), they went "full GMLAN" and no more Class 2 was used. On 2007/2007.5-2013/14 GMT-900, low speed GMLAN (33.3k single-wire CAN) was used for body/interior, and 2-wire high-speed GMLAN/CAN was used for powertrain/chassis.

<b>So you CANNOT just make a blanket statement like "GM went to CAN/GMLAN in xxxx year"</b>......because there was a large transitional/crossover period. Some cars went full GMLAN and eliminated Class 2 completely as early as 2004. Some GMLAN vehicles were "partial" GMLAN (CAN for powertrain only, but kept Class 2 for body/interior) as late as 2012!! The Colorado pickup truck I think was the last GM vehicle to use Class 2 for body/chassis....but the Colorado went GMLAN/CAN for powertrain in 2007 or 2008 I think........because OBD/EPA standards dictated that all vehicles had to be CAN (for engine/powertrain, EPA doesnt care what car mfg's use for body/interior/chassis) for the 2008 model year.

Clear as mud?


I am also wery interesting to know answer to redheadedrod's question he repetedly asked how to wire single wire GMLAN to canbus tripple pinout that expects two line CAN wiring.
When i searched i found in other forums where someone wrote this
"When I did my analysis I was using a two-wire CAN adapter (remember GMLAN is single wire CAN) and tied the CAN_LO line to chassis ground. This worked well enough to capture the data, but I did get a lot of error frames on the bus while connected. " << >>
Is it the best and only way to do this ?
Thank you for answers

Separatly thanks to ghodge for speed config.

No problem tauskutis. With my Arduino CANBus shield, I tied CAN_LO to ground on the shield as opposed to chassis ground. If you are using chassis ground, maybe you are experiencing ground float.

Trying to work with some low speed GMLAN (33.3k, 29-bit) data here...

Apologizing ahead of time for the dumb question, kind of an Arduino noob...where exactly do I add this?

case 33:
// Serial.println("Speed 33kbps");

Should be in the serial command file, look in the libraries folder under my documents.

  • 13
  • 18107

Looks like your connection to CANBus Triple was lost, please wait while we try to reconnect.