CAN Module to GM OBD2 ECM

Where I’m at:

  • Successful initialization of the CAN module using the Opto-provided examples and subroutines
  • Able to set the module in transmit mode (send a “k” to it successfully), and get status back (“S”)
  • I have an up/active ECM on the other end of the bus (a Buick Regal engine, LHU, GM OBD2)
  • My overall goal is to use the CAN module and the OBD2 connector to the ECM to replace the USB OBD2 interface we currently use with a PC and accompanying software (for reasons)

I am able to request all ~4 types of frames using the example subroutines and strategies, but I only get blank frames back with no true errors popping up.

I am in touch with support but there are currently no CAN experts on the team. I’m trying the general forum here as well

I do now understand that its up to me to implement a higher level protocol in order to make proper frame requests of the connected ECM and interpret the data that comes back correctly.

I am guessing I need to modify the EXACT module mask/filter/baud settings in order to get SOMEthing back from the ECM.

Can anyone point me in the correct direction? Again, I know I have some work to do, and am willing to pour some hours into the code, but could use some confirmation that I’m on the right path

Updating my progress:

Looks like I am able to (for now) just use the receive functionality of the module and listen on the bus


My wiring is correct (CAN+,CAN-,GND), and I see a fairly healthy set of differential signals on both lines at the 500k Baud rate expected, but the CAN module itself is not lighting up to indicate that it sees said CAN data pass by on the bus.

I’ve opened an Opto ticket again, but no one on-staff claims to be familiar with the module.