enginelama browser ↔ adapter ↔ car · nothing in between

The check engine light,
read in plain English.

A ten-dollar ELM327 adapter, this page, and your browser talks straight to the car — fault codes explained, live gauges, VIN. No app, no server, no $150 diagnostic fee for a code number.

Plug the adapter into the port under the dash, ignition on — then pick your connection. No adapter yet? The demo runs the whole flow on a canned car.

Job number one: the orange light came on during a motorway drive and the garage's earliest slot was Thursday. Four days of imagining gearbox surgery. Thursday's verdict took the mechanic ninety seconds: plugged a reader in, said "loose fuel cap, forty quid for the diagnostic," and clicked the light off. Forty quid to be told a number a ten-dollar dongle reads, translated by a lookup table older than my driving licence. The protocol is public. The port is under every dashboard by law. Browsers can open serial ports now. There was no missing piece except a page that put them together — so here's the page, and may your Thursday-dread be ninety seconds long too.

— the cap gets hand-tightened with ceremony now, twice

What happens when you press read

the same conversation a handheld scanner has

  1. The adapter gets settled. A short burst of setup commands — echo off, auto-detect the car's dialect. Cars speak five OBD protocols; the adapter's whole job is translating.
  2. The engine module is asked twice. Once for stored codes (confirmed faults — the light), once for pending (on probation). Both are shown; they mean different things.
  3. Codes become sentences. The standardized P0xxx codes carry plain-English meanings on this page; manufacturer-specific ones are labeled honestly instead of guessed at.
  4. You decide, informed. Note the codes, search them with your make, fix or get it fixed — and only then clear, which the button will remind you about.

Read before clearing anything

the honesty panel, bolted on

Shouted over the compressor

the questions the bay actually gets

My cheap Bluetooth adapter won't show up.

Almost certainly classic Bluetooth, not BLE — browsers can only reach the LE kind. The listing will say "4.0" or "BLE" if it's the right sort; USB adapters dodge the whole question and cost the same.

Can I watch gauges while driving?

A passenger can, happily — the live readout polls continuously. The driver's job is driving; mount the device or hand it over.

The page says UNABLE TO CONNECT.

Ignition on (engine can be off but key to run), adapter seated firmly, and give it one retry — auto-detect occasionally needs a second run. Ancient pre-1996 cars simply don't have OBD2, and a few EVs decline the standard queries.

Is this as good as the mechanic's scanner?

For generic engine codes, live basics and the VIN — same data, same protocol. Dealer tools add manufacturer modules, actuator tests and coding this page doesn't pretend to do. Think of it as the difference between reading the patient's chart and performing surgery: the chart is free now.

There's a code I can't clear.

That'll be a permanent code, and it's working as designed. Since roughly 2010 cars keep a second, sealed copy of an emissions fault that no scan tool can erase — not this page, not the garage's, not the dealer's. The car itself deletes it, once it has run its own checks over several drives and satisfied itself the fault is genuinely gone. It exists precisely to stop anyone clearing codes in the car park on the way to an inspection. Fix the fault, drive it a week, and it goes on its own.

Am I ready for the emissions test?

Press emissions readiness and the car tells you directly. It runs a set of self-checks as you drive — catalyst, oxygen sensors, EVAP and so on — and each is either finished or still running. Most programmes allow one unfinished (two on 1996–2000 cars), though the rule varies by where you are, and a lit lamp fails on its own regardless. If several are still running, the usual cause is that somebody cleared the codes recently: a week of ordinary mixed driving normally finishes them off.

What are the "test results"?

The marks behind the readiness panel. Readiness says whether each self-check finished; test results show what each check actually measured, and the pass window the car judged it against — press it on the demo car and you'll see the catalyst scoring 900 against a 0–800 window, which is the P0420 in numbers. Each test speaks its own units, so this page shows the raw figures rather than guessing conversions: what matters is whether the value sits inside its window, which is exactly how the car decides. Older pre-CAN cars keep these results in manufacturer code, and the page says so instead of decoding them wrongly.

Why did the demo car show P0420?

Because it's the most-Googled fault code on earth, so the demo may as well teach it: catalyst efficiency low, usually an oxygen sensor or a tired catalytic converter, rarely urgent, worth diagnosing before parts-cannon-ing.

Workshop manuals

longer reads, greasy thumbprints included

What the check engine light actually knows One lamp, hundreds of possible codes: how OBD2 monitors decide you have a problem. The ten-dollar adapter, explained What an ELM327 is, why clones vary wildly, and how to buy one that works with a browser. Five protocols, one port The OBD2 socket speaks several languages — a short history of why, and what auto-detect does. Ready for the emissions test? Your car already knows Readiness monitors, the not-ready trap after clearing codes, and the boring week of driving that fixes it. Mode 06: the car's own lab book The marks behind the readiness checks — value, pass window, verdict, and the drift you can catch before the lamp. Freeze frame: the photograph your car takes at the worst moment The snapshot stored beside every fault code, how the same code with two photographs means two different problems, and the eraser that destroys it.

Ramp record

what changed, newest first

