Post

Reverse engineering an e-scooter and rewriting its firmware in Rust

Ben reverse-engineered an Egret GT scooter’s Bluetooth protocol, update paths, display hardware, and firmware, then wrote custom display firmware in Rust. The investigation found telemetry and identifiers exposed through the app, and a boot path that could bypass the PIN-protected normal mode.

The write-up is a detailed embedded case study: probing the USB-C display, reconstructing the protocol, and working around no_std/GUI constraints. Lobsters reactions praised the dedication and debated the availability of allocation-free embedded GUI libraries; another reader compared it with reverse-engineering an EV’s firmware.