You are on page 1of 33

Laser Engraving: a Subtractive Manufacturing Process

Laser Engraving (or Laser Etching) is a Subtractive Manufacturing method, that


uses a laser beam to change the surface of an object.

This process is mostly used to create images on the material, that may be seen
at eye level. To do so, the laser creates high heat that will vaporize the matter,
thus exposing cavities that will form the final image. It is using the laser for
marking the surface of an item.
Laser Engraving: how does it works?

This method is quick, as the material is removed with each pulse of the laser.
The depth of the marks is controlled by the number of times the laser beam is
passing on the material.

There are different types of laser engraving machines :


First ones are engraver machines where the workpiece stay stable, only the
laser moves (or inversely). Other machines dedicated to cylindrical workpieces.
The last possibilities are laser engraving machines where the laser and the
workpiece are both immobile but galvo mirrors are moving the laser beam on
the surface to engrave.

What is it possible to do with Laser Engraving?

It can be used on almost any kind of metal, plastic, wood, leather or glass
surface. You can get a lot of different engraved materials. Furthermore, it is
more effective than traditional engraving for small objects, such as jewellery.
There are also smaller chances to damage or deform the material. It can be
used for many different applications, such as medical devices, fine art and so
on.

It can be used for industrial applications, but it is also possible to get a DIY laser
engraver machine, for example with a CO2 laser system. You just have to
connect your CO2 laser engraving machine on the USB port of your computer
and it will work like a printer.
Difference between Laser Etching and Laser Engraving

Laser Etching is a subset of Laser Engraving. In this particular case, the heat
from the beam is not used to vaporize the matter, but to melt it. It is mostly
used on metals and will expand the material by creating a raised cavity. It thus
modifies its characteristics, such as its reflectivity, and will create a contrast
with its surroundings.

Compared to other processes using lasers, such as Laser Cutting or Laser


Etching, Laser Engraving keeps the initial shape of the material, and is the most
common option to create personalized or customized objects. Logos, serial
numbers, or pictures are typically the kind of creations that can be done thanks
to Laser Engraving.

Laser Marking is less common but quite popular in the medical device industry.
One of the major difference with Laser Engraving and Laser Etching is that
here, the oxidation during the marking process make the material turn black.
This laser marker technique is also good for logos or bar codes.
Parts List We need these following parts to make the
project -

 Arduino Nano
 250mW 650nm Laser Module
 A4988 Motor Driver
 IRFZ44N Mosfet
 LM7805 Voltage Regulator.
 Laser Heatsink
 IC Heatsink
 1000uF Capacitor
 10k & 47R Resistor
 Male and Female Header Pin
 Screw Terminal
 JST 2.0 Connector
 2.5mm Jumper Cap
 Shrink Tube
 DVD Writer
 Custom PCB Board
 5mm Acrylic Sheet

Tools List:

 Soldering Iron
 Drill Machine
 Metal File
 Sandpaper
 Wire Cutter
 Superglue
Step 2: Remove the Stepper Sliding Mechanism

We need two DVD writer’s mechanism for this project. One for X-Axis
and another one for Y-Axis. You can find this DVD writer from broken
CPU or local hardware shop. We also got from the local hardware shop
at very cheap prices. Now it’s time to disassemble the DVD writers.

1. Use Philips head screwdriver to remove all the screws.


2. Unplugged all the connectors and cables.
3. Open the disk holder and unscrew the sliding mechanism.
4. Detached the Sliding mechanism.
For laser engraving machine it is basically a programmable device
which operates on logical control and with precise movements. For
precise movement of machine, it is required to move in coordinate,
so prefer to use stepper motor for this kind of motion.
In our machine requirement of motor as small size stepper motor, so
this the best option for us.
STEPPER MOTOR SPECIFICATION :
Assemble the Frames:

Our project aim is to make Laser engraver with small compact size with less
complication and user friendly. Laser engraving machine is totally assembled
on ACP (Aluminium Composite Panel) sheet of 3 mm thick.

Structure of column of laser assembly is of wooden of vertical member of 180


