YOU CAN 3D PRINT A BICYCLE THAT RIDES ITSELF WITH NO RIDER

A 3D-printed bicycle that rides itself upright with no rider, balanced by a spinning reaction wheel inside the frame.

by Dmitrii Tomin

FULL CAD BOM FIRMWARE DOCS

RoboticsWorkshop

Built withArduino3D printing

difficulty
●●●●○
time
a weekend-plus
license
CC-BY-SA (Printables files); no licence on GitHub
repo
repo ACTIVE5 stars
1
Jump to section

COMPAREE VERDICT

This is a reaction-wheel inverted pendulum on two wheels: an MPU-6050 measures tilt, and a Nidec brushless motor spins a printed flywheel to generate corrective torque. A second Nidec motor drives the rear wheel through a GT2 belt and an MG995 servo steers, so you drive it around with a standard RC receiver while it balances itself. The physics is elegant, the prints are straightforward, and the BOM is specific enough to order without guessing. What will take time is PID tuning — the default constants in the code are for the creator's exact motor and wheel inertia, and yours will be different. Expect to spend an evening tweaking gains while the bike tips over. The repository includes an assembly guide PDF and the Fusion 360 model, but no tuning walkthrough. If you have built a balancing robot before, this is a satisfying step up. If you have not, budget time for the learning curve and a few crashed prints while you dial it in. The single thing most likely to go wrong: ordering a motor with different specs, then spending hours fighting instability because the control loop is tuned for hardware you do not have.

GOOD TO KNOW

  • —STL files for all printed parts and the frame geometry are present.
  • —Full bill of materials: Arduino Pro Mini, MPU-6050, a 24 V-to-5 V buck converter, two Nidec 24H brushless motors, a 6S LiPo, an MG995 servo, a PWM receiver and all fasteners, bearings and the belt.
  • —Arduino firmware with PID tuning constants and pin assignments.
  • —An assembly guide PDF is included; PID tuning is left to you — the README says to adjust the gains for your build.
  • —The printable files are CC BY-SA on Printables; the GitHub repository has no licence file.
  • —The creator's own short demo video is linked from the README.

Parts to buy

11 items

From our check of the build. Exact quantities and part numbers are in the creator’s BOM.

  • Two Nidec 24H brushless motorsFind
  • Arduino Pro MiniFind
  • MPU-6050Find
  • 24 V-to-5 V buck converterFind
  • 6S LiPo (max 1300 mAh)Find
  • MG995 servoFind
  • RC transmitter and receiverFind
  • GT2 beltFind
  • 608 bearingsFind
  • Aluminium rodFind
  • M3/M4 fastenersFind

BUILDS OF THE WEEK

Five open-source builds worth your weekend, every week.

Checked like this one: what’s really in the repo, what it costs, how hard it is. One email, unsubscribe anytime.

Can I build this?

PrintFrame, front and rear forks, reaction wheel and mount, wheel rims, TPU tyres and belt pulleys — everything structural is printed.
BuyTwo Nidec 24H brushless motors, Arduino Pro Mini, MPU-6050, 24 V-to-5 V buck converter, 6S LiPo (max 1300 mAh), MG995 servo, RC transmitter and receiver, GT2 belt, 608 bearings, aluminium rod, M3/M4 fasteners. Wheels and tyres are printed (TPU tyres).
Tools3D printer, soldering iron, basic hand tools, a bench power supply or battery with JST connectors, Arduino IDE.
SkillsIntermediate — you need to read Arduino code to understand the PID loop, and you need to be comfortable iteratively tuning control gains while the hardware moves unpredictably.
TimeA weekend to print and assemble, then an evening or two tuning the controller until it balances reliably.
CostMid-range — two Nidec 24H brushless motors, a 6S LiPo, an MG995 servo, an RC receiver, an Arduino Pro Mini, an IMU, a buck converter and printed parts; the creator gives no prices.
SafetyA 6S LiPo needs standard precautions (charge in a fireproof bag, do not short the leads, store at storage voltage). The printed reaction wheel spins fast and is not guarded, so keep fingers clear and print it solidly. No mains voltage.

Build at your own risk. Projects involve tools, electronics and sometimes mains voltage — follow the creator’s safety notes.

More builds like this

All projects

Gallery

