Hey,
Here's my take at the obligatory DIY servo motor drive; this one can sustain a continuous motor current of up to 25A at a nominal bus voltage of around 42V or so. The entire device accepts quadrature (A/B) inputs for controlling the setpoint position. A configurable enable/charge-pump input enables the drive output. All communications with the controlling device are fully isolated. A 5/3.3V output is available for powering an encoder and is capable of operating at encoder signal rates of around 1MHz (!).
The most unique aspect to this project is the method of tuning the PID position controller; where a step in position, velocity, or acceleration is plotted with ascii-art over a serial terminal connection. Though I partly implemented this for teh lulz, it also makes PID tuning relatively easy without needing much in the way of hardware (pretty much just a generic USB to UART converter).
frontpage_plot.png
Full schematic, board, gerber files, and source code are freely available at Flexible Servo Controller | Rabid Mantis.
I'd really appreciate some comments on the design; I'm more of an EE-geek than hardware-geek, so it would be nice to hear from what people here have to say =)
<shameless plug> Oh, and in the case that someone should use this, don't forget to use a braking resistor of some sort, such as this one http://www.cnczone.com/forums/genera..._resistor.html ;) </plug>
Here's my take at the obligatory DIY servo motor drive; this one can sustain a continuous motor current of up to 25A at a nominal bus voltage of around 42V or so. The entire device accepts quadrature (A/B) inputs for controlling the setpoint position. A configurable enable/charge-pump input enables the drive output. All communications with the controlling device are fully isolated. A 5/3.3V output is available for powering an encoder and is capable of operating at encoder signal rates of around 1MHz (!).
scaled.jpg
Operation at 30V, 10A, without any cooling;
ir_10a_30v.jpg
Operation at 30V, 20A, with some (modest) cooling
ir_20a_30v_cool.jpg
Operation at 30V, 10A, without any cooling;
ir_10a_30v.jpg
Operation at 30V, 20A, with some (modest) cooling
ir_20a_30v_cool.jpg
The most unique aspect to this project is the method of tuning the PID position controller; where a step in position, velocity, or acceleration is plotted with ascii-art over a serial terminal connection. Though I partly implemented this for teh lulz, it also makes PID tuning relatively easy without needing much in the way of hardware (pretty much just a generic USB to UART converter).
frontpage_plot.png
Full schematic, board, gerber files, and source code are freely available at Flexible Servo Controller | Rabid Mantis.
I'd really appreciate some comments on the design; I'm more of an EE-geek than hardware-geek, so it would be nice to hear from what people here have to say =)
<shameless plug> Oh, and in the case that someone should use this, don't forget to use a braking resistor of some sort, such as this one http://www.cnczone.com/forums/genera..._resistor.html ;) </plug>