Download as pdf or txt
Download as pdf or txt
You are on page 1of 31

3D PRINTER

A MAJOR PROJECT REPORT

BACHELOR OF ENGINEERING
(Electronics & Communication Engineering)

SUBMITTED TO :
Chandigarh College Of Engineering and Technology,
PANJAB UNIVERSITY, CHANDIGARH

SUBMITTED BY:

Prithvi Kumar - CO17541


Ankit Chawla - LCO17570
Dhruv Khanna - LCO17571

SUPERVISED BY :
Dr. Anil K. Rose,

December, 2020
Department of Electronics and Communication Engineering

CERTIFICATE

This is to certify that project report entitled “3D PRINTER” submitted by Prithvi Kumar
(CO17541) , Ankit Chawla (LCO17570) and Dhruv Khanna (LCO17571) in partial fulfillment of
requirements for award of the Degree of Bachelor of Engineering in Electronics and
Communication Engineering , Chandigarh College of Engineering and Technology , PANJAB
UNIVERSITY , CHANDIGARH , is a record of bonafide work carried out by them under my
guidance and supervision.

PROJECT GUIDE HEAD OF

 Prof. Anil Kumar Rose DEPARTMENT


ACKNOWLEDGEMENT

I would like to place on record my deep sense of gratitude to Prof. D.S.Saini ,


HOD-Dept. of Electronics & Communication Engineering, CCET, Chandigarh
India for his generous guidance, help and useful suggestions.

I express my sincere gratitude to Dr. Anil K. Rose,, Dept. of Electronics &


Communication Engineering, CCET, Chandigarh India ,for his stimulating
guidance, continuous encouragement and supervision throughout the course of
present work.

Signature(s) of Students :

Prithvi Kumar -
Ankit Chawla -
Dhruv Khanna -
TABLE OF CONTENTS

Page No.

Acknowledgement i

Abstract / Introduction ii

Components List iii

Block diagram / Connections iv

Software Working v

Applications/ Advantages vi

Present Work vii

Future Scope / References viii


ABSTRACT

3D printing or additive manufacturing is a process of making three dimensional


solid objects from a digital file.

The creation of a 3D printed object is achieved using additive processes. In an


additive process an object is created by laying down successive layers of material
until the object is created. Each of these layers can be seen as a thinly sliced cross-
section of the object.

It is also known as rapid prototyping, is a mechanized method whereby 3D objects


are quickly made on a reasonably sized machine connected to a computer
containing blueprints for the object. The 3D printing concept of custom
manufacturing is exciting to nearly everyone.

This revolutionary method for creating 3D models with the use of inkjet
technology saves time and cost by eliminating the need to design; print and glue
together separate model parts. Now, you can create a complete model in a single
process using 3D printing. The basic principles include materials cartridges,
flexibility of output, and translation of code into a visible pattern.

3D Printers are machines that produce physical 3D models from digital data by
printing layer by layer. It can make physical models of objects either designed with
a CAD program or scanned with a 3D Scanner. It is used in a variety of industries
including jewelry, footwear, industrial design, architecture, engineering and
construction, automotive, aerospace, dental and medical industries, education and
consumer products.
COMPONENTS LIST

S.No. Name Quantity


1 MDF Board 1

2 Extruder With Fan 1

3 Nema Stepper motor 2

4 Temperature Sensor 2

5 RAMPS 1.4 Shield 5 Axis 3D Printer Control 1


Board

6 A4988 Stepper Motor Driver Boa 1

7 ARDUINO MEGA 2560 1

8 Smps 12V 15A 1

9 AC/DC Adapter 1

10 Wires -
OPERATING SOFTWARE:

Printrun: 3D printing host suite: Printrun is a full suite of host interfaces for
3D printers and CNC, consisting of:

 Pronterface, a fully-featured GUI host

 Pronsole, an interactive command line host for the console lovers (or
printing over ssh, or...)

 Printcore, a standalone non-interactive G-Code host

Both Pronterface and Pronsole let you interactively control your machine, slice
objects directly from the host, print objects, upload to SD cards and run SD
prints... Printrun supports both serial and Ethernet connections and has been
used with great success on a wide range of 3D printers and CNC machines.

Software:
3. Conceptual Block Diagram

Display Power(SMPS 12V 15A)


Extrusion(Nema
Stepper motor)

Cooling

