First Time Servo Setup (with the Dynamixel Wizard)
Changing some of the internal properties of the servos with the Dynamixel Wizard to better suit use on our robots.
When taken straight out of the box, Dynamixel servos have some internal settings that are not ideal for our general use-case. These settings can be changed with the Dynamixel Wizard, which allows you to edit the internal properties of the Dynamixel servos and command rudimentary movements. This makes it very useful for low-level debugging.
Download the Dynamixel Wizard 2.0 from the Robotis eManual page
Robotis has an eManual for the Wizard, which includes download links and general instructions on how to use it. This part of the guide will only cover the information necessary to change what needs to be changed to get a servo up and running.
Setting up your workspace
To begin, ensure that you have the following items:
Version 2.0 of the Wizard installed on your computer
A micro-B USB cable
SMPS 12V 5A PS-10 power supply (or really any power supply that can connect into the motor shield)
A microcontroller is not required for this process and can actually interfere, so unplug it from whatever servos you are trying to connect to the Dynamixel Wizard.
Plug the servos into one port of the motor shield, and the U2D2 converter into the other port. Then connect the motor shield to power and the U2D2 to your computer. A typical setup is shown below. Then, open up the Dynamixel Wizard.
You can chain multiple servos together and access them all through the Wizard at once. This means you only need to use one port of the motor shield for the servos at a time. This is not recommended for first time setup, as the servos will all have the same ID and the software will get confused.
If the Wizard has trouble finding your servo, you may also want to limit the COM ports that it searches. If you aren't sure which port corresponds to the U2D2, check your Device Manager (in Windows). Then, make sure you check the COM port that corresponds to your U2D2 is checked within the Wizard.
Finding servos in the Dynamixel Wizard
When you open Version 2.0 of the Dynamixel Wizard, you'll see a window similar to that shown above. To do anything with our servos, you need to Scan to find them. But first, you need to change the scan settings so that it will actually be looking in the right place for them, so select the Options icon to open the scan settings.
Upon opening Options, the scan settings will be open by default. The only thing you may need to change here is the baudrate(s) that you're scanning. A factory-default servo will be set to operate at 57600 bps, while we generally operate our servos at 1000000 bps. If you're unsure if the servo is brand new or not, you can just select both options, then press OK.
From here, you can press the Scan button. If everything is set up right, the Wizard should find the servo fairly quickly, and display the information on the left-hand side. If it doesn't seem to find it on either baudrate, a common mistake could be having several brand-new servos connected at once. For first-time setup, each servo needs to be done one at a time, as they will all have the same internal ID and the software will not know how to manage multiple identical IDs.
Once you have found the servo(s) you're scanning for, you can press 'Skip' to stop the scan early.
Basic navigation of the servo control menu
Once the servo is connected, you can edit different address values to change the properties of the servo. You can also move the servo, factory reset it, or reboot it from here.
The Robotis eManual for the specific servo you are using will have more information on what each address in the Dynamizel Wizard menu does. This section only covers the ones that absolutely need to be changed for the servos to work as intended with NeuroMINT-specific software.
To move the servo, you first need to enable torque on the upper right hand side. From there, you can use the dial to move the servo to different positions. It will even give you a green line to show you the progress of the motion. This can be a great way to check if the servo is even capable of moving in its present setup.
Address values besides position cannot be edited when torque is enabled
Address values to change
3 - ID
This is the internal ID of the servo. By default, it is set to 1. Our pre-written Arduino programs will begin looking for servos at 0. You can number your servos sequentially as you see fit for your purpose. Just ensure that none of the servos in your setup have the same IDs as each other. If robot motion is erratic but the Arduino code seems to be working fine, this a common cause.
4 - Baud Rate
As mentioned previously, the lab generally runs our servos at 1 million bps, so change this value to 1000000.
5 - Return Delay Time
Rapid read-write loops may become unstable due to minute changes in signal timing or electrical noise. To safeguard against these issues, the servos has a built-in 500 microsecond delay between registering and executing commands. This is not a long time and it can make the servo operate more reliably. However, if you have 20 servos that you are updating in a loop, the 500 microsecond delays for each command will add up to 10 milliseconds, which is a long delay for a control loop. Reading each servo's position after each command will add another 10 milliseconds per loop, resulting in 20 milliseconds of just waiting between every control loop. This delay can destabilize an otherwise stable system.
To reduce control loop "latency" as much as possible and improve the postural stability of your robot, I suggest setting the Return Delay Time to as small a value as possible. This is especially necessary if your robot has many servos. If it does not, then you can probably leave this setting alone.
17 - Alarm LED
This controls for which error codes the red LED on the servo will turn on. By default, this is set to 36 - overheat and overload. Overload occurs when the servo is unable to achieve the commanded position. As we often push our servos to the limit and overload them, I generally turn off the overload indication, changing the number to 4.
18 - Shutdown
This determines which error code will cause the servo to shut down. Again, as the servos are often in situations where they cannot precisely achieve their commanded position, it's important to turn the overload shutdown off. If your robot suddenly stops responding during run time, this could be a simple reason why.
From here, the servos are ready to control with other software. You can shut down the Dynamixel Wizard.
Some EEPROM values can only be changed when torque is disabled.
Last updated