Dotter - Huge Arduino Based Dot Matrix Printer
π Overview
Dotter is a giant plotter that draws on paper dot by dot with a pen: two stepper motors move the X and Y axes, a servo lifts and drops the pen, and a Processing sketch on your computer converts an image into dot coordinates and streams them to an Arduino over serial.
The project grew out of a failed print job - the author opens the tutorial with that failure and stresses that failure is part of the process. The frame is mostly 3D printed, which makes it a great next step if you want to learn stepper control and image processing.
π§° What you need
- Arduino board x1
- 28BYJ-48 stepper motors (with driver boards) x2
- Micro servo x1 (pen lift)
- GT2 timing belt + pulleys + assorted smooth rods and bearings
- 3D-printed structural parts (STLs provided by the author)
- Assorted transistors, LEDs, and resistors (indicator and driver circuits)
- A 3D printer (Ender 3 or similar) to print the structural parts
π§ Step by step
How it started: a failure
The author's first approach failed, so he redesigned a simpler mechanism
The mindset: build the smallest version that runs, then optimise from there
Gather the parts
The 28BYJ-48 is cheap and accurate enough for this job
Most of the machine is 3D printed; the cost is mainly the three motors and the belt
Print the structural parts
Print the STLs in batches, starting with the belt-tensioning parts
Ream and sand every shaft hole so the assembly stays smooth
Assemble the frame
Build the X carriage and Y frame from the drawings
Keep belt tension even and make sure the X and Y motions do not interfere
Draw the circuit
The author provides a full schematic: Arduino + stepper driver + servo
Watch the stepper current in the power section - sharing a 5V rail may not be enough
Make the PCB
The author designed a PCB, but a breadboard works too
Beginners can use perfboard - just watch out for solder bridges
Solder and wire it up
Solder power and ground first, then the signal lines
Add heatsinks to the stepper driver boards; they warm up noticeably over long runs
Arduino-side code
The firmware receives coordinate commands over serial and drives the motors and pen
Keep the baud rate and coordinate system matched to the Processing sketch
Processing-side code
The desktop sketch converts the image into dots and plans the pen path
Match dot spacing to pen width for a finer result
First strokes
Start with a simple shape to verify the coordinates and the pen timing
If lines are dragged or broken, check the pen-lift timing first
Failures and debugging
Mechanical backlash and belt slip are the two most common problems
Log every tuning value so you converge on the ideal result step by step
The payoff
Swap pens to add more colours
Hanging a finished piece on the wall feels great
Next steps
Add a pen rack for colour changes, a bigger bed, or WiFi image upload
The project is very open-ended and the community has plenty of mods
π‘ Tips
- The 28BYJ-48 is a 5V geared stepper: slow but with enough torque, which suits dot printing that needs stable low speeds
- Always sequence the pen: finish the stroke before lifting, or you leave long drag lines
- Threshold or dither the image before printing - the result is far better than straight greyscale