The Engine Computer detected a problem, set a diagnostic fault code in memory, and turned the light on to tell you. By ignoring it a new and more serious problem could have developed, and how would you know? Also, there is a long list of conditions that must be met to set a code, and some of those conditions include that certain other codes aren't already set. The Engine Computer is constantly comparing things to each other to determine when there is a problem. When some codes are set, the computer knows it can't rely on some sensor data to test other things, so it doesn't perform those tests and it won't recognize a problem in time to warn you. Since the light was on all this time, you know there was a problem, and that will often prevent the computer from setting additional codes when those problems show up. This gets real frustrating for mechanics because as soon as they repair the known problem and erase that code, the new codes show up on the test drive. They have to start diagnosing all over again and they have to tell you more time and parts are needed. You are certain they didn't diagnose it correctly the first time and you are getting ripped off. When this happens, it's the car owner's fault, not the mechanics, but guess who gets the bad reputation?
When the Check Engine light is flashing, that is the most serious type of problem and means too much unburned fuel is going into the exhaust system. The catalytic converter is going to overheat and be permanently damaged. That will turn a minor problem into a real expensive one very quickly. The flashing light means stop the engine right away and let the exhaust system cool down.
If you neglected the recommended intervals for maintenance, you can expect cylinder misfires in the engine. We don't exactly do tune-ups anymore because there just isn't that much to do. However, beginning with all '96 models, the Engine Computer will detect those misfires and even tell you which cylinder is responsible. That is usually as inexpensive as replacing spark plugs and wires, but you ignored that. The misfires send unburned fuel and air into the exhaust system. The fuel overheats the catalytic converter(s), but it's the unburned oxygen that gets detected by the oxygen sensors and tells the computer to add more fuel. You use even more gas but get less power and fuel mileage.
Lack of oil changes can lead to the knocking, which is very serious, but there are other potential causes that must be eliminated first. Some engines such as the one in my minivan are extremely forgiving when it comes to lack of maintenance. One other engine from the same manufacturer can be expected to develop that knocking and basically self destruct if good-quality oil isn't replaced exactly when scheduled. You didn't list your engine size but it doesn't matter as I don't know the reliability history of most GM engines. To my knowledge you won't cause a problem by waiting a little with an oil change, but that is usually not a breakdown vs. Non-breakdown thing. It has more to do with the wear taking place inside the engine. Lack of oil changes accelerates the normal wear that takes place and shortens the life of the engine. You pay in the long run for saving a little on maintenance costs.
At this point you need to get a mechanic involved to see if the engine is salvageable or if the problems are even that serious.
Friday, February 8th, 2013 AT 5:15 AM