← Build log

9:48 PM · 2 Sep 2026

 

A 15-year-old road bike trainer (CompuTrainer) that I reverse engineered with the help of Opus 5 to work with modern cycling apps. The trainer itself has an RPM monitor and wattage readings, and it can change resistance — all the same things modern trainers do. What it lacks is BLE. I was able to order a variety of connectors to convert the audio-jack data port to a standard USB port, but that still left it without BLE, which all modern trainer apps require. The solution I came up with was to connect it to a Raspberry Pi 5 over Ethernet, set up as a BLE advertiser. I then wrote a driver that parses the data coming from the CompuTrainer over USB and converts it into a format the MyWhoosh app can use. With this setup, I can connect to the trainer from my MacBook in MyWhoosh over BLE and still control resistance and read wattage.