Almost everyone who is involved with 3D printing thinks to themselves at some point, “this could all be done using a closed-loop system and DC motors”. Or at least everyone we know. There’s even one commercial printer out there that uses servo control, but because of this it’s not compatible with the rest of the (stepper-motor driven) DIY ecosystem.
[LoboCNC] wanted to change this, and he’s in a unique position to do so, having previously built up a business selling PIC-based servo controllers. His “servololu” is essentially a microcontroller and DC motor driver, with an input for a quadrature encoder for feedback. The micro takes standard step/direction input like you would use to drive a stepper motor, and then servos the attached DC motor to the right position. It even signals when it has an error.
The unfortunate side effect of [LoboCNC]’s old day job means that he can’t release the code that’s running his demo, but he says he’s working on a version of the firmware to open-source. Have a look at a demo video (below) of his modified servo printer that’s being driven by a standard stepper motor controller. It is certainly accurate!
If you want to get up to speed on all of this stepper vs. servo stuff, this video tutorial by [Homofaciens] is very much worth your while. In fact, it’s implementing a (non-PID, primitive) version of exactly what [LoboCNC] is aiming for. Which is not to take away from [LoboCNC]’s idea: shoehorning servo control into the existing form-factor of a stepper motor driver is a great idea, because it allows quick experimentation with a new motor drive mode. We can’t wait to see the software.
Anyone else taken a similar approach to closed-loop control on their 3D printers? We gave up ages ago, deciding that steppers were “good enough” when compared to the hassle of a complete redesign, so we’d love it if the “servololu” proved us wrong.
Thanks [Matt] for the tip!