Shop OBEX P1 Docs P2 Docs Learn Events
Interfacing the Propeller to a Bioloid Dynamixel AX-12+ — Parallax Forums

Interfacing the Propeller to a Bioloid Dynamixel AX-12+

Dual ExhaustDual Exhaust Posts: 15
edited 2008-01-20 00:58 in Propeller 1
I can not find the documentation for interfacing the Propeller 3.3v pins to the 5.0v Bioloid Dynamixel AX-12+ servos.

Any help would be appreciated.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
"It is not necessary to change. Survival is not mandatory."
- W. Edwards Deming

Comments

  • parts-man73parts-man73 Posts: 830
    edited 2007-11-21 21:11
    This thread http://forums.parallax.com/showthread.php?p=625758

    or this thread http://forums.parallax.com/showthread.php?p=653117 might be useful.

    Looks like inaki is the go-to guy on this subject.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Brian

    uController.com - home of SpinStudio

    PropNIC - Add ethernet ability to your Propeller!

    SD card Adapter
  • acy.stappacy.stapp Posts: 10
    edited 2007-11-21 21:26
    Dual Exhaust said...
    I can not find the documentation for interfacing the Propeller 3.3v pins to the 5.0v Bioloid Dynamixel AX-12+ servos.



    Any help would be appreciated.

    IIRC the atmel chip running the AX-12+ and the CM-5 is a 3.3v part. I would guess that you could drive them at 3.3V (but I could be wrong). I'll be trying it myself soon.
  • Mike GMike G Posts: 2,702
    edited 2008-01-19 05:30
    Hey all,

    I have been working on an AX-12 object and I finally made some headway. It was a bit tricky byte I got it working.

    I need to do some work on the receiver though. As is, I can't add any more instructions without messing up the bit timing. I welcome any comments or suggestions.
  • James LongJames Long Posts: 1,181
    edited 2008-01-19 14:10
    Mike G said...
    Hey all,

    I have been working on an AX-12 object and I finally made some headway. It was a bit tricky byte I got it working.

    I need to do some work on the receiver though. As is, I can't add any more instructions without messing up the bit timing. I welcome any comments or suggestions.
    Mike,

    I have a suggestion.....burger.gif

    When you get the AX-12 done, you can go ahead and write the object for the other Dynamixel servos.··· :-)

    I've looked to buying some and doing the interface, but never have gotten around to it.

    They are interfaced with RS485.

    James L

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    James L

    Partner/Designer
    Lil Brother LLC (SMT Assembly Services)
  • Mike GMike G Posts: 2,702
    edited 2008-01-19 14:39
    James, I was actually seeking help from the community to speed up my receiver code.

    But since you bring up this point, this object works with all the Dynamixels since the Dynamixels all use the same command structure. You'll simply need a serial to RS-485 converter check out Maxim and the Dyanmixel manuals.
  • James LongJames Long Posts: 1,181
    edited 2008-01-19 14:56
    Mike,

    I was joking, but I do appreciate the information.

    I didn't realize the command structure was the same for the rs232 and rs485 systems.

    If I get a chance, I'll look through your code and see if I can help.



    James L

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    James L

    Partner/Designer
    Lil Brother LLC (SMT Assembly Services)
  • Mike GMike G Posts: 2,702
    edited 2008-01-19 15:35
    The transmitter works pretty well. On the other, hand the receiver works but I have not come up with a way to determine the end of a Dynamixel response packet. I'm just using a big decrement counter. Unfortunately, when I add one more instruction it throws off the bit timing. I have a couple of ideas that I'll try later this afternoon.
  • John AbshierJohn Abshier Posts: 1,116
    edited 2008-01-19 16:20
    I don't have an AX-12 and have been trying to avoid assembly since a bad experience in a college course in 1973.· But here is a try.· I unrolled the read into 2 parts.· The first part reads the first 4 bytes leaving length in a variable.· The second part reads the rest.
  • John AbshierJohn Abshier Posts: 1,116
    edited 2008-01-19 16:31
    Missed a jump change

    receive_header test axmask,ina wc 'C is set if odd parity after AND
    if_c jmp #receive 'if C is set jump to receive

    should be

    receive_header test axmask,ina wc 'C is set if odd parity after AND
    if_c jmp #receive_header 'if C is set jump to receive
  • Mike GMike G Posts: 2,702
    edited 2008-01-20 00:58
    Thanks John

    I found an alternative method which works out nicely. It uses byte(4), length, in the response packet to get the remaining bytes of the packet. It only took 3 lines of assembly code and an extra long to do the trick.

    1/23/2008 - Oops had a bug.

    Post Edited (Mike G) : 1/24/2008 3:10:26 AM GMT
Sign In or Register to comment.