Machine Design - Polargraph/ Vertical Plotter

Download all the files for this week form here

We have 4 students in the lab and hence only one group. we all wanted to make different machines.

Here are the ideas :

1. Abhinav wanted to build a Polargraph/Vertical Plotter.

2. Ashish wanted a Coffee Machine with an inbuilt alarm.

3. Rahul wanted to Recycle the CNC dust by making bricks out of them.

4. Vyanetha was Nill.

After some discussion, we decided to make the vertical plotter as it was particularly easy to make within the timeframe. Abhinaa started the work by searching the internet and getting some ideas.

Here is the intial sketch :


The Build

Our instructor asked us to make the machine from material completely fabricated in the lab and if not then the next best thing is to use material from waste. or re-use the material. So for the Aluminium Sections we decided to take apart an old Project, which was made by our college students.

Material needed for the main frame :
1. Aluminium Sections
2. T-nuts , Bolts
3. Angle

Material other than the frame :
1. Weights x 2
2. Nema 17 x 2
3. Pulley and Belts.

Since out lab is established under the college, students of the college participate in different competitions and make many machines for the same. One such machine was lying in the lab, which was around 2 years old. We Decided to take the machine apart as it had all the parts we needed for the frame.

Sourcing Parts

Dismantling an old project for a new one :


From this project we got the Aluminium Sections and the wooden boxes for counter weight.

Wood Box :


Lending some parts from a Delta 3D printer Project : timing belt & pulley


Making Parts

The leftover parts were 3D printed and laser cut.

Gondola Pen Holder
We found a Gondola/Pen holder on thinigiverse and decided to print it. It has a pen holder and a servo motor mount to lift the pen from the drawing board. We decided not to put the servo for simplicity.


Motor Mounts
Next step was to mount the motors, We took the dimensions of Nema 17 mounting form the internet and also measure distance from the aluminium sections.

week15 week15

We made a mistake while designing, forgot to make a hole for the shaft. Realised it after laser cutting. We added a hole for the motor shaft in my design and test cut it on a scrap plywood. After i was happy with the fit, We laser cut the final piece of acrylic.

Corrected Mount :




Pen holder Weight
For the pen holder weight, i took a piece from MECHANIX(a lego like diy kit) and some nuts and bolts. You can use anything as long as it keeps the pen pressed down onto the drawing board.

The main aim is to press the pen/marker againts the board, the pressure should be just fine. A little less it would not mark the board and a little high it would drag or skip. So make sure the wights you put on the pen holder can be adjusted, like here i’ve used nuts for weight. we can add and remove the nuts to get the proper weight.

week15 week15

Counter Weight Coupling

We sourced the wooden boxes from a previous project, which was sitting in our fablab. To attach these boxes to the GT@ belt we needed a sort of coupling or attachement. It was a easy fix and a 10 minutes drawing on solidworks. The attachement was 3d printed.

Here also the weight is modular, the wooden boxes can hold items big/small anything. Which helps us to adjust the counter weight. Also the wight should be such that the timing belt is just tight. Heavy weight would make the motor or the belt slip, avoid that.

Design was done on solidworks 2016.



Drawing Board
The base for the drawing board was laser cut and fixed into the aluminium section. It was pretty easy, just had to measure the distance b/w the sections and cut the acrylic on laser. It’s fixed in the groves of the section.


After collecting all the stuff Abhinav and vyanetha started with the assembly. It was pretty straightforward and easy. Here are some of the pics.

The main frame :

week15 week15

Motor Mounts :


3D printed coupling to hang the wood box from belt.


Mechanical Parts done

For week 15 we hade to complete the mechaical assembly and oerate the machine by hand. Which we did and it worked perfect. The belts are in perefect tension, the weights are equal and the pen is pressed agains the drawing board.



So now we have to work on the firmware and electronics of the system ...... So we started with understanding the working of stepper motors ....... then we moved ahead towards its drivers ...... then we learnt about interfacing it with arduino ....... then finally we decided to use RAMPS board......

To understand the working of stepper motor one can refer this video ....

After going through some pages over the internet ..... we got to know .... there are many ways to actuate a stepper motor ..... it can be actuated using ULN 2003a(Darlington pairs) IC or through L293D Motor driver IC or using A4988 Motor Driver ...... A lot of people have faced heating problems with ULN2003 and L293D..... So we decided to move ahead with A4988 Driver IC as its not that expensive and was available in Lab ..... So here's a video we refered for understanding and using A4988 driver IC with Arduino

