Open Source RoboticsRobots, software & learning

Open-source Leader Arm

Based on published sources · Not tested by us ·

License: Apache-2.0 · Details by part

Overview

Unpowered 3D-printed six-joint leader arm read by AS5600 encoders through an ESP32, used to teleoperate an SO-ARM follower in MuJoCo or through LeRobot. [S001]

This project replaces the servo-driven LeRobot leader arm with an unpowered, 3D-printed arm whose six joints are read by AS5600 magnetic encoders. An ESP32 streams the joint angles to a host, which drives a follower. It is an input device: it has no actuators of its own and needs a separate SO-ARM follower, physical or simulated. This entry is source research only; nothing was printed, flashed or run. [S001]

Specifications

DetailDescription
TypePassive six-joint leader arm with encoder-instrumented joints and a handle; no actuators.
Reported by source [S001] · Checked 2026-10-05
Intended usersSO-ARM100/101 and LeRobot users comfortable with hand-wiring I2C modules, flashing an ESP32 and running Python plugins
Editorial assessment [S001] · Checked 2026-10-05
Assembly25-step README guide using step images; encoders for joints 0 and 5 attach early and the other four last; rubber band spans two housings.
Reported by source [S001] · Checked 2026-10-05
CalibrationHold the leader in its reference pose with the follower at rest and press Enter to zero the encoders; defaults live in config_encoder_leader.py.
Reported by source [S001] [S007] · Checked 2026-10-05
Operating systemWindows (COM ports in examples); Linux and macOS (/dev/ttyUSB0 noted)
Reported by source [S001] · Checked 2026-10-05
Computer neededA PC running Python 3.10 or newer; the README notes integrated graphics limit simulated recording to about 30 fps.
No minimum specification stated beyond the Python requirement and the frame-rate note.
Editorial assessment [S001] [S006] · Checked 2026-10-05

3D preview

Preview not available yet. Design-source links are available. A configuration-matched assembly and its file-level reuse scope have not yet been reviewed for a hosted preview.

Assembly and use

Who it suits

It suits SO-ARM100/101 users who want a cheaper, lighter leader and can wire I2C modules by hand. The README says the arm is currently tested against a simulated SO-ARM in MuJoCo and also gives LeRobot commands for a physical so101_follower. The inspected sources do not include a test report for a physical follower; the README links an independent build write-up that was not reviewed here. [S001]

Configuration to reconcile

  • Electronics: six AS5600 encoders with diametric magnets, a TCA9548A I2C multiplexer (the AS5600 has a fixed 0x36 address), an ESP32, 608 bearings, 28 AWG wire and a perfboard. The wiring tables put the multiplexer on ESP32 pins 18 and 19 and give each joint its own channel. [S001] [S004]
  • Printing: 19 unique and 49 total parts in PLA at 0.2 mm layers and 15% infill, without supports. Each bearing_housing needs a mid-print pause at 10 mm to insert a bearing. STL, STEP and a Bambu Lab A1 3MF are in the repository. [S001] [S005]
  • Firmware: firmware.ino uses only the Arduino Wire library, prints a per-channel magnet diagnosis at boot, then streams six comma-separated raw readings at 100 Hz over 115200-baud serial, with -1 for an unreadable channel. [S001] [S004]
  • Software: two Python plugins register an encoder_leader teleoperator and a MuJoCo SO-ARM100 robot for LeRobot; standalone scripts drive MuJoCo without LeRobot. Both plugin packages are version 0.1.0, need Python 3.10 or newer and depend on an unpinned lerobot. Simulation also needs the trs_so_arm100 model from MuJoCo Menagerie. [S001] [S006]

Calibration is a single alignment: hold the leader in its reference pose while the follower is at rest, then press Enter. The plugin's default home angles, joint ranges and directions are fixed values in config_encoder_leader.py, so a different follower build may need them adjusted; that was not tested. [S001] [S007]

Cost scope

The README lists 2,619 INR (about US$27.45) for encoders, bearings, multiplexer, ESP32, wire, screws and perfboard, excluding printed parts. These are the maintainer's Indian prices with their own conversion, not re-quoted. The follower arm, its controller and power supply, the host computer and filament are excluded. The README's comparison of six servos at about $24 each is the author's estimate, not a sourced SO-101 price. [S001]

Licenses and gaps

A single Apache-2.0 LICENSE sits at the repository root; no separate hardware, firmware or documentation license or NOTICE file was identified. Purchased modules and the MuJoCo Menagerie model keep their own terms. [S003] [S005]

No published release was identified at retrieval (the releases API returned none); this entry covers commit 3cf2ee4 from September 15, 2026, which had 129 GitHub stars at retrieval, a dated popularity signal only. Gripper handling, joint-limit fit with a physical SO-101, encoder accuracy and latency remain unverified. [S002]

Cost

VersionPrice
Leader arm electronics and hardware, commit 3cf2ee4 README BOMINR 2619.00 [S001]
Parts estimate

