I build the tools I wish test benches came with. My B.Eng. in electrical engineering and electromobility at TH Ingolstadt ended with a thesis that reads a VW ID. Buzz's battery through the OBD-II gateway, and an internship on a hardware-in-the-loop test team showed me how much time engineers lose to missing tooling. Most of what is below comes from one of those two places: vehicle networks, battery systems, and the software and hardware that test them.
|
The MEB gateway hides the BMS from the OBD-II port, so a CANedge2 logger asks instead of listens. 60 identifiers tested, three encodings the public list gets wrong, and a desktop app for logger profiles and MF4 decoding. CAN UDS Python LaTeX
|
One test plan from a Python prototype to C firmware to a real board: SiL, PiL and HiL with the same requirements, a desktop studio and a REST API. Python C control HiL
|
|
Ten automotive and avionics protocols (CAN, UDS/ISO-TP, AUTOSAR, DoIP, ARINC 429, MIL-STD-1553 …) implemented twice, in C and in Python, and tested against each other. Fuzzed in CI. C Python libFuzzer
|
Reads a Windows engineering tool (an ECU flasher, a calibration program) through UI Automation and .NET metadata and generates a Python package and REST API for it. No pixel clicking. Python UI Automation .NET
|
|
Which bench PC is free, who is on the busy ones over Remote Desktop, and when you can book it. One browser page for the whole lab, no install for colleagues. Python Windows API SQLite
|
A Raspberry Pi between a locked-down PC and a USB stick: the PC only speaks FTP, every copy is checksum-verified before it says "done". Python Raspberry Pi
|
|
Hand it a CAN log: it finds fields, counters, CRCs (AUTOSAR E2E included) and exact signal encodings, and shows the evidence. Recovers all five encodings from my thesis's raw UDS data. Python CAN UDS DBC
|
|
PyBaMM electrochemistry for the cells and a real BMS on top: SOC estimation, protection, balancing, contactors. Fault injection, a desktop studio and Simulink blocks. Python PyBaMM MATLAB/Simulink
|
GAIA's sibling for what the battery drives: give it a throttle and get the whole chain, from where the shaft settles to where every watt went. Python modelling
|
|
A two-channel CAN-FD receiver in VHDL that timestamps every frame in hardware on one shared clock. Open toolchain rebuilt in CI, with a live capture viewer. VHDL Lattice ECP5 CAN-FD
|
Three CAN-FD tools taken end to end: requirements, schematic, layout, fab outputs. A sniffer HAT for the Pi Zero 2 W, a handheld OBD-II test runner, and an isolated FPGA timestamper board. Altium Designer CAN-FD Raspberry Pi
|
|
Live, filtered views of your Desktop and Downloads that stay where you put them, plus a Tidy with preview and undo. About 10 MB of RAM idle. C# WPF Win32
|


