GitHub Hot Board

GitHub Hot Board · Repository archive

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. (This description comes from the repository itself.)

Data at October 24LuwuDynamics

Best

#78

Dark Horses

1.2K

Total stars

146

Total forks

3

Days on boards (30d)

README

Warning

When testing and tuning servos, avoid stalling them as much as possible.

Join our Discord

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

Hardware correction — 2026-10-02: The old ArduinoUnoQ PCB reverses GND and SIGNAL on U3, U4 and U5. Owners of previously manufactured boards should disconnect power and follow the old-board wiring instructions. Pin 2 power is unchanged. Schematic and PCB sources are updated.

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, flat-end self-tapping screw 204 (200+4 for roller)
M2.3 × 8 flat-top round-head, flat-end self-tapping screw 6
M3 × 16 round-head machine screw 4
10 × 15 × 3 mm bearing 10 (2+8 for roller)
16 × 22 × 4 mm bearing 11

Quantities include the optional roller skates: 4 additional M2 × 6 screws and 8 additional 10 × 15 × 3 mm bearings. Confirm the pack, charger, connector polarity and power requirements using the component notes before sourcing or powering the build.

The expansion-board store page also offers a separate battery-and-charger option. Select Only Robot Driver Board for Arduino UNO Q for the board above; the bundle has not been verified against the battery and charger specifications in this list. See the purchasing notes.

For easier purchasing, Luwu Dynamics offers an official XGO-Duck electronics kit containing all components in the BOM except the Arduino UNO Q.

Identify the three fasteners before ordering. Items 7 and 8 are self-tapping screws with flat ends. Items 8 and 9 share the same rounded side profile; item 8 has a flat top, while item 9 has the gently domed top shown in the photo below and a machine thread. The following shape guide is illustrative. See the product photo and size references in the BOM.

Shape guide for the M2 by 6 countersunk flat-end self-tapping screw, M2.3 by 8 flat-top round-head flat-end self-tapping screw, and M3 by 16 domed round-head machine screw

Reference photo of the intended shallow, gently domed round screw head for item 9 only

Item 9 has the domed top shown here. Item 8 has the same rounded sides but a flat top. The photo is a head-style reference, not a size or thread specification.

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
4x_ Print four copies 4x_tire.STL, 4x_tire_axis.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.

For the optional roller skates, print 2x_tire_support.STL × 2, 4x_tire.STL × 4 and 4x_tire_axis.STL × 4.

Print orientation reference: slicing preview on the left, recommended placement in the center, and incorrect placement marked with a red cross on the right

Print orientation matters: place the part as shown before slicing — lay it flat with the open channel facing up and the two end tabs resting firmly on the build plate. Use 4 walls and 13% Gyroid infill. Do not stand it upright, lay it on its side, or flip it over, and do not rely on the slicer's auto-arrange. Otherwise the holes may deform and the ends may break. After slicing, check the preview against the reference image before printing.

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.

Current rankings

Momentum, past 30 days

Cumulative stars

Rank movement

Racing nearby on the same board

← Back to boards