Professional Documents
Culture Documents
3D Printer: A Major Project Report
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:
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.
Signature(s) of Students :
Prithvi Kumar -
Ankit Chawla -
Dhruv Khanna -
TABLE OF CONTENTS
Page No.
Acknowledgement i
Abstract / Introduction ii
Software Working v
Applications/ Advantages vi
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
4 Temperature Sensor 2
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:
Pronsole, an interactive command line host for the console lovers (or
printing over ssh, or...)
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
Cooling
Heating
Thermistor(Temp
Sensor)
Endstops
Circuit Diagram
About Important Components
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
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.
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
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 () {
digitalWrite(LED_PIN, HIGH);
else
digitalWrite(LED_PIN, LOW);
digitalWrite(HEATER_0_PIN, HIGH);
digitalWrite(HEATER_1_PIN, LOW);
digitalWrite(FAN_PIN, LOW);
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);
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 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
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);
}
#ifdef HEATER_0_USES_MAX6675
if (e == 0)
#endif
if(heater_ttbl_map[e] != 0)
float celsius = 0;
byte i;
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;
return celsius;
void loop () {
digitalWrite(LED_PIN, HIGH);
else
digitalWrite(LED_PIN, LOW);
digitalWrite(HEATER_1_PIN, LOW);
digitalWrite(FAN_PIN, LOW);
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);
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);
prevMillis=millis();
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
dental products
prosthetics
reconstructing fossils
movie props
Advantages
Reducing delays
Save paper
Better quality
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
Design software for additive will become more integrated and easier to
use.
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/