From the very first RepRaps to the newest and latest printers off the Makerbot assembly line, nearly every consumer 3D printer has one significant shortcoming: it cannot recover from missed steps, slipped belts, or overheating stepper drivers. Although these are fairly rare problems, it does happen and is purely a product of the
closed open-loop control system used in 3D printer firmware.
[Chris Barr] has come up with a rather clever solution to this problem. He’s designed a system that will detect and correct problems with the mechanics of 3D printers. It’s technically not a closed-loop control system, but it does allow him to get the absolute position of a nozzle on the build plate, detects error states, and can automatically calculate the number of motor steps per millimeter. It’s also much simpler than other closed loop control systems we’ve seen in the past, requiring only a few bits and bobs attached to the axes and to the printer controller board.
[Chris]’ system uses a magnetic encoding strip, a single chip, and a little bit of support circuitry. It’s actually not that much different from the moving axis on a desktop inkjet printer. It’s not closed loop, though; the firmware hack is only a ‘basic error correction’ that moves the nozzle back to where it should be. Although this is somewhat of a kludge, it is much simpler than refactoring the entire printer firmware.
In the video below, [Chris] demonstrates his solution for error correcting the printer by jerking his axis around during a print. The nozzle miraculously returns to where it should be, producing a usable part.