Getting Started with OpenArm

Project overview, platform guide, safety requirements, and how to contribute to the OpenArm open-source community.

Open Source Safety Community 7 DOF
Source: docs.openarm.dev Last updated: Apr 6, 2026

Discover OpenArm

OpenArm is an open-source 7DOF humanoid arm designed for physical AI research and deployment in contact-rich environments. All hardware and software are completely open-source and ready for you to build, hack, and deploy!

The team is in continuous development and actively seeking contributors, research partners, and company collaborators to shape the next generation of practical humanoid systems.

What's Unique?

  • Human-Scale Design — Designed with human-like proportions and dimensions, scaled for a person around 160–165 cm tall. This provides an optimal balance between practical reach and manageable inertia for safe, responsive operation.
  • Safety-First Architecture — Built with QDD backdrivable motors and high compliance. Prioritizes safe human–robot interaction while maintaining practical payload capabilities (6.0 kg peak / 4.1 kg nominal) for real-world tasks.
  • Built for Durability — Critical structural components use aluminum and stainless steel construction, ensuring robust performance for repetitive data collection and continuous research use.
  • Fully Accessible & Buildable — Every component — from CNC parts and 3D-printed casings to electrical wiring — is designed to be purchasable and buildable by individual researchers and labs, with complete fabrication data provided.
  • Practical & Affordable — At $6,500 USD for a complete bimanual system, OpenArm delivers research-grade capabilities at a fraction of traditional humanoid robot costs, making advanced robotics accessible to more teams and applications.

Project Overview & Structure

OpenArm spans multiple platforms for development, collaboration, and community engagement.

Platform Overview

PlatformURLPurpose
Main Websiteopenarm.devProject homepage with announcements, visualizations, and contact forms
Documentationdocs.openarm.devComplete technical guides and tutorials
GitHubgithub.com/enactic/openarmOpen-source repositories with code, CAD files, issue tracking
Discorddiscord.gg/GmYa262ETHReal-time discussions, support, collaboration

Repository Structure

RepositoryDescription
openarmMain project — ideas, issues, feature requests
openarm_hardwareCAD data: STL, STEP, Fusion 360 files
openarm_descriptionURDF/xacro robot description files
openarm_canCAN control library
openarm_ros2ROS2 integration packages
openarm_teleopTeleoperation control packages
openarm_isaac_labIsaac Lab simulation environment

Get Help

  • Discord — Real-time support from the community
  • GitHub Issues — Bug reports and feature requests
  • GitHub Discussions — Technical questions

Safety Guide

Warning — Read Before Operating Please read this guide carefully before operating OpenArm and use it safely at your own risk. OpenArm is designed to safely coexist with people, but improper use can result in injury.

This guideline outlines key points you should be aware of to use OpenArm safely and responsibly.

Safe Use Requirements

1. Install in a Safe Location

When installing OpenArm, securely fasten it with screws or clamps to a flat and stable surface. Avoid placing it near fragile objects, flammable materials, or sources of moisture. Additionally, make sure there are no walkways or passages nearby where people frequently pass.

2. Maintain a Safe Distance

When operating OpenArm, always ensure that no part of your body or any objects enter its range of motion. When approaching the robot for adjustments, always check that the power is turned OFF, and make sure that people nearby do not accidentally turn it ON. If necessary, use barriers or markings to restrict access to the operating area.

Warning The range of motion changes when handling large objects or attaching original end effectors.
Warning When it is unavoidable to approach the OpenArm during teleoperation, keep a safe distance from dangerous areas such as elbows, shoulders, and protruding parts of the end effector, where fingers can easily get caught.

3. Wear Appropriate Protective Equipment (PPE)

Always wear safety goggles when operating OpenArm. In addition, wear other protective equipment (PPE) such as safety shoes, helmets, or gloves as needed.

Warning When you need to approach a robot for teleoperation or other purposes, wear clothing that fits your body well to avoid getting caught up in it.

4. Operate Within Specified Limitations

Do not operate OpenArm beyond the specified payload limits for a single arm or both arms. When using an end-effector, also ensure that its payload capacity is not exceeded. As an example, a 1.5 kg end-effector leaves 2.6 kg nominal and 4.5 kg peak usable payload from the arm's rated capacity — always subtract end-effector weight from the arm's total rated payload before loading.

5. Prepare for an Emergency Stop

Familiarize yourself with the location and operation of the emergency stop device so that you can activate it immediately if something abnormal occurs. The emergency stop switch should be installed in a safe position at a sufficient distance from OpenArm.

Warning — High Backdrivability OpenArm has high backdrivability suitable for bilateral control. Be aware that if power is lost due to an emergency stop, the load being held will fall rapidly.

6. Assess Risks and Continuously Improve

Record and regularly review any hazards or improvement points you notice during use. Safety must be continuously enhanced through the cooperation of all users — it cannot be ensured only once. By joining the community, you can take part in discussions about improving safety.

Safe Maintenance and Inspection

To keep OpenArm operating safely, daily inspections and maintenance are essential. Pay particular attention to the following points to detect any abnormalities or wear at an early stage.

Loosening of Base Fasteners and Screws

Repeated movement in certain postures or vibrations can cause screws or clamps to loosen unexpectedly. Loose screws at the base or around the arm's joints may lead to serious accidents. Always check for any looseness before operating OpenArm.

Damage to Mechanical Limits

Each joint is equipped with mechanical limits to prevent abnormal postures and protect wiring. These mechanical limits can become deformed or broken by strong impacts. If operation continues with damaged mechanical limits, they may fail to prevent abnormal joint movement in the event of a malfunction. Check the condition of these parts regularly and replace them if necessary.

