Exercise Bike Hacked As Input For Xbox 360

If you like playing Grand Theft Auto, you’re pretty familiar with squeezing the triggers for accelerating and braking while driving around. [David Programa] decided this was too easy, and instead developed a system to allow him to pedal his way around the virtual world.

The device relies on a flywheel-based exercise bike, with six magnets placed on the flywheel that triggers a reed switch six times per rotation. The extra magnets give the system better resolution at slow speeds. A Hall Effect sensor would be a more reliable way to build this to survive in the long term, but the reed switch does work. It’s paired with a debounce circuit to keep the output clean. A Raspberry Pi is pressed into service, running a Python program to read a GPIO pin activated by the reed switch, counting pulses to determine the speed of pedalling.

The trigger control used in the Xbox 360 controller is a potentiometer that creates varying voltages depending on its position, allowing it to act as an analog accelerator input. 0 volts corresponds to no input, while the trigger reads 3.3 volts when fully depressed. The Raspberry Pi emulates this with its PWM output, paired with a low-pass filter to create the relevant voltage to inject into the trigger input on a generic Xbox 360 controller.

While it’s a lot less practical than simply using a regular controller, the pedal controls do allow you to get a great workout while playing Grand Theft Auto. Some of the more intense chase missions should be a great way to get your heart rate up, and that’s got to be a good thing.

Ironically, though, the system only works for cars and motorbikes in game. The bicycles in Grand Theft Auto are controlled by mashing the A button instead. Alternatively, you might consider a similar system for playing Mario Kart on the Nintendo Switch. Video after the break.

[Thanks to Zane Atkins for the tip!]

12 thoughts on “Exercise Bike Hacked As Input For Xbox 360

  1. I think it would be easier to just get a small DC motor with a rubber wheel and rest it against the flywheel. Add a capacitor and a potentiometer to smooth and adjust the voltage. No meed for a microcontroller or any coding.

    1. David Programa here. Certainly it would be an easier solution, but I’m a programmer (and a newbie in electronics) and that’s the way I could better adjust rates, voltages and so on. I agree that this solution is overkill… I made it some years ago, nowadays I would have used the cheapest Arduino I could find ;-)

  2. Since a Pi is the middle man here I’m sure it should be easy enough to make some interface that lets the user toggle the action of the Pi to mash said A button while riding the bike. I picture a simple web interface with a toggle button, and perhaps some slider controls to adjust the sensitivity of things to match the users ability to peddle. :-)

    1. David Programa here. Since I am using stereo female jacks and cable, I could relay the reed switch passes directly to the gamepad (thru the unused wire, the R channel), remove the A button and maybe simulate the switch using a transistor or something. I could have a physical switch for choosing the mode… an exercise for the future.

  3. It is quite easy to use a similar setup to replace gas/brake pedals connected to a PC racing wheel. I use two Hall sensors (two so the direction can be detected for braking) with eight magnets on the bike crank (wheel is not responsive enough due to inertia). A microcontroller converts the rotation speed to inputs for a digital potentiometer connected to the wheel. First I used Arduino, now it is ESP32, as it also works as Bluetooth bike sensor which can provide input for various training apps on my phone.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.