I’m working on interfacing the Dynamixel AX-12 servos with the Wixel, as well as interfacing the Wixel with the Arbotix Commander controller.
The Commander part was easy. I documented the hack for this on another forum, here.
The part that’s tripping me up is the AX-12 + Wixel. I’ve previously used the AX-12 successfully with the Axon board, with the necessary tristate buffer circuit, and the Webbotlib libraries.
With the Wixel, I’m adapting the Wireless Serial app. I’m using a friend’s standalone AX-12 library, written for AVRs. I’ve converted it to be SDCC compatible (everything compiles fine).
The main thing I’m doing different is that the tristate buffer is being controlled with two direction pins, rather than one (with an inverter IC being used). This just means toggling two pins in software.
Here’s a pic of the board:
The other little board on there is the Sparkfun Level Converter to go from 3.3V to 5V. for RX and TX from the Wixel. I’ve found that the 3.3V high from the direction pin is enough to toggle the tristate buffers. Board features a 5V switching regulator, and headers for a either a 12V wall power supply, or a Lipo + battery monitor.
So the actual problem:
As yet, I’ve not gotten the servos to respond. I’ve hooked up the board to my computer, and I can verify that the Wixel is sending the correct packets at the correct baud rate, and that the packets are making in and out of the tristate buffer properly. I’ve gotten the same result rebuilding the circuit on a breadboard, too. Alas, when I hook up the servos, no luck. (I know I have the servo ID correct, too) Has anyone else succeeded with interfacing these servos to the Wixel?
I have two tests in mind to do next: (1) Modify Webbotlib to use two direction pins, and see if my Axon can control the AX-12s with the tristate buffer board; (2) Do the breadboard circuit again, and use an inverter instead of separate direction pins.
I forked the wixel-sdk on github. Said fork is here, and the actual modified app that I’m working with is here. Code isn’t the cleanest because it’s a work in progress
Hope someone’s got some insights out there. But I’ll keep poking at this and I’m sure I’ll figure it out eventually…