Professional Documents
Culture Documents
Design and Execution of A 3d Printer
Design and Execution of A 3d Printer
INTERNATIONALJournal of Mechanical
JOURNALEngineeringOFandMECHANICAL
Technology (IJMET), ENGINEERING
ISSN 0976 – 6340(Print),
ISSN 0976 – 6359(Online), Volume 5, Issue 7, July (2014), pp. 171-183 © IAEME
AND TECHNOLOGY (IJMET)
Maha M. Lashin
Mechanical Engineering Department, Shoubra Faculty of Engineering, Banha University, Egypt
ABSTRACT
3D printing by using PLA filament used to quickly transform an idea into a physical object with
clean process and highly automated. A complete model can create in a single process using 3D
printing. The basic principles include flexibility of output, and translation of code into a visible
pattern. 3D printing by using PLA filament can print most components depending on FFF technique.
3D printing is a form of additive manufacturing technology where a three dimensional object is
created by laying down successive layers of material. The key to this 3D printer is the thermoplastic
extruder which is coupled with a Cartesian XYZ platform. 3D printing by using PLA filament
electronics are based around the popular Arduino development platform, utilizing a custom made
board for interfacing with the Arduino development Board and allowing stepper motor and extrusion
temperature monitoring and control.
INTRODUCTION
The 3D printer is initially designed for extruding and printing 3D models in plastic. The key
of 3D printer is the thermoplastic extruder. The extruder enables plastic filament to force through
into a heated chamber hot end. 3D printing has been used to print organs from a patient’s own cells.
3D printing has drastically improved this process. 3D printing uses in many fields like medicine,
industrial, and aerospace. In medicine 3D printing used to create [1] an artificial scaffolds in the
shape of an organ with living cells, the entire volume of a kidney, artificial ears, and jaw. Industrially
General Motors company used 3D printing for [2] rapid prototyping of the floor console which has
smart phone holders for the driver and passenger. In aerospace NASA used 3D printer to [3] produce
a rocket engine injector.
171
International Journal of Mechanical Engineering and Technology (IJMET), ISSN 0976 – 6340(Print),
ISSN 0976 – 6359(Online), Volume 5, Issue 7, July (2014), pp. 171-183 © IAEME
The 3D printer built from three systems, mechanical, electrical, and controlling. The
mechanical systems as in figure2 include stainless steel frame, stainless steel roads for accessible
extruder head moving in XYZ directions.
As in figure 3 the mechanism of extruder head designed to make the plastic filament enable
to force through
172
International Journal of Mechanical Engineering and Technology (IJMET), ISSN 0976 – 6340(Print),
ISSN 0976 – 6359(Online), Volume 5, Issue 7, July (2014), pp. 171-183 © IAEME
it easy. The electrical system includes the motors and power supply. There are four stepper motors,
one for each three axes and one for the extruder.
The final part of the 3D printer is the control part. The control part used to control the extrude
motion in the three axis directions also to control extrude of the PLA filament. It includes hardware
and software parts. The hardware of the control part consists of Arduino Mega 2560 with 54 digital
input/output pins (of which 14 can be used as PWM outputs), 16 analog inputs, 4 UARTs (hardware
serial ports), a 16 MHz crystal oscillator, a USB connection, a power jack, an ICSP header, and a
reset button. The second component in the hardware components as in figure 5 is the RepRap
Arduino Mega Shield (RAMPS). It is designed to fit the entire electronics needed for a RepRap in
one small package for low cost. The modular design includes plug in stepper drivers and extruder
control electronics on Arduino MEGA shield for easy service, part replacement, upgrade-ability and
expansion.
Figure 6 explain the sachem diagram of the Arduino Mega Shield for the drive stepper motors
173
International Journal of Mechanical Engineering and Technology (IJMET), ISSN 0976 – 6340(Print),
ISSN 0976 – 6359(Online), Volume 5, Issue 7, July (2014), pp. 171-183 © IAEME
The control device of the 3D printer motors is A4988 control board. The type A4988 control
board used for micro stepping bipolar stepper motor driver. It used to control the motors movement
directions (X, Y, and Z axis). Figure7 explain the A4988 breakout board connections.
The final component in 3D printer control system is extruder stepper. It is controlled by the
extruder controller. As in figure8 motherboard talks directly to the stepper drivers on the extruder
board, using the scl/sda pins on the motherboard and the d9/d10 connections on the extruder
controller. The following image shows how the motherboard and extruder board are connected.
The connections between the Arduino Mega microcontroller board, RapRap shield, A4988
stepper motor drive, and extruder controller board explained in details as in figure9.
174
International Journal of Mechanical Engineering and Technology (IJMET), ISSN 0976 – 6340(Print),
ISSN 0976 – 6359(Online), Volume 5, Issue 7, July (2014), pp. 171-183 © IAEME
The printer electronics are controlled by Atmel AVR processor. Atmel processors are what
Arduino-based microcontrollers use. The primitive software which the CPU run is the 3D
printer's firmware. The software chain that makes the printer work is called cross compiling and it
consists of the following steps. Install the Arduino IDE on PC.
Download some firmware source code from a website. Make some minor changes to the
source code to specify what hardware used. Compile the firmware using the Arduino IDE. Connect
the controller to the PC via a USB cable. Upload the firmware to controller's CPU.
175
International Journal of Mechanical Engineering and Technology (IJMET), ISSN 0976 – 6340(Print),
ISSN 0976 – 6359(Online), Volume 5, Issue 7, July (2014), pp. 171-183 © IAEME
#define ENDSTOPPULLUP_YMAX
#define ENDSTOPPULLUP_ZMAX
#define ENDSTOPPULLUP_XMIN
#define ENDSTOPPULLUP_YMIN
#define ENDSTOPPULLUP_ZMIN
#endif
// Thepullups are needed if you directly connect a mechanical endswitch between the signal and
ground pins.
constbool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
constbool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
constbool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
constbool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
constbool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
constbool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
//#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS
// Disable max endstops for compatibility with endstop checking routine
#if defined(COREXY) && !defined(DISABLE_MAX_ENDSTOPS)
#define DISABLE_MAX_ENDSTOPS
#endif
// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
#define X_ENABLE_ON 0
#define Y_ENABLE_ON 0
#define Z_ENABLE_ON 0
#define E_ENABLE_ON 0 // For all extruders
// Disables axis when it's not being used.
#define DISABLE_X true
#define DISABLE_Y true
#define DISABLE_Z true
#define DISABLE_E true // For all extruders
#define INVERT_X_DIR true // for Mendel set to false, for Orca set to true
#define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false
#define INVERT_Z_DIR true // for Mendel set to false, for Orca set to true
#define INVERT_E0_DIR false // for direct drive extruder v9 set to true, for geared extruder set to
false
#define INVERT_E1_DIR false // for direct drive extruder v9 set to true, for geared extruder set to
false
#define INVERT_E2_DIR false // for direct drive extruder v9 set to true, for geared extruder set to
false
// ENDSTOP SETTINGS:
// Sets direction of endstops when homing; 1=MAX, -1=MIN
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
#define max_software_endstopstrue // If true, axis won't move to coordinates greater than the
defined lengths below.
// Travel limits after homing
#define X_MAX_POS 205
176
International Journal of Mechanical Engineering and Technology (IJMET), ISSN 0976 – 6340(Print),
ISSN 0976 – 6359(Online), Volume 5, Issue 7, July (2014), pp. 171-183 © IAEME
#define X_MIN_POS 0
#define Y_MAX_POS 205
#define Y_MIN_POS 0
#define Z_MAX_POS 200
#define Z_MIN_POS 0
#define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS)
#define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS)
#define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS)
//=============================Additional Features===========================
// EEPROM
// the microcontroller can store settings in the EEPROM, e.g. max velocity...
// M500 - stores paramters in EEPROM
// M501 - reads parameters from EEPROM (if you need reset them after you changed them
temporarily).
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM
afterwards if you want to.
//define this to enable eeprom support
//#define EEPROM_SETTINGS
//to disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this
out:
// please keep turned on if you can.
//#define EEPROM_CHITCHAT
// Preheat Constants
#define PLA_PREHEAT_HOTEND_TEMP 180
#define PLA_PREHEAT_HPB_TEMP 70
#define PLA_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255
#define ABS_PREHEAT_HOTEND_TEMP 240
#define ABS_PREHEAT_HPB_TEMP 100
#define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255
//LCD and SD support
//#define ULTRA_LCD //general lcd support, also 16x2
//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to
ENCODER_PULSES_PER_STEP or your liking
//#define ULTIMAKERCONTROLLER //as available from the ultimaker online store.
//#define ULTIPANEL //the ultipanel as on thingiverse
//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer
plays when on UI feedback. ie Screen Click
//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays
the UI feedback sound. ie Screen Click
// The MaKr3d Makr-Panel with graphic controller and SD support
// http://reprap.org/wiki/MaKr3d_MaKrPanel
//#define MAKRPANEL
// The RepRapDiscount Smart Controller (white PCB)
// http://reprap.org/wiki/RepRapDiscount_Smart_Controller
//#define REPRAP_DISCOUNT_SMART_CONTROLLER
// The GADGETS3D G3D LCD/SD Controller (blue PCB)
// http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel
//#define G3D_PANEL
// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB)
177
International Journal of Mechanical Engineering and Technology (IJMET), ISSN 0976 – 6340(Print),
ISSN 0976 – 6359(Online), Volume 5, Issue 7, July (2014), pp. 171-183 © IAEME
// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder:
http://code.google.com/p/u8glib/wiki/u8glib
//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
// The RepRapWorld REPRAPWORLD_KEYPAD v1.1
// http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626
//#define REPRAPWORLD_KEYPAD
//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a
key is pressed, eg 10.0 means 10mm per click
// The Elefu RA Board Control Panel
// http://www.elefu.com/index.php?route=product/product&product_id=53
// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARUDINO library folder:
https://github.com/kiyoshigawa/LiquidCrystal_I2C
//#define RA_CONTROL_PANEL
//automatic expansion
#if defined (MAKRPANEL)
#if defined (REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
#define DOGLCD
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or
bed height changes.
// Use M206 command to correct for switch height offset to actual nozzle height. Store that setting
with M500.
//#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
//#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
#include "Configuration_adv.h"
#include "thermistortables.h"
; generated by Slic3r 1.0.0RC2 on 2014-06-21 at 01:42:38
; layer_height = 0.4
; perimeters = 3
; top_solid_layers = 3
; bottom_solid_layers = 3
; fill_density = 0.4
; perimeter_speed = 30
; infill_speed = 60
; travel_speed = 130
; nozzle_diameter = 0.5
; filament_diameter = 3
; extrusion_multiplier = 1
; perimeters extrusion width = 0.50mm
; infill extrusion width = 0.53mm
; solid infill extrusion width = 0.53mm
; top infill extrusion width = 0.53mm
; first layer extrusion width = 0.70mm
G21 ; set units to millimeters
M107
M104 S200 ; set temperature
G28 ; home all axes
G1 Z5 F5000 ; lift nozzle
M109 S200 ; wait for temperature to be reached
178
International Journal of Mechanical Engineering and Technology (IJMET), ISSN 0976 – 6340(Print),
ISSN 0976 – 6359(Online), Volume 5, Issue 7, July (2014), pp. 171-183 © IAEME
179
International Journal of Mechanical Engineering and Technology (IJMET), ISSN 0976 – 6340(Print),
ISSN 0976 – 6359(Online), Volume 5, Issue 7, July (2014), pp. 171-183 © IAEME
180
International Journal of Mechanical Engineering and Technology (IJMET), ISSN 0976 – 6340(Print),
ISSN 0976 – 6359(Online), Volume 5, Issue 7, July (2014), pp. 171-183 © IAEME
G92 E0
G1 X92.933 Y102.081 F7800.000
G1 E1.00000 F1800.000
G1 X92.783 Y101.831 E1.00826 F600.000
G1 X92.773 Y101.918 F7800.000
G1 X92.539 Y102.266 E1.02013 F600.000
G1 X91.774 Y99.211 F7800.000
G1 X92.411 Y101.519 E1.08788 F600.000
G1 X92.783 Y101.831 E1.10160
G1 X93.230 Y100.867 E1.13166
G1 X93.710 Y98.889 E1.18926
G1 X94.083 Y97.824 F7800.000
G1 X94.199 Y97.850 E1.19262 F600.000
G1 X94.140 Y97.719 F7800.000
G1 F1800.000 E0.34673
G92 E0
G1 X97.831 Y97.978 F7800.000
G1 E1.00000 F1800.000
G1 X97.816 Y97.842 E1.00389 F600.000
G1 F1800.000 E0.00389
G92 E0
G1 X99.349 Y101.516 F7800.000
G1 E1.00000 F1800.000
G1 X99.142 Y101.618 E1.00652 F600.000
G1 X99.277 Y101.602 F7800.000
G1 X99.277 Y101.627 E1.00724 F600.000
G1 F1800.000 E0.00724
G92 E0
G1 X103.904 Y97.978 F7800.000
G1 E1.00000 F1800.000
G1 X103.890 Y97.842 E1.00389 F600.000
G1 F1800.000 E0.00389
G92 E0
G1 X107.346 Y101.851 F7800.000
G1 E1.00000 F1800.000
G1 X107.526 Y102.206 E1.01125 F600.000
G1 X107.344 Y101.936 F7800.000
G1 X107.106 Y102.289 E1.02327 F600.000
G1 F1800.000 E0.02327
G92 E0
G1 Z1.150 F7800.000
G1 X105.943 Y97.663 F7800.000
G1 E1.00000 F1800.000
G1 X105.855 Y97.775 E1.00403 F600.000
G1 X105.895 Y97.808 F7800.000
G1 X106.291 Y98.886 E1.03653 F600.000
G1 X108.263 Y98.907 E1.09233
G1 X108.649 Y97.792 E1.12572
G1 X108.670 Y97.714 F7800.000
181
International Journal of Mechanical Engineering and Technology (IJMET), ISSN 0976 – 6340(Print),
ISSN 0976 – 6359(Online), Volume 5, Issue 7, July (2014), pp. 171-183 © IAEME
182
International Journal of Mechanical Engineering and Technology (IJMET), ISSN 0976 – 6340(Print),
ISSN 0976 – 6359(Online), Volume 5, Issue 7, July (2014), pp. 171-183 © IAEME
CONCLUSION
3D printing by using PLA filament electronics are based around the popular Arduino
development platform, utilizing a custom made board for interfacing with the Arduino development
Board and allowing stepper motor and extrusion temperature monitoring and control. 3D printing by
using PLA filament discussed at this paper as a tool for reverse engineering, it used to quickly
transform an idea into a physical object with clean process and highly automated. A complete model
can create in a single process using 3D printing. 3D printer discussed her as a new application of
Arduino controller type. The complete design of that printer has explained in detail with its all
components and also its control system hardware, software parts. A good result had got from this 3D
printer after it used to get a product. Its product was accurate and the user gets it at very low time
compared with the other types of reverse engineering tools.
REFERENCES
[1] Parth R. Kantaria (M. Tech Student), Shyam. A. Pankhaniya, “Implementation of 3D Printer”,
International Journal for Technological Research in Engineering Volume 1, Issue 9, May-2014
ISSN (Online): 2347 – 4718.
[2] Atin Sinha, “New Frontiers in Manufacturing Education: Rapid Prototyping, 3D Scanning and
Reverse Engineering”, Albany State University, GA 31705, 2009 ASEE Southeast Section
Conference.
[3] Wiley, “Reversing: Secrets of Reverse Engineering”, Copyright © 2005 by Wiley Publishing,
Inc., Indianapolis, Indiana Published simultaneously in Canada.
[4] Dr.phil Reeves, “3D Printer-Hyperbolic or Exponential-The Real Growth Potential of 3D
Printing”, October 2013, Lead Consultant, Econolyst.
[5] Gomagic, “3D Reverse Engineering Software”, 2011, Head Quarters, the magic of making it
simple, geomagic worldwide.
[6] Alan G. Smith “Introduction to Arduino-A piece of cake”, Copyright © 2011 Alan G. Smith,
ISBN: 1463698348, ISBN-13: 978-1463698348.
[7] Maha M. Lashin, “A Different Applications of Arduino”, International Journal of Mechanical
Engineering & Technology (IJMET), Volume 5, Issue 6, 2014, pp. 36 - 46, ISSN Print:
0976 – 6340, ISSN Online: 0976 – 6359.
183