Drawing Plotter

113K79976

Intro: Drawing Plotter

Welcome to my Instructable!

Thanks for everyone who voted for me in the contests!

More about Mk2 version Plotter.

Here I'll show you how to make 2 axis, gcode controlled drawing plotter.

I've already made a delta 3D printer which is awesome, the only thing that wasn't made by me was the Arduino program. This program was very long and complicated, so I've downloaded it from the Internet. I've started to think if I am able to also make it myself. But why should I start with something so hard, firstly let's make something easier - Plotter!

STEP 1: Parts

Here are the parts you should have to make my drawing plotter.

Frame:

  • 6mm aluminium pipes (more in step 2),
  • 3m of GT2 belt,
  • 3D printed parts,
  • screws and nuts (3x M2 12mm, 14x M3 20mm, 6x M4 12mm).

Electronics:

  • 3 stepper motors (28BYJ-48, 5V DC) with drivers (ULN2003),
  • microservo (Tower Pro 9g),
  • 16x2 LCD with I2C converter,
  • SD card reader,
  • DC 5,5x2,1mm plug and socket,
  • 5V 2A DC charger,
  • PCB parts (more in step 4),
  • wires, goldpins, heat-shrink tubing.

Arduino programmer or Arduino UNO board (only to upload program).

Tools:

Screwdriver, soldering iron, marker, scissors etc.

STEP 2: 3D Printing

Firstly let's print all the parts that I've made in Fision 360.

You can download the .stl files below.

STEP 3: Belts and Pipes Cutting

Now you need to have 6mm aluminium pipes, of which you can make plotter frame.

I bought 5x 1m long pipes for 0.80$ each in a DIY store, and 3m of GT2 belt on the internet for 9$. Now cut the pipes so you will have 2x 53cm long, 2x 38cm long, 2x 28cm long and one 58cm long.

Than cut the belt - 3 times 2cm pieces, 1 64cm and 2 115cm long.

STEP 4: PCB and Electronics

Now I prefer to make a PCB (Printed Circuit Board). The other way to control this plotter is to use Arduino board, but it won't match the SD card module, there won't be enough power supply pins ant they will be away from each other so you will have to use a ridiculous amount of cables.

You can find more about making PCB's here.

Eagle files - schematic and board available to download below.

Than solder all the electronics parts (layout on the photos):

  • ATMega328P (with Arduino bootloader),
  • 28 pin socket for your ATMega,
  • 3x 10kΩ resistors (SMD version),
  • capitators: 3x 100nF, 2x 22pF, 1x 10nF,
  • button,
  • 16MHz crystal,
  • 10uH coil,
  • goldpins.

Now make all the cables needed to connect your board with stepper motor drivers and plug them in (photos).

STEP 5: Wires

The next thing you should do is to make motors and servo cables longer.

First X axis motor wires are long enough - motor will be close to microcontroller. Second X axis motor will be placed on the other side of plotter, it's cables should be 53cm long.

Y axis motor will be moving across all X axis so his cables should be longer than it - 60cm will do the work.

Servo will move across all X axis and all Y axis, so it's cables should be longer than these two together - 90cm will be good.

Remember not to mix them, the order must be the same.

STEP 6: Display

Now it's time to make your display working. It will be connected to your main control unit with 4 cables (+, -, SDA, SCL). Solder them to I2C converter. GND wire (white on my photo) should go further to buttons, which opposite endings connect, using cables, to PCB.

Cables lenght actually doesn't matter, my are 15cm long so display isn't very close to control unit.

At the bottom of LCD panel stick 2 small parts which will hold it in right place. Make sure that screws or nuts didn't block the pipe.

The third photo shows cable endings, there is one very important thing:

order of LCD cables starts with -, + but ends with +, -.

STEP 7: Stepper Motors & Servo

Start with sticking GT2 pulleys top with their bottom. Add M2 nuts and screw them to stepper motors. Than stick together 2 servo holding parts (3rd photo), add part which will hold marker. Screw servo to it.

Make sure that servo handle rotated fully right makes the same angle as shown on the fifth photo.

STEP 8: Assembling the Frame

Makig plotter frame is very simple, just follow the pictures and assemble it.

Put nuts into holes in 3D printed parts and screw it with aluminium pipes. Some Y axis parts require using glue (look at the photos)

STEP 9: Microcontroller and LCD

Mount on the longest pipe from the left microcontroller, and LCD with first cable chain segment next to it. Put all the remaining wires into chain, put it on it's place and plug wires to main control board.

STEP 10: Charger

To power up plotter you can use charger from an old phone or buy it for like $10.

It must be 5V and minimally 1,5A DC charger (I recommend using 2A).

This chargers usually have micro usb cable, just cut off the end and solder 5,5x2,1 plug. Red charger wire (+5V) to inside of the plug and black (-) wire to outside.

STEP 11: Arduino Program

Now let's focus on Arduino program.

The first important thing is to check your's LCD I2C adress. Every I2C device have it's own number and to check it you will need special program called I2C scanner. Connect LCD to Arduino board or plotter PCB and upload it. Device adress will be printed on serial monitor. Than replace original 0x27 with your adress in 7th line of code.

