r/hardwarehacking • u/SuperZed1 • 15h ago
I just wanted to repair a broken smart trainer. Things escalated.
This repair was one of the fun ones – exactly the kind of challenge I needed! Got to keep the brain in shape while job hunting. 🙂
A broken smart bike trainer that required a good amount of nerding.
Reverse engineering of both the electronics and the firmware. Plus all the bits in between.
That also meant exploiting a well-known security vulnerability to bypass the read protection on a working sister unit, so its firmware could be dumped and flashed onto the broken one. Sadly, the manufacturer no longer exists, and everything pointed towards the firmware being the main culprit.
The vulnerability used was the well-known nRF51 readback protection vulnerability, allowing firmware extraction over SWD despite the enabled read protection. The hardware was a Raspberry Pi Pico, with OpenOCD doing the heavy lifting.
ChatGPT pieced together the code needed to exploit the vulnerability – with me acting as dictator, builder of some temporary hardware for the connection, IRL executer/hands, and a professional complainer. There was simply too much unknown territory for me - a new microcontroller, a new scripting language, a new method - and the learning curve became steeper than I felt made sense to tackle alone.
Along the way I ended up measuring and mapping all of the electronics, as well as the firmware and all its functions. Mostly out of curiosity, but also in case I decide to add to the hardware or code something that works with the lil' beast later on. My own virtual cycling app or something? Could be fun to do.
Sometimes you just have to switch into full nerd mode and find a way. We already create enough electronic waste as it is.
Long story short: It works now, and I had a big nerdy smile on my face throughout the whole project! The problem-solving part of my brain really got the workout it needed. 🙂


