# DuckBuddy, an open-source walking robot duck

A small open-source robot duck built on Pollen Robotics' Microduck, with 15 Feetech HL-2915 servos, custom HAT and power boards, and an Orange Pi Zero 3W running offline voice, vision and behavior.

- Category: Hardware (build)
- Device: [Microduck](https://afterware.xyz/d/microduck)
- Made by: [Animan-AI](https://github.com/Animan-AI) on GitHub
- Original: https://github.com/Animan-AI/DuckBuddy
- On Afterware: https://afterware.xyz/p/duckbuddy-an-open-source-walking-robot-duck

## Can I build this?

- Difficulty: Expert
- AI-buildability: 2/5 (The project needs custom PCBs, 3D printing, servo bus wiring and a fitted battery system, so AI can help with the software but not most of the physical work.)
- Time: A few months
- Cost: $700–1,200
- Parts: Orange Pi Zero 3W, Feetech HL-2915 servo, IMX219 camera, 8x8 ToF sensor (VL53L5CX), TLV320AIC3104 audio codec, TPA2005D1 amplifier, IMU (LSM6DSV16X), 3S LiPo battery
- Tools: 3D printer, soldering iron, ST-Link programmer, Rust toolchain, Python 3

Estimates based on the original write-up.

## Build sheet

- Base: Pollen Microduck
- Controller: Orange Pi Zero 3W
- Servos: 15 × Feetech HL-2915
- Software: Rust + Python services

## Starter prompt

```
Based on "DuckBuddy, an open-source walking robot duck" on Afterware: https://afterware.xyz/p/duckbuddy-an-open-source-walking-robot-duck

Write a Python service for an Orange Pi Zero 3W that listens to a USB microphone, runs offline speech recognition (for example SenseVoice), and sends short JSON commands over a local Unix socket to a motion controller. Include a simple state machine with idle, listening and responding states, and a persona config file for name and voice lines. Keep the servo control code separate so it can be swapped for a different robot.
```

## Story

DuckBuddy starts from Pollen Robotics' open Microduck walking robot and replaces most of its core. The servos are Feetech HL-2915 units, so the locomotion policy was retrained for them. The head uses an Orange Pi Zero 3W instead of the original Radxa board, and the team designed their own HAT and power/IMU boards for audio, the servo bus and 3S battery power.

Software is split into services that run on the robot. A 50 Hz Rust control loop runs an ONNX policy and handles fall, temperature and battery protection. A Python "life layer" manages needs, mood and attention, and decides when the duck looks, speaks or rests. Voice is recognized offline, and a dual microphone is used to turn the head toward sounds.

The project is open with a README that lists hardware, software, verified platforms and a development timeline. The persona is kept in a JSON file, so the same code can run a different character.

## Resources

- [Repository](https://github.com/Animan-AI/DuckBuddy)
- [Demo video](https://github.com/user-attachments/assets/7dd5c290-7b48-4f87-a991-7aab6c25632f)
- [Microduck (original project)](https://github.com/pollen-robotics/microduck)

Tags: robot, servo, orange pi, voice, open hardware, quadruped, 3d printed, embodied ai

AI assistants can search all Afterware builds through the MCP server at https://afterware.xyz/mcp (setup: https://afterware.xyz/agents).
