OBD data: build your own logger
Three builds, from everything to the cheapest. Most people should start with Standard: always on, all the same data as Pro except GPS, for under Rs 10,000. Each comes in two versions: a CAN chip wired to an OBD plug (three wires: the cheapest and the fastest) or a Bluetooth adapter (no soldering, costs more). All three use an ESP32-S3 board, and our firmware will cover all three. Everything is plug-in: nothing in the car is cut or rewired. This is educational material, shared as it is: build it at your own risk.
Always on, from anywhere, with GPS
- ■ Logs every drive
- ■ Charging, logged automatically
- ■ 12 V battery watch, early warning
- ■ Away from home (4G)
- ■ GPS
Parts: ESP32-S3 + 4G board, OBD splitter, OBD → 5 V adapter and a data SIM, plus a CAN chip and an OBD plug (3 wires) or a Bluetooth adapter (no soldering).
| CAN chip | US$ 67 + SIM | Rs 24,769 |
|---|---|---|
| Bluetooth | US$ 87 + SIM | Rs 31,702 |
Parked draw: ≈ 30–45 mA, 19–28 days · our firmware: yes
Always on; syncs when the car is home
The best place to start: it records everything the Pro build does except GPS, for under Rs 10,000 with the CAN chip. The only difference: no live data while the car is away; it all syncs when the car gets home.
- ■ Logs every drive
- ■ Charging, logged automatically
- ■ 12 V battery watch, early warning
- □ Away from home (4G)
- □ GPS
Parts: ESP32-S3 board, OBD splitter and OBD → 5 V adapter, plus a CAN chip and an OBD plug (3 wires) or a Bluetooth adapter (no soldering).
| CAN chip | US$ 30 | Rs 7,879 |
|---|---|---|
| Bluetooth | US$ 50 | Rs 14,812 |
Parked draw: ≈ 25–30 mA, 28–33 days · our firmware: yes
Only while the car is on; syncs at home
- ■ Logs every drive
- □ Charging, logged automatically
- □ 12 V battery watch, early warning
- □ Away from home (4G)
- □ GPS
Parts: ESP32-S3 board and a USB cable from the car's USB socket, plus a CAN chip and an OBD plug (3 wires) or a Bluetooth adapter (no soldering).
| CAN chip | US$ 18 | Rs 4,348 |
|---|---|---|
| Bluetooth | US$ 38 | Rs 11,281 |
Parked draw: none: off with the car · US$ 10 with an old dongle as the plug · our firmware: yes
US$: a typical online price, delivered, rounded (October 2026). Rs: what we paid in Sri Lanka in October 2026. Draw: current on the 12 V side, mostly estimated. Days: until half of a 40 Ah 12 V battery is used (the manuals don't give the Aion's size). Bluetooth prices are for the Vgate iCar Pro 2S: cheaper Bluetooth LE adapters (about US$5–10) work too, but we can't vouch for their sleep, draw or speed.
Worried an always-on reader will flatten the 12 V battery? It works the other way round. Parked, the reader draws only about 25–45 mA: about 10 Wh a day, under 3 % of the 0.38 kWh a day our parked car uses by itself, and the car tops its 12 V battery up from the main battery now and then. Meanwhile it keeps an eye on that battery for you:
- 12 V battery watch, with an early warning. A flat 12 V battery is the classic way an electric car ends up dead in the drive, however full the main battery is. While the car sleeps, the reader checks the 12 V battery about once an hour, logs every top-up from the main battery (when, how long, the voltage before and after) and learns what is normal for your car over the first two weeks. If top-ups start coming more often, the voltage falls faster, or it rests lower than usual, Home Assistant shows a warning while there is still time to act.
- Charging, logged automatically. Every charging session, at home or at a fast charger, is recorded on its own: when, how long, the charge before and after, and the energy that went in. No app to open.
Both need always-on power: the Pro and Standard builds. The Budget build switches off with the car, so it sees neither.
| Route | Price | Speed | 12 V watch + charging | Away from home | GPS | Wiring | Parked draw | Our firmware | |
|---|---|---|---|---|---|---|---|---|---|
| A Budget · CAN chip CAN chip + plug · car USB | US$ 18 Rs 4,348 | ≈ 87/s | □ no | □ no | □ no | 3 wires | none: off with the car | Tested on our car | |
| B Standard · CAN chip CAN chip + plug · splitter + 5 V adapter | US$ 30 Rs 7,879 | ≈ 87/s | ■ yes | □ no | □ no | 3 wires | ≈ 25–30 mA · 28–33 days | Tested on our car | |
| C Budget · Bluetooth Vgate · car USB | US$ 38 Rs 11,281 | 14–50/s expected | □ no | □ no | □ no | none | ≈ 3 mA · 278 days | Car test to come | |
| D Standard · Bluetooth Vgate · splitter + 5 V adapter | US$ 50 Rs 14,812 | 14–50/s expected | ■ yes | □ no | □ no | none | ≈ 26–31 mA · 27–32 days | Car test to come | |
| E Pro · CAN chip 4G board · CAN chip + plug · splitter + 5 V adapter · SIM | US$ 67 + SIM Rs 24,769 | ≈ 87/s | ■ yes | ■ yes | ■ yes | 3 wires | ≈ 30–45 mA · 19–28 days | On our car, 4G SIM to come | |
| F Pro · Bluetooth 4G board · Vgate · splitter + 5 V adapter · SIM | US$ 87 + SIM Rs 31,702 | 14–50/s expected | ■ yes | ■ yes | ■ yes | none | ≈ 31–46 mA · 18–27 days | Car test to come | |
| G USB adapter (advanced) GODIAG + powered OTG cable · car USB | US$ 39 Rs 1,800 + parts | ≈ 28/s | □ no | □ no | □ no | none | unknown: the adapter never sleeps | Tested on our car |
Parked draw: the reader, the CAN chip or Bluetooth adapter and the 5 V adapter's own loss, estimated (details under Power below). The Budget builds draw nothing from the reader while parked because it switches off with the car (a Bluetooth adapter stays in the port, asleep).
Ours today is the Pro build with the CAN chip: the ESP32-S3 + 4G board, an OBD splitter in the normal port, the OBD → 5 V adapter for always-on power, and our own CAN plug with pin 16 pulled out. GPS works; it uses home Wi-Fi until the SIM goes in. Photos of it to come.
An ESP32-S3 DevKitC with an SN65HVD230 CAN module taped to its back, and an old OBD dongle with its electronics removed as the plug (three wires soldered to its pins 6, 14 and 5), running from the car's USB socket.


