Dynamixel UART To Half-Duplex Circuit

To control the Dynamixel actuators, the main controller needs to convert its UART signals to the half duplex type. I use the circuit in the schematic as shown below.

Hope that helps Gertlex! :)

4 comments on “Dynamixel UART To Half-Duplex Circuit

  1. How does this work? Where does the ENRX and ENTX connect to? I’ve got TX and RX connected to the beaglebone via the Logic Level converter, and the AX connected to my Dynamixal AX-12; but can’t work out where the others are going. I have a slight complication in that I’m using 74HC125 chip rather then the 74126 but I’m using an inverter (CD4069UB) to invert the signals.

    • rjlowerr on said:

      ENRX and ENTX are just two more outputs from your controller. They enable the RX and TX logic.

      Using a 74HC125 is fine. The logic for the enable outputs will just need to be reversed in software.

  2. I worked out from your python code that you are using 2 gpio’s for the ENTX and ENRX.. I think I only need one as I’m using a similar circuit as this one (http://www.servomagazine.com/uploads/issue_downloads/Unwinding_the_AX12.pdf)

    I have another quick question, I notice you’re using 115200 baud rate, but it’s not possible to set the Dynamixal AX-12 with the same baud rate.. what Baud are you using? I tried with 117647 but it doesn’t appear to be working correctly..

    while 1:
    result, value = readword(0×01, 36)
    print ‘result=’ + repr(result)
    print ‘value=’ + repr(value)
    if result == 1:
    #print value
    writeword(0×02, 30, value)
    #time.sleep(.1)

    I’m getting result=-2 and value=0

    Where do you think I may be going wrong here? I can see send and replies using the saelae logic analyser

    send: 0xFF 0xFF 0×01 0×04 0×02 0×24 0×02 0xD2
    reply: 0xFF 0xFF 0×01 0×04 0×00 0×03 0×03 0xF4

    These are being joined successfully onto the 1wire dynamixal io line and separated into TX and RX on the beaglebone..

    • Gertlex on said:

      An advantage of using 2 gpios is that you need less board space by virtue of not needing the inverter. Since tri-state buffers come 4/package, you could supposedly use one of the spare buffers to do the inversion. For whatever reason, I failed to succeed at doing this, and wanting minimal space taken up on my perfboard, and having plenty of spare GPIO pins, I got Rlowerr to share this :).

      The hypothetical single-IC, single input approach diagrammed here: http://www.societyofrobots.com/robotforum/index.php?topic=10732.msg113307#msg113307

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>