Start here

Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.

  1. 1.Read the BOM and order the exact motor and gyro listed, or accept that you will retune the PID. (Motor specs matter — a different KV or rotor inertia changes the control response.)
  2. 2.Print the frame and all mounting parts, then dry-fit to understand the assembly sequence.(Follow the assembly guide PDF in the repository and dry-fit before tightening anything.)
  3. 3.Flash the Arduino, mount the MPU-6050 so that the bike's sideways tilt is the roll axis the code reads, and power on with the bike held still and upright while it calibrates.(The coordinate frame is implicit in the code — gyro orientation must match or you will get positive feedback.)
  4. 4.Tune the PID gains in small steps, testing on a soft surface until the bike holds itself upright.(Start with proportional gain, then add derivative, then integral. Log the gyro output if it oscillates.)

KNOWN ISSUES

  • Buying a motor with different specifications (KV, inertia, pole count) — the PID constants in the code are tuned for the listed motor, and a mismatch will cause instability or sluggish response.
  • Mounting the gyro in the wrong orientation or with the wrong coordinate frame — the firmware assumes a specific axis is vertical, and reversing it creates positive feedback that immediately crashes the bike.
  • Skipping the dry-fit and gluing parts before understanding the assembly order — some mounts are only accessible before the frame closes.
  • Starting PID tuning with all three gains at once — the bike will oscillate violently. Tune P first, then D, then I.
  • Using a weak or unbalanced LiPo — the reaction wheel draws high current during corrections, and voltage sag will starve the motor mid-correction.
  • Expecting it to balance on the first power-on — even with the default gains, you will need to adjust for your exact hardware weight distribution.

Can I use a different motor?

Yes, but you will need to retune the PID gains. A motor with higher KV will spin the reaction wheel faster for the same input, which changes the derivative response. A heavier rotor gives more torque but slower reaction time. Budget an extra evening for tuning if you substitute.

How fast does the reaction wheel spin?

The firmware does not specify a fixed speed — it drives the reaction-wheel motor based on the tilt error, so how fast it spins depends on the motor, the battery and how hard it is correcting. The creator gives no RPM figure.

Does it steer itself or just balance?

Both, in a way. It balances itself with the reaction wheel, while you drive and steer it by remote: a second motor drives the rear wheel and an MG995 servo turns the front fork, both controlled through a standard RC receiver.

What happens if the battery dies while it is balancing?

It tips over. The reaction wheel cannot hold position without power, and there is no graceful shutdown — it is an unstable equilibrium by design.

Community builds

No community builds yet — be the first, we feature the best ones.

Discussion1

FROM THE COMPAREE TEAM

A reaction wheel, an MPU-6050 and two Nidec 24H motors keep this printed bike upright — but the README says the PID values need tuning for your build. How long would you budget for getting it to balance?

CompareeTEAM2mo agoedited

Practical notes from our verification: the repository is small but covers the essentials — build photos in the README, a component list with exact parts (Arduino Pro Mini, MPU-6050 IMU, two Nidec 24H brushless motors, an MG995 steering servo, a 6S LiPo up to 1300 mAh and a standard PWM receiver), an assembly guide PDF, the Fusion 360 file, the STLs as a zip, and a single Arduino sketch. The creator also posted a YouTube short of the bike balancing. The GitHub repo has no licence file; the print files on Printables are shared under CC BY-SA. The README is honest that the PID parameters need adjusting to your bike's balance dynamics and that this may take experimentation, so the single biggest time sink is tuning the reaction-wheel loop, especially if you change motors or wheel mass. Keep the bike still for the first seconds after power-on while the IMU calibrates. Correction (4 October 2026): we re-checked this page line by line against the project's own repository, documentation and videos, and fixed errors in earlier versions.

Dmitrii Tomin

Dmitrii Tomin built this as an experiment in reaction-wheel stabilisation and published the Fusion 360 model, printable parts, Arduino code and an assembly guide, with a short demo video on YouTube.

GitHub

Star the project on GitHub

DISCLAIMER

  • Comparee is not the author of the projects featured here. All rights to each project belong to its creator — every page links to the original source, and we never host creators’ files.
  • Information is provided without warranty and may become outdated as projects evolve. Prices are indicative bands only — always check the creator’s parts list for current costs.
  • Building and operating any project is at your own responsibility. Protective equipment, safe workshop practice and compliance with local regulations are the builder’s responsibility.