Print(STL file) Controller(Arduino


Mega) Motor Driver
Shield(RAMPS 1.4 shield 5
axis)

Heating

Thermistor(Temp
Sensor)

Endstops
Circuit Diagram
About Important Components

1. RAMPS 1.4 Shield 5 Axis 3D Printer Control Board:

Ramps is short for reprap Arduino mega pololu shield, it is mainly designed for
the purpose of using pololu stepper driven board (similar to 4988 driven
board). Ramps can only work when connected to its mother

board Mega 2560 and 4988/DRV8825. Owning to its stability in

operation and great compatibility with most 3D printer (all RepRap-model such
as pursa i2 and i3). The combination of Ramps1.4 + MEGA2560 +
A4988/DRV8825 is becoming a mainstream of DIY 3D printer control board.

A4988 Stepper Motor Driver Boa is a complete Microstepping Motor


Driver with built-in translator for easy operation. The driver has a maximum
output capacity of 35 V and ± 2 A. It can operate bipolar stepper motors in full-
, half-, quarter-, eighth-, and sixteenth-step modes.

NEMA stepper motor17 stepper motor is a stepper motor type specified


by NEMA. NEMA 17 steppers have a 1.7 x 1.7 inch faceplate. NEMA 17
steppers have usually more torque than the smaller variants, such as NEMA 14.
NEMA 17 steppers are commonly used in 3D-printers, CNC router, Linear
actuators and mid-torque precise movement applications.
THEORY OF OPERATION

A 3D printer is very much like an inkjet printer operated from a computer. It


builds up a 3D model one layer at a time, from the bottom upward, by
repeatedly printing over the same area in a method known as fused depositional
modeling (FDM). Working entirely automatically, the printer creates a model
over a period of hours by turning a 3D CAD drawing into lots of two-
dimensional, cross-sectional layers—effectively separate 2D prints that sit one
on top of another, but without the paper in between. Instead of using ink, which
would never build up to much volume, the printer deposits layers of
molten plastic or powder and fuses them together (and to the existing structure)
with adhesive or ultraviolet light.

A 3D printer essentially works by extruding molten plastic through a tiny


nozzle that it moves around precisely under computer control. It prints one
layer, waits for it to dry, and then prints the next layer on top.

The 3D printers use thermoplastics (plastics that melt when you heat them and
turn solid when you cool them back down), and typically one
called ABS (acrylonitrile butadiene styrene). It's perfect for 3D printing
because it's a solid at room temperatures and melts at a little over 100°C
(220°F), which is cool enough to melt inside the printer without too much heat
and hot enough that models printed from it won't melt if they're left in the Sun.
Once set, it can be sanded smooth or painted; another useful property of ABS is
that it's a whiteish-yellow color in its raw form, but pigments (the color
chemicals in paint) can be added to make it virtually any color at all. According
to the type of printer you're using, you feed it the plastic either in the form of
small pellets or filaments (like plastic strings).
3 D PRINTER PROGRAM CODE

#define X_STEP_PIN 54

#define X_DIR_PIN 55

#define X_ENABLE_PIN 38

#define X_MIN_PIN 3

#define X_MAX_PIN 2

#define Y_STEP_PIN 60

#define Y_DIR_PIN 61

#define Y_ENABLE_PIN 56

#define Y_MIN_PIN 14

#define Y_MAX_PIN 15

#define Z_STEP_PIN 46

#define Z_DIR_PIN 48

#define Z_ENABLE_PIN 62

#define Z_MIN_PIN 18

#define Z_MAX_PIN 19

#define E_STEP_PIN 26

#define E_DIR_PIN 28

#define E_ENABLE_PIN 24

#define Q_STEP_PIN 36

#define Q_DIR_PIN 34

#define Q_ENABLE_PIN 30

#define SDPOWER -1

#define SDSS 53
#define LED_PIN 13

#define FAN_PIN 9

#define PS_ON_PIN 12

#define KILL_PIN -1

#define HEATER_0_PIN 10

#define HEATER_1_PIN 8

#define TEMP_0_PIN 13 // ANALOG NUMBERING

#define TEMP_1_PIN 14 // ANALOG NUMBERING

