Assembly Guide¶
Step-by-step instructions to build your Mini-Arm.
Before You Start¶
Required Tools:
Phillips screwdriver (small)
Hex keys (2mm, 2.5mm)
Needle-nose pliers
Wire strippers
Soldering iron (optional, for upgrades)
Verify Parts:
Check all 3D printed parts and hardware against the Bill of Materials.
Step 1: Base Assembly¶
Insert 608 bearing into the base plate center hole
Attach base servo (J0) using M2 x 8mm screws
Press-fit the servo horn into the rotating base plate
Connect base plate to servo with the servo horn screw
Step 2: Shoulder Joint¶
Install shoulder servo (J1) into the shoulder mount
Secure with M2 x 8mm screws
Attach the shoulder bracket to the base plate
Install 608 bearing for support
Step 3: Upper Arm¶
Mount elbow servo (J2) in the upper arm housing
Secure with M2 x 8mm screws
Connect upper arm to shoulder servo horn
Ensure smooth rotation - adjust if binding
Step 4: Forearm¶
Install wrist servos (J3, J4) in forearm housing
Route servo wires through the forearm channel
Connect forearm to elbow servo horn
Test range of motion
Step 5: Wrist & Gripper¶
Mount wrist yaw servo (J5) in wrist housing
Attach gripper servo (J6) to gripper base
Install gripper fingers with M2 x 12mm screws
Connect wrist assembly to forearm
Step 6: Electronics¶
Mount Raspberry Pi Pico to electronics bracket
Mount PCA9685 servo driver next to Pico
Connect I2C wires: - Pico GP0 (SDA) → PCA9685 SDA - Pico GP1 (SCL) → PCA9685 SCL - Pico 3.3V → PCA9685 VCC - Pico GND → PCA9685 GND
Connect servo wires to PCA9685 channels 0-6
Connect 5V power supply to PCA9685 V+ terminal
Wiring Diagram¶
┌─────────────────┐
│ Raspberry Pi │
│ Pico 2 │
│ │
│ GP0 (SDA) ──────┼──────┐
│ GP1 (SCL) ──────┼────┐ │
│ 3.3V ───────────┼──┐ │ │
│ GND ────────────┼┐ │ │ │
└─────────────────┘│ │ │ │
│ │ │ │
┌──────────────────────────────────┼─┼─┼─┼──┐
│ PCA9685 Servo Driver │ │ │ │ │
│ │ │ │ │ │
│ GND ────────────────────────────┘ │ │ │ │
│ VCC ──────────────────────────────┘ │ │ │
│ SCL ────────────────────────────────┘ │ │
│ SDA ──────────────────────────────────┘ │
│ │
│ CH0 ─── J0 (Base) │
│ CH1 ─── J1 (Shoulder) │
│ CH2 ─── J2 (Elbow) │
│ CH3 ─── J3 (Wrist Roll) │
│ CH4 ─── J4 (Wrist Pitch) │
│ CH5 ─── J5 (Wrist Yaw) │
│ CH6 ─── Gripper │
│ │
│ V+ ──── 5V Power Supply (+) │
│ GND ─── 5V Power Supply (-) │
└───────────────────────────────────────────┘
Step 7: Cable Management¶
Bundle servo wires with cable ties
Route wires along the arm structure
Leave slack at each joint for full range of motion
Secure electronics mount to the base
Step 8: Firmware Installation¶
Connect Pico via USB while holding BOOTSEL button
Drag CircuitPython UF2 to the RPI-RP2 drive
Copy contents of
pico/folder to CIRCUITPY drive:
CIRCUITPY/
├── code.py
├── lib/
│ ├── adafruit_pca9685.mpy
│ ├── adafruit_motor/
│ └── mini_arm/
└── config.json
Step 9: Calibration¶
Run the calibration script:
python -m mini_arm.calibrate
This will:
Move each joint to find limits
Set servo center positions
Save calibration to the Pico
Step 10: Final Test¶
from mini_arm import MiniArm
arm = MiniArm()
arm.connect()
# Test each joint
for i in range(6):
print(f"Testing joint {i}")
arm.set_joint(i, 30)
time.sleep(0.5)
arm.set_joint(i, -30)
time.sleep(0.5)
arm.set_joint(i, 0)
# Test gripper
arm.gripper_open()
arm.gripper_close()
# Home position
arm.home()
print("Assembly complete! 🎉")
Troubleshooting¶
Servo not moving:
Check wiring connections
Verify power supply is connected
Check servo channel assignment
Jerky motion:
Reduce speed:
arm.set_speed(30)Check for mechanical binding
Lubricate bearings if needed
Overheating servos:
Don’t leave servos under continuous load
Check for over-tightened screws
Consider upgrading to higher-torque servos
Next Steps¶
Wiring Guide - Detailed wiring guide
Quickstart Guide - Start programming
Basic Control - Control tutorials