Skip to content
MCU Atlas
ESP32ESP32Draft

Waveshare RoArm-M2: ESP32 desktop robot arm firmware

Open firmware for a 4-DOF ESP32-controlled desktop robotic arm with web control and ROS2 support.

Difficulty:IntermediateCost:Source available

Photos

Waveshare RoArm-M2: ESP32 desktop robot arm firmware photo 1
Waveshare RoArm-M2: ESP32 desktop robot arm firmware photo 2
Waveshare RoArm-M2: ESP32 desktop robot arm firmware photo 3
Waveshare RoArm-M2: ESP32 desktop robot arm firmware photo 4

Photos: waveshareteam/roarm_m2

Key Facts

  • Chip: ESP32
  • Actuators: serial bus servos
  • DOF: 4 (3 joints + gripper)
  • Control: web app, JSON, ESP-NOW, ROS2

About This Project

RoArm-M2 is a commercial 4-DOF arm kit from Waveshare whose ESP32 firmware is open on GitHub. It uses serial bus servos, a 360-degree base and offers a web app with coordinate control, plus JSON commands over Wi-Fi, serial or ESP-NOW and ROS2 compatibility. Listing it as a reference for ESP32 robot-arm control code; the hardware is a purchased kit.

Source & Attribution

Source: GitHub
License: AGPL-3.0
Last verified: 10/16/2026
Waveshare RoArm-M2: ESP32 desktop robot arm firmware
How to Build It
This is the open-source firmware for Waveshare's RoArm-M2, a 4-DOF desktop robot arm on an ESP32 driving serial bus servos. It reaches about 1m across and carries 0.5kg at 0.5m. You can control it from a built-in web app, JSON commands over serial or HTTP, ESP-NOW, or ROS2 with MoveIt2.
Draft: steps not yet verified

Parts Needed

  • Waveshare RoArm-M2-S kit (ESP32 driver board + bus servos)
  • 12V power supply (included with the kit)
  • USB data cable

Steps

  1. 1

    Assemble and power

    Build the arm according to Waveshare's wiki, clamp the base firmly and connect the 12V supply.

  2. 2

    Use the web app

    The arm creates its own Wi-Fi hotspot. Connect to it and open the web page to jog the joints, use coordinate control and record moves.

  3. 3

    Flash or update firmware

    To modify the firmware, open the code in the Arduino IDE with the ESP32 core and the libraries listed on Waveshare's wiki, then upload over USB.

  4. 4

    Control it programmatically

    Send JSON commands over USB serial or HTTP (they're documented on the wiki), use ESP-NOW for leader/follower setups, or try the ROS2 + MoveIt2 examples.

  5. 5

    Safety

    Gripper force is capped at 30% in recent firmware. Keep your hands clear during moves, and fix the base before running fast motions.

Parts List (BOM)
Complete parts list from the creator
complete
PartQtyRoleEst. PriceBuy
1kit$180–$240View
Estimated Total$180–$240 USD

Not included: 3D-printed case, wire, solder, USB cable

Download CSV

Related Projects

Watchy: open-source ESP32 e-ink smartwatch
Illustration
ESP32Draft
An open-source smartwatch with a 1.54in e-paper screen and ESP32, hackable watch faces in Arduino.
Beginner·Under $15·Code
2 parts listed
Low-power ESP32 e-paper weather display (7.5in)
Illustration
ESP32Draft
A wall-mounted 7.5in e-paper weather display on an ESP32 that runs for months on one battery charge.
Intermediate·Cost varies·Code
5 parts listed
OpenEPaperLink: reuse e-ink shelf labels with an ESP32 access point
Illustration
ESP32ESP32-S3Draft
Turns cheap second-hand electronic shelf labels into a Wi-Fi-managed e-ink display fleet via an ESP32 access point.
Advanced·Under $15·Code
3 parts listed