PDA

View Full Version : MX28 Setup with AX12 on the same USB2Dynamixel



dshinsel
01-10-2013, 01:15 AM
First, a couple of handy hints for anyone that gets an MX28:
Hint #1: The MX28 ships at 57,600 baud, and the "BestTech Dynamixel Configurator" (very handy!) "Scan Start" does NOT WORK. You must set the Configurator to ServoID 1, 57600 baud, for it to work with the servo.
Hint #2: If you have a Robot with several servos, don't set any of them to servoID 1. That way, you can add new servos, and just use the Configurator to change the ID to the next available number.

Now, a few questions:

1. I just got some MX28 servos, and want to run them with some AX12 servos.
AX12 ships configured for 1,000,000 baud, and MX28 ships at 57,600 baud.
I assume both have to be set to the same baud rate?
(I may run separate eventually anyway, since the MX28 can talk at up to 3,000,000 baud) :cool:

2. I have some older AX12+ servos. The documentation says to run at <10v. But, newer docs say 12v is OK...
did they update the AX12+, or have they just loosened up the spec? Is it OK to run these older AX12+ servos at
12-13v?

3. I have an older USB2Dynamixel. Will it drive an MX28 at 3,000,000?
I see there is a version 1 and version 2 of USB2Dynamixel. Does anyone know the difference (and how you
can tell which you have)?

Thanks!

tician
01-10-2013, 07:27 AM
First, a couple of handy hints for anyone that gets an MX28:
Hint #1: The MX28 ships at 57,600 baud, and the "BestTech Dynamixel Configurator" (very handy!) "Scan Start" does NOT WORK. You must set the Configurator to ServoID 1, 576000 baud, for it to work with the servo.
Hint #2: If you have a Robot with several servos, don't set any of them to servoID 1. That way, you can add new servos, and just use the Configurator to change the ID to the next available number.

Indeed. Reserving ID==1 is also a pretty good idea in case they automatically reset their IDs during an under-volt condition - fewer conflicts if it does occur.



1. I just got some MX28 servos, and want to run them with some AX12 servos.
AX12 ships configured for 1,000,000 baud, and MX28 ships at 57,600 baud.
I assume both have to be set to the same baud rate?
(I may run separate eventually anyway, since the MX28 can talk at up to 3,000,000 baud) :cool:

Yes, if you want them together on the same bus, you will need to have them run at the same baud rate, otherwise you run the risk of one or more interpreting a packet at one baud rate as a completely valid but very different packet at another baud rate (or just noise/garbage taking processing time away from controlling the motor).



2. I have some older AX12+ servos. The documentation says to run at <10v. But, newer docs say 12v is OK...
did they update the AX12+, or have they just loosened up the spec? Is it OK to run these older AX12+ servos at
12-13v?
The AX-12+ work fine at 12V (Bioloid kits have always shipped with a 12V regulated power supply - even the older 9.6V NiMH kits) or the 11.1V nominal of a LiPo, but they did release an updated version of the AX-12 called the AX-12A. It has a new exterior and a new gearset, but they may have updated the electronics as well - not sure. You probably don't want to apply more than 12.3V (that is the highest I recall seeing from the 12V SMPS with which their kits ship).


3. I have an older USB2Dynamixel. Will it drive an MX28 at 3,000,000?
I see there is a version 1 and version 2 of USB2Dynamixel. Does anyone know the difference (and how you can tell which you have)?
The USB2Dynamixel uses the very popular FT232RL USBtoUART IC, and the v1.04 and v2.10 datasheets both list its maximum data rate as 3Mbps at 'ttl' levels, so it should be capable of at least 2Mbps. I don't really see any reason why it could not get to 3Mbps. I am not so sure the RS-485 transceiver can handle that rate and I do not know about the fuil-duplex to half-duplex conversion ICs for the plain 'ttl' dynamixel bus. I was unaware their were two different versions of the USB2Dynamixel (only knew about their upgrades to their zigbee modules and hopefully some new servos smaller than the AX-12).

jwatte
01-10-2013, 10:58 AM
otherwise you run the risk of one or more interpreting a packet at one baud rate as a completely valid but very different packet at another baud rate

This is *highly* unlikely. The start byte is 0xff, and if the baud rates are different by more than, say, 10%, the lowest bit of that start byte will be a 0 (for lower receive rate,) or the next start bit will be considered a stop bit (and cause a framing error) so it won't match.
Maybe it will generate an interrupt that takes some CPU, but so will a properly formatted packet intended for that other servo. In fact, framing errors may be set to not generate interrupts and be silently ignored, so if you're worried about CPU load on the controller, using a different baud rate for each servo might actually be beneficial from that point of view. Clearly insane from every other point of view, though :-D

dshinsel
01-13-2013, 11:59 AM
Tician and Jwatte, Thanks for the info!
I was able to successfully get my new MX28 working yesterday. As you suggested, both on the same network actually worked (for test purposes only!). The Dynamixel Configurator was able to talk to the MX28 at 57,600, and by changing baud to 1,000,000, it was able to control the AX12+ servos. This is nice because it allowed me do just "drop in" an MX28, then use the Configurator to change the Servo ID and baud to 1,000,000, and now all the servos just work nicely together!

Since my power supply is a 12v battery (and get up to over 13v during charging), I put a few heavy diodes in series to drop the voltage slightly between the MX28 (which is closest in the wire chain to the battery) and the AX12 servos.

In case you are wondering, this is for my robot's arm. I wanted the MX28 to give more power in the elbow, but don't need as much in the wrist, etc. so AX12 are OK.

P.S. If you want to see what I am up to, my website is www.dshinsel.com (http://www.dshinsel.com)