The check engine light is the single stupidest warning light in existence

One of the things that still pisses me off/makes me shudder is I broke the oil filter in the family car, ran it for a dozen or so miles until the engine seized and the damn light never came on.

1 Like

Mercedes A-Class has an oil pressure warning light in the middle of the display you can’t normally see - turns out this comes on if you follow the manufacturers’ instructions in a check-up and fill the oil level to the recommended level - because the oil tank is warmed and the oil begins to froth, this sets off the sensor, so if you follow the manufacturers’ manual you will always set off your own oil pressure warning light… who knew?

1 Like

Most auto parts stores will read from the OBD II port for free

They might in the US, here in the UK they’ll generally try and charge you £20 for the privilege. An OBD2 cable costs about £15.

Clearing the trouble codes turns off the light but puts the car into a “Not Ready to Test” mode. Until some time has passed (about 24 hours, and that must include some periods of 55+ MPH and idling in traffic, among other things) there is a stored code that will not turn on the CEL,

This depends on the car, in my Peugeot it’s less than five minutes and you just have to take it above a certain number of revs for a few seconds in order for the engine management to re-calibrate.

1 Like

The dang Prius gas light comes on with about 3 gallons remaining. That car is a filthy liar on top of it - I can’t even tell you how many times the gas light has come on, mileage calculator says I should have used 10 gallons, I go fill up, and it takes 8-9 gallons. For my fairly short commutes, that’s another couple days I could’ve gone without filling up. :frowning:

3 Likes

You can get a $20 bluetooth OBD-II transmitter that can send the output to your Android or iOS device. You can then interpret the codes and figure out what’s going on. Buying and OBD reader is a small barrier, but it keeps out most of those for whom the information would convey no useful information.

I don’t know that you car giving everyone the equivalent of an obscure computer dialog saying “Error -1748” would be super helpful to most people, and people figuring it is something they can fix themselves might lead to serious problems.

Reading the number from a display to someone else over e.g. a cellphone can be pretty helpful when something breaks (or even just starts complaining) in the field.

As of the serious problems, I am SICK of people trying to “protect” me from myself.

2 Likes

Well, it’s true that fewer and fewer people can consider themselves qualified to fix their cars anymore (partly due to increased complexity, partly due to the popular perception that cars are too complicated to work on anymore, partly due to a decline in popularity of dirty-handed DIYness), but the thing is, the codes needed to be short back in the OBD-I and OBD-II days because they needed to be read either by counting the flashes of a light, or on the screen of a small handheld device that couldn’t display many characters. Since many (if not most) new cars come with screens for satnav and entertainment packages, there’s no reason why an OBD-III protocol couldn’t display a simple description of the problem, like the code descriptions of old, right on the screen:

Misfire detected in cylinder #2
O2 sensor detects mixture rich beyond ECM’s capability to compensate
Lean mixture consonant with vacuum leak
More than 7500 miles since last oil change
High coolant temp - A/C compressor disabled - check thermostat

To quote Clarkson, how hard could it be?

6 Likes

Or a Mini Cooper…

1 Like

Do you rent all your cars?

You can’t possibly have owned very many of them and not experienced the intermittent, maddening fonogoddamnedgoodreason check engine light coming on.

1 Like

There is a check motherboard light. It’s bright blue, with some random gibberish scrawled over the top of it

1 Like

Might be a Toyota owner. ;^) In the past 28 years that I’ve been a licensed driver, I’ve owned or been otherwise responsible for 19 cars and trucks, and of the seven that have been new enough to actually possess Malfunction Indicator Lamps (as GM used to call them), I’ve only ever seen the MIL light up in two of them, not counting the times when the MIL lights up upon starting the vehicle, when all the dashboard indicators light up as a self-test. The '97 Volvo’s MIL lit up when it needed that vacuum leak repaired in the intake manifold gasket, and the '93 Caprice had the MIL light up a couple times for various reasons. The '94 Toyota Truck is still running up in Alaska with over 270,000 miles on the clock, and its MIL has never been triggered. I never saw the MIL go off in the couple years I had the '95 Firebird (1996-1998), nor the 2005 Subaru WRX (2005-2009), and our '07 Toyota RAV 4 and '04 Toyota Sienna are both approaching 100,000 miles with nary a MIL trigger between them.

But I’m a tight-twistin’ gas-cap sonofabitch. ;^)

6 Likes

About as easy as it can be. A hardcoded string table mapped to the numbers. I could code that by hand in Microchip PIC assembler almost 20 years ago (about when PIC16C84 was new-ish). (I am too old for assembler now, so Atmel avr-gcc flavor of C it is.)

For an app running on a real operating system it is even easier, at least if you already have a code skeleton you can mod.

Yeah, that’s about what I thought. Should be almost exactly the same as the old system, but with longer character strings as the code results. Of course, in this day and age, there should be even more granular detail.

