March 26, 2026

The IoT/AI Car Diagnostics Everyone Promised But Nobody Built — So I Gave It a Spin

An OBD data logger for my 2020 Tata Nexon 1.2T petrol (manual) — and what the data actually revealed.

Source code and setup: github.com/roypeter/esp32-obd2-logger

Originally posted on RedditView on Reddit ↗

The Setup

ESP32 + CAN bus IC + SD card module + small OLED screen. The device logs 32+ ECU parameters to a 64GB SD card continuously while driving. When I want to look at the data, the ESP32 spins up a WiFi hotspot, I connect from my phone, download the CSV, and upload it to an AI to ask questions.

No app. No cloud. No subscription. Just a file.

What the Data Revealed

1. Low Octane Was Hurting the Engine

This was the first real finding, and the most actionable.

With standard octane fuel, the ECU was pulling timing as low as -35° under load. That's aggressive knock correction — the engine is detecting detonation and retarding ignition timing to protect itself. Sustained at that level, it's sacrificing performance and potentially stressing components.

After switching to XP95, timing retard improved noticeably. The ECU still pulls back under heavy boost (that's normal), but the -30° and below events dropped significantly.

The ECU is doing its job, compensating quietly. Without the logger I'd have had no idea this was happening.

2. Eco vs Sport — What the Data Shows

At 30% pedal input:

  • Eco opens the throttle to 54%
  • Sport opens it to 77%

A different pedal-to-throttle curve. This limits boost to ~0.38 bar in Eco vs ~1.05 bar in Sport, with peak torque at 71 Nm in Eco vs 99 Nm in Sport.

The fuel saving was only about 9% in city traffic — Eco mostly prevents the expensive fuel spikes during hard acceleration, not baseline consumption.

3. The Turbo Actually Works

Recorded 1.05 bar of peak boost (~15 psi) in Sport mode, hitting at around 2800–3000 RPM. MAP sensor climbed to 196 kPa. You can see the whole story in the data: the spool-up across the RPM range, the boost build, the ECU pulling timing as boost increases to manage knock.

Knowing this is all happening under the hood and now being able to see it in numbers is a different experience from just feeling it.

4. All Sensors Check Out

Went through everything systematically:

  • Wideband O2: lambda 0.990 at idle, barely any deviation — good closed-loop control
  • Post-cat O2: steady at 0.45V — healthy catalyst
  • LTFT: +4.2% — mild lean correction, normal for Bangalore altitude
  • Catalyst temp: peaks at ~670°C, well under the 800°C limit
  • Module voltage: steady at 14.3V — charging system healthy

Nothing alarming. But now I have a baseline.

The Long Game

A 64GB SD card at this logging rate can hold years of driving data.

The plan is to keep it running silently and periodically feed the accumulated logs to AI to spot slow changes: fuel trim drift, timing degradation, boost loss, sensor aging. By the time something actually fails, hopefully the data will have been showing early signs for months.

Cheap preventive diagnostics. No dealership visit required.

Still Early Days

All the data so far is from short 20–30 minute city drives around Bangalore. I haven't had a chance to take it on a proper highway run yet — that's where the full RPM range, sustained boost, and real fuel economy numbers would show up. Looking forward to that data.

If you're doing something similar or want to adapt this for a different car, the full source is on GitHub.