void setup() {

pinMode(FAN_PIN , OUTPUT);

pinMode(HEATER_0_PIN , OUTPUT);

pinMode(HEATER_1_PIN , OUTPUT);

pinMode(LED_PIN , OUTPUT);

pinMode(X_STEP_PIN , OUTPUT);

pinMode(X_DIR_PIN , OUTPUT);

pinMode(X_ENABLE_PIN , OUTPUT);

pinMode(Y_STEP_PIN , OUTPUT);

pinMode(Y_DIR_PIN , OUTPUT);

pinMode(Y_ENABLE_PIN , OUTPUT);

pinMode(Z_STEP_PIN , OUTPUT);

pinMode(Z_DIR_PIN , OUTPUT);

pinMode(Z_ENABLE_PIN , OUTPUT);

pinMode(E_STEP_PIN , OUTPUT);

pinMode(E_DIR_PIN , OUTPUT);

pinMode(E_ENABLE_PIN , OUTPUT);
pinMode(Q_STEP_PIN , OUTPUT);

pinMode(Q_DIR_PIN , OUTPUT);

pinMode(Q_ENABLE_PIN , OUTPUT);

digitalWrite(X_ENABLE_PIN , LOW);

digitalWrite(Y_ENABLE_PIN , LOW);

digitalWrite(Z_ENABLE_PIN , LOW);

digitalWrite(E_ENABLE_PIN , LOW);

digitalWrite(Q_ENABLE_PIN , LOW);

void loop () {

if (millis() %1000 <500)

digitalWrite(LED_PIN, HIGH);

else

digitalWrite(LED_PIN, LOW);

if (millis() %1000 <300) {

digitalWrite(HEATER_0_PIN, HIGH);

digitalWrite(HEATER_1_PIN, LOW);

digitalWrite(FAN_PIN, LOW);

} else if (millis() %1000 <600) {

digitalWrite(HEATER_0_PIN, LOW);

digitalWrite(HEATER_1_PIN, HIGH);

digitalWrite(FAN_PIN, LOW);

} else {

digitalWrite(HEATER_0_PIN, LOW);

digitalWrite(HEATER_1_PIN, LOW);
digitalWrite(FAN_PIN, HIGH);

if (millis() %10000 <5000) {

digitalWrite(X_DIR_PIN , HIGH);

digitalWrite(Y_DIR_PIN , HIGH);

digitalWrite(Z_DIR_PIN , HIGH);

digitalWrite(E_DIR_PIN , HIGH);

digitalWrite(Q_DIR_PIN , HIGH);

else {

digitalWrite(X_DIR_PIN , LOW);

digitalWrite(Y_DIR_PIN , LOW);

digitalWrite(Z_DIR_PIN , LOW);

digitalWrite(E_DIR_PIN , LOW);

digitalWrite(Q_DIR_PIN , LOW);

digitalWrite(X_STEP_PIN , HIGH);

digitalWrite(Y_STEP_PIN , HIGH);

digitalWrite(Z_STEP_PIN , HIGH);

digitalWrite(E_STEP_PIN , HIGH);

digitalWrite(Q_STEP_PIN , HIGH);

delay(1);

digitalWrite(X_STEP_PIN , LOW);

digitalWrite(Y_STEP_PIN , LOW);
digitalWrite(Z_STEP_PIN , LOW);

digitalWrite(E_STEP_PIN , LOW);

digitalWrite(Q_STEP_PIN , LOW);

{375*OVERSAMPLENR,130},
{441*OVERSAMPLENR,120},
{513*OVERSAMPLENR,110},
{588*OVERSAMPLENR,100},
{734*OVERSAMPLENR,80},
{856*OVERSAMPLENR,60},
{938*OVERSAMPLENR,40},
{986*OVERSAMPLENR,20},
{1008*OVERSAMPLENR,0},
{1018*OVERSAMPLENR,-20}
};

#endif
#if (THERMISTORHEATER_0 == 4) || (THERMISTORHEATER_1 == 4) ||
(THERMISTORHEATER_2 == 4) || (THERMISTORBED == 4) //10k thermistor
const short temptable_4[][2] PROGMEM = {
{1*OVERSAMPLENR, 430},
{54*OVERSAMPLENR, 137},
{107*OVERSAMPLENR, 107},
{160*OVERSAMPLENR, 91},
{213*OVERSAMPLENR, 80},
{266*OVERSAMPLENR, 71},
{319*OVERSAMPLENR, 64},
{372*OVERSAMPLENR, 57},
{425*OVERSAMPLENR, 51},
{478*OVERSAMPLENR, 46},
{531*OVERSAMPLENR, 41},
{584*OVERSAMPLENR, 35},
{637*OVERSAMPLENR, 30},
{690*OVERSAMPLENR, 25},
{743*OVERSAMPLENR, 20},
{796*OVERSAMPLENR, 14},
{849*OVERSAMPLENR, 7},
{902*OVERSAMPLENR, 0},
{955*OVERSAMPLENR, -11},
{1008*OVERSAMPLENR, -35}
};
#endif

{914*OVERSAMPLENR, 45},
#define E_STEP_PIN 26

#define E_DIR_PIN 28

#define E_ENABLE_PIN 24

#define Q_STEP_PIN 36

#define Q_DIR_PIN 34

#define Q_ENABLE_PIN 30

#define SDPOWER -1

#define EXTRUDERS 3

#define TEMP_SENSOR_AD595_OFFSET 0.0

#define TEMP_SENSOR_AD595_GAIN 1.0

#define THERMISTORHEATER_0 1

#define THERMISTORHEATER_1 1

#define THERMISTORHEATER_2 1

#define HEATER_0_USES_THERMISTOR 1

#define HEATER_1_USES_THERMISTOR 1

#define HEATER_2_USES_THERMISTOR 1
#define SDSS 53

#define LED_PIN 13

#define FAN_PIN 9

#define PS_ON_PIN 12

#define KILL_PIN -1

#define HEATER_0_PIN 10

#define HEATER_1_PIN 8

#define TEMP_0_PIN 15 // ANALOG NUMBERING

#define TEMP_1_PIN 14 // ANALOG NUMBERING

#define TEMP_2_PIN 13 // ANALOG NUMBERING

void setup() {

pinMode(TEMP_0_PIN , INPUT);

pinMode(TEMP_1_PIN , INPUT);

pinMode(TEMP_2_PIN , INPUT);

pinMode(FAN_PIN , OUTPUT);

pinMode(HEATER_0_PIN , OUTPUT);

pinMode(HEATER_1_PIN , OUTPUT);
pinMode(LED_PIN , OUTPUT);

pinMode(X_STEP_PIN , OUTPUT);

pinMode(X_DIR_PIN , OUTPUT);

pinMode(X_ENABLE_PIN , OUTPUT);

pinMode(Y_STEP_PIN , OUTPUT);

pinMode(Y_DIR_PIN , OUTPUT);

pinMode(Y_ENABLE_PIN , OUTPUT);

pinMode(Z_STEP_PIN , OUTPUT);

pinMode(Z_DIR_PIN , OUTPUT);

pinMode(Z_ENABLE_PIN , OUTPUT);

pinMode(E_STEP_PIN , OUTPUT);

pinMode(E_DIR_PIN , OUTPUT);

pinMode(E_ENABLE_PIN , OUTPUT);

pinMode(Q_STEP_PIN , OUTPUT);

pinMode(Q_DIR_PIN , OUTPUT);

pinMode(Q_ENABLE_PIN , OUTPUT);

digitalWrite(X_ENABLE_PIN , LOW);

digitalWrite(Y_ENABLE_PIN , LOW);

digitalWrite(Z_ENABLE_PIN , LOW);
digitalWrite(E_ENABLE_PIN , LOW);

digitalWrite(Q_ENABLE_PIN , LOW);

Serial.begin(115200);
}

float analog2temp(int raw, uint8_t e) {

#ifdef HEATER_0_USES_MAX6675

if (e == 0)

return 0.25 * raw;

#endif

if(heater_ttbl_map[e] != 0)

float celsius = 0;

byte i;

short (*tt)[][2] = (short (*)[][2])(heater_ttbl_map[e]);

raw = (1023 * OVERSAMPLENR) - raw;

for (i=1; i<heater_ttbllen_map[e]; i++)

if ((PGM_RD_W((*tt)[i][0]) > raw) && ((float)(PGM_RD_W((*tt)[i][0]) -


PGM_RD_W((*tt)[i-1][0])) >0))

celsius = PGM_RD_W((*tt)[i-1][1]) +
(raw - PGM_RD_W((*tt)[i-1][0])) *

(float)(PGM_RD_W((*tt)[i][1]) - PGM_RD_W((*tt)[i-1][1])) /

(float)(PGM_RD_W((*tt)[i][0]) - PGM_RD_W((*tt)[i-1][0]));

break;

// Overflow: Set to last value in the table

if (i == heater_ttbllen_map[e]) celsius = PGM_RD_W((*tt)[i-1][1]);

return celsius;

return ((raw * ((5.0 * 100.0) / 1024.0) / OVERSAMPLENR) *


TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET;

unsigned long prevMillis;

void loop () {

if (millis() %1000 <500)

digitalWrite(LED_PIN, HIGH);

else

digitalWrite(LED_PIN, LOW);

if (millis() %1000 <300) {


digitalWrite(HEATER_0_PIN, HIGH);

digitalWrite(HEATER_1_PIN, LOW);

digitalWrite(FAN_PIN, LOW);

} else if (millis() %1000 <600) {

digitalWrite(HEATER_0_PIN, LOW);

digitalWrite(HEATER_1_PIN, HIGH);

digitalWrite(FAN_PIN, LOW);

} else {

digitalWrite(HEATER_0_PIN, LOW);

digitalWrite(HEATER_1_PIN, LOW);

digitalWrite(FAN_PIN, HIGH);

if (millis() %2000 <1000) {

digitalWrite(X_DIR_PIN , HIGH);

digitalWrite(Y_DIR_PIN , HIGH);

digitalWrite(Z_DIR_PIN , HIGH);

digitalWrite(E_DIR_PIN , HIGH);

digitalWrite(Q_DIR_PIN , HIGH);

else {

digitalWrite(X_DIR_PIN , LOW);

digitalWrite(Y_DIR_PIN , LOW);

digitalWrite(Z_DIR_PIN , LOW);

digitalWrite(E_DIR_PIN , LOW);
digitalWrite(Q_DIR_PIN , LOW);

digitalWrite(X_STEP_PIN , HIGH);

digitalWrite(Y_STEP_PIN , HIGH);

digitalWrite(Z_STEP_PIN , HIGH);

digitalWrite(E_STEP_PIN , HIGH);

digitalWrite(Q_STEP_PIN , HIGH);

delay(1);

digitalWrite(X_STEP_PIN , LOW);

digitalWrite(Y_STEP_PIN , LOW);

digitalWrite(Z_STEP_PIN , LOW);

digitalWrite(E_STEP_PIN , LOW);

digitalWrite(Q_STEP_PIN , LOW);

if (millis() -prevMillis >500){

prevMillis=millis();

int t = analogRead( TEMP_0_PIN);

Serial.print("T0 ");

Serial.print(t);
Serial.print("/");

Serial.print(analog2temp(1024 - t,0),0);

Serial.print(" T1 ");

t = analogRead( TEMP_1_PIN);

Serial.print(t);

Serial.print("/");

Serial.print(analog2temp(1024 - t,1),0);

Serial.print(" T2 ");

t = analogRead( TEMP_2_PIN);

Serial.print(t);

Serial.print("/");

Serial.println(analog2temp(1024 - t,2),0);

}
SOFTWARE OPERATION
Application Domain

 Consumer products (eyewear, footwear, design, furniture).

 Replicating ancient artefacts.

 reconstructing evidence in forensic pathology

 Architectural scale models.

 Industrial products (manufacturing tools, prototypes, functional end-use


parts).

 dental products

 prosthetics

 reconstructing fossils

 replicating ancient artefacts

 movie props
Advantages

 Faster and more efficient service

 Reduces human efforts

 Reducing delays

 Digitization of all campuses.

 Save paper

 Less hardware requirement as wireless data transmission is included

 Portable and user friendly circuit

 Better quality

 Creative Designs and Customization Freedom

 Unlimited Shapes and Geometry

 Less Waste Production

 Risk Reduction
Present Project Status

 Currently, the 3-D Printer are in working state and fully functional.

 We tested our project with software and all function of 3-D Printer are in
working mode.

Project Appearance
Future Scope of Project

 3D printing will become a mainstream technology for serial production.

 Design software for additive will become more integrated and easier to
use.

 Focusing on education will enable more 3D printing applications and


adoption.

 Dental will adopt 3D printing as a dominant production technology.

 Metal 3D printing will continue to mature.


References

 https://hackaday.io/project/164828-poor-mans-mini-3d-printer

 https://www.sparkpcb.com/development/ramps-1.4-shield-5-axis-3d-printer-
control-board.html

 https://www.pronterface.com/

You might also like