Skip to content

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 robotic arm RoArm-M2-S — Image: Waveshare

RoArm-M3 robotic arm RoArm-M3 — Image: Waveshare

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-SM2-ProM3-SM3-Pro
DOF445+15+1
Servos5× ST3215 (plastic)5× ST3235 (all-metal)7× ST3215/HS (plastic)7× ST3235 (all-metal)
WristSingle axisSingle axis2-DOF (pitch + rotation)2-DOF (pitch + rotation)
Torque30 kg.cm @ 12V30 kg.cm @ 12V30 kg.cm @ 12V30 kg.cm @ 12V
Weight826g ± 15g873g ± 15g973.5g ± 15g1020.8g ± 15g
Payload0.5kg @ 0.5m0.5kg @ 0.5m0.2kg @ 0.5m0.2kg @ 0.5m
Workspace1090mm × 798mm1090mm × 798mm1120mm × 798mm1120mm × 798mm
Precision≈ ±4mm≈ ±4mm≈ ±5mm≈ ±5mm
LeRobotYesYes
BacklashMay increase with wearStable over timeMay increase with wearStable over time
FirmwareIdenticalIdenticalIdenticalIdentical
Price~$224~$332~$190–331~$300–456

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.

The M2 has four actuated joints, each driven by serial bus servos with 12-bit magnetic encoders:

JointRangeDirection ConventionNotes
Base360° continuous+ = leftOmnidirectional rotation
Shoulder~180°+ = downDual-drive (two servos) for double torque
Elbow~180°+ = downSingle servo
End-Effector~180°+ = grab/downConfigurable as gripper or wrist

The M3 extends the M2 kinematic chain with a 2-DOF articulated wrist, adding pitch and rotation control before the gripper:

JointRangeDirection ConventionNotes
Base360° continuous+ = leftOmnidirectional rotation
Shoulder~180°+ = downDual-drive (two servos) for double torque
Elbow~225°+ = downExtended range vs M2
Wrist Pitch~180°+ = downM3 only — vertical wrist articulation
Wrist Rotation~360°+ = CWM3 only — axial tool rotation
Gripper~180°+ = grabEnd-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.

M2 joint structure detail RoArm-M2 joints — Image: Waveshare

M3 joint structure with labeled axes RoArm-M3 joints — the 2-DOF wrist adds pitch (servo 15) and rotation (servo 16) between the elbow and gripper. Image: Waveshare

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.

M2 workspace diagram RoArm-M2 workspace — Image: Waveshare

M3 workspace diagram RoArm-M3 workspace — the additional wrist link extends the reach envelope slightly. Image: Waveshare

  • 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
  1. Emergency stop: Send {"T":0} to immediately halt all motion
  2. Reset: Send {"T":999} to clear the emergency flag after resolving the issue
  3. Torque lock: Use {"T":210,"cmd":0} to release all servo torque (arm will go limp)

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 IDJoint
11Base
12Shoulder (driving)
13Shoulder (driven)
14Elbow
15Gripper / End-effector
Servo IDJoint
11Base
12Shoulder (driving)
13Shoulder (driven)
14Elbow
15Wrist pitch
16Wrist rotation
17Gripper

Hardware details from the Waveshare Wiki and RoArm-M3 Wiki. Images: Waveshare.