Welcome to the Infinity Bike repository. A simple and inexpensive indoors bike training video game with built-in sensors that allows the player to ride on a virtual track.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
Infinity Bike
new 1.txt


Infinity Bike

Welcome to the Infinity Bike repository. A simple and inexpensive indoors bike training video game with built-in sensors that allows the player to ride on a virtual track.

Visit our new website! www.infinitybike.net

Why use Infinity Bike?

Rainy days and the Winter season can really disrupt a training program. Riders always have the option to mount their bike on a trainer but the monotony of trainers will always make it a bit difficult to keep up the pace. This is why we decided to add a little bit on interactivity to our training program. The Infinity Bike set-up is designed to be a simple as possible while still allowing a rider to read the speed and steering from a bike mounted on any trainers and relay the information to the computer.

See the Youtube video:

Link to youtube video

Where are we in development

In its current form, the code should compile on a Windows or Mac. We have the communication between Arduino and Unity established and we even have a demo track that you can use to test your set-up. If you want to take full advantage of this work, you will need to have access to a 3D printer. (Tip : A lot of community libraries are starting to have them available to the public.) Alternatively, you could design and machine your own parts. If you do, let us know!


To participate to this project, start by cloning the repository to a drive on your computer. You should get all the assets for the Unity program in the Infinity Bike folder and the Arduino Code in the ArduiBike folder. Don't have a bike/trainer or access to a 3D printer? You can easily build a small arduino circuit that fits on your desk. Alternatively, the Arduino inputs can be emulated with the keyboard by setting a flag in the Unity inspector.

If you make a change you think is worth including in the main project, send us a pull request and we will review it!

Sadly, we don't have a ready out of the box version yet but it's on the to-do list. For now, you will need to clone the repository and build the current scene for your system.


Non 3D Printed parts list

1 x Arduino nano ($22.00)
1 x Mini Breadboard ($1.33/unit)
1 x 220 Ohm resistor ($1.00/kit)
1 x 10K Potentiometer ($1.80/unit)
1 x Hall sensor ($0.96)
20 cm x 6 mm 3D printer timing belt ($3.33)
1 kit x Various Lenght M3 screws and bolts ($6.82)
1 x Bicycle speedometer magnet ($0.98)

** Estimated prices

3D Printed parts list

All the 3D print .stl files are available on Thingiverse. The picture below list them all. We mounted the material above with 3D printed parts. The files we used are listed bellow and they're numbered with the same convention as the image above. You can use them as-is but make sure that the dimensions we used match your bike.

Parts filename
  1. FrameConnection_PotentiometerHolder_U_Holder.stl
  2. FrameConnection_Spacer.stl
  3. BreadboardFrameHolder.stl
  4. Pulley_PotentiometerSide.stl
  5. Pot_PulleyConnection.stl
  6. FrameConnection.stl
  7. Pulley_HandleBarSide_Print2.stl
  8. FrameToHallSensorConnector.stl
  9. PotHolder.stl
  10. HallSensorAttach.stl
Assembled parts pictures


How to use?

We published a short instructable tutorial that should provide enough information to get started with this project.

Building a more in-depth tutorial for potential contributors is on our To-do list.

** Because we used blender to generate the 3d models, you must have blender installed before opening the project. Otherwise some assets wont load properly.**


Project contributors

Alexandre Doucet (Doucet)
Maxime Boudreau (MxBoud)

External ressources

The Unity game engine

This project started after we read the tutorial by Allan Zucconi "how to integrate Arduino with Unity" ( https://www.alanzucconi.com/2015/10/07/how-to-integrate-arduino-with-unity/ )

The request from the Arduino are handled using the SerialCommand library ( https://github.com/kroimon/Arduino-SerialCommand )