POST No. 2406739
Getting Started with AX-12A / OpenCM9.04-A / Arduino IDE
2018-03-26 21:21:25 mmathias

Hello everybody,


we are pretty new to the world of Dynamixels and facing some beginner-problems.
(Our setting: Dynamixel AX-12A, Arduino IDE and the OpenCM9.04-A Board without the Exp.Board on Windows 10)



On the one hand, we are facing some issues in terms of software. Uploading sketches to the board, from the OpenCM IDE works fine. Since it is stated in the e-manual, that it is recommended to use Arduino IDE we are trying to control the board from Arduino and that’s where the problem occurs.

We followed all steps from the manual:

-       Installing Arduino 1.6.5 or newer (1.8.5 in our case)

-       Installing the drivers (should be fine, since OpenCM-IDE works)

-       Installing the Board via the Board Manager (newest version)

-       Putting this specific link in the preferences.

Arduino shows the board, examples, libraries etc. but when we try to upload a simple sketch (OpenCM Led-blink, or even an empty void setup/void loop sketch), the code compiles but doesn’t upload (it uploads forever and ultimately says that there occurred an error while uploading, without being any more specific) – just to clarify: the exact same codes could be easily uploaded via OpenCM IDE.

*We are using the AVRISP mkII Programmer (default) to upload via Arduino.



