T. BHAIJI
Index SHEET 02 / 06

Battery screening and diagnostic tool

Dott receives e-bike and e-scooter batteries by the crate, from several manufacturers, each with its own proprietary diagnostic tool. I designed and built one standalone tester that screens any of them safely, outside the vehicle, before they go anywhere near it. Graded 10/10.

BATTERYunknown statePTCcurrent limitTVStransient clampRELAYphysical isolationCAN / UARTtransceiverESP32firmwareVOLTAGEexternal ADCMEASURED FIRSTcomms stay disconnected until the pack proves safeOLEDpass / failHARNESS IDresistor codedone connector per battery typethree layers, in series
Signal path, showing where the protection sits relative to the measurement.
Sheet
02 of 06
Title
Battery screening and diagnostic tool
Client
Dott
Shared e-bike and e-scooter fleet operator, Amsterdam
Drawn
Sep 2025 – Jan 2026
Work done
Hardware design · Embedded firmware · Test engineering
Project type
Solo project
My role
Electrical Engineering Intern, sole engineer on hardware and firmware
Status
AS BUILTassembled, tested, in use
ESP32 · Embedded C · CAN · UART · I²C · Altium · OLED

Batteries were only tested once they had already failed

There was no standard way to screen an incoming battery. Diagnosing one meant using the manufacturer's own tool. Those are expensive, one per brand, each with its own procedure and its own trained-operator requirement. In a high-throughput warehouse that does not scale.

The consequence was worse than slow. In practice batteries were not tested at all unless they already showed a fault, which means the first thing a bad battery met was a vehicle. A pack with a short or an over-voltage condition on its communication lines can take the vehicle electronics, or the diagnostic equipment, with it.

So the requirement was not really a measurement instrument. It was a gate: something that assumes the battery in front of it might be dangerous, proves otherwise before connecting anything sensitive, and gives a warehouse technician a clear answer with almost no training.

Protect first, then measure, then talk

  1. The order of the diagnostic sequence is the design. Pack voltage is read through an external measurement subsystem first, and unsafe electrical conditions stop the run before any communication interface is enabled. A faulty pack never reaches the transceivers.
  2. Three layers of protection, in series, on every communication line. PTC current limiting handles a sustained short; transient voltage suppression clamps spikes; a relay physically disconnects the line when it is not in use. Each one covers what the others cannot: the PTC is too slow for a fast transient, the TVS will not survive a continuous fault, and the relay protects nothing while it is closed. This combination is what made testing unknown-condition packs survivable.
  3. Rather than a tester per brand, I designed an intermediate connector and a modular cable harness. Each harness carries an ID resistor, so the tool identifies which battery type is attached and selects the right protocol automatically. Supporting a new pack means a new harness, not new hardware.
  4. Not all the packs use a documented protocol. Getting useful diagnostics out of them meant analysing traffic on non-standard CAN and UART implementations and writing firmware against what the devices actually do, rather than what a datasheet claims.
  5. Output is an OLED readout reduced to a pass or fail, plus state of charge and state of health where the battery reports them. The operator is not asked to interpret a measurement.
Communication-line protection, and why three layers
LayerHandlesAlone
PTC current limitingSustained short on CAN_H/CAN_L or UARTToo slow for a fast transient
Transient voltage suppressionVoltage spikes and ESDWill not survive a continuous fault
Relay isolationDisconnects the line when idleNo protection at all while closed

It works, and the V1 errata are written down

Outcome
Under 15 sper battery, measured in my own testing, against several minutes on per-brand manufacturer tools
10/10internship grade from Dott and HAN
4verification stages: unit, functional block, integration, acceptance
Allmust-have requirements verified at system validation

Structured testing paid for itself. Functional-block testing on the V1 board caught what would have been expensive later: incorrectly configured level shifters, reversed relay coil polarity, swapped Rx and Tx on the MCU UART0 interface and the CAN transceiver, a wrong push-button footprint, and MCU reset instability. Integration testing surfaced battery communication problems and incorrect ADC addresses, fixed in firmware. Because those three stages were thorough, system acceptance testing, run against a test plan agreed with the client with the board in its enclosure and a prototype harness, turned up no major issues.

Every known V1 issue is documented with a specific fix: tie the Rx level shifter permanently to 3.3 V, reverse R20 and R21 for the programming port, add a switch on the boost converter enable pin. A V2 starts from a known position rather than rediscovering all of it.

SCOPE AND LIMITATIONSThe under-15-second figure is my own measurement during testing, not a client-published benchmark. The tool does not support every possible battery protocol, and capacity testing was explicitly out of scope. The V1 board has the documented errata listed above.

Book a call

Happy to talk about a graduation internship, a vacancy, or a project you want a second opinion on. Twenty minutes is usually enough to work out whether it is worth a longer conversation.

Typical length
20 to 30 minutes
Time zone
Central European Time, Arnhem
Languages
English, Hindi
Usually free
Weekday evenings and most of the weekend

Looking for a graduation internship from February 2027.

Power electronics, embedded hardware, renewable energy or power systems. I am equally happy writing the firmware and tooling around them. Based in Arnhem, open to relocating in the Netherlands.

Based in
Arnhem, Netherlands
Available
Graduation internship from Feb 2027

© 2026 Tanishq Bhaiji · Arnhem tanishqbhaiji42@gmail.com LinkedIn CV (PDF)