Unusual Noises or Catching in Joints

Damage caused by excessive loads or impacts during operation can result in unusual noises or catching when moving joints. This is often caused by deformation of the frame or covers, damage to the motor gearbox, or cables getting caught. Identify the location of the noise or catching and investigate the cause thoroughly.

Damage to Wiring and Connectors

Repeated sharp bending or improper connection and disconnection can damage wiring and connectors. If cables or connectors are damaged, OpenArm may not function correctly, and electrical problems such as damage to the power supply or control devices can occur. If you notice any abnormal operation, immediately turn off the power and check cables from the base to the end for any damage.

Software Setup Prerequisites

Before setting up the OpenArm software stack, ensure you have the required hardware and a compatible operating environment.

Hardware Needed

ComponentDetails
OpenArm robotic armWith Damiao motors installed
24V power supplyAppropriate current capacity for the number of motors in use
CablesIncluded with motor package
Damiao USB CAN DebuggerRequired for Motor ID Setup step only; Windows PC needed
SocketCAN-compatible interfaceRequired for motor control (e.g., CANable, PEAK PCAN); Ubuntu 22.04 or 24.04 recommended (or any Linux with SocketCAN support)
OS Requirement for Motor Control Motor control via SocketCAN requires a Linux host. Ubuntu 22.04 or 24.04 are the tested and recommended distributions. The Motor ID Configuration step uses the Damiao USB CAN Debugger tool and must be run on Windows.

Setup Sequence

Follow these steps in order when setting up OpenArm for the first time:

  1. Motor ID Configuration Use the Damiao USB CAN Debugger on Windows to assign unique CAN IDs to each motor. Each motor must have a distinct ID before any control software can address it.
  2. CAN Interface Setup On your Ubuntu machine, configure the SocketCAN interface. Bring up the CAN interface at the correct bitrate and verify it is visible to the OS.
    # Example: bring up CAN interface at 1 Mbit/s
    sudo ip link set can0 type can bitrate 1000000
    sudo ip link set can0 up
  3. Motor Test Run the motor test utility from openarm_can to confirm each motor responds on the bus and reports expected state.
  4. Motor Configuration Apply per-motor configuration (position limits, control mode, PID gains) using the provided configuration scripts.
  5. Demo Run Launch one of the included demo scripts to verify the full pipeline — from CAN commands through joint motion — before moving to your own application.

Detailed commands and configuration files are covered in the Software guide.

Teleoperation Overview

OpenArm supports two teleoperation modes. Choose based on your task requirements and available hardware.

Unilateral Control

The follower arm directly mimics the leader arm's movements via position commands. Control is one-directional — there is no force or tactile feedback relayed back to the operator.

PropertyDetails
FeedbackNone (position commands only)
DirectionOne-way: leader → follower
Best forBasic teleoperation, open-space manipulation, lightweight rapid operations

Bilateral Control

Reciprocal force feedback between both arms — the operator perceives tactile sensations from the environment through the leader arm. This requires OpenArm's high-backdrivability QDD motors and a low-latency CAN connection between both arms.

PropertyDetails
FeedbackForce/torque feedback to operator
DirectionBidirectional: leader ↔ follower
Best forContact-rich manipulation, dexterous assembly, tasks requiring tactile sensing
Full Setup Instructions See the Teleoperation guide for complete hardware wiring, software configuration, and calibration steps for both unilateral and bilateral control modes.

Contribution Guide

The OpenArm team welcomes contributions from researchers, developers, makers, and enthusiasts at all levels! Whether you're sharing ideas, picking up tasks, or collaborating on projects, there's a place for you in the OpenArm community.

GitHub Issues — The Idea Pool

Use the OpenArm GitHub repository as a central hub for new project ideas, feature requests, and bugs.

How It Works

  • Upvote issues that resonate with you — this helps the team prioritize what the community wants most.
  • Share your own ideas by creating new issues. No idea is too small or too ambitious!
  • Unassigned issues are open for pickup. Browse the issues and self-assign anything that interests you. No need to ask for permission — just start working and share your progress in the comments.

Submit issues for:

  • Project ideas and feature requests
  • Bug reports and technical issues
  • Community discussions and feedback
  • Roadmap suggestions and priorities

Discord — Connect & Collaborate

Join the OpenArm Discord to find collaborators, share what you're building, and integrate projects together.

ChannelPurposeBest For
#projectsShare builds, ideas, and find collaboratorsShowcasing work, finding project partners
#faqQuick questions and community answersGetting started, troubleshooting
#updatesOfficial announcementsStaying current with developments
#weeklyDevelopment progress highlightsFollowing project milestones
#hardwareHardware discussions and improvementsMechanical issues, design ideas
#controlsControl algorithms and softwareDevelopment discussions, theory

Contributing Code & Fixes

Ready to submit your work? The team reviews pull requests across all repositories.

  1. Fork the relevant repository. Go to the appropriate enactic GitHub organization and fork the repo you want to contribute to.
  2. Create a branch for your changes.
    git checkout -b feature/my-improvement
  3. Make your improvements. Fix bugs, add features, or improve documentation.
  4. Test thoroughly when possible. Run any existing tests and verify your changes work as expected.
  5. Submit a pull request with a clear description. Explain what you've built or fixed and reference any related GitHub issues.
Attribution Content on this page is based on the official OpenArm documentation at docs.openarm.dev, copyright © 2025–2026 Enactic, Inc.
← OpenArm Overview Hardware →