How To Set Up an E-Racing Controller for Zwift

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.

The controller in action (below my right thumb)

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.

Requirements

  • 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)

Controller Functions

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

Hardware Instructions

Software Instructions

Download the AutoHotKey script or grab the source code (written for Autohotkey)

Discord Setup

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.

Andy Nichols
Andy Nichols
Andy is a lecturer in nutrition and also works as a sports nutritionist at TheVO2Project Ltd. In his spare time he races on the road and in hill climbs. Andy took up e-racing in 2020 after the outdoor season was put on hold.

64 COMMENTS

Subscribe
Notify of
guest

64 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments

Get Started on Zwift

Newest Featured Posts

Support This Site

Write a post, shop through us, donate or advertise. Learn more

NEWSLETTER SIGNUP

Zwift tips and news every 2 weeks! Click to subscribe.

More Posts

64
0
Would love your thoughts, please comment.x
()
x