For more detailed understanding

Interfacing is as :

1. 4 connections to the stepper motor, marked 1A, 1B and 2A, 2B. Connect the first coil to 1A and 1B and the second coil to 2A and 2B.

2. Logic Power and GND, Connect this to the GND and +5V of the Arduino

3. Dir sets the direction the stepper will move. We connected this to Pin 4 on the Arduino

4. Step will make the stepper step each time this pin goes form Low to High. We connected this to Pin 5 on the Arduino

5. Enable. When this pin is pulled low the board is enabled and the motor energised. When set high the board is disabled and the motor is de-energised. We connected this to Pin 6 on the Arduino

6. Sleep and Reset control the board, either sending it to sleep or resetting it. To use the board We tied these together which allows the board to run normally

7. Motor Power and GND. This needs to be a high voltage/current supply to run the motor.

Note : Warning: Connecting or disconnecting a stepper motor while the driver is powered can destroy the driver. (More generally, rewiring anything while it is powered is asking for trouble.)

To prevent damage to the driver chip, it uses circuitry to limit the maximum current that can be used. This is set via the adjustable resistor on the board, in co-operation with some of the other components, the sense resistors (S1 and S2) and the resistor (R1). As different drivers may have different components (especially generic Chinese imports) its best to check these values before continuing.

For our stepsticks S1 and S2 are marked 'R10' and R1 is marked '303' (in very small writing !). These correspond to 0.1Ohm for S1 and S2 and 30kOhm for R1. The trimpot should be 10kOhm substituting those values, gives

VREF max = (TrimpotMaxR/(TrimpotMaXR+R1)) x VDD = (10,000 / (10,000 + 30,000)) * 5 = 1.25V

ITripMAX (effectively max motor current) = VREF / ( 8 x Sense_resistor) = 1.25 / ( 8 * 0.1 ) = 1.5625A

As our stepper motors are 2.0A, We can't get maximum current from this driver, however,if we drive them at 70% (2.0A x 70% = 1.4A) we want to a VREF of 1.4A x 0.8 = 1.12V, plus driving them at 70% will reduce the temperature of the stepper.

We start with the trim pot turned anti-clockwise, and measure the voltage with our multimeter between the logic Gnd pin and the centre of the trimpot itself, slowly turning it up until we get just under 1.12V

Once that is done, we can connect the Motor power supply (12V). Hopefully your motor will start running !

Now since we were familier with the stepper motor operation ....... we decided to move ahead with RAMPS Board ...... we got its referance via Neils Lecture and also by our local instructor as he was familier with the board and has used it earlier in his projects .....



Ramps is a driver board designed for 3D printer, based on platform (firmware) Repap. It not only drivers four steppers so you can design many types of machines based on it, like CNC, and as a mature platform specially for 3D printer, it also driver extruder, fans, temperature sensors, SD card, etc.

It is designed to fit the entire electronics needed for a RepRap in one small package for low cost. RAMPS interfaces an Arduino Mega with its powerful platform and has plenty room for expansion. The modular design includes plug in stepper drivers and extruder control electronics on an Arduino Mega/Sainsmart MEGA shield for easy service, part replacement, upgrade-ability and expansion. Additionally, a number of Arduino expansion boards can be added to the system as long as the main RAMPS board is kept to the top of the stack.

Here is a Video you can refer to understand RAMPS Board

well ... what we understood from RAMPS board is ....... its a complete PCB Setup for multiple motors and it can be mounted on Arduino MEGA ...... or we can say .... its a shield for arduino MEGA with 5 stepper motor driver space and much more .... ( which can b required by a 3D printer ) ....... For Our machine we were going to use X and Y motor outputs from the board

Since we were familier with stepper motor actuation .... we straight away moved ahead towards the firmware ......


We started with couple of videos ......... and downloaded the firmware ......

We downloaded the firmware from the link in the description but We were unable to compile the code ...... it was showing some errors ..... and Since we were out of time we decided to move ahead and find some another firmware ....


Even after declaring this in the main program there is one error or the other ..... So, we decided to move ahead with some another firmware .... we came across with MAKEANGELO Platform it was quite modular and was easy to use ...... It has all the logic and calculation required to run the machine smoothly and precisely....... aprt from that ... it had an interface for controlling the Polograph......