v1.14
cheap adapters faint when you crank the engine — the voltage dips, the dongle reboots, forgets everything it was told, and used to leave the session talking past itself until you reconnected. The bay now notices the tell (the adapter announcing its own name to a question nobody asked), quietly re-runs the setup conversation, and repeats the question. Once, politely; an adapter that faints at every question has its answer shown as-is rather than argued with.
v1.13
manual 06: Freeze frame, the photograph your car takes at the worst moment — what's in the snapshot, how to read it like a mechanic in three questions, and the sketch that earns its place: the same misfire code with two different photographs, one a frosty-morning stumble worth re-testing, the other a warm-cruise misfire with no excuses. Plus the eraser problem, which regular readers will recognise by now.
v1.12
manual 05 joins the shelf: Mode 06, the car's own lab book — one nine-byte record dissected until it confesses, why the raw numbers are honest rather than lazy, and the quiet trick of catching a part passing at 51% seasons before the lamp lights. Two fresh whiteboard sketches, including the drift chart the dashboard will never show you.
v1.11
Test results. The readiness panel says whether each self-check finished; the new button shows the marks — what the catalyst check actually measured, the misfire count per cylinder, and the pass window the car judged each against. On the demo car the catalyst scores 900 against a 0–800 window, which is P0420 with the working shown. The numbers stay raw on purpose: value and limits share a unit, so pass/fail is exact, and honest raw beats a confidently wrong conversion. Goes on the job card too. Pre-CAN cars keep these in manufacturer code, and the page says so rather than guessing.
v1.10
the first three manuals caught up with the fourth: whiteboard sketches throughout. One amber bulb funnelling hundreds of stories, the two-strike rule branching to stored or quietly-expired, P0420's two too-similar sensors and their four suspects, the ELM327 doing its diplomacy between volts and text, the four-dongle buying chart with its two crosses, five dialects around one trapezoid, and auto-detect knocking on doors until CAN says "yes?".
v1.9
manual 04 got its whiteboard sketches — the car's job card with one check still spinning, the car-park trick backfiring in three panels, and the boring week ticking itself off. Drawn by hand in the site's own ink, not generated; on a phone they pan inside their frame instead of shrinking the lettering to dust.
v1.8
two bugs found while walking the page the way a screen reader does. The empty gauge grid and the job-card box were quietly visible the moment the bay opened — told to hide, but their own styling out-ranked the instruction; hiding now always wins. And a subtler one in the update machinery: a new release could faithfully re-package the previous release's stylesheet, because the browser's own cache got asked before the server did. Each release now insists on checking with the server, file by file. The section headings inside the bay also became proper headings, so jumping between "stored codes" and "emissions readiness" by rotor works like it always should have.
v1.7
the bay now works properly by ear and by keyboard. A screen reader hears what happened after every press — "fault codes read: 2 stored, 1 pending, 1 permanent" — instead of silence while the page rearranges itself; focus lands on the results rather than leaving you to hunt for them; buttons sit out politely while a read is in progress instead of letting a double-press ask the car twice; and the red clear button's lettering was repainted dark after the old white-on-coral failed the contrast test everything else on the page passes.
v1.6
switching apps mid-read no longer ends in a made-up failure. Phones put a backgrounded page's timers on a go-slow, but the page's patience clock kept ticking at full speed — so answering a text while the codes were coming in could greet your return with "adapter didn't answer" about an adapter that had answered. Time spent away doesn't count against the adapter any more, and the reply that arrived while you were gone is right there waiting.
v1.5
the typeface now lives here. Until today, loading any page sent one request to Google's font servers — the single exception to "nobody else was on the line", and the privacy page had to carry an asterisk saying so. The font ships from this site now, so the sentence is finally true without footnotes, and as a bonus the lettering works offline in the car park along with everything else.
v1.4
Copy job card. This page kept telling you to write the codes down before clearing, then handed you nothing to write with — which is a bit rich when you're stood in a cold car park holding a phone. One button now copies the whole lot as plain text: codes and what they mean, the freeze frame, the readiness monitors, the VIN, the date. Paste it into a note, or into an email to the garage, and go and have your tea.
v1.3
Permanent codes. Newer cars keep a second copy of a fault that no scan tool on earth can erase — the car deletes it itself, once it has watched the fault stay fixed over several drives. If yours has any, they're now listed, and the clear button says so before you press it. And the page now asks your car what it can actually measure before showing gauges, so a dial you haven't got disappears with a note explaining why, instead of sitting at a dash forever looking broken.
v1.2
two things the car knew all along and nobody was asking it for. Freeze frame: when a fault sets, the computer photographs the moment — revs, speed, coolant, load — and reading codes here now fetches that photograph and shows it to you, because pressing clear deletes it forever. Emissions readiness: the car runs self-checks as you drive, and the new button lists which have finished and which are still going, so "will it pass the test on Tuesday" stops being a guess. Clear the codes in the demo and watch what it does to them.
v1.1
the bay now finds adapters it used to miss: USB dongles are tried at all three speeds the clone factories ship (38400, 9600, 115200) instead of just the common one, and Bluetooth looks for three different wiring layouts by name as well as by service — including the cheap ones where a single channel does both talking and listening. A car with nothing wrong with it no longer reports an error where "no pending codes" belongs.
v1.0
bay opens: ELM327 over Web Serial and Web Bluetooth, stored + pending fault codes with plain-English meanings and honest P1xxx labels, clear-with-a-conscience confirmation, live gauges, VIN read, demo car for the adapter-less, offline PWA.