How it Works

SmartSpin2k is an open source project that uses an ESP32 and stepper motor to let fitness apps like Zwift automatically control spin bikes that have a resistance knob. The SmartSpin2k also has shifter buttons that allow the user to simulate shifting gears on the stationary bike.

Your power meter or spin bike sends cycling power and cadence to Zwift (or any other cycling app). SmartSpin2k then connects to the APP as a controllable trainer via bluetooth. The APP is able to request SmartSpin2k to increase or decrease the amount of resistance on your bike and SS2K will then change the resistance accordingly. If you choose to pair your power source directly to SmartSpin2k, ERG mode is also available which lets an app directly control your watt output regardless of your cadence. In addition to adjusting the knob, SmartSpin2k also has shifter buttons to simulate virtual shifting.

Sim Mode

In Sim Mode, SmartSin2k simulates the road you are riding by increasing and decreasing resistance to match the incline of hills.  With automatic resistance, you will feel every hill and find yourself immersed in your riding experience. 

To further enhance the realism, a shifter is included to allow riders to increase or decrease resistance similar to shifting gears on a traditional bike.

Erg Mode

In Erg mode is a setting in training platforms like Zwift, TrainerRoad, and Wahoo SYSTM that helps cyclists stay at a target power output while adjusting resistance according to your cadence.  This video demonstrates SmartSpin2k adjusting resistance to match a target power output while the rider's cadence varies through the ride.

The big benefit to this mode is that you don't need to think about your workout.  Just start the workout and turn the pedals.  The SmartSpin2K will take care of resistance adjustment for you

Technical Description

You connect your bike and heart rate monitor (optional) to SmartSpin2k.  Connect your training app of choice to SmartSpin2K.

SmartSPin2K will relay your wattage, cadence, and heart rate data to your training app and behave like a normal smart trainer