Shop OBEX P1 Docs P2 Docs Learn Events
Dynamixel AX-12+ Utility for finding or changing baud rates and ID numbers — Parallax Forums

Dynamixel AX-12+ Utility for finding or changing baud rates and ID numbers

Duane DegnDuane Degn Posts: 10,588
edited 2010-11-30 19:32 in Propeller 1
A couple of years ago, when I was first starting my adventures with the Propeller chip (and microcontrollers in general), I attempted to change the baud rate on a recently (at the time) acquired Dynamixel AX-12+ robot controller. I haven’t been able to communicate with it since.

A couple of months ago ratronic posted an his improved version of an object to communicate with AX-12+s. I thought it was high time to reclaim my incommunicado AX12.

I wrote a program that would ping the AX12 with each possible ID number at each possible baud rate. After a few minutes of churning through the numbers my trusty Propeller found both the ID number of my AX12 and its current baud settings (almost).

In preparing to share my little utility I decide to add a couple of features. It now not only pings an AX12 but it also verifies the register values are what they should be at the likely ID number and baud setting. I was finding I was getting successful pings with baud rates way off the actual values (by 400% sometimes). This is partly do to David’s (ratronic’s) short cut in checking for a successful ping (I’m not knocking David or short cuts). By checking register values this program double checks to make sure the ID numbers and baud rates are what the initial ping results would lead one to believe.

The program checks input to make sure they are valid options for the AX12s.

As mentioned in the title this object allows one to find unknown ID numbers and/or baud rate settings for Robotis’ Dynamixel AX-12+ controllers.

Is this worth putting in the OBEX? (I’m thinking not.)

I’ve left some debugging statements in the code (I’m tired of working on it for now). You might need to scroll up in the terminal window to find the output of some of the tests.

Hopefully this will help someone else who has an incommunicado AX12.

This does not communicate at 2M bps. I think if the baud register is set to zero the AX12's baud becomes 2,000,000 bps. I haven’t ever tried setting any of my AX12s to this baud and David’s object checks data to prevent it from happening but I’d think it’s possible. I think if an AX12 is set to 2M, it would require a special PASM program with a hard coded message to reset the AX12 so it would be usable with the Propeller again.

I don’t know of any communication objects that transmit at 2Mbps. Is there anything this fast? I know faster communication is possible with the Prop but I think this faster methods use multiple lines in parallel.

Thank you radtronic for a very useful object.

Duane

Here's the options in the main menu
************************** Main Menu **************************
Methods that attempt to find either ID numbers
or baud rates work better with only one AX-12+
controller connected.
Enter i to find the ID number of an AX-12+ controller.
(with a known baud rate)
 
Enter b to find the baud rate of and AX-12+ controller.
(with a known ID number)
 
Enter ? if both the ID number and the baud rate of the AX-12+ are unknown.
(This will search through all ID numbers at each baud rate.)
 
Enter c if you want to change the ID numbers of AX-12+ controllers.
(with a known baud rate)
 
Enter r if you want to change the baud rate of the AX-12+ to test.
(with known ID numbers)
 
Enter t if you want to check to make sure an AX-12+ has a certain
baud and ID number. (with known baud and ID numbers)
***************************************************************
 
AX12_Find_Change_ID_Baud_010 - Archive [Date 2010.11.30 Time 19.45].zip
 
 

Comments

  • hover1hover1 Posts: 1,929
    edited 2010-11-30 19:32
    Duane,

    By all means, upload to OBEX. If you don't , it will get buried in the forum, although the search engine is much better now.

    I will check out your code in about a month as I have some AX-12+ coming in to play with.

    Thanks for the code.

    Jim

    Duane Degn wrote: »
    A couple of years ago, when I was first starting my adventures with the Propeller chip (and microcontrollers in general), I attempted to change the baud rate on a recently (at the time) acquired Dynamixel AX-12+ robot controller. I haven’t been able to communicate with it since.

    A couple of months ago ratronic posted an his improved version of an object to communicate with AX-12+s. I thought it was high time to reclaim my incommunicado AX12.

    I wrote a program that would ping the AX12 with each possible ID number at each possible baud rate. After a few minutes of churning through the numbers my trusty Propeller found both the ID number of my AX12 and its current baud settings (almost).

    In preparing to share my little utility I decide to add a couple of features. It now not only pings an AX12 but it also verifies the register values are what they should be at the likely ID number and baud setting. I was finding I was getting successful pings with baud rates way off the actual values (by 400% sometimes). This is partly do to David’s (ratronic’s) short cut in checking for a successful ping (I’m not knocking David or short cuts). By checking register values this program double checks to make sure the ID numbers and baud rates are what the initial ping results would lead one to believe.

    The program checks input to make sure they are valid options for the AX12s.

    As mentioned in the title this object allows one to find unknown ID numbers and/or baud rate settings for Robotis’ Dynamixel AX-12+ controllers.

    Is this worth putting in the OBEX? (I’m thinking not.)

    I’ve left some debugging statements in the code (I’m tired of working on it for now). You might need to scroll up in the terminal window to find the output of some of the tests.

    Hopefully this will help someone else who has an incommunicado AX12.

    This does not communicate at 2M bps. I think if the baud register is set to zero the AX12's baud becomes 2,000,000 bps. I haven’t ever tried setting any of my AX12s to this baud and David’s object checks data to prevent it from happening but I’d think it’s possible. I think if an AX12 is set to 2M, it would require a special PASM program with a hard coded message to reset the AX12 so it would be usable with the Propeller again.

    I don’t know of any communication objects that transmit at 2Mbps. Is there anything this fast? I know faster communication is possible with the Prop but I think this faster methods use multiple lines in parallel.

    Thank you radtronic for a very useful object.

    Duane

    Here's the options in the main menu
    ************************** Main Menu **************************
    Methods that attempt to find either ID numbers
    or baud rates work better with only one AX-12+
    controller connected.
    Enter i to find the ID number of an AX-12+ controller.
    (with a known baud rate)
     
    Enter b to find the baud rate of and AX-12+ controller.
    (with a known ID number)
     
    Enter ? if both the ID number and the baud rate of the AX-12+ are unknown.
    (This will search through all ID numbers at each baud rate.)
     
    Enter c if you want to change the ID numbers of AX-12+ controllers.
    (with a known baud rate)
     
    Enter r if you want to change the baud rate of the AX-12+ to test.
    (with known ID numbers)
     
    Enter t if you want to check to make sure an AX-12+ has a certain
    baud and ID number. (with known baud and ID numbers)
    ***************************************************************
    
     
    AX12_Find_Change_ID_Baud_010 - Archive [Date 2010.11.30 Time 19.45].zip
     
     
Sign In or Register to comment.