mm high and 14 mm wide. Laser is mount with help of heatsink so there is no
any requirement of attachment to laser. Laser with heatsink is located at
centre of horizontal member of wooden material. Stepper motors are attached
on ACP sheet above 6mm high from ply. For it spacers are used with same
height of plastic material. Bottom is X- axis and upper attachment is Y-axis.
Both are attached with superglue. X- axis is bolted with help of spacers at all
four corners.
Wiring of Stepper Motor:

In this step, we'll solder wires to the stepper motors. Follow the steps below to
properly solder wires.

1. First, determine the 2 coils A and B using multimeter's continuity mode.


2. Cut the flexible PCB of stepper motors.
3. Solder wires to stepper motors
4. Connect 1*4 Female header pin at the end of wires and secure them
using shrink tube.
LASER MODULE:

Specification:
Brand Eleksmaker
Optical Power: 200-250mW
Wavelength 650nm(red laser)
Voltage: DC 3-5V
Current: <300mA
Beam Shape: dot
Size: Φ12X45mm

Features:
1. 650nm focusable red laser module
2. Reverse power protection, anti-static protection, short circuit protection
3. Supply current does not vary with the voltage ranging from 3.2V to 5.0V
4. Output optical power is stable, suitable for industrial equipment usage

Note:
1.This laser module has high output power, please wear goggles when testing
or using.
2.The red cord is anode; the black cord is cathode.
LASER MODULE HEATSINK:

1. It can be used as the laser heat sink module


2. Material: Aluminium
3. Inner diameter: 12.3mm
4.Size:32*20-27(mm) (L*W*H)
5, Centre-Height:17.5mm
6. Quantity: 1PCS heat sink
7. Cooling effect is very good. Suitable for 12mm red, green, blue-violet light
or IR laser module.
8.Good cooling effect, increase module usage time.
The PCB Making:
Electronics is the heart of the machine which controls the whole sole machine.
All the basic components of the electronic is mounted on PCB (Printed Circuit
Board). Circuit diagram is developed for our custom machine with our
compactible parameters. As our machine consist of two stepper motors which
are controlled by smart controller. And other assembly is pinouts for laser
module and input source.
CIRCUIT DIAGRAM FOR LASER ENGRAVER:

Above given diagram is the form of GERBER format with help of circuit
development software we produce in the form of wiring and pinouts.
Components are soldered and tested by multimeter.
ELECTRONIC COMPONENT:
ARDUINO NANO:

Arduino Nano Features:


The features of an Arduino Nano mainly include the following.

 ATmega328P Microcontroller is from 8-bit AVR family


 Operating voltage is 5V
 Input voltage (Vin) is 7V to 12V
 Input/output Pins are 22
 Analog i/p pins are 6 from A0 to A5
 Digital pins are 14
 Power consumption is 19 mA
 I/O pins DC Current is 40 mA
 Flash memory is 32 KB
 SRAM is 2 KB
 EEPROM is 1 KB
 CLK speed is 16 MHz
 Weight-7g
 Size of the printed circuit board is 18 X 45mm
 Supports three communications like SPI, IIC, & USART
Arduino Nano Pinout:
Arduino Nano pin configuration is shown below and each pin
functionality is discussed below.

 Arduino-Nano-pinout
 Arduino-Nano-pinout
 Power Pin (Vin, 3.3V, 5V, GND): These pins are power pins
STEPPER MOTOR DRIVER:
This breakout board for Allegro’s A4988 micro stepping bipolar stepper motor
driver features adjustable current limiting, over-current and over-temperature
protection, and five different micro step resolutions (down to 1/16-step). It
operates from 8 V to 35 V and can deliver up to approximately 1 A per phase
without a heat sink or forced air flow (it is rated for 2 A per coil with sufficient
additional cooling). This board ships with 0.1″ male header pins included but
not soldered in.

Overview
This product is a carrier board or breakout board for Allegro’s A4988 DMOS
Micro Stepping Driver with Translator and Overcurrent Protection; we
therefore recommend careful reading of the A4988 datasheet (1MB pdf)
before using this product. This stepper motor driver lets you control one
bipolar stepper motor at up to 2 A output current per coil (see the Power
Dissipation Considerations section below for more information). Here are some
of the driver’s key features:
 Simple step and direction control interface
 Five different step resolutions: full-step, half-step, quarter-step, eighth-
