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.
- 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
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
- 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.
- 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.
- 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.
- 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.
- 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.
| Layer | Handles | Alone |
|---|---|---|
| PTC current limiting | Sustained short on CAN_H/CAN_L or UART | Too slow for a fast transient |
| Transient voltage suppression | Voltage spikes and ESD | Will not survive a continuous fault |
| Relay isolation | Disconnects the line when idle | No protection at all while closed |
It works, and the V1 errata are written down
| Under 15 s | per battery, measured in my own testing, against several minutes on per-brand manufacturer tools |
|---|---|
| 10/10 | internship grade from Dott and HAN |
| 4 | verification stages: unit, functional block, integration, acceptance |
| All | must-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.
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.
- Phone
- +31 6 8515 8402
- linkedin.com/in/tanishq-bhaiji
- Based in
- Arnhem, Netherlands
- Available
- Graduation internship from Feb 2027