Install LCD_I2C library on Arduino IDE:

  1. Go to Arduino installation directory (usuallly: C:\Program Files (x86)\arduino\libraries),
  2. Change LiquidCrystal name to something else (f.e. Old_LCD),
  3. Open Arduino IDE,
  4. Go to Sketch - Import Library - Add library,
  5. Select new downloaded LiquidCrystal library and click 'Open'.

Upload main program to plotter.

All files can be found on original Arduino website or downloaded below.

STEP 12: Making G-Codes

To making Gcodes I'm using tha latest version of Inkscape. It's free and can be downloaded from original Inkscape website.

How to make them:

  1. Open Inkscape and draw or write something,
  2. Go to Extensions - Gcodetools - Orientation points,
  3. Select 3 points mode and click apply,
  4. Go to Extensions - Gcodetools - Tools library,
  5. Select cylinder and click apply,
  6. Using text tool (F8 key) change tool diameter to 0,
  7. Select your drawing and go to Path,
  8. Select Object to Path,
  9. Once again select your drawing and go to Extensions - Gcodetools - Engraving,
  10. Go to Preferences tab,
  11. Select file name GCODE.ngc and directory in which it will be saved,
  12. Go to Engraving tab and click apply,

You can also convert into G-code any picture that you want, import it to Inkscape, select it and go to Path - Trace Bitmap. Choose one of three first options depending on your picture (I recommend using Edge Detection). Click OK and path should be under original picture.

You probably will receive an error 'Cylindrical cutter has no shape', so just click ok.

If there will be error #CloseParts change text font to Arial, because in normal the letter 'u' is bugged.

File will be saved in the directory you've typed before, you can close Inkcsape. Open this file and remove header and footer (I'm woking on new program which will ignore it).

Move file to SD card and plug it into plotter.

STEP 13: Final Printing


Plotter is very cheap, but his drawings looks very good for me.

If you have got any ideas how to improve this Plotter or any questions about it, make sure to leave a comment!

The next project I'm working on now is my own website. I will publish my projects also there.

69 Comments

hey bro, which software u have used for this drawing plotter and can u plz update pcb schemits on easyeda so that i can simply make my own pcb? plz share this plz........................................................................................
hi big fan
can you show the exact way to build the circut with an image or something
or better than that can you teach how to use arduino uno instead please

as you can see my english is weak and making a pcb from file is imposible here
so can you do it pleaseeee???????
Hey Ive got this ioline plotter and was wondering if it would be possible to use it to draw. Right now im just using software specific to it and can't get it to draw images,
Good work. I liked it but I did not get why two motors are used for one axis?
I am planning to make it using your instructions.
Thanks
Good works my friend. If I use Arduino How I connect the so card.
And lcd
How to skip the drawing of design path

What do you mean by that? What exactly do you want you skip?

Can we use a wheel instead of axis?

i down loaded stl files. missing end pieses that hold the rod for the pen holder, x y ?

printed all parts wish to finish this project can you send files ?

please and thank you

I do everything according to instructions but at the end I get an error Can not save the file

Can you help me please

kind regards

The file to make g-code which software version use, inkscape version 92.3 does not go

How can I solve this please

Kind Regards

Hello, I'm new with this type of project. I have completely build the electronic circuit as here is posted but only with an arduino uno. There were no problems with the upload to the Arduino. With testing it went wrong, the buttons work barely but it can be my fault. the most annoying thing is that the Arduino cant read the SD card. I used an micro SD card reader of Catalex and I have it connected like in this project the bigger one is connected. Do I really need an normal one or is this one good enough? in the LCD is constantly showing "SD NOT INSERTED". Can someone help me with this please?

Ps: sorry if my English is bad, I am originally Dutch

Does your SD reader have a 3,3V converter? My one had it built in and if it is the only thing different than mine it maight cause problems.

Hi, thanks for your project.

about the connection could you please show me the connection of the circuit using arduino uno ?
thanks

Hello! I am doing a similar project at UNI as bachelor thesis. In our project we will use DC motors and rotary encoders to control the machine and analyze how the resolution (number of holes) on our encoders affect the resolution of the drawing. We are thinking if it is possible to use the G code in some way on our DC motors, and then add code for the encoders. Just want to discuss and see what you think. Thanks in advance! /Natalija,engineering student

Using DC motors with encoders is indeed possible, in fact that is how normal office printers work because they are cheaper than stepper motors. I actually tried to use them in my project but there were some problems. DC motors usually have lower torque than steppers so you need to use some sort of transmission with them which means that they will spin quite fast. In my experiments with them Arduino UNO board was too slow to register all of the holes and motor was skipping steps. I even used Arduino MKR1000 with higher clock speed and then it kinda worked but it still wasn't perfect. If you have a way to attach the encoder after transmission (it will rotate slower; I couldn't do that because my encoder was permanently attached to the motor shaft) I believe it should work well. As for the G-CODE, the implementation to the program is not hard at all.

Hi, thanks for your project.
Do you have a link to buy 10kΩ resistors (SMD version)
I'm looking for 10kΩ resistors (SMD version) on google and they are a diferente products.
Thanks
More Comments