Interpretation of DTC frames in GM/Cadillac vehicles using GMLAN over CAN


  • I am currently working on the emulation of a 2019 Cadillac ATS, and when I try to enter the DTC display function from the scanner, I receive the request 03 A9 81 1A 00 00 00 00. By analyzing the protocol behavior, I understood that in GMLAN the service 0xA9 corresponds to ReadDiagnosticInformation, and the subfunction 0x81 means readStatusOfDTCByStatusMask. In other words, the scanner is not requesting just any data, but specifically the list of diagnostic trouble codes that match a certain status mask. I found this very interesting because it shows that in GM vehicles it is not always enough to respond as in a generic OBD system; instead, it is necessary to correctly interpret the manufacturer-specific diagnostic logic, the meaning of the requested status mask, and the expected response structure. I would like to open the discussion on how you analyze this kind of GMLAN frame, what differences you have found compared with traditional CAN diagnostic communication, and what key recommendations you consider important for correctly emulating DTC reading in GM/Cadillac ECM modules.



Please login to reply to this topic!