You might ask why the story of fail if my project is working? Because at the beginning there wasn't a Dotter. I wanted to make maybe a little bit similar thing but much more sophisticated - a 3D printer. The biggest difference between 3D printer that I wanted to make and almost any other 3D printer was that instead of standard nema17 stepper motors it will use a cheap 28BYJ-48 motors that you can buy for about $1 (yes one dollar for a stepper motor). Of course I knew that it will be weaker and less accurate than standard stepper motors (when it comes to the accuracy it is not that simple, because most of the motors in 3D printers has 200 steps per revolution, and 28BYJ48 has about 2048 steps per revolution or even more depends on how you use them, but those motors are more likely to lose steps and gears inside them are not the best, so it's hard to say if they are more or less accurate). But I believed that they would do it. And at that point you may say wait there is already 3D printer that uses those motors, yes I know there are even few of them actually. The first one is well known that's Micro by M3D, small and really beautiful 3D printer (I just love this simple design). There is also ToyRep, Cherry and probably much more that I don't know about. So printer with those motors already exist but what I wanted to make different and more like my own way was code. Most of the people use some open source firmwares for 3D printers but as you may know if you saw my Arduino based Ludwik drone project I like doing things from scratch and learning by that so I wanted to make my own code for this printer. I already developed reading and interpreting Gcode from SD card, rotating the motors according to Gcode and Bresenham's line algorithm. Quite big part of code for this project was ready. But while testing it I noticed that those motors are overheating a lot, and they are soooooo slow. But I still wanted to make it so I designed a frame for it in Fusion360 (you can find image of it above). Another assumption in this project was to use transistors instead of stepper motor driver. I found few advantages of transistors over stepper drivers:

They are cheaper It's harder to break them, I already broke few stepper drivers while building DIY Arduino Controlled Egg-Bot because when you disconnect a motor from driver while running it will probably break Drivers are simple to control, you can use less pins for that, but I wanted to use Atmega32, it has enough pins to use transistors so it wasn't important for me. (I wanted to use atmega32 in a 3D printer project, finally in the dotter there is no need to use it so I use just Arduino Uno). Happiness is much bigger when you create a stepper driver yourself with transistors than simply buying it. Learning how they works by experimenting, I used some transistors in my previous projects, but practice make perfect and the best way to learn is to experiment. BTW isn't that odd that we don't know how the biggest invention of the world works? We use transistors every day, every one has millions of them in a pocket, and most of the people don't know how a single transistor works :)

During this time I got 2 new 3D printers and while printing on them I just turned up printing speed all of the time to make prints as fast as I can. I started to realize that 3D printer with 28BYJ-48 motors will be to slow and probably is not the best idea. Maybe I should realize that earlier, but I was so focused on the code for this project and learning how exactly 3D printers work, that I was not able to see that somehow. Thanks to things that I learned by building this thing I do not regret time invested in this project.

Giving up is not an option for me, and I have 5 steppers laying around so I started thinking of what can I do with those parts. While burying in old things in my wardrobe I found my drawing from primary school made using dot drawing technique also called Pointillism (you can see my drawing above). It's not work of art, it's not even good :) But I liked this idea of creating an image out of dots. And here I thought about something that I heard about before, a dot matrix printer, in Poland you can find this type of printer in every clinic they are making odd loud sound :D. It was kind of obvious for me that there must be somebody that has made something like this, and I was right Robson Couto already made an Arduino dot matrix printer, but to make it you have to find perfect components which can be hard, but we have a 2018 and 3D printing is becoming more and more popular so why not to make an easy to replicate 3D printed version, but it still would be similar. So I decided to make it big, or even HUGE! To make it able to print on a big paper that everyone can buy - roll of paper from Ikea :) its dimensions: 45cm x 30m. Perfect!

Few hours of designing and my project was ready for printing, it is 60 cm long so too big to print on a standard printer, so I divide it in to smaller pieces that thanks to special connectors will be easy to connect. Additionally we have a carriage for a marker pen, some pulleys for GT2 belt, rubber wheels to hold the paper (also 3D printed with TPU filament). But because we not always may want to print on such a big paper I made one of the Y axis motors movable so you can easily adjust it to the size of the paper. There are two motors on the Y axis and one on the X axis, to move pen up and down I use micro servo. You can find links to the models and everything in the next steps.

Then I designed a PCB as always, but this time instead of making it at home I decided to order it in a professional manufacturer, to make it perfect, easier to solder and just to save some time, I heard a lot of good opinions about PCBway so I decided to go with that. I found that they have a scholarship program thanks to which you can make your boards for free, I upload my project to their website and their accept it! Thank you so much PCBway for making this project possible :) Boards were perfect, but instead of putting microcontroller on this board I decided to make an Arduino shield so that I am able to simply use it, it is also simpler to solder because of that.

Code of the dotter is written in Arduino, and for sending the commands from the computer to the Dotter I used Processing.

That's probably whole story of how this project evolve, and how it looks now, congrats if you got there :)

Don't worry now it will be easier, just build instructions!

I hope you enjoy this story of The Dotter project, if so don't forget to heart it.

*on the renders above you can see X carriage with 2 pens, the was my first design, but I decided to switch to smaller version with one pen to make it lighter. But version with 2 pens can be interesting because you would be able to make dots in different colors, there is even place for second servo on the PCB so thats something to consider for dotter V2 :)