step, and sixteenth-step
 Adjustable current control lets you set the maximum current output
with a potentiometer, which lets you use voltages above your stepper
motor’s rated voltage to achieve higher step rates
 Intelligent chopping control that automatically selects the correct
current decay mode (fast decay or slow decay)
 Over-temperature thermal shutdown, under-voltage lockout, and
crossover-current protection
 Short-to-ground and shorted-load protection

CIRCUIT FOR A4988 DRRIVER:


MOSFET FOR LASER OPERATING:
IRFZ44N N-Channel Power MOSFET
The IRFZ44N is a N-channel MOSFET with a high drain current of 49A and low
Rds. value of 17.5 mΩ. It also has a low threshold voltage of 4V at which the
MOSFET will start conducting. Hence it is commonly used with microcontrollers
to drive with 5V. However, a driver circuit is needed if the MOSFET has to be
switched in completely.

Features:
 Small signal N-Channel MOSFET
 Continuous Drain Current (ID) is 49A at 25°C
 Pulsed Drain Current (ID-peak) is 160A
 Minimum Gate threshold voltage (VGS-th) is 2V
 Maximum Gate threshold voltage (VGS-th) is 4V
 Gate-Source Voltage is (VGS) is ±20V (max)
 Maximum Drain-Source Voltage (VDS) is 55V
 Rise time and fall time is about 60ns and 45ns respectively.
 It is commonly used with Arduino, due to its low threshold current.
Where to use IRFZ44N MOSFET
The IRFZ44N is known for its high drain current and fast switching speed.
Adding to that it also has a low Rds value which will help in increasing the
efficiency of switching circuits. The MOSFET will start turning on with a small
gate voltage of 4V, but the drain current will be maximum only when a gate
voltage of 10V is applied. If the mosfet has to be driven directly from a
microcontroller like Arduino then try the logic level version IRLZ44N mosfet.
Applications:
 Switching high power devices
 Control speed of motors
 LED dimmers or flashers
 High Speed switching applications
 Converters or Inverter circuits

IRFZ44N with 5V gate (Arduino)


If the MOSFET gate pin is directly connected to an I/O pin of a microcontroller
like Arduino, PIC etc. Then it will not open completely and the maximum drain
current will depend on the voltage applied to the gate pin. The below graph
shows how much drain current is permitted for gate threshold voltage from 4V
to 10V.
DIRECT CURRENT (DC) POWER SUPPLY FOR ENGRAVER:
SMPS (Switched Mode Power Supply) 12V 2AMP:

Specifications:
 Input Voltage: AC 100 - 264V 50 / 60Hz
 Output Voltage: 12V DC, 2A
 Output voltage: Adjustment Range: ±20%
 Protections: Overload / Over Voltage / Short Circuit
 Auto-Recovery After Protection
 Universal AC input / Full range
 100% Full Load Burn-in Test
 Cooling by Free Air Convection
 High Quality and High Performance
 LED power supply with a metal body for hidden installation for LED
lighting
 Design with Built-in EMI Filter, improve signal precision.
 Certifications: CE & RoHs
 No Minimum Load.
 Compact Size Light Weight.
 High Efficiency, Reliability & low energy consumption
 Category - Switch Mode Power Adaptor (SMPS)
 MTBF >50,000 hours
 Output Type - DC
 Output - 12Volts 2Amp
 Shell Material: Metal Case / Aluminium Base
 Colour: Sliver
 Dimension: (85 x 58 x 38) mm / (3.40 x 2.60 x 1.49) inch (L x W X H)
CIRCUIT PREPERATION:

Mount the Arduino and Motor Drivers


Now mount the Arduino and A4988 motor drivers.

