OpenCM 9.04 Communication Port (USART2) - Connector Type

Hi,

I have to once again tap into your collected wisdom (which I appreciate very much):

Can anyone tell me, what type of connector the OpenCM 9.04 Communication Port (USART2) uses? I have to connect my FlySky R/C receiver there (by means of a 5V->TTL converter).

Thanks in advance…

Kai

1 Like

@WaldoPepper

Here is the link of accessory kit that contains the 4-pin connector (20010WS-04 ).

For your reference, the ROBOTIS has provided the guide of using RC-Receiver (Futaba T10J) example through DYNAMIXEL MKR Shield. Not sure you can apply this to openCM9.04

1 Like

Thanks for the info @Yogurt_Man , so I will watch out for the 20010WS-04…

I also looked at the MKR Shield example, but to my surprise they connected 8 PWM ports instead of using the one serial SBUS port on the receiver (bottom left). The SBUS is well documented and quite easy to parse, but may be it was for an educational purpose that they avoided it.

1 Like

Seems each channel is mapping each DYNAMIXEL (ID 1, 2, 3, 4…N th). If you are using one DYNAMIXEL, one channel should be used I guess.

Anyway, good luck ! I’ve not tried to use RC protocol, so I am very curious how you build the RC bridge between DYNAMIXEL and OpenCM 9.04.

Regards,

…got some JST PH 4-pin cables (2mm pitch) and they fit :slight_smile:

1 Like

A little bit of progress has been made: I can read 16 channels from my trusty old Taranis Q X7 via Serial2 USART (I output them to the Serial Monitor for debugging):

An inverter is needed, since SBUS uses inverted signal levels, but fortunately these are easy to get on eBay :wink:

My Dynamixel XL320 Convertible Cables have not yet arrived so I could not connect the XL430, but I got word they will ship soon…

2 Likes

My XL320 convertible cables finally arrived and I was able to hook the XL430 to my OpenCM 9.04 controller board:

image

Thanks to @Yogurt_Man for pointing me into the right direction! For the start I connected only one servo and drive it using the simple setGoalPosition() command from the Dynamixel2Arduino library.

While this is very straightfoward, I plan to use bulkWrite() when all three servos are connected.

Question here: does it make a difference if I daisy-chain them or if I connect them to the remaining XL-ports on the board? To distribute the power a bit on the board I would like to go with the second solution but I do not know if there are consequences…

And: yes, it really moves! :slight_smile:

3 Likes

Hello @WaldoPepper. I totally missed your post :frowning:

This is good to see you and your project going well.

You are the first person who does the RC controller with OpenCM 9.04. Very interesting.

  • The ROBOTIS actually shares user’s project through their SNS channel [Youtube, Facebook, Instagram and so on]. Maybe you can ask for it. They are eager to look for the power users like you.

Answering you, the all 3 pins TTL ports draw voltage from the VDD of the OpenCM 9.04 according to a block diagram in e-Manual, and the all channel are under control by the USART CH1, which means the packet the channel send is to be transmitted to all the TTL ports. Therefore, you can use the all ports to control the DYNAMIXEL regardless of daisy channing or not. Honestly, in my personal view, your approach (Separating the ports) might be good option to keep away the voltage drop (according to “KVL”).

Note: You can also use Sync Instruction instead of Bulk if you would like to find the sync option.

1 Like

@Yogurt_Man, thank you for the detailed reply. I have now distributed my three XL430’s on three ports and they are working fine (using BulkWrite() btw.).

With regard to sharing, I would be more than happy to do so when I’m finished, but there is one hurdle left I have to approach:

Since the Dynamixel rotates the thruster but the motor powering the thruster is controlled by a traditional R/C type ESC, I need to provide a PWM signal to the ESC. I plan for using the Adafruit PCA9685 via the OpenCM’s I2C port to keep servo connections simple (on the Adafruit board the servo connectors a neatly arranged).

The PCA9685 library seems to be compatible with the OpenCM 9.04 board (at least I was able to compile and run) I only have to solder the headers to the OpenCM to connect both. Since I am not the greatest solderer on earth, a task I have reserved for the weekend… :wink:

I used the PCA9685 board on several other projects (with Arduinos, Raspberries, Jetson Nanos) and it’s a nifty little device, e.g. it can draw the power for moving servos directly from a connected BEC-equipped ESC, like in pure R/C setups.

1 Like

Progress! :slight_smile: I got the Adafruit PCA9685 board running via I2C with my OpenCM 9.04 and now can control a mix of Dynamixel and traditional R/C servos:

image

It was quite easy to do since the necessary library is supported by the 9.04 and it works nicely:

The setup may look a bit intimidating cable-wise since on the bench a mix of 3.3V, 5V and 11.3V power sources has to be used. Eventually everything will be powered by a 11.3V LiPo and a BEC.

Next steps are: combine this with my azimut thruster setup & cleaning up the code so I can share it with confidence… :wink:

1 Like

Very impressive. Please share your project when completed. I will ask my friend in ROBOTIS to post your project on their Facebook and Instagram.