Introduction: Multi Color Dot Printer

Hi everybody. This instructable is on design and fabrication of a Multi Color Dot Printer. It was mainly based on a similar work that already was published here in instructable. The work I am referring to is “Dotter: Huge Arduino Based Dot Matrix Printer” conducted by Nikodem Bartnik ( The arduino code uses the same platform as reffered work but; It was modified to support four color pen system. further I used a Professional stepper driver library which is already available in the web. The library is named AccelStepper and can be accessed from This library provide an advanced and smooth driving of your stepper motors; as we don’t intend to invent the wheel. The processing sketch is almost the same as the base Project, except that i deleted the unneccessary and unused elements in the interface window. As for robot, I designed my own robot. It is a cartesian 2D robot and uses Nema17 stepper motors. In this regard its structure looks more like robotic systems commonly used for 3D printers. For the electronics too, my preference was to use already available electronics circutary in the market. I mean, i used arduino Mega 2560 board together with RAMPS 1.4 shield board and standard A4988 (or similar) stepper motor drivers. This could tell you where i am heading towards. Yes, I am working on developing my own 3D printer and this work is the first step in heading toward this direction. As you know Arduino Mega 2560 and RAMPS 1.4 board are one of the most commonly used borad in developing 3D printers.

Step 1: Step 1: Design and Assembling the Cartesian Robot

The robot design is shown as the above. Every part is labeled with a number and its detail is provided in a table A. Further you can see photoes of the robot. There are parts in the photoes that cannot be seen in the above robot design. They are mainly screws, nuts and even linear bearing and ball bearing. But dont worry. The list of this items are provided as Table B.

Step 2: Step 2: Pen Center

This doter was designed to print in four different colors. For this purpose marker pens in different colors are used. By default the printer starts with blue marker as pen1. Pen 2, 3 and 4 are red, green and black respectively. A Nema17 step motor switches between pens and a microservo prints a dot when it is needed. You can see the design of the pen center in the picture. Of course this design needs some improvement. But i left it as it is. (Since this setup is a midway step towards my final goal so I dont have enough time to keep improving it for ever!). The list of items in the pen center design is provided as Table C. You can see photo of the pen center and the whole printer at above.

Step 3: Step 3: Electronics

The great thing in this printer is its electronics part. You dont need to do any circuitary work. Just buy from market and do wiring. This way you save a lot in time. Further I used an Arduino mega 2560 board which is commonly used in making 3D printers. So you can extend this work up to a functioning 3D printer if you have a such intention. The list of electronics and electric parts comes in Table D. Though i did not include the wires in the list.

I used Z and Y motor slots on the RAMPS shield (did not used X slot) as well as extruder 1 slot for pen indexing motor. It is only because my RAMPS was faulty and its X slot was not funtioning! As for the limit switches, it is obvious that you need to make use of Zmin and Ymin pins. The only confusing point could be which pins should we us efor driving our microservo!? RAMPS 1.4 by default got 4 series of 3 pins to drive 4 microservos. But i noticed that GROUND and +5 pins dont work but the SIGNAL pin does work. So I connected 0 and +5 lines to one of available limit switch pins on RAMPS and connected signal wire to pin 4 on RAMPS. You can see my point at the buttom figure.

Step 4: Step 4: Arduino Code

As stated at the beginning, the arduino code is based on the work presented by Nikodem Bartnik under the DOTER Project ( But i do made some changes. First i made use of AccelStepper library to run the steppers. This is a Professional and well coded library. You should note that there is need to add this library to the arduino IDE available libraries before using it. You can find more details on the library and adding it to arduino IDE at Second I made necessary changes to support multi color (4 color) printing.

Here is how the code Works. It gets the data from the serial monitor (processing code) and whenever there is 0 it moves one pixel (set to 3 mm in my design) in Z direction; when there is 1 (2,3 or 4) it moves one pixel in Z direction and makes a blue (red, green or black) dot. When ‘;’ is received it is interpreted as new line signal so it goes back to it's start position, moves one pixel (again 3 mm) in Y direction and make a new line.

Step 5: Step 5: Processing Code

Processing code is no different than the DOTER Project. I just removed unused part and kept the part that actually does a function.

Step 6: Examples

Here you can see some examples printed by my doter.