YOU CAN 3D-PRINT YOUR OWN WALKING STAR WARS BD-X DROID - FULLY OPEN-SOURCE
A 42 cm tall Star Wars BD-X droid that walks using a reinforcement-learning policy trained in simulation and running on-device, no cloud.
RoboticsAI
Built withRaspberry Pi3D printing
- difficulty
- ●●●●●
- time
- several weekends
- license
- Apache-2.0
- repo
- repo ACTIVE4,187 stars
●●●●● · several weekends · Apache-2.0 · 4,187 stars · repo ACTIVE
WHAT YOU’LL NEED
Jump to section
COMPAREE VERDICT
This is a genuinely impressive robotics project — a miniature BD-X that walks with learned gaits and is fully printable and reproducible — but it sits at the top end of difficulty and cost for home builds. The README targets under 400 dollars; the official BOM totals about 398 euros (about 432 euros with the expression package), before shipping, and the 14 servos are half of that. The mechanical assembly is manageable if you have built articulated prints before, but getting stable walking is the real challenge. Pretrained policies are included; if your duck does not walk well with them, the path forward is the sim2real and MuJoCo Playground training workflow in Python. Google has also shown modified ducks running the Gemma language model on-device on stronger boards, which hints at where the platform can go. If reinforcement learning is new territory, expect a steep learning curve before it walks reliably. The one thing most likely to go wrong: the gap between simulation and the real robot.
IN THE REPO
GOOD TO KNOW
- —STL files and a print guide are in the repository; the BOM with vendor links is a Google Sheet, training code is in the Open_Duck_Playground repo, and the step-by-step build guide is on Tnkr (the in-repo assembly guide is incomplete).
- —The RL policy is trained in MuJoCo simulation and exported as ONNX to run on-device on the onboard Raspberry Pi Zero 2W.
- —The BOM targets under 400 dollars (the official spreadsheet totals about 398 EUR) — the 14 Feetech STS3215 7.4 V servos are the biggest line at roughly 196 EUR.
- —The main repository is Apache-2.0; the runtime and training repos have no license file, so ask the author before commercial reuse of that code.
- —Active development; last push January 2026. Runtime and training code live in the companion repos Open_Duck_Mini_Runtime and Open_Duck_Playground.
- —Pretrained walking policies are included; the README links a sim2real guide if you want to train your own.
Parts to buy
8 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
OpenDuck Mini Part 2 Installation Guide – RDK X5 (Step-by-Step Walkthrough)
Community walkthrough by Frank Fu (part 2 of a series) using an RDK X5 board instead of the reference Raspberry Pi Zero 2W. For the official build, use the Tnkr guide linked from the README; the Discord helps with questions.
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.Read the main README and the assembly guide (The README links to detailed assembly instructions and the BOM spreadsheet.)
- 2.Source the Feetech servos and Raspberry Pi Zero 2W(The 14 Feetech STS3215 servos are the single biggest cost (about 196 euros in the BOM) — buy the 7.4 V version, also sold as 19 kg.cm.)
- 3.Print the parts and assemble the body(Configure each servo first, then follow the assembly guide and the Tnkr guide; print tolerances matter for gait stability, so calibrate your printer first.)
- 4.Flash the Pi, install dependencies, and test servo communication(The runtime repo (Open_Duck_Mini_Runtime) covers setting up the Raspberry Pi Zero 2W and talking to the Feetech servos through the Waveshare bus servo adapter.)
- 5.Load the pretrained policy or train your own(Pretrained weights are provided; if you modify the hardware or want custom gaits, follow the MuJoCo training guide.)
KNOWN ISSUES
- The under-400-dollar target is the BOM sum of single parts (about 398 euros). Several parts only come in bulk packs, and shipping is extra, so plan for a higher real total.
- Sim-to-real transfer is sensitive: the pretrained policy may not walk stably if your prints shrink differently or servos are not calibrated to the same zero positions.
- The Feetech serial-bus servos need a bus servo adapter (the BOM uses the Waveshare Bus Servo Adapter A) — they cannot be driven like ordinary PWM hobby servos.
- The repositories assume you are comfortable with Python and the command line; the main repo describes itself as a working repo with many undocumented scripts, and there is no GUI or one-click installer.
- Reinforcement learning tuning is a research skill — if the gait does not transfer, debugging requires understanding PPO reward shaping and domain randomization, not just tweaking config files.
- The in-repo assembly guide is marked incomplete, so expect to cross-reference it with the Tnkr guide, the Onshape CAD and the Discord.
Can I use cheaper servos?
Not directly — the motor model, torque curves, and Feetech STS3215 bus protocol are baked into the design and the trained policy. Switching to analogue servos would require a full mechanical and software redesign.
Do I have to train the walking policy myself?
No, pretrained weights are included and work on the reference hardware. You only retrain if you modify the design or want different gaits.
Will it work without the Raspberry Pi 5?
Yes — the reference build walks on a Raspberry Pi Zero 2W. Only the on-device Gemma language model demo needs more compute, such as a Pi 5.
Is there a kit or can I buy a pre-assembled one?
The author does not sell one; the project is meant to be sourced, printed and assembled yourself. Some third-party shops sell kits and even pre-assembled ducks, but we have not checked their quality.
How long does the battery last?
The BOM specifies two 18650 cells in a 2S pack with a BMS (the author uses 3000 mAh, 30 A cells). Run time depends on gait speed and load, so buy the strongest cells you can.
Community builds
No community builds yet — be the first, we feature the best ones.
Discussion1
FROM THE COMPAREE TEAM
More than 4,000 stars and a walking policy trained in MuJoCo simulation — how tight were your print tolerances when the policy finally transferred to hardware?
Antoine Pirrone
Antoine Pirrone started Open Duck Mini as an open, miniature take on Disney's BDX droid, sponsored by Hugging Face and Pollen Robotics. The duck later appeared at Google I/O 2026, where Google showed modified ducks running the Gemma model on-device.
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 was last updated in January 2026, it has v1 and v2 branches, and pretrained walking policies are committed as ONNX files (BEST_WALK_ONNX.onnx, BEST_WALK_ONNX_2.onnx). The official BOM lists 14 Feetech STS3215 serial bus servos, a Raspberry Pi Zero 2W, a Waveshare bus servo adapter, a BNO055 IMU and two 18650 cells, with supplier links mostly to Amazon France (servos from Alibaba), and it totals about 398 euros before shipping. The mechanical CAD is a public Onshape document, so tweaking dimensions means copying it and editing there. The in-repo assembly guide is marked incomplete, but the README now points to a full build guide on Tnkr and to an active Discord where builders help each other. Correction (4 October 2026): we re-checked this page line by line against the project's repositories and documentation, and fixed errors in earlier versions.