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

Hi, i followed the instructions and connected the opencm9.04 with AX12-A and every thing is fine but "Get & set all servo positions" is not responding in EZ- Builder. Kindly guide me/
Did you watch the video tutorial?
Yes Sir. After going through that only i have started building my project.
Hi,
I am getting an error message when I try to upload the firmware to my OpenCM9. I have followed the steps in the video successfully up to that point. I am using Parallels VM Windows 10 on a MacBook Pro. This is the message: Arduino: 1.8.12 (Windows 10), Board: "OpenCM9.04 Board, OpenCM Bootloader"
Sketch uses 50080 bytes (42%) of program storage space. Maximum is 116736 bytes. Global variables use 11160 bytes of dynamic memory. C:\Users\clank\AppData\Local\Arduino15\packages\OpenCM904\tools\opencm_tools\0.0.2/win/opencm9.04_ld.exe COM10 57600 C:\Users\clank\AppData\Local\Temp\arduino_build_186828/EZ-OpenCM9.ino.bin 1 opencm An error occurred while uploading the sketch
Any suggestions? I appreciate any help.
Looks like the toolset isn’t installed? not quite sure because there’s no detailed error from the Robotis Arduino configuration. If they have a website for support on using their Arduino toolset, id first start there. But if it was me, I’d probably blast through the installation of their toolset one more time. Reboot a bunch and pull my hair. Maybe update the Arduino ide.
LOL. I will let you know how it goes. I will clean everything off and start fresh. Thanks!
Do you think it’s an issue with the usb driver in the parallel emulator?
Maybe...although I have not had this issue with my MINI. But I did not have to install a separate driver for it... but I will reinstall that as well.