Sunday, March 2, 2014

1997 Dodge Dakota PCM Repair

My transportation situation in 2014 has started out bad. My car decided it doesn't want to run when on pavement anymore (works fine in the driveway). I'd been two weeks trying to fix it (along with working a 50hrs/week and studying for CS50x) when my truck started stalling randomly. The first time I was pulling out of the driveway on the way to work, it cranked for a minute then started and ran fine. The second time (same day) I was driving through town on my way home from work and it just started coasting. Fortunately it re-started just as I was preparing to coast onto the shoulder. I got home and pulled the codes.


  • P0320 - Crankshaft Position Sensor
  • P0351 - Ignition coil A
I know I pinched the CPS wires when I put the transmission back in, I just hadn't got around to replacing it. I searched for P0351 and it seems it's usually not the coil, but the PCM failing. I also found that there is a header in the PCM that can cause stalling problems. It's on the voltage regulator board.

I replaced the CPS and coil just to be on the safe side. Then started it up and wiggled the wires at the PCM. The center (white) connector would cause it to skip. So I pulled the PCM and re-soldered the header (see links).


What a pain that was! it's mounted to a aluminum plate that sucks the heat out of the connector. I ended up with a hot air rework gun at 300C and my soldering iron at 400C. It barely melted the solder, even after heating it for a few minutes! If I do this again I'll put it on my BGA rework pre-heater (electric griddle) and heat the whole board up!

1997 Dodge PCM Voltage Regulator Daughter Board?

Anyway, I reassembled the PCM and sprayed all the connectors with De-oxit. Wiggling the wires no longer has any effect on the engine. At least I'm (hopefully) back to one driveable vehicle. If I have to I'll try to pull the board under the potting and re-solder that too, but for now it seems to be working again.

UPDATE: It worked for a while, but started acting up again. I bought a used one off ebay and the truck has run great ever since. I pulled the main board out of the case and started cleaning the goo off it, I think it's the connectors where the harness plugs in, but that's as far as I've got.



Late last year I signed up for CS50x from Harvardx on EDUx.

So far it's an interesting course. When I signed up I thought we only had 12 weeks to complete it, but it turns out we have an entire year. Which is great because I started a full-time job three days after CS50x started! I've been putting off writing about it, but I want to get started. My progress is slow, as I'm working 50+hrs/week and trying to keep up with everything else (car broke down the first week, then the truck, you get the picture).

I'm going to do a post on each Problem Set, and try to describe and explain the issues I ran into and how I solved them, without violating the cs50x policy of course (no complete solutions will be available here). Remember, I'm new at this, so my solution may not be the most efficient nor elegant by any means. But it should work.


The lectures have a lively feel to them and are available in many formats, I have been streaming the videos from the courseware page and occasionally downloading the mp3's to listen to on the way to work.

The shorts are really cool 5-10min explanations of things related to the course. Did you know that in ASCII to change from capital to lower case (and vise versa) only one bit changes? Yep, it was in a short.

The appliance is a virtual machine running Linux with a selection of tools to help you. I used virtualbox under Arch Linux, but it runs on Windows, Linux and Mac. It could be really slow on old or low-powered systems. it's a bit slow on my HTPC, but OK on my laptop. It took a while to get everything running smoothly, but that was mostly vitrualbox issues rather than appliance problems.

The problem sets start easy (scratch) and get harder really fast, but it's supposed to be a challenge right? There is a standard edition and a hacker edition, only the standard counts toward completing the course, so I've concentrated on them. I'll go back and do the hackers as time permits (or when I'm procrastinating on the final project).

The final project is a dilemma for me, so far all the ideas I've had fit one of these categories: too simple, too complicated, already been done, or not sufficiently interesting to me. Hopefully I'll come up with a good idea before I'm through with problem sets.