P0700 and P0872 Fault Codes on 2004 GMC Duramax with Allison Transmission - Diagnosis and Solutions
I'm experiencing trouble codes P0700 and P08702 on my 2004 GMC Duramax diesel truck equipped with an Allison transmission. The issue started recently, and I'm looking for guidance on where to begin troubleshooting the problem. P0700 is a generic OBD-II code indicating a general transmission malfunction. P0872 is a specific transmission code related to shift solenoid 'E' — it indicates that the solenoid is stuck in an active position when commanded to deactivate. The transmission fails to enter hydraulic default mode, the MIL (Malfunction Indicator Lamp) illuminates, and the TCM (Transmission Control Module) freezes shift adaptations. Additionally, torque converter clutch (TCC) engagement is inhibited when this code is present. I've already had the transmission fluid, filters, and pan serviced about four months ago at a GMC dealer — no prior issues up to 127,000 miles. After taking it to a transmission shop for a C-switch replacement (which cost $300 including installation), the problem persists. The truck only engages into drive or reverse when warmed up, and even then, shifting is rough or delayed. It sometimes enters limp mode — getting stuck in one gear — especially under load or during normal driving conditions. However, it performs well when not triggering the fault codes (e.g., smooth shifts in tow haul or regular modes). The shop suggested possible stuck valves inside the transmission. I'm now unsure what to do next. Since this is a complex system involving both electronic and mechanical components, I'd appreciate any advice on further diagnostics — especially whether a bidirectional scanner is required for accurate reading of Allison transmission data. Any insights or recommended steps would be greatly appreciated.
Where is the Transmission Control Module (TCM) located in a 2004 GMC Duramax with Allison transmission? How can I safely test it using diagnostic tools or a scan tool? Any guidance on basic troubleshooting steps would be helpful.