Introduction
The Waveshare RoArm family consists of two product lines — the M2 (4-DOF) and the M3 (5+1-DOF) — designed for flexible mounting on mobile platforms. Both combine lightweight carbon-fiber construction with enough torque for real workloads, and share the same ESP32 control board, JSON command protocol, and WiFi/serial/ESP-NOW interfaces.
RoArm-M2-S — Image: Waveshare
RoArm-M3 — Image: Waveshare
Model Comparison
Section titled “Model Comparison”M2 vs M3
Section titled “M2 vs M3”The M2 is a 4-DOF arm with a single-axis end-effector. The M3 extends this with a 2-DOF articulated wrist (pitch + rotation), bringing the total to 5+1 DOF and 7 servos. The extra wrist dexterity comes at the cost of payload — 0.2 kg vs 0.5 kg at 0.5m reach — because the additional servos add mass to the end of the kinematic chain. The M3 also adds LeRobot support for ML-based teleoperation and an upgraded sensor suite (INA219 voltage monitor, AK09918C compass, QMI8658 6-axis IMU, TF card slot).
| M2-S | M2-Pro | M3-S | M3-Pro | |
|---|---|---|---|---|
| DOF | 4 | 4 | 5+1 | 5+1 |
| Servos | 5× ST3215 (plastic) | 5× ST3235 (all-metal) | 7× ST3215/HS (plastic) | 7× ST3235 (all-metal) |
| Wrist | Single axis | Single axis | 2-DOF (pitch + rotation) | 2-DOF (pitch + rotation) |
| Torque | 30 kg.cm @ 12V | 30 kg.cm @ 12V | 30 kg.cm @ 12V | 30 kg.cm @ 12V |
| Weight | 826g ± 15g | 873g ± 15g | 973.5g ± 15g | 1020.8g ± 15g |
| Payload | 0.5kg @ 0.5m | 0.5kg @ 0.5m | 0.2kg @ 0.5m | 0.2kg @ 0.5m |
| Workspace | 1090mm × 798mm | 1090mm × 798mm | 1120mm × 798mm | 1120mm × 798mm |
| Precision | ≈ ±4mm | ≈ ±4mm | ≈ ±5mm | ≈ ±5mm |
| LeRobot | — | — | Yes | Yes |
| Backlash | May increase with wear | Stable over time | May increase with wear | Stable over time |
| Firmware | Identical | Identical | Identical | Identical |
| Price | ~$224 | ~$332 | ~$190–331 | ~$300–456 |
Standard vs Pro
Section titled “Standard vs Pro”Within each product line, the difference between “-S” and “-Pro” is purely mechanical — the Pro models use all-metal ST3235 servo housings for greater durability and tighter long-term backlash. The control board, firmware, and JSON command set are identical.
Everything in this documentation applies to all models unless noted otherwise. M3-specific features (wrist joints, LeRobot, additional sensors) are called out where relevant.
Joint Architecture
Section titled “Joint Architecture”M2 (4-DOF)
Section titled “M2 (4-DOF)”The M2 has four actuated joints, each driven by serial bus servos with 12-bit magnetic encoders:
| Joint | Range | Direction Convention | Notes |
|---|---|---|---|
| Base | 360° continuous | + = left | Omnidirectional rotation |
| Shoulder | ~180° | + = down | Dual-drive (two servos) for double torque |
| Elbow | ~180° | + = down | Single servo |
| End-Effector | ~180° | + = grab/down | Configurable as gripper or wrist |
M3 (5+1-DOF)
Section titled “M3 (5+1-DOF)”The M3 extends the M2 kinematic chain with a 2-DOF articulated wrist, adding pitch and rotation control before the gripper:
| Joint | Range | Direction Convention | Notes |
|---|---|---|---|
| Base | 360° continuous | + = left | Omnidirectional rotation |
| Shoulder | ~180° | + = down | Dual-drive (two servos) for double torque |
| Elbow | ~225° | + = down | Extended range vs M2 |
| Wrist Pitch | ~180° | + = down | M3 only — vertical wrist articulation |
| Wrist Rotation | ~360° | + = CW | M3 only — axial tool rotation |
| Gripper | ~180° | + = grab | End-effector |
The dual-drive shoulder design is shared across both lines — two servos mechanically coupled to the same joint output shaft, effectively doubling the available torque without adding a gearbox.
RoArm-M2 joints — Image: Waveshare
RoArm-M3 joints — the 2-DOF wrist adds pitch (servo 15) and rotation (servo 16) between the elbow and gripper. Image: Waveshare
Workspace
Section titled “Workspace”The 360° base rotation combined with the shoulder and elbow joints creates a roughly spherical workspace with a diameter of about 1 meter. The exact reachable envelope depends on the EoAT (End of Arm Tooling) configuration.
RoArm-M2 workspace — Image: Waveshare
RoArm-M3 workspace — the additional wrist link extends the reach envelope slightly. Image: Waveshare
Materials and Construction
Section titled “Materials and Construction”- Arm links: Carbon fiber tubes with 5052 aluminum alloy brackets
- Base plate: Machined aluminum with mounting holes
- Servo housings: Aluminum heat-sink brackets (“-S” models: plastic shell; “-Pro” models: all-metal)
- Total weight: 826g (M2-S) / 873g (M2-Pro) / 973.5g (M3-S) / 1020.8g (M3-Pro), arm body only
Safety
Section titled “Safety”- Emergency stop: Send
{"T":0}to immediately halt all motion - Reset: Send
{"T":999}to clear the emergency flag after resolving the issue - Torque lock: Use
{"T":210,"cmd":0}to release all servo torque (arm will go limp)
What’s in the Box
Section titled “What’s in the Box”Both models include:
- RoArm-M2 arm assembly (pre-built)
- General Driver for Robots board (ESP32-based, with 9-DOF IMU and 0.91” OLED)
- 12V / 5A power adapter
- USB-C cable (for programming/serial)
- Table-edge fixing clamp (supports edges up to 72mm)
- Camera mount
- Expansion plate and mounting hardware
- Gripper end-effector (pre-installed)
Servo IDs
Section titled “Servo IDs”M2 (5 servos)
Section titled “M2 (5 servos)”| Servo ID | Joint |
|---|---|
| 11 | Base |
| 12 | Shoulder (driving) |
| 13 | Shoulder (driven) |
| 14 | Elbow |
| 15 | Gripper / End-effector |
M3 (7 servos)
Section titled “M3 (7 servos)”| Servo ID | Joint |
|---|---|
| 11 | Base |
| 12 | Shoulder (driving) |
| 13 | Shoulder (driven) |
| 14 | Elbow |
| 15 | Wrist pitch |
| 16 | Wrist rotation |
| 17 | Gripper |
Hardware details from the Waveshare Wiki and RoArm-M3 Wiki. Images: Waveshare.