This very morning I took the Sienna in to have the A/C recharged. Last time I took it in for this purpose, the A/C system was fine, but the thermostat needed replacing, and as the engine got hot, the ECM sensibly shut off the A/C compressor to help cool the engine. (My wife usually drives it, and hadn’t noticed that the temperature gauge was getting a bit warmer than usual.) Anyway, this time I watched the temperature gauge, and no, it still wasn’t getting excessively high, even on our recent hot-ass days, so I figured this time surely the 10-year-old minivan just needed new freon. But the mechanic called back an hour or two ago and said nope, the freon pressure is still fine, but the car’s running hot again… this time because the main fan won’t turn on. The secondary fan, the one that turns on when the engine temperature gets a tad too warm or when you turn on the A/C, is still working fine, but the main fan motor is dead. The cooling system is burly enough that we’ve driven the car this way for weeks and weeks during the hottest autumn on record in L.A., and it hasn’t overheated… but it did get hot enough to disable the A/C after a few minutes of driving.

So we need to install a new main fan. Gonna set me back $400 or so. Of course, I could go dig a used fan up at a junkyard, but I don’t mind spending the money on a new one, and I don’t particularly feel like pulling out the old one and putting in a new one for the negligible amount of money I might save by buying a new one from Toyota myself.

Anyhoo, a smart ECM might have been able to communicate to me that the engine is running hotter than usual, though not nearly hot enough to actually overheat, just enough to occasionally disable the A/C compressor, and that the reason for this is $MAIN_FAN_NOT_OPERABLE or, in the case of the previous fault, $MAIN_FAN_OPERABLE => CHECK_THERMOSTAT.

2 Likes

The system can have its own diagnostics. Moving parts that can seize are fairly easy; and even stupid $1.50 computer case fans have a pulse output to measure their rpms, no reason why it couldn’t scale. WIth enough memory, which is not a problem in the age of multigigabyte flash disks, many parameters can be logged and then correlated, and shown in some sort of graph as they were developing over time (e.g. calculated motor power output vs (engine temperature minus ambient temperature), that could be a good indicator of cooling system performance and impending failure). A current and rpm sensor on a motor can indicate degradation of attached mechanical assembly, as more force is needed to get it moving. Vibration sensors can provide early warning for degradation of bearings.

With enough data, and suitable processing, the car can do a lot of preventive maintenance on itself.

The monitoring devices on satellites and space probes, which allow e.g. watching power consumption on individual bus branches, can be a good inspiration here.

2 Likes

I tellya, it’s a bummer that planned obsolescence and a distaste for letting car owners fix their own shit are factors here. Automakers should have been doing this for years now.

2 Likes

I still hope for aftermarket modkits with self-diagnostic electronics. Perhaps opensource engine control unit, too, designed for interfacing with different kinds of sensors and fuel injectors… A generic package of car electronics, which can be wired into many sorts of cars…

…and, let’s say we can dream, CAD drawings (or at least 3d scans) of the mechanical parts that fail most often. So they can be made from a suitable alloy in any CNC shop.

3 Likes

There actually are a set of rudimentary motherboard error codes too. Depending on the manufacturer, it’s either expressed as a set of high and low pitched Mobo speaker beeps, a sequence of monotone beeps, a set of 4 or 5 numbered lights on the front of the case (I work with a lot of Dell Optiplex 780s, and they have this type of error code indicator), or a flashing light on the motherboard. Most of the time you’ll never be able to find what these indicators mean. Usually the manufacturer never bothers to add a table of the codes to their PDF manual on the product site. And there’s absolutely no standard for what anything means. Well, there are standards (IBM has one that a few companies used to adhere to) but nobody uses them any more.

1 Like

There are also the POST codes. These are normally invisible, they are sent to hardware port 0x80, and can be shown with a PCI (or, at extra-old machines, ISA) card. They are BIOS-specific (what BIOSes are there these days? Used to be AMI, Award, and couple others…). In the good ol’ ISA times, when I was making these cards, all you needed was a couple gates (you needed the A0…A19 signals, could be hardwired to a decoder made of couple gates, and a IOWR# signal that together with the matching addresses latched the D0…D7 signals to output of a 74HC574 chip), a latch (the 574), and a pair of 7seg displays and 4bit-to-hexdigit decoders (attached to the 574). All just the discrete 74xx line of chips, nothing fancy.

And if I’d be good for something, I’d learn how to make cards for PCI (okay, PCI-Express) bus… Would be handy for e.g. high-speed data acquisition…

The POST cards can be cheaply bought on eBay these days.

Also, see this:

Hmm. I didn’t know about POST Codes. In fact, I thought mostly the purpose of the POST was just to make sure that the system had the expected electrical conductivities and resistances. Like, if you had a cracked mobo, or an improperly seated RAM DIMM, it’d know to poweroff. That’s what most of the machines I work on do. A lot of machines by default are set to “power on after power failure” which is really stupid for anything not plugged into a UPS and isn’t mission critical. If the power goes out, why would it be a good idea to turn the machine back on as soon as there’s enough juice to trip the PSU? Where I live, when the power comes back on, it’s very dirty and might cycle off again. I don’t know if it’s the linemen’s doing or what, but it’s like it’s designed to wreck PCs that automatically turn back on when the power comes back.

Good lord, you’ve never had an O2 sensor go bad? Each of our cars have gone thru at least 2.

1 Like