the vo2 project

E-Racing Controller

UPDATE 28th April 2021

Since this article was first published, we recieved an unexpectedly large amount of positive feedback, and felt encouraged to create a premium version, using a superior media controller and completely new software to offer improved functionality and reliability. You can purchase the E-Controller from our store at

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




Download Link:

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.

Featured Posts
Recent Posts
Search By Tags
No tags yet.
Follow Us
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square