00 / Open source build
Build the JARY-Bot
Build Jary. Modify it. Make it yours. Everything you need to build the JARY-Bot educational humanoid from scratch: the full bill of materials, printing parameters for every part, the 15-DOF joint map, wiring, step-by-step assembly, firmware setup and calibration. Download the latest files, explore the source code, follow the documentation, or contribute to the project on GitHub.
01 / Overview
Overview
Degrees of freedom
15
Build time
20–30 h
Print time
90–130 h
Skill level
Intermediate
The JARY-Bot is an open source educational humanoid. The mechanical structure is 3D printed from files you can download, and the electronics, actuators and hardware come from the Bearbot component kit. Read this whole page before ordering filament — printing is the longest part of the project.
02 / Joint map (15 DOF)
Joint map (15 DOF)
| Group | DOF | Joints |
|---|---|---|
| Left leg | 6 | Hip Yaw · Hip Roll · Hip Pitch · Knee Pitch · Ankle Pitch · Ankle Roll |
| Right leg | 6 | Hip Yaw · Hip Roll · Hip Pitch · Knee Pitch · Ankle Pitch · Ankle Roll |
| Left arm | 3 | Shoulder Pitch · Shoulder Roll · Elbow Pitch |
| Right arm | 3 | Shoulder Pitch · Shoulder Roll · Elbow Pitch |
Assign servo bus IDs in this order so the firmware defaults match your build: left leg 1–6, right leg 7–12, left arm 13–15, right arm 16–18 (only 15 actuators are used; unused IDs are skipped in the default configuration).
03 / Bill of materials
Bill of materials
Actuation & control
| Item | Qty | Notes |
|---|---|---|
| FEETECH ST3215 serial bus servo | 15 | Daisy-chained on a single serial bus |
| Serial bus servo driver board | 1 | Bridges ESP32-S3 UART to the servo bus |
| Servo bus cables | 15+ | Include spares of each length |
| ESP32-S3 controller | 1 | Main compute, Wi-Fi and USB |
| OV5640 camera module | 1 | Head / vision |
| MPU6050 IMU | 1 | Balance and orientation |
Power & protection
| Item | Qty | Notes |
|---|---|---|
| LiPo 2S 7.4 V battery | 1 | Sized for servo peak current |
| 5 V buck converter | 1 | Logic rail for controller and camera |
| 2200 µF / 16 V capacitor | 1 | Absorbs servo current spikes |
| Power switch | 1 | Main cut-off |
| Fuse + holder | 1 | Inline on the battery positive lead |
| XT60 connector pair | 1 | Battery connection |
| Silicone power & ground wire | — | Battery-to-bus distribution |
Fasteners
| Item | Qty | Notes |
|---|---|---|
| M3 screws | 60–100 | Mixed lengths, socket head |
| M3 nuts | 30–50 | Plus a few nyloc |
| M3 washers | 40–60 | — |
| M3 heat-set inserts | 20–30 | Installed with a soldering iron |
| Nylon / PTFE washers | 8–16 | Low-friction joint faces |
| Removable threadlocker | 1 | Medium strength only |
| Rubber feet | optional | Extra grip on smooth floors |
Wiring supplies
| Item | Qty | Notes |
|---|---|---|
| Servo bus extensions | — | Route across hips and shoulders |
| JST / Dupont cables | — | IMU, camera and sensors |
| Heat-shrink tubing | — | All power joints |
| Cable sleeve | — | Tidy limb routing |
04 / 3D printing
3D printing
Nozzle
0.4 mm
Layer height
0.2 mm
Print temperature
PETG 235–245 °C · PLA+ 205–215 °C · TPU 225 °C
Bed temperature
PETG 80 °C · PLA+ 60 °C · TPU 45 °C
Filament needed
PETG or PLA+ 1.5–2.5 kg · TPU 100–200 g
Total print time
Approx. 90–130 h depending on printer
Orientation rule
Load paths across layers — never along a thin cross-section
| Part | Material | Walls | Infill | Supports | Notes |
|---|---|---|---|---|---|
| Pelvis | PETG or PLA+ | 4 | 40% | Yes | Highest load — do not reduce infill |
| Thighs (L/R) | PETG or PLA+ | 4 | 30% | Minimal | Print upright for layer strength |
| Knee cradles | PETG or PLA+ | 4 | 40% | Yes | Check servo horn fit before assembly |
| Shins (L/R) | PETG or PLA+ | 4 | 30% | Minimal | — |
| Ankles PART A / PART B | PETG or PLA+ | 4 | 40% | Yes | Two-piece joint, print both mirrored |
| Feet | PETG or PLA+ | 4 | 35% | No | Flat face on the bed |
| Torso | PETG or PLA+ | 3 | 25% | Yes | Largest part — check bed size |
| Upper arm / forearm | PETG or PLA+ | 3 | 25% | Minimal | Mirror for left and right |
| Shoulder mounts | PETG or PLA+ | 4 | 40% | Yes | — |
| Head & camera housing | PETG or PLA+ | 3 | 20% | Yes | Camera window printed without supports |
| Foot pads / grips | TPU 95A | 3 | 20% | No | Slow down to 25 mm/s |
05 / Tools you need
Tools you need
- 2.0 / 2.5 mm hex drivers
- Small Phillips screwdriver
- Soldering iron with a heat-set insert tip
- Flush cutters and needle-nose pliers
- Digital multimeter
- USB-C cable and a computer
- Calipers (for checking printed tolerances)
- Heat gun or lighter for heat-shrink
06 / Assembly, step by step
Assembly, step by step
- 01
Prepare the printed parts
Deburr every part, clear support material and test-fit each servo body before assembly. Install all M3 heat-set inserts with the soldering iron, keeping them perpendicular to the surface.
- 02
ID and centre every servo
Before mounting, connect each ST3215 to the driver board one at a time, assign its bus ID from the joint map and drive it to its centre position. A servo mounted off-centre cannot be corrected later without disassembly.
- 03
Build the legs
Assemble each leg from the hip outward: Hip Yaw, Hip Roll, Hip Pitch, Knee Pitch, Ankle Pitch, Ankle Roll. Fit nylon washers on rotating faces and use removable threadlocker on the horn screws only.
- 04
Assemble the pelvis and torso
Join both legs to the pelvis, then mount the torso. Route the leg servo bus cables up through the pelvis before closing the torso — leave slack for full hip travel.
- 05
Build the arms
Assemble Shoulder Pitch, Shoulder Roll and Elbow Pitch per side, mount the shoulder brackets to the torso and route each arm bus cable inside the shoulder.
- 06
Head, camera and IMU
Fit the OV5640 into the head housing and connect its ribbon to the ESP32-S3. Mount the MPU6050 rigidly near the centre of the torso with its axes aligned to the robot frame.
- 07
Install electronics and power
Mount the ESP32-S3, servo driver, buck converter and capacitor in the torso. Wire the battery through the XT60, fuse and switch before anything else.
- 08
Bench test before standing
With the robot supported off the floor, power up and sweep every joint through its range. Only stand the robot once every joint direction and limit is verified.
07 / Wiring & power
Wiring & power
- Battery → XT60 → fuse → main switch → power distribution.
- Servo bus power comes straight from the 7.4 V rail; place the 2200 µF capacitor at the distribution point.
- Buck converter drops 7.4 V to a clean 5 V rail for the ESP32-S3 and camera. Never power 15 servos through the controller board.
- All grounds must be common: battery, buck output, servo bus and controller.
- Servo driver connects to the ESP32-S3 over UART (TX/RX crossed, shared ground).
- MPU6050 uses I²C (SDA/SCL + 3.3 V + GND); keep the run short and away from power wires.
- Check polarity with a multimeter before the first connection — a reversed battery will destroy the controller.
08 / Firmware & calibration
Firmware & calibration
Flash the controller
Connect the ESP32-S3 over USB-C and flash the JARY-Bot firmware. The board exposes a Wi-Fi access point on first boot for configuration.
Verify the servo bus
Run the bus scan: all 15 IDs must answer. A missing ID is almost always a cable or a duplicate ID, not a dead servo.
Set zero positions
Place the robot in the reference pose (legs straight, arms down) and store the offsets. Every motion depends on these zeros.
Set joint limits
Store the minimum and maximum angle per joint so no printed part can be driven into itself.
Calibrate the IMU
Leave the robot still and level while the gyro and accelerometer bias is captured.
First motions
Start with the seated and standing balance demos before attempting walking gaits.
09 / Safety
Safety
- LiPo batteries can burn: charge in a fireproof bag, never leave charging unattended and never use a swollen pack.
- Fifteen servos can move fast and pinch — keep fingers clear of joints when powered.
- Always power down before connecting or disconnecting a servo on the bus.
- Work over a soft surface and hold or suspend the robot during the first standing tests.
- Adult supervision is required for soldering, heat-set inserts and battery handling.
10 / Files & license
Files & license
The JARY-Bot is open source: the printable STL files, firmware and build documentation are shared so you can print, build, modify and learn from the robot. Send us a message and we will point you to the current release of the files and the license terms.
