From Dust Collector to Zwift Star: Breathing New Life into Your ProForm Bike

Like many cycling enthusiasts, I invested in a ProForm bike a while back, lured by the promise of immersive, interactive indoor training. The Generation 2 TDF model, with its Google Maps route simulation and automatic resistance adjustments, seemed like the perfect tool to maintain my fitness during the off-season. The quiet operation was a definite bonus, allowing me to catch up on my favorite shows without disturbing the peace.

However, the reality of the “smart” features didn’t quite live up to the hype. The route mapping was locked behind a problematic IFIT.com subscription. Server issues plagued the first year, and despite an extended membership, the advanced functionalities remained unreliable. My ProForm bike quickly became more of a standard spin bike, albeit a very quiet one with electronically adjustable resistance, mostly gathering dust. That is, until the rise of virtual cycling platforms like Zwift and RGT.

The emergence of these interactive programs offered a compelling way to make indoor cycling engaging again. Friends were raving about Zwift, and I began exploring how to join the virtual peloton. Could my existing ProForm bike be part of this new cycling world? I discovered I wasn’t alone in this thought, and the resourceful cycling community had even developed software solutions like the TDF Databridge. Unfortunately, my older TDF bike model wasn’t compatible with this bridge.

Just as I was about to give up, I stumbled upon Thomas Schucker’s ingenious Arduino Zwift Interface project, designed for a folding exercise bike. Thomas’s detailed documentation and code provided the key to adapting his solution to my ProForm bike. (Huge thanks to Thomas!). His approach cleverly used the magnetic properties of the bike’s flywheel to estimate cadence and power. My ProForm bike already had a magnetic resistance motor with a position potentiometer and a magnetic pedal cadence sensor. By tapping into these existing components, I could derive power data (consistent with the console readings) and cadence. An Arduino Nano BLE microcontroller then became the bridge, transmitting this data to Zwift via Bluetooth.

Currently, my modified ProForm bike successfully sends power and cadence data to Zwift. While I manually adjust the bike’s incline based on the Zwift display, the experience is vastly improved. My next goal is to “close the loop” and automate incline control, allowing Zwift to directly adjust the bike’s resistance.

A key aspect of this project was to minimize alterations to the ProForm bike itself. I wanted a non-destructive modification. The interface only requires connecting to the magnet position potentiometer wiper, ground, and the magnetic pickup’s power supply. This does involve some disassembly and soldering, but it’s a small price to pay for bringing my ProForm bike into the Zwift universe.

Important Notes for fellow DIYers:

  • Windows 10 Compatibility (May 8, 2021 Note): The Arduino Nano may have pairing issues with Windows 10 for Zwift. A workaround is to use the Zwift Companion app on a smartphone (Android/Apple) to bridge the connection. Pair the Arduino to the Companion app, and run Zwift on your Windows 10 laptop, with sensor data relayed through the app.
  • Cadence and Power Calibration (December 18, 2021 Note): I’ve refined the Arduino code to better align the reported cadence with the bike’s display. The RPMPowerFudge variable allows fine-tuning the power output to match your ProForm bike‘s power readings more accurately. A value of 0.9 worked well for my setup.

By embracing a bit of DIY spirit, I transformed my underutilized ProForm bike into a fully functional Zwift trainer, proving that even older fitness equipment can find new life in the world of virtual cycling.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *