logoalt Hacker News

Reverse engineering my e-scooter and rewriting the firmware in Rust

147 pointsby vinhnxlast Thursday at 3:32 AM46 commentsview on HN

Comments

yonatan8070today at 4:37 PM

> To my surprise, two of the USB-C pins were being used as a CAN bus (which smells horribly noncompliant).

Oh god that's awful. Why would anyone in their right mind do this?

aboundtoday at 3:08 PM

This is an unbelievably impressive project and a killer write up, very satisfying. I wonder if the author looked into using Slint [1] for the UI, given the codegen bloat issues they had with buoyant (which also looks very cool). I haven't used either, but I've done a few projects with Embassy and am always looking for an excuse to try embedded GUI tools

[1] https://slint.rs/

show 1 reply
zoobabtoday at 3:34 PM

We need to free up Bosch systems. They use lots of open source libs, but they close the whole chain (like spare batteries) so that you cannot plug external batteries from other suppliers.

show 3 replies
asimovDevtoday at 1:39 PM

Thank you for posting! I got a e-scooter this spring and wrote my own app for it after reverse engineering the official app + BLE logs. I am not brave enough to do anything with the firmware on it though. Maybe not yet at least

quietrastertoday at 3:22 PM

rewriting scooter firmware in rust is the kind of unnecessary excellence i come here for. how did you debug without bricking it, swd probe or pure faith

show 1 reply
hommelixtoday at 2:10 PM

> The updater device then sends 64 byte chunks spread over 9 CAN 0x384 frames

Classic CAN uses 8 bytes long frame, so 64 bits. Is it a typo in the post, vor is it using CAN-FD?

show 2 replies
rfgplktoday at 3:59 PM

My general piece of advice to anyone looking to do this is not to even bother. Just strip the hardware package and replace it with an arduino/bb or an equivalent sbc figure out what the motors are and wire it up yourself. Way faster and less tedious

show 1 reply
jimmy76615today at 1:19 PM

I wanna have a friend like this guy

ifh-hntoday at 12:18 PM

Wish I was brainy enough to do this sort of thing!

show 1 reply
Founderarcstonetoday at 4:32 PM

what a great project nice work!

BrandoElFollitotoday at 4:10 PM

First of all, this is impressive.

I do not know how what the legal context is in your country, but you may need to have a device that uses public roads licensed to do so. In case of any legal issues (accidents, mostly) not only you would not be covered by your insurance, but your situation may worsen for having operated it. Something to keep in mind.

show 1 reply
arbirktoday at 2:41 PM

I am also rusting my hw. Last week my mouse, this week my EUC (wish me luck). I would rather risk a crash than memory corruption

kooilast Thursday at 4:33 AM

Very nice. Be safe out there when tweaking these things.

show 1 reply
ivo_repairstoday at 3:21 PM

[flagged]

barbarkaragultoday at 2:29 PM

[dead]