ServoStrap
servo-controlled reprap 3D printer
ServoStrap, a servo driven 3D printer build
Code that reads stepper signals from a standard 3D printer motherboard and drives a servo motor instead, with active position tracking built around an encoder.
What the code does
ServoStrap is a servo-controlled reprap 3D printer project. The code takes stepper information from a standard 3D printer motherboard as input and uses it to control a servo motor with an active position tracker. It was written for the LMD18245 motor controller, merging the PID code of Josh Kopel with the makerbot servo-controller board, and the README notes it can be used on other boards by changing some values.
Harvested hardware
The external hardware is a quadrature encoder, a timing slit strip, and a DC motor, and the README points out you can find all of it inside an old printer, with parts pulled from Canon and HP machines. For motor control, different H-bridge types work, and the LMD18245 can be ordered as samples from ti.com. The hardware details live on the datasheet, and the author was drawing a schematic and PCB layout in Eagle to make an integrated board easy to add to a ramps 1.4 or other motherboard.
The claims, as stated
The README makes several promises. Active position tracking means no more step losses, with almost all prints ending in perfect condition because a stopped head returns to its print position. Building is cheaper because electronic waste like 2D printers contains DC motors with everything needed to control them. Resolution improves with finely tuned PID constants and an angular encoder, slit disk or magnetic, and endstops may not be needed at all because the timing strip carries a special code at the beginning and end that can be read as an endstop. Setup is just placing two files, digitalWriteFast.h and Keywords.txt, into a folder inside the Arduino libraries directory.
Community notes