These are the instructions which have to be followed before uploading the firmware

- Make sure the parent folder is called Makelangelo-firmware.

- Open Makelangelo-firmware/Makelangelo-firmware.ino in arduino


- In Makelangelo-firmware/configure.h make sure BOARD_TYPE and MACHINE_STYLE are set for your board and machine style


- For Makelangelo 3 or Makelangelo 5, choose POLARGRAPH - For Makelangelo robots, in Makelangelo-firmware/polargraph.h, set for Makelangelo 3 #define MACHINE_HARDWARE_VERSION 3 for Makelangelo 5 #define MACHINE_HARDWARE_VERSION 5 - Tools > board > set type for your flavor of arduino


- Tools > port > set the connection for your arduino - Upload

After uploading the firmware ..... we wired up the motors ..... we connected the system with the interface, Customized it according to the machine design and tested it with some basic commands like ..... home position ..... 10 steps+ or 10 steps- , the motors were connected on the X and the Y axis of the RAMPS Board ......


Now that we have motors connected with the RAMPs Board over X and Y, We moved ahead with Exploring the Interface, All we need to do now was to customize the machine according to the dimensions..... Here we are Sharing how to customize the settings...



This is the main interface, and for customizing the machine we need to click on settings


Now here is the paper setting you have to make for A4 Sheet


Now that Machine and Paper settings are done we need to move ahead with the pen Settings



To print some templates you click on the generate art......but before that we need to test whether the machine is working or not. For this we need to test the machine manually. Go to the Manual Driving (as marked above) then you can test the motion of the gondola.

Note : If the motion is in opposite direction to the intended motion then we need to reverse the motor connections over the RAMPS board. Also one should keep an eye over the motor drivers, whether they are heated or not, if they heat alot ......... There is some problem, Switch off the system and check the connections.....


Fortunately over motors were working perfectly fine, Now we started with Cleaning up the wires, What we did was we placed the wires in between the profile and taped it, It looked neat and clean.


For placing the Arduino and RAMPS Board along with the power supply we took a plyboard piece and screwed everything on that and then screwed that plyboard on profile.

Image Image

The power supply we used was 24V 15 amps from an old self assembled 3D printer, Its features are :

Brand                             : Omron
Type of Product                   : Switch Mode Power Supply
Output Voltage(V DC)              : 24 VDC
Output Current(Amp.)              : 14.6 A
Dielectric Strength	          : 1.5 kVAC for 1 minute
Vibration Resistance	          : 10 to 55 Hz, 0.26-mm single amplitude for 2 h each in X, Y, Z direction
Mounting Type	                  : Din Rail Mounting 'CD'
Efficiency	                  : 0.8
Ripple and Noise	          : 100 mV
Operating Temperature             : -10?C to 60?C
Size (mm)                         : 46 x 97 x 105 mm
Weight (Kg)                       : 0.36 Kg
Input Frequency                   : 47 to 64 Hz
Input Voltage (VAC)               : 200-240 V AC
Power Rating	                  : 350 W
Model No                          : S8JC-Z350
Features	                  : Material cost reduction, It is safe to use. It is with overload protection 105% Of rated load current and
      overvoltage protection, Voltage Drop, Intermittent, Automatic Reset. Green Colour Output Indicator.

G code Generation

Makelengelo has its own GUI this is a execuable jar file in the extracted folder, we need to have the latest java installed in our computer to connect our pc to the board, an interesting thing about Makelengelo is that it can convert image files into gcode on its own, thus you dont require to download any plugins for it, you can just import an image the software will convert it into gcode. We can also import gcode if we have a better gcode converter.GUI There are also ready to print images in the GUI in the generate art section.


Here is the working video of the machine .......

The link for the Gandola (Pen holder) is as LINK

The link for the Firmware and Inteface is as LINK

Furthur Scopes

> Each line of the Firmware can be studied and improved.

> Better calculations of the machine dimensions can be done in order to improve the resolution of the machine.

> PCB can be designed with only 2 motor drivers as RAMPS board must be feeling under utlized in this machine.

> Counter weights can be accurately calculated to make sure the motion of Gondola is correct.

> The gondola is not stable, Work can be done to improve the pen holding mechanism, it was shivering while drawing