problem with one AX-12+

Bioloid robot kit from Korean company Robotis; CM5 controller block, AX12 servos..
8 postsPage 1 of 1
8 postsPage 1 of 1

problem with one AX-12+

Post by Johank » Wed Jan 02, 2013 4:00 pm

Post by Johank
Wed Jan 02, 2013 4:00 pm

It looks that i have some difficults with one of my AX-12+ servo.
When starting roboplus manager i notice that the servo with ID.001 is UNKNOWN while others are ok and in the list 'ACTUATOR'. How can i fix this problem?
[/img]
It looks that i have some difficults with one of my AX-12+ servo.
When starting roboplus manager i notice that the servo with ID.001 is UNKNOWN while others are ok and in the list 'ACTUATOR'. How can i fix this problem?
[/img]
Johank offline
Newbie
Newbie
Posts: 4
Joined: Thu Sep 02, 2010 8:25 pm

Post by PedroR » Thu Jan 03, 2013 11:44 am

Post by PedroR
Thu Jan 03, 2013 11:44 am

Try running the Dynamixel Self Check List available here http://www.robotis.com/xe/?mid=SelfChec ... ory=143387

It should guide you through troubleshooting the servo and all possible recovery steps.

Regards
Pedro.
Try running the Dynamixel Self Check List available here http://www.robotis.com/xe/?mid=SelfChec ... ory=143387

It should guide you through troubleshooting the servo and all possible recovery steps.

Regards
Pedro.
PedroR offline
Savvy Roboteer
Savvy Roboteer
Posts: 1199
Joined: Mon Jun 16, 2008 11:07 pm

problem with one AX-12+

Post by Johank » Thu Jan 03, 2013 8:22 pm

Post by Johank
Thu Jan 03, 2013 8:22 pm

I tried the checklist.
The dynamixel wizard cannot fiend the actuator.
I did some tests with a small program task.
I was able to read for instance the position, but when tried to let the actuator run it doesn't do anything.
So i'm able to communicate but when try moveing it is dead. I'm able to turn it manually. I can't see any smoke or heat problems.

Johan
I tried the checklist.
The dynamixel wizard cannot fiend the actuator.
I did some tests with a small program task.
I was able to read for instance the position, but when tried to let the actuator run it doesn't do anything.
So i'm able to communicate but when try moveing it is dead. I'm able to turn it manually. I can't see any smoke or heat problems.

Johan
Johank offline
Newbie
Newbie
Posts: 4
Joined: Thu Sep 02, 2010 8:25 pm

Post by PedroR » Fri Jan 04, 2013 11:27 am

Post by PedroR
Fri Jan 04, 2013 11:27 am

Hi Johank

If the servo fails one of the tests on the check list then it is likely damaged.

