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 the e-racing controller software, please feel free to make a donation to World Bicycle Relief via this link:
The E-Racing Controller
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 power up. I was also having a lot of 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:
If 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 Operating System
- A wired or 2.4 ghz headset or Bluetooth headphones and a separate microphone
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
Source Code (written in Autohotkeys)
Discord Set Up
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 sofware each time will wake up the device and connect it to your pc. The contrller is more reliable if you are paired before launching Zwift.
The sofware 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.