Resoldering a Vectra C column integration module
Keeping my car alive for a little longer
Yesterday, during my commute to work, my 2002 Vectra C decided to turn on all the indicators on the dashboard and drop the RPM and speed needles to 0.
The weirdest thing was that the engine and the other systems kept working as usual. This lasted for a few seconds, then returned to normal, but the ESP indicator stayed on. This happened a few times in total.
After that it worked without issues for a while - but that was not the end.
After a few kilometers, the engine stopped while I was driving. The good thing was that I managed to pull over to the side of the road, and no one was nearby.
The battery was working as it should (above 12 V), so I tried to start the engine. There wasn't even a single crank - no reaction at all. I tried a few more times - nothing. I pulled the key out, waited a while, tried to crank again, and the engine started. Probably by a miracle, or some other event, I managed to get to work, and later home, without issues. All day, though, I knew what those issues meant: the Column Integration Module (CIM), that exceptional idea and piece of engineering, was failing.
The CIM sits on the steering column. It bridges the low-speed and high-speed CAN buses, and the immobiliser lives in it. When it drops off the bus, the cluster loses RPM and speed, and modules all around report communication errors, while the engine itself keeps running.

I had already swapped my XR unit (the earliest, and most faulty) for a newer one (DL), which had worked without issues for around five years. Apparently its time was running out too. Mind you, these modules are already over 20 years old, counting from their manufacture date. I had two options: find and buy a used UY (the most reliable revision) and swap it in - but that would take two days with shipping, which I didn't have to spare. So the natural next step was to take this one apart and check for visible faults, cold solder joints, anything I could fix myself.
At home I read the errors from all the modules in the car, and my suspicions were (at least I hope) right. Communication errors from modules all around.
Falling needles, random indicators, communication errors, and immobiliser errors all point to a faulty CIM.
Vaguely remembering the procedure for getting to the PCB on the steering column, I started taking things apart.
I disconnected the battery, turned the steering wheel 90 degrees, put a screwdriver in, pulled, and took one side of the airbag out. I repeated that for the other side, disconnected the plugs, and put the airbag away. With a Torx T50 I unscrewed the central screw on the steering wheel, pulled the airbag and steering-wheel button cables out through the wheel, and put the wheel away. Then I removed the plastic panels covering the column, to make more room.
Under the CIM there is a T40 screw that loosens its grip on the steering column, and another on top that lets you remove the module. I took the CIM out in its enclosure, brought it home, and opened it to get to the PCB.





On various forums I had read that resoldering the PCB connectors and the main CPU pins is often enough to make these work again, hopefully for good. The PCB was covered with a protective coating, which I removed with nitro thinner and a medium brush. I cleaned off the rest of the residue with isopropyl alcohol and inspected the board. Unfortunately the CPU pins looked fine, and so did the connectors - but since I had already come this far, I reflowed them anyway.

I pulled out solder wick and TK83 flux, removed the old solder from the CPU and the connectors, washed the board with isopropyl alcohol, then resoldered everything with fresh solder. I washed it again, applied a fresh protective coating, flushed the inside of the connectors with Kontakt S contact cleaner, let them dry, assembled everything, and went back to the car.

I fitted only the CIM, the steering wheel, and the airbag. There was no need to mount the column covers yet: if I have to take it apart again, that will save me some time and hassle.
Finally I connected the battery, connected OPCOM, read the errors again, cleared them, and calibrated the steering-wheel angle sensor.
The engine started. No errors appeared.
Test drive went without issues too. I'll post an update in the future.
That's the good thing about older cars: simpler electronics, no touchscreens, and the ability to repair things yourself, without needing a special interface to configure anything after changing one part. This CIM is not connected to anything remote, and it can't be updated. It still runs the firmware from its release day, so the repair was a soldering iron, not a session with a dealer.
Newer cars are getting worse - touchscreens everywhere, subscriptions for things you already have in the car but can't use without paying more, internet connections, and even more manufacturer gatekeeping around parts and service procedures.
The new electronics sometimes breaks even faster. Instrument clusters go dark during driving, among other things, and this happens in cars that are almost new. A manufacturer can also update the firmware remotely and make sure the car won't live that long. Those cars I can't, and won't, call reliable. My previous Astra F, which I owned for three years and drove over 100,000 km, didn't fail even once. It always started, everything worked, and if something stopped working I could fix it with the basic toolbox in the trunk, without having to connect to a manufacturer server or do anything more obscure. Sure, some cars from around 2000 can also be overcomplicated, and some newer ones can still be simple and repairable. But I have the feeling that, in the past, things were actually made to last and to be fixable - the opposite of what is happening now.
My car is already 24 years old, and I refuse to let it die.