What MicroDuck is, and what it is not
MicroDuck is a small biped from Pollen Robotics, sold as a finished robot you can drive and retrain. The product page calls it a 25 cm open-source biped and points pre-orders at $399 before taxes and shipping. The press kit is more precise about the organization and the license: it is Pollen’s second consumer robot after Reachy Mini, made by what the kit calls the Bordeaux-based robotics team at Hugging Face, and the open-source statement covers the software stack only. [1] [2] [3]
That last sentence changes what a builder can do with the public files. The software repository says it is the duck’s brain, and that someone who wants a robot should get one from the product page. A search of the public tree on 28 October 2026 found Rust daemons, design notes and sensor vendor code. It did not find STL or STEP parts, a bill of materials, or an assembly manual. This article will not invent those missing pages. [4] [5] [6]
Read the separate record for the other duck: What Open Duck Mini V2 publishes about its walking policy.
Software license and hardware license are different
Two Apache-2.0 LICENSE files were readable on 28 October 2026: one at the root of pollen-robotics/microduck and one at the root of pollen-robotics/microduck_rl. Those files license the software in those repositories. They do not, by themselves, license a mechanical design. [7] [8]
The training README adds a second sentence: hardware design files are under Creative Commons BY-SA-NC. No separate license file with that name was present at the repository root the same day. CC BY-SA-NC is also not an open-source hardware license in the usual sense, because the non-commercial clause restricts use. The press kit, which is the page Pollen asks journalists to copy, says the opposite kind of summary in plain language: do not describe the robot as open-source hardware, because the mechanical and electronic design files are not part of the open-source statement. [9] [2]
| Artefact | What is published | License status |
|---|---|---|
| Onboard software (microduck) | Public GitHub repository | Apache-2.0 LICENSE file |
| Training code (microduck_rl) | Public GitHub repository | Apache-2.0 LICENSE file |
| MJCF / design files inside the training repo | README claim only | README says CC BY-SA-NC; no separate license file confirmed at repo root |
| Mechanical and electronic manufacturing files | Press kit says they are not the open-source release | Do not call the robot open-source hardware |
| Documentation in the software repo | Markdown under docs/ | Ships with the Apache-2.0 software repository; not a hardware grant |
Verified specifications
The press kit says its specification sheet is not final for camera resolution and field of view, LiDAR range, radio versions, SDK languages, and any age recommendation. Those cells stay empty. Numbers below are copied from a named page, not estimated from photos. [2]
| Field | Published value | Status |
|---|---|---|
| Height | 25 cm (product page and press kit) | Printed. Press kit also says 25 cm tall. |
| Width | 14 cm (press kit only) | Not repeated on the product-page fact strip. |
| Mass | Product page: 800 g. Press kit: under 800 g. README: about 800 g. | Do not treat 800 g as a single weighed figure. |
| Degrees of freedom | Press kit: 15, across legs, head and neck. Product page: 15 motors. | See the joint section. The policy uses 14. |
| Joint ranges | Not published as a table | Unavailable. Actuator travel is discussed in the design doc as a safety clamp, not an anatomical range. |
| Actuators | Design doc: Dynamixel XL330, firmware v46 or newer for the bus timing it describes | Design document for the alpha bus, not a packed-in-the-box label. |
| Compute | Press kit: Rockchip RK3566, 1 GB RAM, 32 GB storage. Dev install: Radxa Zero 3, Armbian 26.2.1 Minimal. | The install page is for a dev board, not proof of the sealed consumer image. |
| Policy rate | 50 Hz on the product page, the README and the training repo | Agreed across those three. |
| Vision | Front camera; resolution and field of view not final | Unavailable as numbers. |
| Range sensor | Press kit: 8×8 time-of-flight matrix, called a compact LiDAR. Range not final. Repo vendors VL53L5CX and VL53L8CX code. | Do not pick one ST part number as the shipped sensor. |
| IMUs | Press kit: two, body and head. Control loop: trunk IMU at Dynamixel ID 200 inside the 50 Hz read. | The 61-number observation has one gyro. A head IMU stream exists in the cheat sheet and is not claimed here as part of that observation. |
| Audio and NFC | Press kit: microphones, speaker, per-robot voice, two NFC antennas | No microphone count or codec is printed. |
| Radios | Wi-Fi and Bluetooth. Radio versions not final. | The dev guide discusses an aic8800 workaround. That is a board note, not a consumer radio SKU. |
| Battery | Press kit: removable NP-F550, 2600 mAh, about one hour depending on use | Runtime is a manufacturer estimate, not a logged duty cycle. |
| In the box | Product page: robot, battery, USB-C cable, game controller | Charger, spare motors and rollers are packs, not the base box. |
| Price | $399 before taxes and shipping, introductory. Packs $39, $119 and $39. | 28 October 2026 product page. Not a self-build total. |
Fifteen servos, fourteen policy joints
The product page and the press kit both say 15. The control-loop design draws the same number on one Dynamixel bus: five left-leg servos at IDs 20–24, five neck, head and mouth servos at IDs 30–34, and five right-leg servos at IDs 10–14, plus the trunk IMU board at ID 200. The training README’s joint list is shorter on purpose. It names 14 servo joints: left leg (hip yaw, hip roll, hip pitch, knee, ankle), four neck and head joints, then the right leg. The mouth is the joint that list leaves out. [1] [2] [10] [9]
The design document makes the split explicit. Every alpha policy it checked is a vector of 61 observations to 14 actions. Joint positions in that vector exclude the mouth. The 14 actions are written back into 15 motor slots, and the mouth slot is left at zero. A backlash variant in the training repo also says ±1° of play on each of 14 servo joints. None of this is a fifteenth hidden actuator. It is one beak motor that the walking policy does not command. [10] [9]
Per-joint angle limits are not published. The design note says the safety layer clamps to the actuator’s travel, which catches a bad number, and that this clamp is not an anatomical limit for each joint. Do not copy a degree number from a video frame. [10]
Parts, packs and the cost that is actually listed
There is no public bill of materials for machining or printing a MicroDuck. The prices that exist are finished goods on the product page, checked 28 October 2026, in US dollars, before taxes and shipping. The page says the introductory robot price applies in the launch markets it names elsewhere as North America and Europe, with first deliveries targeted before Christmas 2026. Those are sales terms, not a landed-cost quote for Morocco or any other country. Tools, customs, a second battery charger and a computer for training are not in the $399. [1] [2]
| Item | Function | Qty | Model or contents | Price | Required? |
|---|---|---|---|---|---|
| MicroDuck robot | The biped, ready to drive | 1 | One of four shells: Cream, Graphite, Lavender, Sky | $399 | Required if you want the physical robot |
| Box contents | First power-up without extra packs | 1 set | Robot, battery, USB-C cable, game controller | Included | Included with the robot |
| Charger pack | Charge two batteries | 1 | Dual charger and 2 batteries | $39 | Optional |
| Dev pack | Spares and small tools | 1 | 3 spare motors, 5 motor cables, 2 batteries, dual charger, 10 NFC tags, Hugging Face credit, screwdriver, screw pack | $119 | Optional. Motor model name is not printed on this card. |
| Accessory pack | Play pieces | 1 | Laser pointer, NFC polaroid, 2 rollers, ball, 10 NFC tags | $39 | Optional. Rollers are for the skating policies, not for walking. |
| Printed parts, frame, custom PCB | A from-scratch build | Not published | Not published | No price | Unavailable. Do not substitute a guessed supplier. |
Repositories and files you can actually download
Download the software from the official repositories. Do not mirror it onto this site. Both repositories were reachable on 28 October 2026, as were the press-kit page and the product page. The press kit offers a zip of press assets. That zip is a media kit, not a CAD release, and it was not copied here. [4] [9] [2]
- Onboard runtime, daemons and operator docs: https://github.com/pollen-robotics/microduck (Apache-2.0).
- Training, MJCF exports and ONNX export: https://github.com/pollen-robotics/microduck_rl (software Apache-2.0; README adds CC BY-SA-NC for hardware design files).
- Phone app repository named by the design index: https://github.com/pollen-robotics/microduck-app (not re-licensed here).
- Browser simulator linked from the product page: https://huggingface.co/spaces/pollen-robotics/microduck-simulator.
- Docs index, cheat sheet, dev install and simulation notes live under the runtime repository’s docs/ folder.
The training models are MJCF, exported from Onshape with onshape-to-robot. That is a simulation body, not a manufacturing drawing. File formats a reader can expect in the training repo are XML models, Python, and ONNX after export. A CAD program is not required to read the runtime. Training expects uv and, for a local run, a CUDA GPU. The README says a train command can take --hf-jobs when there is no local GPU. This page did not execute that training. [9] [12]
Assembly: official steps versus what is not documented
A ten-step mechanical build cannot be written honestly from the current sources. There is no official sequence for printed parts, screw sizes, actuator installation, joint alignment, wiring or calibration of a home-built frame. The steps below separate the documented path from editorial caution. Anything not in the cited page was left out on purpose. [5] [2]
If you want a physical robot
- Order the finished robot. The product page is the parts list: robot, battery, USB-C cable and game controller.
- Do not open a design-doc voltage discussion and invent a bench supply. The press kit names a removable NP-F550 pack. Follow the manual that ships with the robot for charging and insertion. This site does not have that manual.
- Drive it with the included controller before writing code. The README’s demonstrated behaviours are walk, roller mode when wheels are fitted, a beak-to-floor pick, and getting back up, plus sit, kick and a voice.
- Treat rollers, the ball and spare motors as pack items. Walking does not require the accessory pack.
If you are provisioning a dev board
The install document is for a development board, and it says a customer robot refuses those builds. The documented preparation is: flash a Radxa Zero 3 with Armbian 26.2.1 Minimal using the Armbian imager, set Wi-Fi and a user in the imager, copy an SSH key, then run scripts/provision-board.sh from a clone. The page explains --pause-btd-on-pair as a workaround for an aic8800 radio that cannot bond a new gamepad while btd is advertising. It also says mDNS is unreliable and that duckctl ip can ask the board for an address over Bluetooth. A GitHub token is described for the period when the repository was private. On 28 October 2026 the repository was public, so that token step should be re-read against the current file before you export one. [13]
Software bring-up that is documented
- Operator commands live on the cheat sheet: robotctl for status, configuration, policies, voice, Wi-Fi and updates. Copy commands from that page, not from memory of this article.
- Updates are described as signed, health-gated and reversible. The README says a failed boot rolls back.
- Simulation without a robot is scripts/duck-sim: the daemons against a MuJoCo body.
- Training is a different repository. The quick start clones microduck_rl and runs uv. Local training asks for CUDA. Export uses scripts/export.py and bakes the observation normalizer into the ONNX graph. The README says not to hand-convert a checkpoint.
- A first locomotion experiment, if you do not have a robot, is the keyboard player in that repo: uv run scripts/infer_policy.py. That is simulation. It is not evidence the same file walks on hardware.
Safety
The control design describes a bus of hobby-class servos, a battery, a depth sensor and a policy that can stand, fall and get up. Even at 800 g, a servo can pinch a finger, a fall can throw a small robot off a desk, and a lithium camera battery is not a toy cell. The design document also discusses servo supply voltage relative to the XL330’s own rating on the alpha bus. That discussion is not repeated here as a procedure, because copying it into a wiring diagram would invent a power supply the press kit does not tell a customer to build. Unplug power before any work the manufacturer’s own guide does not describe. This publication has not performed that work. [10] [2]
What the software can do
The runtime is Rust, one workspace, no framework. robotd owns the motor bus and the 50 Hz loop. updaterd installs signed releases and rolls them back. configd owns Wi-Fi and identity. btd is the phone’s Bluetooth path. padd reads the gamepad. mediad streams the camera over WebRTC. tofd serves the depth matrix. Clients share one JSON-RPC contract. The architecture page, dated 22 July 2026, is marked as a draft of the intended first version, so a command on the cheat sheet outranks it when they disagree. [4] [15] [5]
| Behaviour | Where it is claimed | What this site has done |
|---|---|---|
| Walk, with a gamepad | README videos and product page | Not independently tested |
| Roller skating when skates are fitted | README and product page; training task IDs for rollers | Not independently tested |
| Beak-to-floor pick | README and GroundPick training task | Not independently tested |
| Get up after a fall | README and VelStand / StandUp tasks | Not independently tested |
| Sit and stand | Product page and SitStand task | Not independently tested |
| Kick a 70 mm, 15 g ball in simulation | Training README; actor is ball-blind | A simulation task, not a measured hardware kick |
| Forward roll, spins and slope glides | Training task table | Documented as training tasks. Not claimed as seven boxed moves. |
| Seven moves in the box | Product page and press kit | A product count. The training table lists more task IDs than seven. |
| Retrain and hot-swap ONNX policies | Training README and policy docs | Not run by TechniaHQRobot |
The observation contract is what makes a swap possible. The training README says every policy shares 61 actor observations: 48 proprioceptive values plus commands for twist, head pose and body pose. Unused command slots are zeroed rather than removed. The design document’s layout matches that size: 3+3+14+14+14+13. Deploy ONNX produced by the project’s export script so the normalizer stays inside the graph. [9] [10]
Actuator fidelity is called out as the sim-to-real gap at this mass. The training stack uses the BAM M6 model of an XL330, with domain randomization of voltage, sag, delay and friction, plus an optional backlash twin. That is a documented modeling choice. It is not a measurement this site recorded on a servo dyno. [9]
A reader with a GPU, or with access to Hugging Face Jobs, can try the published train and play commands. Possible experiments include a flat walking policy, a fall-recovery policy, and the keyboard sim player. Those are invitations to the upstream README, not results. Supported operating systems for the dev board are the Armbian image named in the install guide. The training machine is whatever runs uv and the CUDA stack the README requires. Exact dependency pins belong to pyproject.toml in that repository on the day you clone it. [9] [13] [11]
Cost, difficulty and the other small duck
The cost driver of a working MicroDuck is the finished robot at the introductory price, plus shipping, tax, and any pack you add. A from-scratch cost cannot be estimated, because the motors, board, camera, battery and shells are not sold as a documented parts list. Assembly difficulty for the product is the manufacturer’s, not the reader’s. Software difficulty is real: Rust on the robot, Python and MuJoCo for training, and a GPU or a hosted job if you want a new gait. The missing artefacts are the mechanical CAD, the electronics schematic, a full BOM, and a customer assembly procedure. [1] [2] [6]
Open Duck Mini v2 is the nearby alternative only if the goal is to fabricate a small walker from published design files. Its own page on this site keeps the README’s figures: about 42 cm with the legs extended, and a parts budget aimed under $400, with CAD and a spreadsheet the project actually links. It is a different height, a different author, and a different license situation. Reachy Mini is the earlier Pollen and Hugging Face desktop robot, a head and arm platform rather than this biped. Neither comparison says one walks better. No shared test protocol has been published. [2]
Reachy Mini’s head mechanism is a separate article: How Reachy Mini moves its head.
How this page was checked
Primary sources were the product page, the press kit, the two GitHub repositories, their license files, the architecture and control-loop design notes, the dev-board install, the cheat sheet, and the simulation note. The Hugging Face organization page and the simulator Space were opened. Access date for all of them is 28 October 2026. No specification was inferred from a photograph or a video still. Where two official sentences disagree, both are quoted in the section above instead of being averaged. [1] [2] [4] [9] [10]
Sources and verification
- Microduck product page ↗Pollen Robotics · Read 28 October 2026
States a 25 cm biped, 15 motors, 800 g, camera plus LiDAR and two IMUs, a 50 Hz onboard policy loop, seven trained moves, and an introductory price of $399 before taxes and shipping. Pre-orders are described as open, with the opening date 27 August 2026. Pack prices: charger $39, dev $119, accessory $39.
- Microduck press kit ↗Pollen Robotics · Read 28 October 2026
Calls MicroDuck Pollen Robotics’ second consumer robot after Reachy Mini, and describes Pollen as the Bordeaux-based robotics team at Hugging Face. Says the open-source statement covers software only and that mechanical and electronic design files are not open-source hardware. Lists 15 degrees of freedom, 25 cm tall, 14 cm wide, under 800 g, RK3566, 1 GB RAM, 32 GB storage, an NP-F550 2600 mAh battery, and an 8×8 time-of-flight matrix. Marks camera resolution, LiDAR range, radio versions, SDK languages and any age recommendation as not final.
- Pollen Robotics on Hugging Face ↗Hugging Face · Read 28 October 2026
Organization page was reachable. This article does not treat the page as a specification sheet.
- microduck repository README ↗Pollen Robotics · Read 28 October 2026
Describes the repository as the robot’s software: about 25 cm and 800 g, a Rockchip RK3566, a 50 Hz loop, fifteen servos, and policies exported from microduck_rl. Points readers who want a robot to the product page rather than to a fabrication guide.
- microduck documentation index ↗Pollen Robotics · Read 28 October 2026
Indexes operator cheat sheets, the dev-board install, simulation, and design notes. It does not list a mechanical assembly manual, a bill of materials, or CAD downloads.
- microduck repository file tree ↗Pollen Robotics · Read 28 October 2026
The public tree checked on this date included Rust daemons, docs, and ST VL53L5CX and VL53L8CX vendor code under tof/vendor. It did not include STL, STEP, or a bill-of-materials spreadsheet.
- microduck Apache-2.0 license ↗Pollen Robotics · Read 28 October 2026
The software repository LICENSE file is the Apache License 2.0. It is not a hardware license.
- microduck_rl Apache-2.0 license ↗Pollen Robotics · Read 28 October 2026
Root LICENSE is Apache-2.0. On 28 October 2026 the repository file list showed this LICENSE and no separate LICENSE-MODELS file at the root.
- microduck_rl README ↗Pollen Robotics · Read 28 October 2026
Training stack on mjlab and PPO at 50 Hz. Lists the 14-servo joint order, BAM model for the Dynamixel XL330, ONNX export, and a CUDA or Hugging Face Jobs path. Says hardware design files are CC BY-SA-NC. Apache-2.0 covers the project license file.
- robotd control-loop design ↗Pollen Robotics · Read 28 October 2026
Names Dynamixel XL330 servos, IDs 20–24, 30–34 and 10–14, the trunk IMU at ID 200, a 61-number observation, 14 policy joints, and a mouth slot written as zero. States that the alpha target is a Radxa board. This is a design document, not a consumer manual.
- Microduck simulator Space ↗Pollen Robotics on Hugging Face · Read 28 October 2026
Linked from the product page as the simulated twin. This article did not run a training job in the Space.
- The simulated duck ↗Pollen Robotics · Read 28 October 2026
scripts/duck-sim runs the real daemons against a MuJoCo body. It is a software twin, not a mechanical kit.
- Installing on a dev board ↗Pollen Robotics · Read 28 October 2026
Dev-board procedure for a Radxa Zero 3 with Armbian 26.2.1 Minimal, SSH, and scripts/provision-board.sh. Says a customer robot refuses dev-key builds. The GitHub-token step is written for a private repository; the repository was publicly readable on the access date.
- Microduck cheat sheet ↗Pollen Robotics · Read 28 October 2026
Operator commands for robotctl, policies, the gamepad, updates, the camera, the ToF sensor and a head IMU stream. Use the page itself for the current command names.
- Robot daemon architecture ↗Pollen Robotics · Read 28 October 2026
Draft dated 22 July 2026. Describes seven daemons, JSON-RPC over Unix sockets, a 50 Hz loop, and fifteen servos plus an IMU on one serial bus. The page says it describes the intended first shipped version.
Evidence limits
- Camera resolution, LiDAR range, radio versions, SDK languages and any age recommendation are marked not final in the press kit.
- No public mechanical BOM, screw schedule, wiring diagram or assembly torque was found, so none is invented here.
- TechniaHQRobot has not assembled, powered or locomotion-tested a MicroDuck. Demonstrated behaviours are the developer’s, not an independent trial.
- The CC BY-SA-NC sentence in the training README and the press kit’s “not open-source hardware” line are both reported. They are not the same claim.
Article history
First version. Specifications are limited to the press kit, product page and software repositories checked that day. No mechanical assembly procedure is added beyond what those pages publish.
Report a correction