
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
Has anyone tested the newest update with the AX servos? If I edit AutoPosition the AX servos stop working. If I unplug the EZB4 and then plug it in again then the AX servos work fine. It would be very hard to set up poses with the servos no working.
no, it seems that the dynamixel update was pushed farther back or it was just too much work to fix for the time being
i've stopped working with my bot so I can't really test if they work any better or if they've gotten worse
I tested a few AX servos and they work fine until you open the AutoPosition window. Then they stop working until you kill power to the EZ-B and start it back up. So you can't pose anything with AX servos. Now I need to make my Ax servos work with my CM-5s again.
Hey guys,
The latest release of ARC is a fix for serial/Dynamixel/i2C receive functions.
Dynamixel write functions have always worked, but the only irregular thing is that dynamixels are placed in Write only mode by ARC. Luckily @mtiberia wrote a reset script to place the dynamixels back to their default modes to work with another controller such as the CM-530 again. I have verified it works.
Using a 3S (3 cells in series) LiPo is recommended to power AX-12's to get solid communication and torque.
I just tested the AX12 servos with AutoPosition. When you edit poses in AutoPosition the AX12 sevos stop working until you shut off power to your EZ-B and then power it up again. This happens every time.
@mtiberia
Any chance you will rewrite your EZB scripts to use the new UART Binary script commands?
I may end up using them and it would be great to see how they would look with the new script commands.
I really wish the issue of ARC using the AX servo Torque setting instead of the AX servo speed setting were fixed.
I was also wondering how you have your AX servos wired to the EZ-B. It might be nice to get data back from the AX Servos. After of course using the Data return Resetting script.
We continually run into a problem with the Dynamixel servos as they seem to lock up when commands are sent too quickly - which is an issue with the servos, not the ez-b or ARC. We are hoping they release a fix, otherwise we are limited to what we can do with them.
To solve the issue, I have attempted disabling the response packet feature. I have also attempted to remove torque control and torque errors. There have not been any positive results from our attempts. So far, the only hack I have been able to get some positive results from is increasing the "Delay" in the auto position, which slows down the servo position transmission - but also slows your robot to a crawl.
I've been away but I'm back at it.
I've been writing a new script for the Dynamixels. It will find how many servos you have connected and their ID 's. I have discovered away around the bug regarding EZ B not receiving certain integers by using another bug in the EZ-B software, but its a nice bug.
You will also be able to capture motion that you have demonstrated to the servos. DJ there is a way around the traffic jamb of communicating with the servos. You can send position and speed instructions to all the servos at one time, it uses the " SYNC WRITE " command.
Hopefully I'll be able to post the script and a demonstration tomorrow. Those nasty bugs have a way of biting you in the butt ! I will start a new thread.