Having taken part in Zwift races regularly during lockdown, I found myself frustrated by the need to take my hands off the shifters every time I wanted to activate a powerup. I was also having issues with sweaty hands not being particularly effective at interacting with phone touchscreens, so started looking for a solution. After a few failed attempts with various Bluetooth devices, I came across this article.
It seemed a good starting point, and after a couple of helpful emails began working on my own code and way of attaching it to the bars to put the controller within easy reach. Having found myself with a controller that had five buttons, rather than the initially planned one, I started thinking what else could be done.
I had been riding the WTRL Team Time Trial Series for several months at this point, and the Bluetooth controller offered a number of applications to improve our team’s performance by changing camera angles to help me and my team stay in the wheels, as well as communicate more effectively via elbow flicks and Discord‘s Push to Talk voice chat function. The videos below show you how to make and set up the controller.
- You are running Zwift and Discord on a Windows PC with Bluetooth capabilities
- Any sort of headset and microphone connected to the PC
- A Bluetooth media button (widely available, here’s one on Amazon that includes a handlebar clip)
- AutoHotkey installed on your system (if you don’t want to use the self-contained .exe file below)
Volume Up: Activate Power up
Play / Pause: Elbow Flick
Next: Toggle 1st and 3rd person view
Previous: Toggle front and rear view
Volume Down: Discord Push to talk – press once activates for 2.5s, press twice activates until it is pressed again
Operating Instructions and Troubleshooting
Once you have paired the button (you should only need to do this once), pressing the play pause button before loading the software each time will wake up the device and connect it to your PC. The controller is more reliable if you are paired before launching Zwift.
The software is set to automatically load Zwift and will automatically close itself when you quit Zwift.
The button works by mimicking pressing buttons on the keyboard. You can test if it is working properly by opening a word processor and pressing the controller button. It should start typing numbers and spaces (depending on which button you have pressed).
If it is not working, first check it is connected to your PC and that Zwift is the active window.
Occasionally, restarting your PC and removing and repairing your controller may be required if problems persist.
About This Project
Like many cyclists, I’ve found a lot more of my training and racing has been indoors this year. I’ve really enjoyed Zwift and have benefited a lot from the collaborative work of members of the indoor training community. It felt only fair to make a contribution myself, and maybe at the same time raise some money for charity.
If you have enjoyed using this e-racing controller software, please feel free to make a donation to World Bicycle Relief.
Editor’s note: this post originally ran on the VO2 project’s website. It is republished here with by permission.