This one is your fault, not Toyota's, and waiting all those years has severely compounded the problem and will cost you much more in the long run. To begin with, the Engine Computer monitors all of the sensors and many of the engine's operating conditions. It fine tunes the fuel / air mixture for best performance, lowest emissions, and best fuel mileage. When it detects even a minor and inexpensive problem, it sets a diagnostic fault code in memory. It only has to turn on the Check Engine light when that problem could have an adverse effect on emissions, but that usually also means reduced fuel economy. The first problem with ignoring that light is that if a second problem were to occur, you would never know it because the light is already on.
The second problem is a little harder to understand but it's what you're going to be running into now. The Engine Computer compares the various sensor readings to first determine that each one is working correctly, and second to be sure they're reporting the correct values. To provide some examples, the throttle position sensor sends a signal voltage between 0.5 volts and 4.5 volts, depending on throttle position. If it sends out 3.0 volts when it is supposed to be 1.5 volts, that is within the acceptable range so no code will be set even though it's seriously wrong. The computer knows engine speed and load, and those things had better agree with what the throttle position sensor is saying. As a better example, the computer knows that when the engine has been off for at least six hours, the coolant temperature sensor and the intake air temperature sensor had better be reading the same temperature. If they are not, it has to figure out which one is wrong before it can set a code. This is where many people add new problems. They replace a handful of parts that send out slightly different signal voltages than the parts they replaced, so the computer gets confused. It can start setting all kinds of codes. Professionals never replace more than one sensor at a time, then they drive the car to allow the computer to learn the parameters of that new part.
Where the problem comes in with your car is related to how the computer sets those codes. There is always a long list of conditions that must be met to set a code, and one of those conditions is that certain other codes can't already be set. In the example of the two temperature sensors, the computer compares the two readings at specific times. If there's already a code set for one of them, the computer knows it can't rely on its reading to compare to other sensors, so those other sensors may never set a code when THEY develop a problem. It's not until the first problem is diagnosed and fixed, and that code is erased, that the computer can run tests again on some of the other sensors. THAT'S when the new problem shows up and the Check Engine light turns on again. There are over 1000 potential fault codes, so who knows how many will set in the near future. Some operating conditions are only self-tested at very specific and sporadic times such as only after driving more than 30 miles above 45 miles per hour, or only after restarting the engine when it is still hot, or only after you hit wide-open-throttle for at least three seconds. Those are just a few possible examples, but you get the idea. If a problem is detected during one of those self tests, that might be the first time the code sets, now that the previous one has been fixed and the code erased, but that problem could have been occurring for years.
This story is real common among GM owners and their anti-lock brake systems. If they wait many months to have that warning light diagnosed, there is very likely to be a second problem already occurring, but there won't be a second code to tell the mechanic about it. They hate that because after they provide a repair estimate and do the repairs, THEN the light comes right back on with a new code. Mechanics are frustrated because they had no way of knowing that up front so they could provide an accurate estimate, and owners are frustrated because they incorrectly assume the mechanic diagnosed the problem incorrectly. The problem of the reappearing warning light was due the customer's failure to have it addressed right away before that second problem developed.
As for that comment about having to use Toyota parts, that is not accurate. A large percentage of replacement aftermarket parts come from the same suppliers that sell them to Toyota or to the other manufacturers. They buy them in large quantities and put their own name on them. Some companies do design their own parts but very often they are better than the dealer's parts because those companies address the original parts' shortcomings when they see an opportunity to address parts with known high failure rates. In addition, when it comes to engine sensors and any other emissions-related parts, they must meet the same specifications as the originals, otherwise your mechanic would never get the Check Engine light to turn off. We rarely have that problem with aftermarket parts.
You DO have to be careful when it comes to catalytic converters and this is where saving money on a cheap one might lead to more problems. On '95 and older cars, like I drive, the converters aren't monitored in any way for proper operation. Starting with all '96 models sold in the U.S. There is a second oxygen sensor right after each converter to watch if it's doing its job properly. That inexpensive aftermarket replacement may be cleaning up some of the gases that make up the exhaust, but not all of them. This is where the Engine Computer might initiate a self-test while you're on the highway, and momentarily dump way too much raw fuel into the engine to see if the front oxygen sensor detects the rich condition, and if the converter cleans it up. If your new converter isn't working like the original one was designed to, that may not be detected for days or weeks, depending on your driving habits. Also, some problems don't set a code right away to avoid nuisance Check Engine lights. The problems often have to occur a certain number of times per minute or per drive cycle before the computer decides to set a code.
As for your friend, there was more done to fix her car than just turn off the light. All shops DO charge a lot to turn it off because they have to spend many thousands of dollars each year to buy and update that equipment, but not $300.00! If all that was done was to turn the light off, that is done by erasing the codes currently in memory, and that was part of the previous repair that someone didn't do. That's not the dealer's fault either so you have no right to be angry with them. In fact, according to one national trainer, Hyundai, Toyota, and Chrysler are the most customer-friendly manufacturers and dealers. If you're unhappy now, be thankful you don't own a GM, Volkswagen, or BMW.
That's the long version of what could be happening. You might be chasing the Check Engine light for a long time but that is not the dealer's fault. What you need to do though is always write down the exact code numbers for us to interpret. You can go here too:
to look up the generic descriptions. Too often people just tell us the code description they got from an auto parts store that reads them for free. There are some codes that sound similar but means different things. There's also two important things to be aware of with fault codes. First of all, those places that read them for you for free are providing a valuable service but their business is not fixing cars; it's selling parts. They are going to recommend what they understand, and there's a lot of codes that do not require the replacement of parts. As an example, you might have one of potentially three codes related to that throttle position sensor. The parts guys may sell you a new sensor, but what if a wire to it is corroded? A new sensor won't fix that problem. A better example is the code "running lean too long". What part are they going to sell you to fix that? Second, fault codes never say to replace parts. A lot of people come here saying "the code said to replace that part; I did, and that new part was no good because it didn't solve the problem". While it is true a new part WILL solve the problem perhaps 50 percent of the time, that is never what the code says. Those codes only indicate the circuit or system that needs further diagnosis. Too many people think mechanics are ripping them off by spending so much time doing diagnostic tests. They think all we have to do is read the code number and replace the corresponding part. In reality, those codes are just the starting point so we don't have to test the operation of every circuit and part. That's how we did it many years ago when we could break the systems down to fuel and spark, and each one had only a few dozen parts. If it weren't for those codes today, we'd have to spend a week on each car just to diagnose it!
Please consider a to help us answer more questions.
Saturday, January 5th, 2013 AT 9:41 AM