Two AIs and a Misfire

Two AIs and a Misfire

Front bank of the 2GR-FE with coil 4 unplugged mid-swap.

The RAV4 threw a check engine light on Saturday. The first scan looked apocalyptic — random misfire on every cylinder, both downstream O2 sensors high, an ECM/PCM processor fault for good measure.

First scan: P0300 random misfire, P0301-P0306 every cylinder, P0606 ECM processor.

That looks like a dead engine. It wasn’t. Clear the codes, scan again, and the real story shows up underneath: P0354, ignition coil “D” primary/secondary circuit, cylinder 4. Pending. Plus a P0051 on the rear-bank upstream O2.

Second scan after clearing: P0354 and P0051 surface as the actual pending faults.

That’s the kind of code that, ten years ago, would have meant a Haynes manual on the workbench, an iPad propped on the air filter, and three open browser tabs at midnight cross-referencing forum threads.

This time I ran the entire diagnosis through two AI assistants in parallel. One was OC — my homelab Telegram assistant, an LLM that talks to me from a Kubernetes cluster in the basement and doesn’t reach for web search unless I push it. The other was Google AI Mode, which ran a fresh search on the open web after every single prompt and showed me the cited sources right there in the chat.

I expected the answers to converge. They didn’t. And the gap between them taught me something specific about how to use these tools — especially for trades work, where being wrong has a price tag.

The part the AI got really, really right

Both assistants nailed the diagnostic logic. I described the symptoms — rough idle, P0354, 137K miles on original plugs — and within a couple of exchanges they had walked me through the move that any veteran 2GR-FE mechanic would have made: swap the suspect coil to a different cylinder, clear the codes, drive it, see if the misfire follows.

Coil 4 went into a different hole. The next code that came back was P0356 — the misfire had followed the coil. That is the textbook proof that the coil itself is dead, not the wiring, not the plug, not the ECU driver.

Both AIs also gave me the cascade narrative — worn plug stretches the gap, coil overworks itself for fifty thousand miles, internal windings finally crack. That’s the kind of context that lives in tribal knowledge on RAV4World and in service-manager heads. It does not live cleanly in any one document on the internet. The AI compressed it into a paragraph and got the story right.

For a hobbyist standing in a driveway with a scanner and a basic socket set, this is the actual revolution. Not chatbots. Not vibe coding. A research partner that can walk you through a real repair in your own garage, in plain English, faster than you could find the right forum thread.

This isn’t a tech story anymore

I’m a homelab person. I write code, I run Kubernetes clusters, I host my own photos. My instinct when AI got useful was to point it at the things I already do. Build a deployment pipeline faster. Write a Python script in twenty minutes instead of two hours. Spin up a self-hosted assistant and give it tools.

What I keep underestimating is what AI does for the rest of life — the wrenching, the plumbing, the orchard, the chicken coop, the dishwasher that won’t drain. Every trade has a research tax. Half of every repair is figuring out which part fits which year, which torque spec applies to which bolt, which sequence not to skip when you reassemble the thing.

AI collapses that tax. A neighbor with no homelab and no terminal can do the same diagnostic conversation I just did. They open an app, describe what their car is doing, and the AI walks them from “weird shake at idle” to “swap test the coil” without them ever needing to know what a 2GR-FE is.

The barrier between “I could fix this” and “I will fix this” is shrinking. That’s a much bigger story than another tool for developers.

And then OC tried to sell me the wrong coil

OC told me to order a Denso 673-1307 ignition coil. Confidently. With a Toyota cross-reference number. I almost hit “buy.”

Then I checked AutoZone’s listing for my exact VIN. The part it showed was 673-1309. Different last digit, different coil, different price.

I went back to OC. Are you sure?

OC verified, came back with its tail between its legs:

“AutoZone is right and I was wrong — I owe you a correction. Same mistake pattern as the spark plug screwup before. Lesson: always verify by VIN/engine code, never by ‘fits RAV4 V6.’”

That’s a sixty-dollar coil. Wrong one and I’d have unbolted the upper intake plenum, dropped in a part that wouldn’t seat right, and been back under the engine the following weekend wondering what I broke.

That wasn’t a one-off. OC also gave me the wrong cylinder geometry — it told me cylinder 4 sat on the rear bank, “under the upper intake plenum, one of the hard-to-reach three.” That would have meant unbolting the throttle body, the intake plenum, the harness routing, and a couple of vacuum lines just to get the coil out. In reality cylinder 4 is on the front bank — the bank facing the radiator — and I swapped its coil to cylinder 6 in about ten minutes without removing anything.

Earlier OC sessions had also given me the wrong spark plug part number for the Highlander. Same pattern. Same failure mode. An LLM working from memory, generating confident specifics for a question it should have looked up.

The thing about that exchange is OC eventually flinched. When I pushed, it stopped. It said let me check. It came back with the corrected number and a note to itself about why it had screwed up. That’s a real virtue — a model that knows when it’s been caught is better than one that doesn’t.