- Jumper (Dupont) wires are fine for testing but can shake loose: crimp or solder them for keeps.
- Electrical tape goes soft in a hot parked car: heat-shrink or a printed case is better.
- Keep something insulating between two boards taped back to back.
The reader keeps hours of logs and shows live values on its own pages. To keep everything, see trips and charts, and feed Home Assistant, run the collector (see the logging set-up): a small Python program and a PostgreSQL database, both in Docker. It runs on almost anything, at home or on a cloud server you run.
| Where | Cost | Notes |
|---|---|---|
| Reader only | free | The reader's own pages show live values, the car view and fault codes, over its hotspot or your Wi-Fi. Logs stay on it (about 10 MB) until you download them. |
| Home server or NAS with Docker | free, if you have one | Recommended. Runs the collector, its database and Home Assistant next to everything else. |
| Used office PC (6th-gen Intel or newer: Lenovo ThinkCentre, Dell OptiPlex) | ≈ US$30–60 once (Rs 10,000–20,000), about 10 W | Cheaper and faster than a Raspberry Pi, with a real disk: runs the collector, the database and Home Assistant. A Raspberry Pi works too, but costs more once you add a power supply and an SSD. |
| Old laptop | free, 10–20 W | How we started: an old laptop with a broken screen and the battery taken out, running Linux. It grew into a full home server. Take the battery out. |
| A cloud server you run | free (Oracle Cloud Always Free, Google Cloud e2-micro) or a small VPS, about US$4–5 a month | Works with every build: the reader pushes to it over HTTPS, from home Wi-Fi or over 4G, so you need no computer at home. Container-only free hosts sleep and keep no disk, so the database must live elsewhere, and small free databases fill in about a month. Free tiers change without warning: check the current terms first. |
We don't run a hosted service: your car's data stays on a machine you control.
Don't want to run a computer at home? Would you like a hosted version: plug in the reader and see your car's data in a web app?
Thanks, your answer is counted.
Need help? If you're reading this, you probably found it through the Aion V owners' WhatsApp group: you'll find me there.
Common parts sold by many shops; no links, no recommendation of a seller. Photos: the sellers' product photos, logos removed.
![]() | Vgate iCar Pro 2S (Bluetooth LE) Adapter in the OBD port; the reader talks to it over Bluetooth. Price: US$ ≈ 30 · we paid Rs 9,481. Draw at 12 V: ≈ 34 mA working, ≈ 3 mA asleep (maker's figures). Alternatives: OBDLink CX, or any ELM327 that does Bluetooth LE. Cheaper ones (about US$5–10) work too, but we can't vouch for their sleep, draw or speed. Many cheap ones are Bluetooth Classic only: those need a classic ESP32, not an S3. |
![]() | ESP32-S3 DevKitC-1 N16R8 The reader: Wi-Fi, Bluetooth LE, USB host, 16 MB flash, 8 MB PSRAM. Price: US$ ≈ 8 · we paid Rs 1,800 (local shop). Draw at 12 V: ≈ 45 mA working, ≈ 20–22 mA parked. Alternatives: Any ESP32-S3 board (USB host is only on the S3). A plain ESP32 or an ESP32-C3/C6 can do Bluetooth or CAN too, but has no ready-made firmware from us (source only); the plain ESP32 also does Bluetooth Classic. |
![]() | ESP32-S3 + A7670E 4G board The reader with 4G (LTE Cat-1, 2G fallback), GPS and microSD. Price: US$ ≈ 45 + shipping · we paid Rs 18,690 (AliExpress, delivered). Draw at 12 V: ≈ 90 mA working, ≈ 25–37 mA parked. Alternatives: SIM7670G version (more bands), separate modem boards on an ESP32's serial port, LilyGO T-A7670 boards (classic ESP32, no USB host). Check the bands your SIM uses (see 4G below). Ordered; not tested yet. |
![]() | SN65HVD230 CAN module CAN chip: remove its 120 Ω resistor (marked 121). Price: US$ ≈ 2 · we paid Rs 275. Draw at 12 V: ≈ 2 mA. Alternatives: Adafruit CAN Pal (TJA1051T/3): ±58 V on the bus pins, a silent pin and a termination switch. Avoid 5 V-only boards (TJA1050, MCP2551, MCP2515 modules) on a 3.3 V ESP32. |
![]() | OBD Y-splitter (30 cm) One port, two sockets: power cable in one, adapter or plug in the other. Price: US$ ≈ 6 · we paid Rs 1,847. Draw at 12 V: none of its own. Alternatives: Any 16-pin pass-through splitter; check with a meter that all 16 pins go through. |
![]() | OBD → 5 V USB adapter with low-voltage cut-off Always-on power from pin 16 (dash-camera type). Price: US$ ≈ 6 · we paid Rs 1,684. Draw at 12 V: ≈ 3–6 mA (its own loss). Alternatives: Dash-camera OBD power cables; branded ones let you pick the cut-off (11.6–12.5 V). Or an OBD pass-through with a USB charger built in (≈ US$22): one piece, but the cut-off and standby draw are rarely stated. |
![]() | OBD plug with loose wires (30 cm) The plug: only pins 6, 14 and 5 are used. Price: US$ ≈ 8 · we paid Rs 2,273 (AliExpress, delivered). Draw at 12 V: none of its own. Alternatives: An old OBD dongle with its electronics removed (what we use), jumper wires into the back of a splitter, or a splitter cable cut open: anything that reaches pins 6, 14 and 5. |
Build your own four questions, every option, other boards, DIY power
Answer four questions, or pick each part yourself. Options that don't go together say what they would change; "show advanced options" adds the USB adapter, other boards, DIY power and car Ethernet.
Price against speed chart
The ways to connect CAN chip, Bluetooth, USB, car Ethernet
ESP32 + a CAN transceiver chip wired straight to the port's CAN pins. The ESP32 has a CAN controller built in (classic CAN, which is what the normal port uses).
- Good
- Fastest: 11–12 ms per read on our car, about three times quicker than the USB adapter. Cheapest, nothing in between, nothing that has to sleep.
- Watch out
- Wiring, and the ISO-TP framing and flow control in code (our firmware does it). Use pins 6 (CAN-H), 14 (CAN-L) and 5 (signal ground) only, never 16 (we pulled pin 16 out of our plug). Remove the 120 Ω resistor on the SN65HVD230 board (marked 121) or switch termination off: the car's bus is already terminated. The SN65HVD230's bus pins take only −4 to +16 V; the TJA1051T/3 (±58 V) is tougher. A transceiver with a silent pin lets the transmitter stay off except for your own requests.
ESP32 + a Bluetooth LE ELM327 adapter (Vgate iCar Pro 2S). The adapter plugs into the port; the ESP32 can sit anywhere in the cabin.
- Good
- No wires to the port, the adapter sleeps when the car is off, any ESP32 with Bluetooth LE works.
- Watch out
- ELM327 speed (about 20–70 ms per read). The adapter must do Bluetooth LE: many cheap ones are Classic only. Ask for a short Bluetooth connection interval or every read gets slower. Our firmware supports it; the first car test is still to come. The Vgate alone costs more than the whole direct-CAN route; cheaper Bluetooth LE adapters (about US$5–10) work too, but we can't vouch for their sleep, draw or speed.
ESP32-S3 + a USB ELM327 (GODIAG GD101) on the S3's USB-host port, through an OTG adapter. It logged our first drives; direct CAN replaced it.
- Good
- A wired link with no soldering.
- Watch out
- Needs an ESP32-S3 (USB host); the 4G board's USB port is taken by its modem. The board doesn't power USB devices by default: don't bridge it to power the adapter through the board, as that killed our board's input diode. Use a powered OTG Y-cable or 5 V on the 5V pin. The GODIAG needs raw frames (see how to read it), doesn't sleep, and on ours can need unplugging and replugging after power cycles.
The normal port also carries Ethernet (pins 3, 11, 12 and 13, with a wake-up line on pin 8). An ESP32 with an Ethernet chip (a WT32-ETH01, or an S3 with a W5500) could in principle talk to the car that way (DoIP). We haven't tried it. The Ethernet chip adds a little draw, roughly 15–45 mA; the bigger unknown is the wake-up line, which may keep the car's gateway awake while parked.
Power car USB, always on, parked draw
- The car's USB sockets switch off with the car, so a reader on them only records while the car is on: no charging sessions, no parked data. Fine for a build that syncs over home Wi-Fi. Not for 4G: a 4G reader is meant to be online all the time, so it needs always-on power.
- For always-on: an OBD splitter plus an OBD → 5 V USB adapter with a low-voltage cut-off. Pin 16 is live all the time. Pick the highest cut-off on offer and measure what the set-up draws while parked.
- When the car goes to sleep, our firmware only listens, and checks the 12 V battery about once an hour. The reader itself stays powered (about 25–45 mA, see below), so the adapter's cut-off is what finally protects the battery. Our car tops up its 12 V battery from the main battery now and then (the firmware logs each top-up); don't count on every car doing so.
- A DIY 12 V-to-5 V converter only with a fuse at the plug, a TVS diode against voltage spikes, a converter rated well above 24 V input and a fire-resistant case.
| Part, car parked | At 5 V | On the 12 V side |
|---|---|---|
| ESP32-S3 (CPU running, Wi-Fi in power-save, Bluetooth listening 1 %) | ~30–40 mA | ~13–17 mA |
| CAN chip | ~5 mA | ~2 mA |
| 4G modem, idle (Pro build; no SIM) | ~10–15 mA | ~5–6 mA |
| LEDs, regulators, memory chips | ~4–6 mA | ~2 mA |
| The OBD → 5 V adapter's own loss | – | ~3–6 mA |
| Total, Pro build without a SIM | ~0.25–0.33 W | ≈ 25–35 mA |
| Build, parked | Draw at 12 V | Half of a 40 Ah battery |
|---|---|---|
| Standard | ≈ 25–30 mA | 28–33 days |
| Pro, SIM in, modem idle | ≈ 30–45 mA | 19–28 days |
| Pro, modem asleep (later firmware) | ≈ 28–35 mA | 24–30 days |
| Budget | none: off with the car | – |
Estimates. Our USB power meter (1 W steps) agrees: it shows 0 W with an occasional 1 W blip, so the average is under about 0.5 W. The hourly car checks and parked GPS fixes add about 1–2 mAh an hour. A Bluetooth adapter adds about 3 mA asleep (maker's figure). Our car tops up its 12 V battery from the main battery now and then, so in practice the reader costs about 10 Wh a day from the main battery: tiny next to the 0.38 kWh a day the car itself uses while parked.
4G bands, SIM, data
- An ESP32-S3 board with an A7670E 4G modem can send its logs over HTTPS wherever the car is, not only at home. It also has GPS (working on our car) and a microSD slot.
- Check the SIM's bands. The A7670E covers LTE bands 1, 3, 5 and 8 (among others) plus 2G. In Sri Lanka that suits Mobitel and Hutch; the SIM7670G version adds more bands. LTE-M and NB-IoT modules need network support that may not exist where you live.
- Use a data-only SIM with a small monthly pack: about 10 KB a minute while driving, compressed.