India (upstream INR prices) · Checked 2026-10-05

Included6× AS5600 encoder with diametric magnet; 6× 608 bearing; TCA9548A multiplexer; ESP32; 28 AWG silicone wire; 60 M3×10 screws; Perfboard
Not included3D-printed parts and filament; Follower arm, its controller and power supply; Host computer; Shipping, taxes and assembly labor
StockSupplier stock not rechecked.
Delivery and taxNot established.
Price details

Maintainer-published INR component total with the README's own conversion of about US$27.45; not re-quoted.

India (upstream INR prices) · Checked 2026-10-05 · Quantity 1

Printed parts, an SO-ARM follower (physical or simulated) and a host PC.

Source files and licenses

CAD, wiring documentation, firmware and plugins are in one repository under a root Apache-2.0 license file; the follower and purchased modules are outside scope.

LayerAvailability / license
mechanical designavailable · Apache-2.0
STEP, STL, 3MF and GLB files under cad_files; root Apache-2.0 is the only license file identified, with no hardware-specific license. [S003] [S005]
electronicsavailable · Apache-2.0
Wiring diagram and pin tables for off-the-shelf modules on perfboard; no PCB design. Purchased modules keep their own terms. [S001] [S003]
firmwareavailable · Apache-2.0
Single Arduino sketch using the built-in Wire library; ESP32 board-support and toolchain terms are separate. [S003] [S004]
softwareavailable · Apache-2.0
Two LeRobot plugins and standalone MuJoCo scripts; lerobot, MuJoCo and Menagerie model terms are separate. [S003] [S006]
documentationavailable · Apache-2.0
README with BOM, wiring, print settings and assembly images. [S001] [S003]

Teleoperation input device; no trained models distributed.

No dataset distributed; users record their own.

References

Links identify the documentation and revisions used in this profile. Access dates record when each source was retrieved.

  1. S001 · Matheshwaranpitchai / open-source-leader-arm contributors
    Open-source Leader Arm README
    Accessed 2026-10-05 · README.md at 3cf2ee41e645afe1173dda79914ffe31e174d7a6
    Source notes

    Purpose, test status, BOM, wiring, print settings, firmware, LeRobot and standalone software use, assembly steps.

  2. S002 · Matheshwaranpitchai / open-source-leader-arm contributors
    Repository revision and acquisition metadata
    Accessed 2026-10-05 · 3cf2ee41e645afe1173dda79914ffe31e174d7a6; commit date 2026-09-15T19:25:21Z; manifest retrieved 2026-10-05
    Source notes

    No published release; default-branch commit snapshot archived; dated repository popularity.

  3. S003 · Matheshwaranpitchai / open-source-leader-arm contributors
    Repository license
    Accessed 2026-10-05 · LICENSE (Apache License 2.0 text)
    Source notes

    Root Apache-2.0 license file; only license file identified.

  4. S004 · Matheshwaranpitchai / open-source-leader-arm contributors
    ESP32 encoder firmware
    Accessed 2026-10-05 · firmware/firmware.ino
    Source notes

    I2C multiplexer and AS5600 read loop, boot diagnosis and 100 Hz serial stream.

  5. S005 · Matheshwaranpitchai / open-source-leader-arm contributors
    Pinned archive file inventory
    Accessed 2026-10-05 · Complete filename inventory of 3cf2ee41e645afe1173dda79914ffe31e174d7a6 archive (78 members); not a printability test
    Source notes

    CAD (STEP, STL, 3MF, GLB), docs images, firmware and two LeRobot plugin packages; one license file.

  6. S006 · Matheshwaranpitchai / open-source-leader-arm contributors
    LeRobot plugin package metadata
    Accessed 2026-10-05 · lerobot_teleoperator_encoder_leader/pyproject.toml and lerobot_robot_mujoco_so_arm/pyproject.toml
    Source notes

    Package names, versions, Python requirement and unpinned lerobot dependency.

  7. S007 · Matheshwaranpitchai / open-source-leader-arm contributors
    Encoder leader default configuration
    Accessed 2026-10-05 · config_encoder_leader.py
    Source notes

    Joint names, default home angles, directions, joint ranges, port and baud rate.

Research and review details

Source research only; no printing, flashing, installation or teleoperation performed. No affiliate links. AI-assisted drafting with a separate LLM editorial judge; no independent human technical review.

Profile edited 2026-10-05 · Sources checked 2026-10-05 · Next review target 2026-11-05

Revision: 3cf2ee41e645afe1173dda79914ffe31e174d7a6 (commit snapshot; no published release found). Combined hardware and software repository activity recorded 2026-09-15 [S002]

Correction guidance · Discussion is not enabled · Profile format 0.7.0-draft.5

Change history

2026-10-05 — Created from Growbotics-listing lead; all claims checked against preserved upstream sources. No physical build or test.