But the flinch only fires when I notice something to push back on. If I had taken the first answer at face value, OC would have shipped me the wrong coil with a confident smile.

Google AI Mode searched, and got the small things right

Google AI Mode ran a fresh web search after every prompt. You can see the citation cards right there in the chat — Reddit threads, RockAuto pages, NAPA listings, YouTube transcripts. Every time I asked about a specific part, it searched, summarized, and cited.

It worked.

Across an hour of going through my RockAuto cart line by line, Google AI Mode caught things OC didn’t. It flagged a wrong-gap spark plug I had accidentally added — a 0.032” plug that wouldn’t have fit either of my engines and would have caused misfires on install. It cross-referenced the upper intake plenum gasket sets between the RAV4 and the Highlander and pointed out which was which. It reminded me to add a throttle body gasket that I had forgotten. It gave me Bando belt part numbers (6PK1690 for the RAV4, 6PK1560 for the Highlander) that matched what RockAuto actually carried. When I went to NAPA for the emergency coil, it pointed me at the NGK 48726 — which I bought, installed, and which fixed the misfire that afternoon.

The cylinder layout it described matched the engine in front of me. The part numbers it gave matched the boxes on the shelf. The recommendations it made survived contact with the real world.

It’s not perfect. It’s an LLM, and it occasionally narrates beyond what its sources actually say — adds an oddly specific manufacturing-facility detail, dresses a recommendation in extra confidence, polishes the prose past where the underlying source goes. The citations underneath are real; the narration on top of them sometimes runs a little ahead.

But the headline result was clear. The AI that searched the web got the parts right. The AI that didn’t, didn’t.

I had to write this twice

The first version of this post had it backwards. I drafted it pointing at Google AI Mode as the unreliable one and OC as the more honest one — partly because I was wired in to OC’s voice and noticed its corrections more, and partly because I was leaning on a clever-sounding framing about “the AI that knows when to flinch.” It was a clean essay. It was also wrong about who actually got things right.

You can read that as another version of the same lesson. An LLM with a good story can be confidently incorrect — even when the LLM in question is me writing this post. I had the transcripts in front of me. I still wrote a draft that didn’t match them. The fix wasn’t more reasoning. It was going back, line by line, and matching every claim to the actual exchange that produced it.

That’s verification. It’s what kept me from buying the wrong coil from OC. It’s what I should have done before publishing the first draft. It’s the discipline both AI tools — and I — needed in the loop.

A wrinkle worth naming

Here’s the part that bothers me a little. OC isn’t actually incapable of searching the web. It has a search tool available to it. It just didn’t reach for it during the RAV4 conversation — it answered the part-number questions from memory instead of from a fresh lookup, and the result was a confident wrong answer.

So this isn’t quite “search-AI good, no-search AI bad.” It’s closer to “an AI that has search available but isn’t prompted hard enough to use it, behaves a lot like an AI without search.” The capability is necessary; it isn’t sufficient. How a tool is configured — and what it reaches for by default — matters as much as what it can do in principle.

How I work with them now

Three rules, sharpened by this weekend:

  1. For specific facts — part numbers, torque specs, fitment, dosages — prefer the AI that actually looks things up. Google AI Mode’s search-every-turn behavior wasn’t a gimmick. It was load-bearing. The model can’t generate a fact it doesn’t have, and asking it to do so produces fabrications dressed in confidence. An AI with web search and visible citations is a meaningfully better tool for trades research than one without.

  2. For diagnostic reasoning, either tool is good. The “swap the coil and see if the misfire follows” logic, the cascade story about worn plugs killing coils, the read on “P0606 in a panic-scan is probably aftermath, not a real PCM failure” — both AIs got that right. Reasoning is where today’s LLMs genuinely shine. That part of the conversation is high-leverage even without grounding tools.

  3. Verify outside the AI before you spend money. The OEM catalog. The label on the actual box. The owner’s manual. The parts counter. This is true of OC. It is true of Google AI Mode. It is true of me writing this post. The hours AI saves are only real if the decisions are right; one wrong part number flips the math, and the only thing that catches a wrong part number is checking it against something other than the AI that produced it.

The honest finish

The RAV4 is running. I picked up the NGK coil at NAPA on Sunday for the immediate fix, ordered the correct Denso parts from RockAuto for the full rear-bank refresh next weekend, and caught the wrong coil number from OC before it cost me real money — because I went looking on the open web with the other tool I had open.

That’s the real shift, and it’s a healthier framing than “AI replaces the expert” or “AI is unreliable, ignore it.” Both miss the point. The actual story is closer to: AI is a research partner whose accuracy depends on whether it’s allowed to do research. The hobbyist who treats AI as a generator of plausible-sounding answers and stops there will get burned. The hobbyist who treats AI as a tool that should be reaching for sources — and verifies the most important specifics anyway — becomes effectively expert at the trade in question.

The tools are here. They are extraordinary. They are extraordinary in different ways depending on whether they can see the open web. The discipline that makes them safe — for cars, for trades, for any decision where wrong has a cost — is the oldest discipline in any craft.

Trust, but verify. Especially the part number.