Opencm 9.04 by Robotis
Firmware
The Robotis OpenCM 9.04 is a small, open-source microcontroller board that can be used as an EZ-B compatible interface for Synthiam ARC (Autonomous Robot Control). ARC can talk to this board using the correct firmware, allowing ARC to control connected hardware such as Robotis DYNAMIXEL servos.
The OpenCM9.04-C is the same as the OpenCM9.04-B except the two standard TTL connectors (commonly used for AX series) were replaced with XL-type TTL connectors (used for the XL-320). Both B and C versions are supported by this ARC-compatible firmware.
This controller is also used in the Robotis Bioloid Mini, which can be controlled by ARC when running the proper firmware.
Controller Specs (Beginner Friendly)
- Processor: 32-bit ARM Cortex-M3 microcontroller
- What it does: Acts like a “robot brain interface” that ARC can send commands to (for example: move a servo, read sensors, run robot behaviors).
- Servo communication: Uses TTL serial communication for DYNAMIXEL servos. (TTL is a type of low-voltage serial signaling used by many Robotis servos.)
DYNAMIXEL Servo Ports and Compatibility
OpenCM 9.04 can control DYNAMIXEL servos through its servo connectors using ARC’s DYNAMIXEL plugin. Which servo types you can plug in directly depends on the connectors you have:
The 3-pin XL-type connectors are designed for the DYNAMIXEL XL-320. If you have an OpenCM9.04-C, these XL-type connectors are commonly what you’ll use.
- Connect XL-320 servos directly to the board
- Control them in ARC using the DYNAMIXEL features in the plugin
For AX and many MX series servos that use Molex-style TTL connectors, you typically need the OpenCM Expansion Board to plug them in easily.
- Add the Expansion Board to get the compatible ports
- Then connect AX/MX servos through the Expansion Board
Robotis DYNAMIXEL Robot Skill (How ARC Talks to the Board)
Most users pair the OpenCM 9.04 with Robotis DYNAMIXEL servos. ARC communicates with DYNAMIXEL servos by sending commands through a specific UART (a hardware serial port) on the OpenCM board.
Which UART does ARC use?
- Using the OpenCM 9.04 board by itself (no expansion board): ARC uses UART #0
- Using the OpenCM Expansion Board: ARC uses UART #2
Common Setup Checklist (Quick Beginner Steps)
- Identify your board version: OpenCM9.04-B or OpenCM9.04-C
- Identify your servo type: XL-320 or AX/MX
-
Connect servos:
- XL-320: plug into the XL-type 3-pin ports
- AX/MX: use the OpenCM Expansion Board (recommended for correct connectors)
- In ARC, use the DYNAMIXEL plugin and select the correct port/UART behavior for your setup
- Test by moving one servo first before connecting many servos

Just an update: I have not been able to get Arduino to recognize the board. I redid all of the Arduino installs (IDE, driver, etc.). Then I tried the Open CM IDE (that is based on Arduino) and it has an error message that the board is not responding. I have a question out to Trossen Robotics where I purchased the board to see if they have any ideas. I have one more resource to see if there is some different way to interpret the instructions on the Robotis site. I haven't had issues with my VM previously. Heavy sigh. I am also going to order the EZ IoT and cable to see if that works with my setup. I really wanted the read/write capability of the servos...and I have not created cables before so would need detailed instructions. :-) I appreciate your help.
the EZ-Robot IoTiny doesn't support reading and writing because it doesn't have a hardware uart. You'd need the EZ-Robot EZ-B v4 for that. Or, there might be another arduino that supports it but not sure what.
I'm super surprised the open cm usb won't work with the parallels. Can you run the arduino ide to program the open cm in mac os?
I knew that the IoTiny did not support both read and write but I wanted an inexpensive entry to experiment. :-). I had tried using Mac OS previously and got a similar message. HOWEVER, I found the information from Robotis on how to "recover" the board if it is connecting but not accepting an upload. And it worked! I just successfully connected to the ARC software. Tomorrow I will try out moving a Dynamixel and hopefully move forward with my robot arm. I am excited! Having the IoTiny will give me a chance to compare and try audio, so it's all good. Thank you so much for your help. I am sure we will chat again at some point.
Hi DJ,
Unfortunately I am now having trouble with the final step using the Dynamixel plugin. It shows a successful install and the option is available to add when I am in ARC. I get the following error message. Screen Shot Error Message.pdf (Hopefully you can open the file.). It sounds like it is looking for ARC.DLL... I removed the plugin and reinstalled but that did not fix it.
I will continue to look for previous discussions on the topic, but I am hoping you have an idea on the solution. Feel free to redirect me if needed.
You're using ARC - and plugins are only supported in ARC. Install ARC to use plugins
ARC is being deprecated and will no longer exist in a week or two. See details of ARC here: https://synthiam.com/Products/Releases/ARC-Beta-2020-03-11-00-19052
Beautiful. It is working now. Thanks again!
Hi again. I apparently spoke a bit too soon. ARC is working, plugin is working, board is connecting...the software is not finding my Dynamixel AX12A. I have confirmed the ID numbers and baud rates and which UART port the OpenCM Expansion Board uses (UART 1). I reviewed the Hack video and the instructions. I am using the openCM9 with the expansion board so maybe that is what's different? Your thoughts? As always, I do appreciate your help.
To be more clear - I tried both UART 0 and 1 in the plugin and still no connection.