View Full Version : dynamixel servors AX-12

04-27-2012, 07:46 PM
Hi, I'm having trouble taking to the ax-12 motors. I have a couple of questions, hopefully someone can answer for me.

I'm trying to use a pic18f27j13 to to send the ttl serial signals to the motors, however the motors doesn't seem to be receiving my signals correctly or at all. Under the manual, page7. It says to hook up the TXD signal to a 74HC126(buffer) and then there is a 5v to 10kohm resistor. Is that 5v and pull resistor necessary if I am sending the signal through the pic already? The pic's EUART signals are at 3.2v.

im applying a 12v to the VDD. and when I turn on the power, the LED only blinks once, is that a bad sign? Am i using too much voltage?

04-27-2012, 09:07 PM
A single blink of the LED at initial powering is perfectly normal. If it starts flashing continuously, then you have a problem (usually a high temperature and/or torque overload). The Bioloid Premium kit ships with a 3S LiPo battery (11.1V nominal, 12.6V fully charged) and a 12V SMPS, so 12V is fine to use (if not outright preferred).

The 'TTL' signal level of the AX-12 is 0V and 5V for the two logical values, so you must translate the 0V to 3.2V UART of the pic to the 0V to 5V of the AX-12. The AX-12 is also a half-duplex UART, so the two buffers and single inverter are also necessary to select between transmitting and receiving instead of just being very useful in safely and easily performing the logic level translation.

If you copy the circuit as detailed in the AX-12 manual, you should be fine. You will need both the RXD and TXD pins of the UART and a third pin to select the data direction (so you only receive data when you want to and only transmit when you want to). I am thinking the buffer and inverter should be run off the 3.2V along with the PIC, but that may not be correct (does not really matter if the PIC has 5V-tolerant pins, but could cause problems if they are not and you power the buffer off 5V).

There is a way to perform the conversion from full-duplex to half-duplex on an AVR without any buffers, but I am completely unfamiliar with PIC's and whether the pins are 5V tolerant and how the internals of the UART operate. With the arbotix and similar systems running at 5V, basically they short the RXD and TXD pins of the UART together with the DXL_TTL line with a 10kOhm pull-up resistor to 5V. When transmitting, they enable the TXD functions of the UART inside the microcontroller while simultaneously disabling the RXD functions (ignores input and leaves RXD pin in the tri-state/Hi-Z mode - no influence on the pin state). When receiving, the TXD functions are disabled (set to tri-state/Hi-Z as to not influence the pin state) and the RXD functions are re-enabled to receive any data transmitted.

04-27-2012, 10:32 PM
Thanks, alot. That does help, the pic pins are 5v tolerant. And my UART1 port comes as a full-duplex, which i can modify internally into a half-duplex. So all I would have to do theoretically is tie the output from the UART1pot to 5v through a 10km resistor correct? Also can the 10kohm resistor vary a bit? I don't have an exact 10kom, but I do have two 4.6kohm(9.2kohm) and a 11kohm.

Also I'm having a second problem. While testing the motors, I got it to turn for a short while but now whenver I power the motors on, the LED always stays on and no commands would move it. Any suggestions?

I noticed with a volt meter the motors were getting about 69 ma from a 10v generator.