In GRBL the digital and analog Pins of Arduino are reserved. The 'Step'
pin for the X and Y axes is attached to digital pins 2,and 3 respectively.
The 'Dir' pin for the X and Y axes is attached to digital pins 5 and 6
respectively. D11 is for laser Enable. The Arduino gets power through
the USB Cable. The A4988 Drivers through external power source. All
ground share common connections. VDD of A4988 are connected to 5V
of Arduino. The laser I've used runs on 5V and has built in constant
current circuit. For the constant 5V source from the external power
supply LM7805 voltage regulator is used. Heatsink is compulsory. The
IRFZ44N N-CHANNEL MOSFET works as an elelctronic switch when
receives digital high signal from pin D11 of Arduino. NOTE: 5V from
Arduino nano can't be used beause the laser draws more than 250mA
and the Arduino Nano is not capable of delivering that much of current.

Configuring Micro Stepping for Each Axis.

MS0 MS1 MS2 Micro step Resolution.

Low Low Low Full step.

High Low Low Half step.

Low High Low Quarter step.

High High Low Eighth step.

High High High Sixteenth step.

The 3 pins (MS1, MS2 and MS3) are for selecting one of the five step
resolutions according to the above truth table. These pins have internal
pull-down resistors so if we leave them disconnected, the board will
operate in full step mode. I've used the 16th step configuration for
smooth and noise free. Most (but certainly not all) stepper motors do
200 full steps per revolution. By appropriately managing the current in
the coils it is possible to make the motor move in smaller steps. The
Pololu A4988 can make the motor move in 1/16th steps - or 3,200 steps
per revolution.The main advantage of microstepping is to reduce the
roughness of the motion. The only fully accurate positions are the full-
step positions. The motor will not be able to hold a stationary position at
one of the intermediate positions with the same position accuracy or
with the same holding torque as at the full step positions.Generally
speaking when high speeds are required full steps should be used.
SETTING OF LASERS GRBL:
GRBL Firmware
What is GRBL firmware?
GRBL is a firmware for Arduino boards(uno,nano,Duemillanove) that controls
stepper motors and spindles/lasers. GRBL uses geode as input and outputs
signals via the Arduino pins.

1. First, Download the GRBL firmware.


2. Open the Arduino IDE.
3. Then Choose Sketch>>Include Library>>Add. Zip Library>>Select
the grbl-master.zip file
4. The library is installed now we have to upload the grbl sketch.
5. Select the sketch from the File>>Examples>>grbl>> select the
grblUpload
6. Select the Correct board and port, then click on the upload button
to upload the sketch in Arduino.
The LaserGRBL Software:

LaserGRBL is one of the best Windows GCode streamer for DIY


Laser Engraver. LaserGRBL is able to load and stream GCode path
to Arduino, as well engrave images, pictures and logo with
internal conversion tool.

Download the LaserGRBL and install it on your PC.


Open the LaserGRBL.Then select the correct COM port and proper
baud rate for the connection. (default 115200)
Click on the file icon to load the image which you want to engrave.
LaserGRBL supports any kind of image format.
Select proper dimension(40x40mm) and engraving speed
Click on the green play button to start the engraving.
Arduino Code for Laser engraver
#include <Servo.h>
#include <AFMotor.h>

#define LINE_BUFFER_LENGTH 512

char STEP = MICROSTEP ;

// Servo position for Up and Down


const int penZUp = LOW;
const int penZDown = HIGH;

// Servo on PWM pin 10


const int penServoPin =10 ;

// Should be right for DVD steppers, but is not too important here
const int stepsPerRevolution = 40;

// create servo object to control a servo


//Servo penServo;

// Initialize steppers for X- and Y-axis using this Arduino pins for the L293D H-bridge
AF_Stepper myStepperY(stepsPerRevolution,1);
AF_Stepper myStepperX(stepsPerRevolution,2);

/* Structures, global variables */


struct point {
float x;
float y;
float z;
};

// Current position of plothead


struct point actuatorPos;

// Drawing settings, should be OK


float StepInc = 1;
int StepDelay = 2;
int LineDelay =0;
int penDelay = 10;

// Motor steps to go 1 millimeter.


// Use test sketch to go 100 steps. Measure the length of line.
// Calculate steps per mm. Enter here.
float StepsPerMillimeterX = 100.0;
float StepsPerMillimeterY = 100.0;

