Quote Originally Posted by mark97564 View Post
Have you ever felt it misfire? Like sat in the car while it idles to see if it's actually misfiring when the light comes on? Like instead of letting it idle while in the gas station you sit in the car and wait for the light to come on? Knowing if there is an actual misfire would help narrow things down. The crank sensor on these cars are dual hall effect, so if one part of the crank sensor is intermittently failing the pcm could think it's a misfire.. I would do a crank sensor position variation learn procedure on the car to start with.. when you remove, replace the crank sensor or replace the pcm it needs to be done. It teaches the pcm the attributes of the crank sensor so it can properly detect misfires..

Also connect a scan tool and watch the rpm readings and graph them and see if the 3x or 18x rpm's become different than each other or off one glitch's.. crank sensor, ignition control module or one of the plugs on the icm or crank sensor could be bad and intermittently cutting out, or the learn procedure needs to be done..

But let me know what the engine does when the light comes on.. that would be invaluable information, knowing if it's actually missing or not
Sorry it took so long to get back, I had to buy a nice scanner and learn how to properly read it lol. After much studying I have determined that the engine was not actually misfiring on any cylinder as the light was illuminated. There were no changes in cylinder conditions. I am happy to announce that you were spot on with the crank position sensor. I was getting an intermittent signal failure from the sensor only at idle, data shows true above 1200 rpm, intermittent failure below 1200. I believe as you stated it was getting proper signal to run but failing on its other function. I replaced crank sensor, did a case relearn and have successfully idled several hours with no return. I believe this problem has been solved at this point and I thank you so much for sticking it out with me. I honestly thought this thread was dead and sometimes you just need a little push in the right direction. If condition returns in the future I will update accordingly but I'm pretty confident you've solved my issue. Thanks again