Regarding the test with the Dynamixel Wizard, for the Dynamixel wizard to work correctly you need to connect the servo directly to the USB2Dynamixel and use a power supply such as the SMPS2Dynamixel (it shouldn't be connected to the microcontroller). Additionally the side switch on the USB2Dyn must be set to TTL in this case.

I'm not sure if you did that. If you don't have a USB2Dyn then you won't be able to run the Firmware restore Wizard which is one of the recommended steps of the Dynamixel Self Check list.


If you don't hear any clicks when moving it by hand and you can move it freely when it's disconnected then you most likely have a problem with the electronics (burnt MOSFET maybe) or motor.

Regards
Pedro.
Hi Johank

If the servo fails one of the tests on the check list then it is likely damaged.

Regarding the test with the Dynamixel Wizard, for the Dynamixel wizard to work correctly you need to connect the servo directly to the USB2Dynamixel and use a power supply such as the SMPS2Dynamixel (it shouldn't be connected to the microcontroller). Additionally the side switch on the USB2Dyn must be set to TTL in this case.

I'm not sure if you did that. If you don't have a USB2Dyn then you won't be able to run the Firmware restore Wizard which is one of the recommended steps of the Dynamixel Self Check list.


If you don't hear any clicks when moving it by hand and you can move it freely when it's disconnected then you most likely have a problem with the electronics (burnt MOSFET maybe) or motor.

Regards
Pedro.
PedroR offline
Savvy Roboteer
Savvy Roboteer
Posts: 1199
Joined: Mon Jun 16, 2008 11:07 pm

problem with one AX-12+

Post by Johank » Fri Jan 04, 2013 4:32 pm

Post by Johank
Fri Jan 04, 2013 4:32 pm

Pedro,

I read the first 8 bytes of the eprom the output is:


{[CM-510:1.1971]}
{[PC:57142(BPS)][DXL:1000000(BPS)]}
{
[001:292(UNKWN)][016:012(AX012)]
}
{[DXL:002(PCS)]}
12
255 <== Should this not be '0'?
24
1
1
0
0
0

This one works:
12
0
24
16
1
0
0
0

Can the eeprom be reset with the Dynamixel wizard?

Johan
Pedro,

I read the first 8 bytes of the eprom the output is:


{[CM-510:1.1971]}
{[PC:57142(BPS)][DXL:1000000(BPS)]}
{
[001:292(UNKWN)][016:012(AX012)]
}
{[DXL:002(PCS)]}
12
255 <== Should this not be '0'?
24
1
1
0
0
0

This one works:
12
0
24
16
1
0
0
0

Can the eeprom be reset with the Dynamixel wizard?

Johan
Johank offline
Newbie
Newbie
Posts: 4
Joined: Thu Sep 02, 2010 8:25 pm

Post by Fritzoid » Fri Jan 04, 2013 7:51 pm

Post by Fritzoid
Fri Jan 04, 2013 7:51 pm

Hi Johank,

You are right that byte two of the EEPROM should be 0x00 not 0xFF. Technically this is a read-only data byte and should not be over-writable. This makes me suspect that the 0xFF represents an EEPROM read failure which would indicate a hardware error. The next step is to try a "digital reset" of the servo.

Digital reset is a servo command (code 0x07) that causes the EEPROM to be initialized to default values on the next power-up of the servo. As far as I know there is no ability to issue this command in either Dynamixel Wizard or RoboPlus Manage mode. So unfortunately you have to use terminal mode or 3rd party software to issue the command.

We will be using Manage mode in the controller to perform the reset operation. From your previous post it looks like you already know how to use terminal mode so I'll skip the tutorial on that.

First, DISCONNECT ALL THE SERVOS FROM THE CONTROLLER!!!!!

Now, connect JUST the servo in question to the controller.

Start-up a terminal session between the PC and the controller. You can use RoboPlus or your favorite terminal emulation program.

Turn on the controller.

Select "Manage mode" either by pressing the mode button (if necessary) and start or through the terminal typing v (enter) then M (enter).

The user prompt should read {[200]}.

Switch to problem servo with CID 1 (enter) command.

The user prompt should now read {[001]}.

Issue DRESET command.

Now power off the servo and power it back on (disconnect and reconnect the cable). The LED will blink three times if a reset is occurring.

Assuming the reset happens, restart the controller to see if the servo can be found.

I'm not sure if the default ID will be 0 or 1, if it's wrong it can be changed using the ID command in terminal mode or RoboPlus Manage.

If all goes well just reconnect the other servos and breath a sigh of relief!

Otherwise report back what problem(s) you've encountered and I'll try to help out again.

Good luck!
Hi Johank,

You are right that byte two of the EEPROM should be 0x00 not 0xFF. Technically this is a read-only data byte and should not be over-writable. This makes me suspect that the 0xFF represents an EEPROM read failure which would indicate a hardware error. The next step is to try a "digital reset" of the servo.

Digital reset is a servo command (code 0x07) that causes the EEPROM to be initialized to default values on the next power-up of the servo. As far as I know there is no ability to issue this command in either Dynamixel Wizard or RoboPlus Manage mode. So unfortunately you have to use terminal mode or 3rd party software to issue the command.

We will be using Manage mode in the controller to perform the reset operation. From your previous post it looks like you already know how to use terminal mode so I'll skip the tutorial on that.

First, DISCONNECT ALL THE SERVOS FROM THE CONTROLLER!!!!!

Now, connect JUST the servo in question to the controller.

Start-up a terminal session between the PC and the controller. You can use RoboPlus or your favorite terminal emulation program.

Turn on the controller.

Select "Manage mode" either by pressing the mode button (if necessary) and start or through the terminal typing v (enter) then M (enter).

The user prompt should read {[200]}.

Switch to problem servo with CID 1 (enter) command.

The user prompt should now read {[001]}.

Issue DRESET command.

Now power off the servo and power it back on (disconnect and reconnect the cable). The LED will blink three times if a reset is occurring.

Assuming the reset happens, restart the controller to see if the servo can be found.

I'm not sure if the default ID will be 0 or 1, if it's wrong it can be changed using the ID command in terminal mode or RoboPlus Manage.

If all goes well just reconnect the other servos and breath a sigh of relief!

Otherwise report back what problem(s) you've encountered and I'll try to help out again.

Good luck!
Fritzoid offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 331
Joined: Mon Dec 18, 2006 1:00 am

problem with one AX-12+

Post by Johank » Mon Jan 07, 2013 9:39 pm

Post by Johank
Mon Jan 07, 2013 9:39 pm

Fritzoid,

Thanks for the procedure. The reset works and the manager now recognized the actuator again as AX-12+.
I tried with the simple programtask 'crossinggate' and it works.
Thanks for the help!
Is it a wize idea to buy the SMPS2Dynamixel power supply for future things? Or is this only neede when create java programs?

Johan
Fritzoid,

Thanks for the procedure. The reset works and the manager now recognized the actuator again as AX-12+.
I tried with the simple programtask 'crossinggate' and it works.
Thanks for the help!
Is it a wize idea to buy the SMPS2Dynamixel power supply for future things? Or is this only neede when create java programs?

Johan
Johank offline
Newbie
Newbie
Posts: 4
Joined: Thu Sep 02, 2010 8:25 pm

Post by Fritzoid » Tue Jan 08, 2013 3:38 pm

Post by Fritzoid
Tue Jan 08, 2013 3:38 pm

Good work Johank!

As for powering a single dynamixel for this kind of work, I use a nine-volt battery. Just parallel splice a battery connector into one of your spare dynamixel cables. It will provide enough power to drive the processor and move the servo for a few minutes. The SPSM2Dynamixel is necessary only if you need to run multiple servos on a regular basis.
Good work Johank!

As for powering a single dynamixel for this kind of work, I use a nine-volt battery. Just parallel splice a battery connector into one of your spare dynamixel cables. It will provide enough power to drive the processor and move the servo for a few minutes. The SPSM2Dynamixel is necessary only if you need to run multiple servos on a regular basis.
Fritzoid offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 331
Joined: Mon Dec 18, 2006 1:00 am


8 postsPage 1 of 1
8 postsPage 1 of 1