
Sudo
PLEASE NOTE: THIS GUIDE IS OUTDATED. BADLY. (remind me later to fix this and spiff it up a bit, please)
So, you finally have your EZ-B v4. You love it already, and you're ready to hook this baby up to some sort of Dynamixel powered creation. You go to plug everything in, and - wait. You have no idea how to set those Dynamixels up.
Well, I do, and I'll show you how.
SECTION 1: GETTING TO KNOW DYNAMIXELS
Dynamixels are intelligent servos that can track not only position, but temperature, speed, and load. The servo can automagically shut itself of incase of a failure. These servos are also incredibly strong. But there's one feature in particular that is useful, but at the same time a little hard to wrap your head around. In this section, we will cover daisy chaining and other features of the AX-12A Dynamixel; however, most of the servos in the Dynamixel family work exactly alike, so this guide can help you with most models.
On the back of all of your Dynamixels, you will notice a couple things. A place for a bolt, a light, two wire ports, and the ID. Lets go over all of them so you know what they do:
Light - Blinks once when turning on. If the light is flashing, there is a failure of some sort.
Screw hole - Allows you to attach the Dynamixel to a bracket.
Wire ports - Allows you to connect to other Dynamixels, in a long strand of servos, both to and from other Dynamixels. This means both ports work the same way, which means it doesn't matter which side is plugged in. (see image below)
ID - What the EZ-B and ARC address the Dynamixel as.
PART 2: CONNECTING YOUR DYNAMIXELS TO THE EZ-B
All Dynamixels must plug into port D5 in order to properly work. This means that all of your Dynamixels must plug into one port. If you have more than one strand of connectable Dynamixels, you will have to use a Dynamixel splitter hub, like this one here:
You can either run a cable to the EZ-B via a power base or via the powered splitter. I advise that you use only one, as using both at once can brown out the EZ-B.
Q: So, now that that's done, what power supply do I use? Mains or a battery pack?
A: Both will work just fine. Just make sure you have an adequate power supply at around 10v.
"But wait!" you scream. "Dynamixels can run at 9v-12v! Why 10v?"
Because voltage is gradually lost over time depending on how many servos you're running at once, as well as when the EZ-B is powered on. The more servos you have, the higher you should up your voltage to get a steady 10v overall.
So, if you have power running to the EZ-B, Dynamixels set up to port D5 (as well as the optional splitter) you should have something resembling this:
Now that you're powered on, lets move into ARC and get your Dynamixels running.
PART 3: OPERATING THE DYNAMIXELS WITH ARC
Connect to your EZ-B as usual (We won't be covering connections in this guide). Bring up a servo control panel and go to the servo configuration screen as shown below.
Click the Dynamixel box and scroll down until you see the ID of the Dynamixel you want to move (the ID on the back of the servo). In this demonstration, we'll be selecting Dynamixel AX18.
Select it and save the configuration. Congrats, you just set up your first Dynamixel in ARC! It should operate just like a normal servo. This applies to all servo control functions.
PART 4 (EXTRA): ASSIGNING A NEW ID TO BLANK SERVOS
When you buy a Dynamixel that doesn't come in the kit, the ID sticker will sometimes be blank, which means it hasn't be assigned a "real" ID. However, a tool in ARC can give Dynamixels a new ID.
First, open up the Dynamixel Config. control in ARC. You should see something similar to this:
All blank servos are assigned ID 1. If you have a dynamixel with the ID 1 already, remove it before you proceed. Simply choose the new ID you want (in this case, AX18) and press execute. ARC will assign it a new ID. That's it, you're done! You can also write the ID on the blank tag if so desired.
GUIDE LAST UPDATED: 12/9/2014
Hmmm... I understand you guys are seriously frustrate and want to abandon ship... However, it's kind of like trading in your Ferrari for a Volkswagen just because the A/C don't work... The robot world is huge... dynamixel servos are but a small part of it... I have faith that DJ will have a fix for this...
It would be okay if using Dynamixels with the EZ-B made it incompatible with other methods of controlling dynamixels, if it worked. But it doesn't, and that's what's making people so mad. I really hope this is fixed soon, as you can see the problems have basically killed off the small Dynamixel community here. I'm hoping to find my EZ-B a good home before I buy my new controller. However, if something is done I'll try the EZ-B again later. Right now though, it has just been a huge frustration for me since I have less and less time to work with it.
@Richard
Don't be too harsh on V-dubs, I'd never get rid of my little slug bug
Sorry Rich but I have to disagree.
The UART is a very basic and universal way of communicating between devices. If you take the basic arduino that would represent your VW bug for example you are able to send data back and forth between different computers or devices , doesn't matter if its Windows, Apple or Linux. Its the universal language of machines if you want to extend the analogy.
If EZ B had a working UART everyone with dynamixels or arduino or any other microcontroller would be able to write their own EZ- script and communicate with the device.
DJ shouldn't have advertised working UARTs on his controller if they couldn't be used.
mtiberia
i think its RICHARD and not RICH
@Sudo and @mtiberia ... well at any rate I hope you guys stick around... you are our dynamixel gurus. Both of you have a lot to contribute to the forum... As I mentioned I do understand your frustration, however...
Cheers Richard
WHAT! The Uart ports dont work properly? Is this a problem for just dynamixels or are there other problems with the Uart operating other things that I missed? eek
Sorry Dave
If you try to send or receive unsigned integers 34, 40 or 92 , EZ script will stop and show an error. Basically you won't be able to communicate with any device using the UART if those integers show up in the RX/TX the EZ-B crashes.
Its a major issue if you want to communicate with other devices.
OK, not really understanding what that is. How would this effect sending serial commands for speed and position control to a Kangaroo x2 / Sabertooth and reading the speed and position back to EZB? I dont send the commands in binary numbers. I send a command like this:
uartWrite(1, 0, "2, p60 s2000", 0x0d)
Well I guess the 0x0d is binary. Would the returning info lock up the EZB?