OPENBOT — TURN A SMARTPHONE INTO A SELF-DRIVING ROBOT (3.5K STARS)
Your old phone already has better sensors and compute than most hobby robots — this project just gives it a body.
by Matthias Müller and Vladlen Koltun
RoboticsAI
Built withArduino3D printing
- difficulty
- ●●●○○
- time
- a weekend-plus
- license
- MIT
- repo
- repo ACTIVE3,516 stars
●●●○○ · a weekend-plus · MIT · 3,516 stars · repo ACTIVE
WHAT YOU’LL NEED
Jump to section
COMPAREE VERDICT
OpenBot is a complete platform: a 3D-printed robot body that mounts a smartphone, Arduino firmware for motor control, mobile apps for driving and autonomous modes, and a machine learning pipeline for training custom behaviours. The person-following demo works on-device; autonomous navigation requires you to collect training data by manually driving the robot, then train a neural network on a PC. The biggest time sink is not the print or assembly — it is getting the training loop working if you want custom autonomy, because you need a Python environment, TensorFlow, and patience to collect enough good data. If you just want manual or person-following control, the project is straightforward. The documentation is thorough, but autonomous driving is still a research demo — expect quirks and retraining. The DIY version means a fair amount of wiring around an L298N motor driver; if you have never wired a motor driver or debugged serial logs, start with the basic body and manual control first, or buy one of the ready-to-run versions.
IN THE REPO
GOOD TO KNOW
- —3D files for multiple body variants (standard, RC truck, Multi-Terrain Vehicle) are in the repository.
- —Arduino firmware for motor control and sensor interfacing is included.
- —Android apps (installable APK) and beta iOS apps (developer builds from Xcode only) are available, with person-following and autonomous navigation modes.
- —Python training pipeline for custom driving policies is documented, using TensorFlow.
- —Bill of materials lists Arduino Nano, L298N motor driver, TT motors, 18650 cells and optional sensors; ready-to-run versions (RTR-TT, RTR-520) are also sold.
- —MIT license — unrestricted use including commercial.
Parts to buy
9 itemsFrom our check of the build. Exact quantities and part numbers are in the creator’s BOM.
Can I build this?
Build at your own risk. Projects involve tools, electronics and sometimes mains voltage — follow the creator’s safety notes.
Videos
Official overview video from the OpenBot team: OpenBot: Turning Smartphones into Robots (2022).
More builds like this
All projectsGallery
Start here
Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.
- 1.Pick a body variant (Standard body for flat surfaces, RC truck body for bigger wheels, MTV body for rough terrain — STLs are in the /body folder)
- 2.Order electronics (The BOM is in body/diy/README.md, with EU, US and AliExpress links — choose the L298N (DIY) or custom PCB option before ordering)
- 3.Print and assemble (Assembly guide is in body/diy — wire the motors to the L298N, mount them, then add the electronics and sensors)
- 4.Flash Arduino firmware (Firmware is firmware/openbot/openbot.ino — use Arduino IDE, select the Nano board, set your body type in the sketch and pick the correct COM port)
- 5.Install mobile app (Install the Android APK from the README's QR code or GitHub releases (iOS: build in Xcode from /ios) — connect the phone to the Arduino with the USB OTG cable and test manual control first)
- 6.Optional: train a driving policy (Training pipeline in /policy — collect data by manually driving, then train with TensorFlow on a PC; expect several iterations)
Resources
Documentation, files and community threads for this build — we link straight to the original sources and never rehost the creator’s files.
KNOWN ISSUES
- The firmware expects the L298N PWM inputs on Arduino pins D5, D6, D9 and D10 and the motors on specific outputs; wire it exactly as in the DIY guide or edit the firmware to match your wiring.
- The phone is held by a printed two-part mount with a spring or rubber band; check that your phone (with case) fits before you close up the body.
- Person following uses a bundled detector model and works without training. The bundled autonomous-navigation model will probably not work in your environment; the docs tell you to collect your own data and train your own driving policy, so expect several iterations.
- Battery voltage matters — the reference build uses three 18650 cells in series; if you use a different pack, check that motors do not stall or overheat and that the firmware's battery reading still makes sense.
- Training the ML model needs a CUDA-capable GPU or a lot of patience on CPU — budget half a day for environment setup if you have never used TensorFlow.
- The repository is active and structure has changed — old forum posts may reference moved files; always check the current README for file paths.
Can I use an iPhone?
Yes — iOS build instructions are in the /ios folder; for now the iOS apps run only as developer builds from Xcode. The Android app is more polished and installs as an APK from the README's QR code or the GitHub releases.
Do I need to train a model to use it?
No — manual control and person-following work without any training. The ML training pipeline is only needed if you want custom autonomous behaviours.
What if I do not have a 3D printer?
The build guide suggests a basic Arduino robot car chassis kit plus a store-bought phone mount instead, or building your own chassis from wood or cardboard. You can also send the STL files to an online print service, or buy a ready-to-run OpenBot.
How fast does it go?
The project does not publish a top speed. It depends on the motors, gearing and battery voltage; the reference DIY build uses four TT gear motors on three 18650 cells.
Can I add more sensors?
Yes — the official build already supports optional wheel speed sensors, an ultrasonic distance sensor, indicator LEDs and an OLED display, and the phone adds camera, GPS and motion sensors. Anything beyond that means modifying the firmware and the app yourself.
Community builds
No community builds yet — be the first, we feature the best ones.
Discussion3
FROM THE COMPAREE TEAM
The project includes a full ML training pipeline — you drive the robot manually to collect data, then train a neural network to replicate your driving. If you built one, what environment would you train it in first?
Atharv More2mo ago
Haven't gone through the actual project build but seeing true potential in your diy section I hope the ignorant mindsets will soon grasp your efforts and quality🙏
CompareeTEAM2mo ago
@Atharv More Thanks Atharv, that means a lot. The DIY section is the part we care most about — every project gets checked for whether the files are actually there before it goes up, because half the fun is finding out a repo is missing the one part you need. If you ever do build the OpenBot, tell us which phone you used. The old-phone angle is the whole point of that one and we'd love a real data point.
Matthias Müller and Vladlen Koltun
OpenBot started as an Intel Labs research project by Matthias Müller and Vladlen Koltun (ICRA 2021) to make robotics and autonomous driving accessible using commodity hardware — smartphones already have the sensors and compute that cost thousands in traditional robots, so the project focused on giving them a body and a training pipeline. The repository is maintained with contributions from a global community.
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.
CompareeTEAM2mo agoedited
Practical notes from our verification: the repository has about 3.5k stars and is actively maintained under the MIT licence. The 3D files and DIY build guide, Arduino firmware, Android and iOS app source, the Playground for programming and the Python policy-training pipeline are all present, and the Android app can be installed as an APK from the releases. The person-following demo works on-device; autonomous navigation requires collecting training data and training a policy on a PC. The DIY bill of materials powers the robot from three 18650 cells, so plan for a matching charger. If you do not want to source parts yourself, the body README also points to ready-to-run OpenBot versions sold on Amazon. 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.