LANGUAGES Signal 259 2 feeds carried it
Engineer rewrites e-scooter firmware in Rust after reverse engineering CAN bus and Bluetooth
Illustration only Photo by Quilia on Unsplash
A developer reverse engineered an e-scooter’s hardware and firmware, then rewrote its display unit firmware in Rust.
This demonstrates the feasibility of custom firmware for consumer e-scooters, exposing both security risks and potential for aftermarket modifications. The work highlights gaps in hardware security and the practicality of using Rust for embedded firmware in real-world devices.
Written by elseif from the cluster below · every claim links back to a sourceThe three things worth knowing
The scooter’s USB-C port was repurposed as a non-compliant CAN bus for component communication.
Bluetooth firmware updates and hidden telemetry data were discovered, including unadvertised manufacturer tracking.
Custom firmware was written in Rust for the display unit, replacing proprietary code with open alternatives.
THE READ
What the cluster adds up to.
The project began with an observation: the scooter’s firmware update mode could bypass PIN security, prompting deeper investigation. This led to reverse engineering the Bluetooth protocol, revealing undocumented firmware update paths and hidden telemetry data. The scooter transmitted metrics like motor current, battery voltage, and driving history to the manufacturer without explicit user consent. This raises concerns about data privacy and transparency in consumer IoT devices, where telemetry is often buried in proprietary protocols.
Hardware analysis uncovered a non-compliant use of the USB-C port, repurposed as a CAN bus for internal communication. This required custom hardware to sniff and decode CAN frames, exposing the scooter’s internal messaging between components. The CAN bus carried critical data like speed, battery status, and control signals, which were not fully documented. This approach demonstrates how consumer hardware can be probed with minimal tools, but also highlights the risks of non-standard implementations that may violate USB-C specifications.
The firmware rewrite in Rust targeted the display unit, replacing the original proprietary code with a custom implementation. Rust’s memory safety and performance make it a compelling choice for embedded systems, though its adoption in firmware remains niche. The project’s success shows that even closed consumer devices can be modified with sufficient effort, but the lack of documentation and proprietary protocols impose significant barriers. This work underscores the trade-offs between security, openness, and aftermarket customization in embedded systems.
Security implications are notable: the scooter’s Bluetooth interface allowed firmware updates and VIN spoofing, which could enable unauthorized modifications or bypass safety limits. While the VIN spoofing attempt failed to unlock higher speeds, it revealed weak checks in the system. The project also exposed how easily hidden telemetry can be extracted, raising questions about user consent and data ownership. These findings suggest that consumer IoT devices often prioritize convenience over security, leaving them vulnerable to reverse engineering and exploitation.
Written by elseif from the cluster below · checked for specifics the sources never containedTHE CLUSTER