"First Turn On" moment of truth for Dynamixel Controller
The last of the parts have been loaded onto the Dynamixel Controller board now, and suddenly the Quadruped4 robot design takes one more step closer to realisation.
Here is an image of the loaded board, with the various main functions described;
The first power on for the board required me to hold my breath a bit, some of the parts are quite expensive (and I don't have spares) so any smoke could have been disasterous...
The WiFi module (a Lantronix WiPort) is able to be removed from its PCB connector, and I haven't soldered in the tabs, so I removed this expensive module in order to check that the 3.3V rail was ok first. The board draw no current to begin with, which is ok since the soft power on/off circuitry would be off unless the push button is held down. Once the micros are programmed with firmware, the system will latch power on after the button is pressed so the button can be released, but for the time being you have to hold the button down. Holding the on button down, the circuit drew only a small amount of current which is a good sign! I checked the two power rails, 5V and 3.3V were both ok. Next trick was to use the two ISP (in system programming) connectors and AVR studio to read and write the fuse bits of the AVR AtMega128 and the AtMega2560 on board. I was able to talk to the AtMega2560 ok, but the AtMega128 was unresponsive. A short time later I discovered the first pcb error... not too bad, cutting two tracks and two small wire mods later I was able to communicate with the AtMega 128 processor.
Once I was sure I wasn't going to blow anything up, I powered up the system with the WiFi module on board as well. The wifi activity led flashes a few times as the module boots up, then the current draw (at the 12V supply to the board) goes up to a significant 300mA or so. I haven't yet tried to configure the module with the RS232 config port yet, so that might be the next step.
I have a lot of firmware already written for an earlier board (the PWM Servo Robotics Controller, see description on the Earlier Work page), so hopefully it won't take to long to cobble together a basic framework from that earlier code to allow me to test the various communications options into the board, such as the USB connection and the WiFi link. I hope the next post here will be able to report that the WiFi link is functional! Following that the real work of designing a suitable protocol and writing code to buffer the serial streams to/from the servo networks and the serial cameras etc. will begin, before the more exciting step of plugging in actual servos, and getting real robot hardware to move!