Well, it's done. I now have a self "contained" version of my 4 channel servo controller.
I've made PCBs for the controller, encoder & driver boards and mounted them all with the CNC4PC break out board I bought.
-
Controller Board (Top Left) - This was my first DIY PCB, and the design is a bit rough (no nice mounting holes, board shape, etc). The firmware can be updated via serial, so I didn't add an In System Programming connector (uC is in a ZIF socket in case of fuckup).
-
PC Break Out Board (Top Right) - This is a CNC4PC C10 Bidirectional Breakout Board. It's a basic BOB with buffered I/Os. Gets data from the PC into the servo controller.
-
Driver Board (Bottom Left) - It takes the 4 PWM+DIR signals from the controller and maps those into 2 dual H-bridge Pololu boards. I've added a couple of heat sinks to the H-bridge driver chips, which should help their cooling.
-
Encoder Board (Bottom Right) - Simply takes neat 4P4C modular connectors into jacks.
The final product is a neat little package... at least for my first attempt.
What comes next?
-
Finish the firmware - Add a few more features I'd like (obey & control e-stop line, output override, set speed, boot-loader CRC checks)
-
Finish the tuning software - Add a few more features I'd like (current status display, general UI cleanup)
-
Mount the meters nicely - The voltmeter & ammeter are just loosely connected at the moment.
-
Load testing & tuning - Does its performance match my original goals? Are there areas in the firmware that need attention?
-
Mounting motors on real milling machine - What's the real world like?
For the first time, I would happily pick it up, move it, and feel confident about it working when reconnected (little coloured bits of heat-shrink reduce confusion).