On the hardware-side we are not 100% confident, about how to power the board/motors. We already studied the manual and looked at several tutorials, but we couldn’t really find answers for our questions (so probably we are even facing some very banal problems

2018-03-26 21:21:25
2018-03-26 22:51:08 Kurt

Probably Robotis will answer with better information, but here is what I have typically have done.

With the 904A you can solder in the AX/MX connectors so you can directly plug in your servos.  For Power, I have used the Trossen Robotics Powered HUB:


So you simply plug in your battery or Wall wart, and then using a servo extension cable you connect the hub to your board and it will power the board plus the servos. 

I have also built my own Hub which I have not done much with yet:

Which is like the Trossen one except I added an TL320 connector to it, so I could use a standard 904C board and simply use an XL320 cable to connect my hub to the 904C.  Note: the empty part is for a screw terminal connector which I have not populated yet.  

With your pictures, it looks like you are trying to use real simple male jumper wires which will not carry very much current.  Doubt it could handle a servo...

The open CM manual (http://support.robotis.com/en/product/controller/opencm9.04.htm) shows a couple ways to hook up directly.

You can use the + - pins on the longer edge of the board.  It shows hooking up the battery (or sufficient wall wart) to both of the + and -.

Alternatively where on the C board are double two pin connectors for their power supply, you can connect to the two outer pins of the 4.  If you look at the bottom of the board you will see a large + and - on these which is where you would connect up to. The two inner pins are used to jumper their two batteries in series to get up to voltage...

Hope that helps.

2018-03-26 23:42:19 mmathias
Thanks a lot Kurt!
In this case we will probably solder the pins for the big/outer + - and connect there!

How are you controlling your OpenCM9.04? From Arduino?
2018-03-26 23:42:19
2018-03-26 22:51:08
2018-03-27 00:01:47 Kurt

Note: to Robotis - Today was the first time I noticed the ability to do comments like above.  However I had no idea that @Mathias added a comment as the number of replies and the like did not change.  Wonder if there is some way to flag threads with new comments in a similar way you flag ones with new responses.

I am using the Arduino IDE the way they mention in the different places like: https://github.com/ROBOTIS-GIT/OpenCM9.04/wiki/Arduino_Setup_Windows and http://emanual.robotis.com/docs/en/parts/controller/opencm904/

Note: the Arduino IDE has worked fine on the few different 904C boards I have as well as a 904A board that I added headers to.  BUT it does not want to reprogram an older 904B board that I had sitting around for maybe a year or two...

The Robotis Open CM will program this older board.   I wondered if maybe Robotis had changed the firmware (boot loader) in later boards to make it work with their Arduino toolset.  If so I have wondered if I could update the boot loader on this board as well.   Probably requires a programmer.  I do have a ST-Link/V2 USB Programmer with an adapter board, which I am guessing would probably work. 

2018-03-27 00:01:47
2018-03-26 21:27:54 Mathias

..... Therefore, we would be happy to clarify the setup, in order to not ruin the board or the motors.
As mentioned above, we are using the OpenCM9.04-A Board and we would like to control Dynamixel AX-12A Servos.
As we have seen in many tutorials and also in the manual, most people seem to use batteries – would you recommend using batteries?

For now, we are using a standard 12V Adaptor with one positive and one negative wire, as an external power-supply.

We are not sure if it is better to connect these wires to the ++-- pins on the board or if we should use the battery pins (in one tutorial, it was mentioned not to use the battery pins, the manual shows how to do it, but it is not clearly visible on the picture how to connect).


In both cases, how should we connect our 2 wires to the 4 pins given?

Also, is it necessary to solder to power switch to the board, for any of the 2 options?



We would be very greatful, if somebody has some suggestions!

Thanks in advance!

2018-03-27 03:03:02 mmathias
This post is the continuation of my initial (main) one... somehow it moved down..
2018-03-27 03:03:02
2018-03-26 21:27:54
2018-03-27 03:17:19 Mathias

Thanks again Kurt!

Yes we followed the arduino setup/installation but it keeps giving an error.

I tried differend versions of Arduino as well as different versions of the board (boardmanager). And I put this link in preferences:


Upload method: OpenCM Bootloader

Programmer: AVRISP mkII

Does this match with the settings you have? And which Version of Arduino and Board are you using?

2018-03-27 04:17:38 mmathias
The power supply works perfectly and we can control the motors (at least from the OpenCM IDE ;).
Also thanks for answering in the other forum!
2018-03-27 04:17:38
2018-03-27 03:17:19
2018-03-27 05:13:02 Mathias

One more thing, I tried to upload an empty sketch through arduino (1.8.5) on MAC OS now and it doesn't work either. 

This error occurs:

Unable to connect to bootloader
stm32ld ver 1.0.1
OpenCM Download Ver 1.0.4 2015.06.16
Fail to connect OpenCM 


> apparently, there's other people with the exact same error..

2018-03-27 06:01:59 spchang
Here's one thing you might try. You may have to use the RobotIs RoboPlus software to re-upload the basic firmware of the board. I had once unplugged the board in the middle of loading onto it, and I started receiving a similar error.
A tutorial for this is here: http://support.robotis.com/en/software/roboplus_main.htm (A download link is on the same page). One issue is that it requires Windows.
2018-03-27 06:01:59
2018-03-27 06:29:08 mmathias

I tried that (R+ Manager 2.0) and seems to work and then it says that it couldn't find the bootloader. I will make a new post with pictures!
2018-03-27 06:29:08
2018-03-27 07:35:50 kurteck
Note: I tried running the Roboplus to update the firmware. The prescribed method worked to update one of my 904A boards, but again when I tried with the 904B and press the FIND button, it does not find it nor show any details about it... But was still abel to program it using the Robotis_openCM IDE
2018-03-27 07:35:50
2018-03-27 05:13:02
2018-03-27 10:11:23 Will Son

Hello, you guys did so much work while I was sleeping.

And I apologize for the inconvenient features in this forum(such as rearranging replies and not being able to tag other people or threads), but we're considering to migrate to real Forum like discourse.

Mathias, since your bootloader in OpenCM9.04 is not recognized, you can try downloading the sketch in Recovery Mode.

When you are using power source(11.1V 3S1P Li-Po is recommended) for Dynamixel other than XL-320, it is recommended to use ++-- pin as shown in the Connecting Power.

FYI, OpenCM9.04 bootloader has not been changed at all.

If you are planning to use several Dynamixel on OpenCM9.04, please consider using OpenCM 485 EXP board.


2018-03-27 10:11:23
2018-04-02 03:46:23 Kurt
FYI, OpenCM9.04 bootloader has not been changed at all.

 Thought I would mention, that I did open a issue on github.. https://github.com/ROBOTIS-GIT/OpenCM9.04/issues/20

Up in the issue, I showed a set of programs (one for Arduino IDE and the other for OpenCM IDE), that dumps out the start of the bootloader, as well as the 96 bit serial number data.

I verified that two newer 904A boards matched, but the older 904B board was very different.  

Also mentioned that I found a Sketch that someone wrote that updated the default bootloader with a version that makes it compatible with Maple setup.

Note: I tried posting more of the data here, but forum kept giving an error when I hit the Reply Write button. 

2018-04-02 03:46:23
웹에디터 시작 웹 에디터 끝