// Drawing robot limits, in mm


// OK to start with. Could go up to 50 mm if calibrated well.
float Xmin = 0;
float Xmax = 40;
float Ymin = 0;
float Ymax = 40;
float Zmin = 0;
float Zmax = 1;

float Xpos = Xmin;


float Ypos = Ymin;
float Zpos = Zmax;

// Set to true to get debug output.


boolean verbose = false;

// Needs to interpret
// G1 for moving
// G4 P300 (wait 150ms)
// M300 S30 (pen down)
// M300 S50 (pen up)
// Discard anything with a (
// Discard any other command!

/**********************
* void setup() - Initialisations
***********************/
void setup() {
// Setup

Serial.begin( 9600 );

// Decrease if necessary
myStepperX.setSpeed(100);

myStepperY.setSpeed(100);

// Set & move to initial default position


// TBD

// Notifications!!!
Serial.println("Mini CNC Plotter alive and kicking!");
Serial.print("X range is from ");
Serial.print(Xmin);
Serial.print(" to ");
Serial.print(Xmax);
Serial.println(" mm.");
Serial.print("Y range is from ");
Serial.print(Ymin);
Serial.print(" to ");
Serial.print(Ymax);
Serial.println(" mm.");
}

/**********************
* void loop() - Main loop
***********************/
void loop()
{

delay(100);
char line[ LINE_BUFFER_LENGTH ];
char c;
int lineIndex;
bool lineIsComment, lineSemiColon;

lineIndex = 0;
lineSemiColon = false;
lineIsComment = false;

newPos.x = 0.0;
newPos.y = 0.0;

// Needs to interpret
// G1 for moving
// G4 P300 (wait 150ms)
// G1 X60 Y30
// G1 X30 Y50
// M300 S30 (pen down)
// M300 S50 (pen up)
// Discard anything with a (
// Discard any other command!

while( currentIndex < charNB ) {


switch ( line[ currentIndex++ ] ) { // Select command, if any
case 'U':
penUp();
break;
case 'D':
penDown();
break;
case 'G':

// Bring instructions within limits


if (x1 >= Xmax) {
x1 = Xmax;
}
if (x1 <= Xmin) {
x1 = Xmin;
}
if (y1 >= Ymax) {
y1 = Ymax;
}
if (y1 <= Ymin) {
y1 = Ymin;
}

if (verbose)
{
Serial.print("Xpos, Ypos: ");
Serial.print(Xpos);
Serial.print(",");
Serial.print(Ypos);
Serial.println("");
}

if (verbose)
{
Serial.print("x1, y1: ");
Serial.print(x1);
Serial.print(",");
Serial.print(y1);
Serial.println("");
}

// Convert coordinates to steps


x1 = (int)(x1*StepsPerMillimeterX);
y1 = (int)(y1*StepsPerMillimeterY);
float x0 = Xpos;
float y0 = Ypos;

// Let's find out the change for the coordinates


long dx = abs(x1-x0);
long dy = abs(y1-y0);
int sx = x0<x1 ? StepInc : -StepInc;
int sy = y0<y1 ? StepInc : -StepInc;

long i;
long over = 0;

if (verbose)
{
Serial.print("dx, dy:");
Serial.print(dx);
Serial.print(",");
Serial.print(dy);
Serial.println("");
}

if (verbose)
{
Serial.print("Going to (");
Serial.print(x0);
Serial.print(",");
Serial.print(y0);
Serial.println(")");
}

// Delay before any next lines are submitted


delay(LineDelay);
// Update the positions
Xpos = x1;
Ypos = y1;
}

// Raises pen
void penUp() {
digitalWrite(penServoPin,penZUp);
delay(penDelay);
Zpos=Zmax;
digitalWrite(15, LOW);
digitalWrite(16, HIGH);
if (verbose) {
Serial.println("Pen up!");

}
}
// Lowers pen
void penDown() {
digitalWrite(penServoPin,penZDown);
delay(penDelay);
Zpos=Zmin;
digitalWrite(15, HIGH);
digitalWrite(16, LOW);
if (verbose) {
Serial.println("Pen down.");

You might also like