PrintPupper
An open-source, 3D-printed quadruped robot with 12 joints, built from inexpensive commonly available parts.
- Quadruped
- Open source
- 3D printable
Suggested by Robotheca, created by @r9kawai (opens in a new tab), from github.com/r9kawai/PrintPupper (opens in a new tab). Pinned to commit e86f61b (opens in a new tab).
- Hardware license
- MIT (opens in a new tab)
- Software license
- MIT (opens in a new tab)
- Commercial use
- Allowed
This repository contains executable files that Robotheca doesn't check. Only run them if you trust the creator.
Which files (7 scripts)
Photo and 3D model

3D preview converted from github.com/r9kawai/PrintPupper at e86f61b, under MIT. View the original files from GitHub (7.7 MB) (opens in a new tab)
- Degrees of freedom
- 12
What it can do
Written by Robotheca from the project's documents.
- Quadruped walking robot with 12 joints (3 per leg) that can be built with a 3D printer and cheap parts
- Trot gait driven by a state machine with rest, trot, hands and calibration modes
- Can be controlled with a USB or Bluetooth PS4 (DualShock) joypad
- Calibration can be performed using only the joypad
- Auto-trot mode starts walking when speed exceeds a threshold
- Optional IMU for body roll and pitch sensing
- Walking for about 40 minutes when fitted with a large RC battery
Bill of materials
This repository has no parts list Robotheca can read yet.
Build guide
The guide appears here as you scroll.
Guide by @r9kawai (README.md), under MIT. The English translation is by Robotheca, shared under the same license.
More guides
Wiring and electronics
Notes written by Robotheca from the project's documents.
Main parts
- Raspberry Pi 3 or later, or Raspberry Pi Zero 2 W as the controller
- 12 servo motors driven through PWM channels
- PS4 DualShock joypad as the user input device
- Optional IMU sensor
- Custom PCB designed in KiCad
- Large-capacity RC battery as power source
Connections
- Twelve servo PWM outputs are driven from the Raspberry Pi GPIO pins via the pigpio daemon
- Servo PWM pins are defined in a PWM parameter table with 3 rows by 4 legs
- The KiCad schematic and PCB files describe the board that connects the parts