About a month ago on the first cold (20F'ish) day my truck died on pulling out my work parking lot, accelerating onto the main road after running only about 30 seconds. I wasn't able to get it to start and run. Everytime it died it felt as abrupt as if I had turned off the key and lost all ignition and fuel at once. I drifted powerless into an entry (off the road) and scanned it with my ECU tools I take basically everywhere: P0320. I've seen this code before because in my line of work, I build custom wiring harnesses for the engines I build. A rookie mistake I made quite a few years ago was not including sufficient shielding on a crankshaft position sensor when building a really hot COP ignition system. It made sense to me that something was affecting the crankshaft position signal, and if the ECU can't read the speed of the crank, and line up where number 1 is, how can it fire spark. Anyways - I towed the truck home (cost me 120$) and I changed the Crank position sensor hoping this would fix it. It warmed up in the up coming weeks and the truck ran without problems - until we had another cold day (in the Teens) and I let the truck warm up one morning before driving it. My plan was to let it idle for 20 minutes so I'd go out to a warm truck. By the time I got out the truck had stalled, and I had nothing but an HVAC blowing cold air. She started back up no problems, and I drove it that day just fine. A few more times it died on cold mornings when just warming up in my driveway or garage. A few times I noticed really severe misses when she was warming up (during driving). When I was logging the data with my laptop (during driving) I noticed some really strange readings from the RPM PID. Once it told me 397rpm (not really possible because it would stall) - I decided to look further into the circuit if I had a wiring problem feeding to the sensor (or from it) because obviously changing the sensor did not help.
A few days later it stalled (during warm up suddenly again) and I couldn't get her to start. She would crank fine but not fire. I read the PIDs on the ECU and I saw that I wasn't getting a reading for cranking rpm (normally a few hundred rpm) - so I knew the problem was that the ECU was not getting a signal from the crank position sensor - It can't line up the ignition map with the cylinders not knowing where number 1 is, or how fast the engine is spinning. I popped the hood and wiggled the harness where the crank position sensor feeds up around the block and over the head near the cowl. Working it hard, making sure each inch of the harness was moved. Went back into the truck and she fired back up. This further confirmed the logic that I had a wiring problem. The next day I put her up on my lift and took off the drivers side front tire and splash-shield underneath. I unwrapped the main engine harness and look what I found - the sensor feed was shorted only sometimes intermittently, to the shield that drains all high voltage caused noise. When this happens the ECU fails to see the AC signal generated by the 36 minus 1 tone-wheel and it kills ignition and fuel to protect from rotating assembly.
I rebuilt this harness with some new wiring and a new shield and I haven't had a problem since. Also added a few locators to position the loom better in the engine bay away from harms way. The convolute had broken because the locators weren't attached in a few places and the wires were rubbing on the thermostat housing bolt that holds it to the engine.