Skip to main content
Version: 2.0

Step 4: Motor Configuration

info

Prerequisites: Before proceeding, ensure you have:

  • ✅ Motor IDs configured (Step 1)
  • ✅ CAN interface configured (Step 2)
  • ✅ Basic communication tested (Step 3)

Overview

We now need to complete the motor setup process. This involves three key tasks:

  1. Set Motor Baudrate
  2. Set Zero Position
  3. Verify Motor Communication

Step 1: Set Motor Baudrate

warning

Motor parameters has a 10000 time write limits, it should not be run frequently in scripts.

note

Before changing the baudrate, make sure the CAN interface is configured to match the motor's current baudrate. See Setup CAN Interface for details.

For detailed usage, see CAN CLI Reference change_baud.

# Set temporarily
openarm-can-cli -i can0 change_baud -b 5000000 -c 1

# Save permanently
openarm-can-cli -i can0 change_baud -b 5000000 -c 1 --save

Step 2: Zero Position Calibration

info

Physically position the arms to roughly match the zero position shown below before running calibration. For grippers, the closed position is used as zero by default.

zeropos
info

When setting up in a Leader-Follower configuration, please run the zero position calibration for the Leader and the Follower separately, while they are in their independent states.

warning

Safety First! The robot will move automatically when calibration starts. Wear safety gear, clear the workspace, and be ready to emergency stop.

The zero position calibration runs one arm at a time.

Run the zero position calibration (this defaults to can0, right arm):

# v2.0 (default)
openarm-can-zero-position-calibration

# v1.0
openarm-can-zero-position-calibration --robot-version v1

For specific arms, run:

# Leader-side Left (v2.0)
openarm-can-zero-position-calibration --canport can1 --arm-side left_arm

# Leader-side Left (v1.0)
openarm-can-zero-position-calibration --canport can1 --arm-side left_arm --robot-version v1

# Follower-side Right
openarm-can-zero-position-calibration --canport can2 --arm-side right_arm

# Follower-side Left
openarm-can-zero-position-calibration --canport can3 --arm-side left_arm

Step 3: Verify Motor Communication

Run the monitor command to check motor status. Replace 1,2,3... with your motor IDs.

# Monitor all arm motors
openarm-can-cli -i can0 monitor

# Monitor specific motors
openarm-can-cli -i can0 monitor --id 1,2,3

The output should display the motor's position, velocity, torque, and temperature in real-time.

For detailed usage, see CAN CLI Reference monitor.

warning

It is important to get the motor communication working before running the demo.

Verification steps:

  1. Check baudrate: Verify the displayed baudrate matches what you configured earlier
  2. Test permanent settings: If you used --flash, power cycle the motor and run the check again to confirm the settings persisted
  3. Troubleshoot: If the baudrate doesn't match, switch your CAN interface to 2.0 and re-run the baudrate change script
warning

It is important to get the openarm-can-motor-check working before running the demo.

Troubleshooting

  • Check CAN interface is UP
  • Verify motor is physically connected and powered, set with the correct ID
  • Verify can connection is stable (important!)
  • Use candump to monitor the traffic
  • Check CAN interface baudrate matches motor's current baudrate
  • Verify send/receive CAN IDs are correct. Common pairs: 1→17, 2→18, 3→19, etc.