Jan 22, 2015 | By Alec

It’s a problem facing many 3D printers, especially those that have been home-made or extensively modified: missed steps. It’s probably one of the biggest problems with 3D printers (and CNC machines for that matter) in general; when the toolhead is moving around, the stepper motor could miss a step every now and then. And when that happens, the entire layer of the print (and every subsequent layer) will be just slightly off. Now this isn’t a huge problem if you’re just prototyping or messing around, but it can be very annoying if it happens on your final iteration of a huge printing project.

The problem is in the open loop control system in your printer’s firmware. Whenever a few steps are missed, the firmware loses track of where the nozzle’s supposed to be. But fortunately the YouMagine user Miguel Sánchez (going by Misan) has come up with an ingenious solution: a closed loop control of DC motors for your 3D printer. While it will take a bit of engineering prowess to install, it cleverly deals with the missing step problem by adding a DC motor, an optical encoder and an Arduino Pro Mini to your printer.


As you might have guessed, the Arduino is key to the set-up. Both the motor and the encoder are connected to it, and whenever the firmware sends messages to the motor, the Arduino basically makes sure its gets there. The entire setup and programming for this build is heavily based on a similar build called ServoStrap, but revolves around two inputs named STEP and DRI that control the changing of the target position. Whenever it misses a step or even when, as Misan himself does in the clip below, the print head is forcefully moved in another direction, the Arduino makes sure it returns to its proper position.

You can download all the necessary files and STL designs from Misan’s YouMagine page here; all you’ll need to add is a DC motor, an encoder, an Arduino and an H-bridge driver power supply. And of course a healthy helping of engineering ingenuity, as Misan doesn’t provide a tutorial. Good luck!


Posted in 3D Printers Accessories


Maybe you also like:


Gediminas wrote at 9/4/2016 8:14:53 PM:

Hello, do you selling those drivers what fits to ramps1.4? what encoder you would recommend to use? please answer to ly3nsp@gmail.com

RAMBo wrote at 1/24/2015 5:07:41 AM:

If it skip steps, there is a reason. The motor as not enough current. Two much current and overheat the drive. The motion is not lubricated enough or just not parallel. Other reason could be the plastic is warping up and goes in the way of the nozzle. The bed or chamber is too cold. Closed loop is just a patch to another problem that will still leave traces on your print.

Andreas wrote at 1/23/2015 10:02:25 AM:

Neat idea, but nothing really new except for the fact that his "addon" cheats by implementing a motor driver that behaves like a stepper motor controller working with the STEP and DIR signals so he does not have to mess around inside the actual printer controller firmware. The main reasons closed loop DC motor positioning has not been introduced into the low cost consumer 3d printers is not really solved with this idea: First and foremost, the very widespread 8-Bit Atmel controllers with arduino-firmware simply do not have enough performance to implement a fast enough 3-axis closed loop position control system on top of the other tasks they have to run (so, he uses a coprocessor = expensive). Second, programming a closed loop position controller is not as easy as pushing out some step/dir signals and forget about it. Third, the price for encoders with high enough accuracy and the additional wires/connectors make it generally more expensive, unless you have such a huge machine that the stepper motors needed get way more expensive than DC motors with similar power specs. And on top of that you should not underestimate EMI problems with brushed DC motors (sparks), wear of contact-brushes, basically no holding torque when not powered (you need a break system so your z-axis or your head of the delta printer does not crash down when you disable the powersupply to the 3d printer) and so on. You see, the good old steppers do have quite a bit of pro-arguments, and of course, you could just add an encoder on a stepper motor axis too to check if he is missing any steps...

Leave a comment:

Your Name:


Subscribe us to

3ders.org Feeds 3ders.org twitter 3ders.org facebook   

About 3Ders.org

3Ders.org provides the latest news about 3D printing technology and 3D printers. We are now seven years old and have around 1.5 million unique visitors per month.

News Archive