← Back
LuwuDynamics

LuwuDynamics/xgoduck_hardware

Build your own robot duck. XGO-Duck is a 3D-printable biped powered by Arduino UNO Q and 15 servos, adapted from Pollen Robotics' Microduck. Includes mechanical models, PCB designs, a BOM, and an assembly guide. Build it, explore its motion, and make it your own.

View on GitHub ↗https://www.xgorobot.com ↗
3d-printingarduinobipedal-robotsdiylegged-robotsmicroduckrobotics
Stars
438
Forks
63
Watchers
438
Open issues
4
Contributors
2
Language
—
License
—
Default branch
master
Created Sep 24, 2026Updated Oct 1, 2026

Star growth

Today—
This week—
This month—

Star history will appear here once this repo has been tracked for a couple of days.

README

XGO-Duck

English · 简体中文

Build a robot duck. Explore how it moves. Make it your own.

A 3D-printable biped robot built around Arduino UNO Q and 15 serial servos.

Assembly guide · Bill of materials · Runtime · Training

A duck-shaped biped robot performing a somersault in a looping animation

A clean somersault · CyberBionic Maker

Meet XGO-Duck

XGO-Duck is a duck-shaped biped robot adapted by Luwu Dynamics from Pollen Robotics' Microduck. It combines a printable structure, fifteen Feetech 1910 servos, an Arduino UNO Q, and a custom expansion board with an IMU and servo interfaces.

This repository is the hardware starting point: print the parts, prepare the electronics, and assemble the robot. Companion repositories provide the onboard runtime and reinforcement-learning tools, connecting a physical build with motion experiments.

Build Run Experiment
Print the body, legs, neck, head and soft parts. Assemble with the illustrated guide. Configure and calibrate the robot through the companion runtime's browser interface. Study the simulation, train policies and explore your own motions.
Hardware files Onboard runtime RL tools

A closer look

XGO-Duck standing on a workbench, with a white printed body, yellow beak and feet, and exposed leg joints

XGO-Duck prototype — printed parts, articulated legs, and a movable head and beak.

Front view of XGO-Duck with its beak open
A movable head and beak
Four neck/head joints and a separate mouth servo.
Rear prototype view showing the blue expansion board and servo wiring
Electronics you can inspect
Rear-mounted controller stack and accessible wiring.

The photos show project prototypes. Follow the assembly guide and matching board files for your build revision.

Hardware at a glance

Subsystem What it uses Role
Controller Arduino UNO Q Linux host for policy inference and web UI; STM32 MCU for servo and sensor communication
Actuation 15 Feetech 1910 serial servos 10 leg joints, 4 neck/head joints, and 1 mouth joint
Expansion board Luwu UNO Q expansion board Power distribution, servo connections and IMU integration
Motion sensing QMI8658A 6-axis IMU Acceleration and angular-velocity feedback
Structure STL parts Body, leg, neck and head components
Soft parts TPU-designated STL files Foot soles and mouth parts

The motion policy outputs targets for 14 joints; the mouth servo is controlled separately. Component details and purchasing checks are collected in the BOM notes.

How the system connects

flowchart TD
    UI[Browser: setup, calibration and control] <--> HOST[UNO Q Linux: ONNX policy and web UI]
    RL[Training computer: simulation and RL] -->|Export ONNX policy| HOST
    HOST <-->|Arduino Bridge| MCU[UNO Q STM32: servo and IMU loop]
    MCU <-->|Serial bus| SERVOS[15 Feetech 1910 servos]
    IMU[QMI8658A IMU] -->|Sensor feedback| MCU
    BOARD[Custom expansion board] --- SERVOS
    BOARD --- IMU
Loading

This is a functional overview; use the board design and assembly documentation for electrical connections.

Start your build

1. Prepare parts and electronics

Open the bill of materials for the robot purchasing list, supplier links and battery requirements, and PCBA/ for the expansion-board files. The robot BOM and PCB manufacturing BOM serve different purposes: a finished expansion board already includes its board-level components.

Part Quantity
Arduino UNO Q (2 GB / 4 GB) 1
Robot expansion board — Luwu Dynamics Store 1
Feetech 1910 servo 15
AMP 3-pin servo cable 15
Battery pack, listed as “18650 battery 8.4V” 1
8.4 V Li-ion battery charger with 5.5 × 2.1 mm DC barrel plug (DC5521) 1
M2 × 6 countersunk screw 200
M2.5 × 6 screw 6
M3 × 16 screw 4
10 × 15 × 3 mm bearing 2
16 × 22 × 4 mm bearing 11

Quantities reproduce the purchasing list, including screw quantities. Confirm the pack, charger, connector polarity and power requirements using the component notes before sourcing or powering the build.

2. Print the structure

Download the models from structure/. The filenames carry useful assembly information:

Filename pattern Meaning Example
2x_ Print two copies 2x_shank.stl
left_ / right_ Separate left and right parts left_foot.stl, right_foot.stl
tpu Flexible part 2x_foot_bottom_tpu.stl, mouth_up_tpu.stl

Use the print inventory to track parts. Test a servo mount and bearing fit before printing the full set; a complete validated print profile is still to be documented.

3. Configure servos and assemble

Prepare each servo's ID and center position using the runtime setup instructions, then follow Assembly_Guide.pdf.

Assembly reference Focus
Page 1 Servo ID placement
Pages 2–5 Shaft preparation, initial structure and cable routing
Pages 6–15 Legs, feet and soles
Pages 16–23 Head and neck mechanisms
Pages 24–25 Final assembly

The build guide adds preparation and inspection checkpoints. Configure one servo at a time, label its ID, and leave cable clearance through each joint's movement.

4. Calibrate and bring it to life

Install the onboard runtime, verify servo and IMU feedback, and complete calibration with the robot supported. Start with the default pose before motion trials.

The runtime includes walk, get-up and pick policies, plus separate mouth control. Their behavior depends on the assembled hardware, calibration and test conditions. Using the bundled policies does not require training a new model.

Hardware files

Path Contents
Assembly_Guide.pdf 25-page illustrated assembly reference
BOM.md Whole-robot purchasing list, supplier links and battery reference image
structure/ Printable STL models
PCBA/ArduinoUnoQ.SchDoc Altium schematic source
PCBA/ArduinoUnoQ.PcbDoc Altium PCB source
PCBA/ArduinoUnoQ.pdf Board layout and dimension drawing
PCBA/ArduinoUnoQ.DWG · STEP model Board outline and mechanical integration model
PCBA/BOM.xlsx · Pick-and-place data Expansion-board assembly materials and placement coordinates
docs/ Build, printing, BOM and troubleshooting notes

From hardware to your own behavior

Repository Purpose
xgoduck_hardware Mechanical parts, electronics, BOM and assembly
xgoduck_runtime_arduino UNO Q firmware, policy execution, browser setup and control
xgoduck_rl Simulation, reinforcement-learning training and policy export

Keep the hardware, runtime and policy revisions together in your build record. This makes it easier to reproduce a working configuration and diagnose changes.

Origins and contributions

XGO-Duck builds on Microduck and microduck_rl by Pollen Robotics. The duck form, 15-servo arrangement and policy joint order originate in that work. Luwu Dynamics' adaptation focuses on Arduino UNO Q, Feetech 1910 servos, the custom expansion board, and the matching software/model integration. See origins and adaptations.

Build reports, tested print settings, clearer assembly photos and reproducible fixes are welcome. Read CONTRIBUTING.md or open an issue.

For reuse terms, consult LICENSING.md and the applicable file-level notices. Contact: hello@xgorobot.com.