How to make a custom TrainerRoad interval adjustment button

Hey all,

Straight up born out of boredom, free time, and a why-not attitude, I present:
A custom TR interval adjustment keyboard.

So this actually started while watching Cam Jeffers racing on Zwift a couple weeks back. In Zwift, you can slam the spacebar for your powerup; anyway, at the end of the race, he was going for a sprint, slammed his keyboard, missed his spacebar, and really just threw his whole sprint off. That got me thinking that there should be a better way.

"You can just use your keyboard! You can just buy a USB keyboard! You can just use a phone companion app (in Zwift!) Yeah, but those are all clunky. I can’t reach my computer on the bike, TR doesn’t have a companion app, and a USB keyboard still doesn’t solve the panic button mashing thing.

Did some googling, and there’s apparently a game called OSU that involves pressing two buttons, so people make custom 3d printed KBs for them. The cool thing is, you can reprogram these keyboards to anything you want. For TR, you can make an Up and Down key and adjust your intervals quickly on the fly.

Here’s a video I made with full instructions and a bit more detail:

If video isn’t your thing, here’s how to do it: Here’s how:

Here’s what you need to know:

  1. This is the keyboard I bought. No affiliation or vouch, but it arrived fast and works well.
    You can also google search “OSU Keyboard” and you’ll find some other options, including instructions on how to make it yourself (save a few bucks, but have a fun project)
  2. Get a cheapo USB extender cable
  3. Here are the support docs for the keyboard I ordered:
  4. Mac users: You can technically program it from a Mac, but I couldn’t get it to work. Suggest the docs above or (better yet) do the programming on a Windows machine. Once you have it programmed, it’ll stick to the keyboard and work on any computer.
  5. Windows 8.1 or earlier: Download and install the drivers:
  6. Everyone: Download and unzip Termite. Open the program within the same folder as the included Config files:
  7. With the keyboard connected, press o to enter the key remapper. You should see a list of commands.
  8. At this point, you will enter the two keys you want. When you’re done, it will automaticlly exit the remapper and you’ll need to hit zero to return to it.
  9. For instance, if you want the keys to be spacebar and the letter C, type space, hit enter, type c, hit enter, and you’re done.
  11. Unplug, replug the keyboard and test it out.
  12. For more advanced keys, like the up or down arrow, you need to use the modifier options the remapper shows. Say you want the Up arrow. You’d connect the KB, hit zero, type in :24, then hit enter, then hit xx and enter to be done with that key, then move on to your second key. It won’t work right if you hit :24, enter, spacebar, enter. When using modifier keys with the colon and number, you have to hit XX to finish the key.

Now, if you wanna be done, you can just be done. Take some velcro and stick that baby to your handlebars and call it a day.

That said, I wanted to take it a step further, so I modified and 3d printed a Wahoo/Garmin mount adapter. Take this file to your local library, get it printed out, epoxy it to the bottom of your keyboard, and now you can attach it right to your computer mount!

Anyway, thought someone might like this. It’s far from ‘required,’ probably closer to a bodge than a hack, and it’s a bit silly, but it works and was kinda fun. Enjoy!


Bringing this back up, great idea and I’ve just finished an alternative (slightly less DIY) 3-button keyboard for use with resistance mode.

Using a pimoroni keybow 3-key keyboard with a raspberry Pi and a stick on Garmin mount for a mobile phone, I can now toggle between ERG/Resistance and move Resistance Up/Down. It’s turned out to be really useful for ERG workouts too, where you can save yourself from a cadence death spiral at the push of a button.


That’s awesome! A save-yourself-from-spiral button is a great idea.