Laser Milling Machine

Download Report

Transcript Laser Milling Machine

Laser Milling Machine
Group 18
Nathan Bodnar
David Dowdle
Ryan Maticka
Project Overview
• The system will be capable of laser etching
copper coated printed circuit boards (PCB’s) for
the purpose of rapidly prototyping senior design
projects
• The system will
consist of:
– High powered
green laser
– Custom software
– XY plotting table
– Safety mechanisms
Project Motivation
• Current milling machine
used by senior design
students has had
numbers breakdowns
• We wanted to replace the
replace the current
milling machine with a
more reliable system that
was capable of running
without continuous user
input
• Design and build our own
high powered green laser
Project Goals and Objectives
• Capable of producing a quality result in less time
than is required to ship out a PCB to a
professional manufacturer
• Safe, most specifically in the area of eye and lung
safety
• Capable of interfacing with a computer through a
single USB port
• Capable of vaporizing copper in just a few pulses
of a laser
• Capable of burning through the fiberglass
substrate with the laser alone
Project Goals and Objectives
• Capable of accepting a Gerber file from a
mainstream PCB layout software program
• Capable of accepting boards to be milled in
PNG format
• Capable of handling FR4 copper clad PCB
• Able to store previously milled boards so that
the left over areas can be re-milled
• Capable of milling warped boards
Project Specifications & Requirements
• Capable of milling a 12inx12in board
• Resolution of 1mil
– 1mil = 39.37mm or 1/1000inch
• Beam waste of 1mil or lower
• Protected through the storage of hashed user
passwords
Project Specifications and
Requirements
• Require 512MB of main
memory (computer) to
run after everything
else
• Implement a call and
answer protocol for the
interface between the
computer and the
microcontroller through
the use of 64Byte data
packets
Safety
• User safety
–
–
–
–
DANGER
Laser being ran as a class one
HIGH
VOLTAGE
Air scrubbed through a carbon filter
Automatic shutdown if the system is opened
High voltage system, so the entire system is enclosed
and not just the laser subsystem
• Equipment safety
– Multiple temperature sensors
– Automatic shutdown on a detected anomaly
– Multiple housings to protect equipment from the
vaporized copper by product of the mill procedure
Laser Safety
• Desirable to run the system as a class one laser
• Laser safety glasses (Five OD as per ANSI Z136.1
standard) still required when testing and
calibrating the laser
• Needed to classify the laser as a class one:
–
–
–
–
Protective housing
Interlocks on the housing
Service access panel
Equipment labels
! CAUTION
LASER RADIATION
DO NOT STARE INTO BEAM
Enclosed Nd:YAG, 532nm, 10mJ, 40ns
CLASS 1 LASER
Burn Testing
Energy to Vaporize Copper
35
30
Energy (mJ)
25
20
15
10
5
0
1048
848
648
448
Wavelength (nm)
Minimum amount of Energy
needed: 0.7mJ for 20ns @
532nm
248
Laser Cavity Design
•Folded cavity Design
•Q switched
•808nm Diode Pumped
•Output: 532nm
•Nd:YAG (end pumped)
Laser Cavity Simulations
• With 80W input = 30W
@ 1064nm
• ~12W @532nm CW
• Pulsed: 4mJ @ 13ns
• ~ 307 MW duty 0.0013%
Laser Block Diagram
Main
Computer
USB
USB
USB
USB
AC Power
AC Power
Thermal Electric Cooler
Laser
Power Supply
Thermal Electric Cooler
Laser
Power Supply
Cooling Lines
Cooling Lines
Thermistor
Wire
Thermistor
Wire
Cooling
Flow
Cooling
Flow
Laser Diode #1
Laser Diode #2
#1
Wire
Wire
Cooling Lines
Cooling Lines
Q Switch
Pockel Cell
• Fast Switching
Characteristics <1ns
• Voltage Rating: 3-5 kV
Alternative Q Switches
•AOM modulator
•Mechanical
•Saturable Absorber
• High Laser Power
Operation
• Crystal: KD*P
• Polarization Dependent
Q Switch Block Diagram
+12V
Microcontroller
Voltage
Regulator
40kHz
Oscillator
1:98
Transformer
Darlington
Transistor
Voltage
Multiplier
Filter
Caps
Voltage
Divider
•Generates 0 - 5 kV output
•Generates pulses with minimal delay
•Emergency Shutoff capabilities
Fast
FETs
Q Switch Voltage Regulator
•Voltage divider
reduces voltage down
by 1221:1
•Peak output voltage
from divider: 4.05 Volts
•D/A : MCP4251
•Allows Control of 20
Volts per Step
Voltage Multiplier
•Villard cascade voltage multiplier
•Multiplies by 4
•Inputs from CCFL transformer
•Outputs to filter Caps
Oscillator Circuit
•Generates a Square wave
•Center Frequency: ~50kHz
Pulse Generator Circuit
•Generates a pulse when the
microcontrollers rising edge
•Delay is formed by L-C networks
•Delay time will depend on final Laser
cavity alignment
Emergency Power Cutoff
• Activated by RB7
• Stays activated until
Reset
• Resets when the 12V
line is removed
XY table
Old Design
Current Design
• Threaded Rode Design
• Belt Driven
• Requires material To
Move
• Moves the mirrors and
not the material
• Requires Double the
area to travel
• Requires only 6” extra
for head travel
Stepper Motor Controller
Stepper Controller
•Allows Micro-stepping
•Allows Full Stepping
Stepper Motor
• 0.9 rotation per Step
• Holding Torque: 30 oz-in
• Unipolar
Laser Power Supply
• Specifications
– Input: 120VAC at 60Hz
– Output: 0 to 5VDC at 60A
– Current driven
– Output voltage ripple < 1mV
– Precision and consistency
Filtering and Rectification
• Low-pass filter: filter out high frequency noise
• Metal oxide varistor: high R at low V and low R at
high V provides surge protection
• Isolation: 60Hz isolation transformer
• Rectifier bridge with output capacitor
DC to DC Converter
• Choices:
– Linear regulator
• Not efficient enough
• Large size
• Thermal issues
– Switched-mode DC to DC Converter
• Buck converter for voltage gain < 1
• Adjusting PWM will control voltage and current output
Switching
• Choices: BJT, IGBT, MOSFET
– BJT
• Pros: High current carrying capability
• Cons: High driving power
– IGBT
• Pros: High current carrying capability
• Cons: Frequency not as high as MOSFETs to give a small ripple
– MOSFET
• Pros: High frequency for small ripple, low driving power
• Cons: Low current carrying capability
Switching
• Problem:
– MOSFET has lower
current carrying
capability
• Solution:
– Use MOSFETS in parallel
• High current
• High switching speed
• Low driving power
Synchronous Switching
• Low Power
– Blocking diode can handle low power
• High Power
– Risk of breakdown from high stress on diode
– Power losses on diode is much greater than using a MOSFET
• Replace diode with a MOSFET
Control
Buck Converter
Differential
Amplifier
Microcontroller
LC Filter
• Reduce the output voltage ripple and current
ripple
– Increase C to decrease ripple
• Synchronous switching allows for the use of a
small inductor
– Pros: small resistance, reach steady state fast
Capacitor Value
VC
1 D

2
VO
8 LCf
•
•
•
•
•
∆VC is the output voltage ripple
VO is the output voltage
L is the inductor values
D is the duty cycle of the parallel MOSFETs
f is the frequency of the parallel MOSFETs
Thermoelectric Cooling
+12V
Peltier
Laser
Diode
#1
MOSFET
Peltier
Thermistor
Peltier
Thermistor
Laser
Diode
#2
Peltier
Microcontroller
•
•
•
•
Used to cool laser diodes
ATX PSU:12VDC
PWM controls MOSFET to control the power to the peltier
Temperature monitored via thermistor on peltier
Microcontroller
• Needed to be able to do:
– Pulse Width Modulation (PWM) for microstepping
– Analog to digital converter for the temperature sensors
– Able to interface with a large number of sensors (greater
than 5)
– Types of sensors: contact, temperature, light, current,
voltage, humidity, and flow rate
– Low cost
– Easy to implement
– Large repository of example code
– Easy to reprogram (USB)
Microcontroller
• Which programming language for the
microcontroller?
– Choices:
• C
• Assembly
– We chose C, as we are the most familiar with it, and
there is a large body of software already written for
the PIC18F2550. Furthermore, Microchip offers the
ability to blend C and Assembly in our source files, so
we can get the advantages of both languages
Microcontroller Decision Chart
MCU
PIC18F2550
MC9S08JS8CWJ
C8051F342-GQ
ATMEGA162-16PU
Data Bus Width:
8 bit
8 bit
8 bit
8 bit
Family:
PIC18
JS
8051
AVR
Program Memory Type:
Flash
Flash
Flash
Flash
Program Memory Size:
32 KB
16 KB
64 KB
16 KB
Data RAM Size:
2 KB
256 B
Interface Type:
SPI or I2C or EAUSART SPI, SCI
5.25 KB
1 KB
I2C / SPI / UART /
USB
SPI or USART
Maximum Clock Frequency:
48 MHz
48 MHz
48 MHz
16 MHz
Number of Programmable I/Os:
24
N/A
25
35
Number of Timers:
4
1
4
4
Operating Supply Voltage:
2 V to 5.5 V
2.7 V to 5.5 V
2.7 V to 5.25 V
2.7 V to 5.5 V
Maximum Operating Temperature: + 85 C
+ 85 C
+ 85 C
+ 85 C
Package / Case:
SOIC-28 Wide
SOIC-20 Wide
LQFP-32
PDIP-40
Packaging:
Tube
Tube
Tray
N/A
Minimum Operating Temperature: - 40 C
- 40 C
- 40 C
- 40 C
On-Chip ADC:
10-chx10-bit
N/A
17-ch x 10-bit
N/A
Price (for 1):
$4.95
$2.00
$10.25
$6.77
Software Design Decisions
•
•
•
•
•
Which programming language to use?
Vector or raster mill?
Directly support Gerber files?
Directly support TIFF images?
How should we communicate with the
microcontroller?
• How should we control security?
• How are we going to cut out holes?
Software Design Decisions
• Which programming language for the computer
program?
– Choices:
• C, Java, C#
– We chose Java as we are the most familiar with it
other than C, and it is much easier to create GUI’s in
Java. C# would have interfaced with our
microcontroller easier, but we were not as familiar
with it as Java, and we wanted to cut down on
development time so that we could have more time to
debug and test
Software Design Decisions
• Vector or raster mill procedure?
– Vector: follow the outlines of each object until you
come back to the beginning of the object
• Pros: Shorter mill time, less movement of XY head
• Cons: more complicated algorithm
– Raster: scan left and right across the area to be
plotted
• Pro: simple algorithm
• Cons: longer mill time, more movement of XY head
Software Design Decisions
• Directly support Gerber files?
– Would allow for easier implementation of Vector milling
– Specification is too complicated for the scope of this
project
• Use gerb2tiff (external program) to convert the input Gerber file
to a TIFF
• Use the output as a raster mill input
Software Design Decisions
• Directly support TIFF images?
– Possible: JAI (Java Advanced Imaging) library
– Difficult to do
• Solution?
– Support reading in PNG files
– Call external program (convert.exe) to convert the
TIFF image to a PNG image
– PNG files can be read natively by the Java image
handling methods
Software Design Decisions
• How should we communicate with the
PIC18F2550?
– Initially: Send large amounts of data to PIC, with
not response
– Final choice: Send individual commands, wait for
acknowledged response before sending another
• Slower method, but we are using a very small amount
of our available bandwidth at any one time, and the
latency is low enough to be negligible compared to the
rate of dots/s where 1dot = 1/1000in
Software Design Decisions
• How should we control security?
– Option1: None
• Check the user’s input password against a plain text file
– Option2: Encryption
• Encrypt the user’s password, and check against the
inserted password
– Option3: Hashing
• Hash the user’s password, store the hash, and create a
new hash based on the inserted password. Verify that
they match.
Software Design Decisions
• How should we control security?
– Option1: None
• Not really an option, we need user access level control
– Option2: Encryption
• Difficult to implement
– Option3: Hashing
• Easy to implement, and mathematically impossible to
construct the password from the hashed value
Software Design Decisions
• How should we control security?
– Option3: Hashing
• Can’t just store the user’s password
• Need to store the user’s access level also
• Therefore, store
hash(<access_level>+<password>)
• then compute the four possible hashes based on the
current password that has been entered into the
system and assign the user the correct access level
• Access Levels: None, Standard, Advanced, Experienced,
Administrator
Software Design Decisions
• How are we going to cut out holes?
– Raster?
• We only need to cut around the edge of the hole
– Vector?
• Yes
• How is this possible?
– PCB authoring software produces separate drill files for holes
Software Design Decisions
• How are we going to cut out holes?
– Vector
– Code snippet below
int Bx = 50; //x location of the hole
int By = 50; //y location of the hole
int Ax, Ay;
int D = 10; //diameter of the hole
for (double y=0; y<=360; y = y+0.01) {
Ax = (int)Math.floor(D/2*Math.cos(y*Math.PI/180));
Ax += Bx;
Ay = (int)Math.floor(D/2*Math.sin(y*Math.PI/180));
Ay += By;
map[Ax][Ay] = 1;
}
Optimal Control Path
Main Program
User Login
Select File
Main GUI
Main GUI
Standard User
Advanced
User
Experienced
User
Administrator
User
Realistic Path – Step 1
Valid User
Name?
User Login
Yes
Correct
Password?
No
No
Yes
Select File
Realistic Path – Step 2
File Name
Exists?
Select File
Yes
User File
Exists?
No
No
Yes
No
PNG File
Exists?
Yes
Main GUI
Realistic Path – Step 2
Main GUI
Standard
Advanced
Experienced
Administrator
Important Functions
•
•
•
•
Create hash file to store users
Access hash file
Read and process input file
Take processed input file and send the
commands to the machine
• Interpret the commands coming from the
machine acknowledging that it received data
and is working properly
Create Hash File
• Store the userName (the student’s NID)
• Store a hash of the user’s password and
access level in the format:
hash(“<accessLevel> + <password>”)
• Check for duplicate entries, replace the old
entry with the new entry
• Use SHA-512 (SHA-2 family) hashing algorithm
Access Hash File
• Read current hash file into a TreeMap
– User the userName field as the key, and the
hashed password as the value
• Make a hash out of the current user’s
password, and all of the possible access levels
• Compare the two hashes
• Assign the user their access level based on the
result of the comparison
Read Input File
• Convert the Gerber file to a TIFF (gerb2tiff.exe)
• Convert the TIFF file to a PNG (convert.exe, Image Magick
suite)
Runtime rt = Runtime.getRuntime();
pr = rt.exec(String toRun);
• We did not want to have to write our own Gerber parser, so
we used the gerb2tiff program
• Java will not natively handle TIFF files, so we used the convert
program
– JAI library was deemed to add too much complexity to this
project
Environment
• NetBeans to produce the GUI
• Eclipse to integrate everything together
• To account for the 12,000x12,000 pixel size
that could result from the convert operation,
1GB of memory was allocated to the JVM
– This could be optimized if we were to use the JAI
to tile the TIFF images, and read each tile
separately. This will be implemented if we have
time at the end of this project.
Process Input File
• Read the PNG file into memory so that we can
process it
• Read the image line by line, and produce a text file
indicating the if the laser should be on or off and for
how many steps
• Store if the laser should be on/off, and the distance
that this is true for in an int array
– index%2 == 0 (on/off)
– index%2 ==1 (distance)
• Indicate if a line needs to be milled
Send and Receive Data
• Traverse the processed input file in an alternating
line fashion
• Send the data to the machine, wait for an
acknowledgement packet back before sending the
next movement command
• If a line has nothing to be milled on it, move down
until a line with something to be milled is found, the
edge of the file, or the edge of the XY table is found
Milestone Chart
Laser PS
Software
Software Testing
TEC PS
Laser Cavity
Q Switch PS
XY Table Testing
XY Table Stepper PS
Cleaning up
Apr 11
Apr 4
Mar 28
Mar 24
Mar 14
Mar 7
Feb 28
Feb 21
Budget
Estimate cost:
•
•
•
Software – free
Parts for XYZ table – $200
Laser setup
–
–
–
–
–
–
–
–
•
•
•
•
•
•
Spent cost:
•
•
•
–
–
–
–
–
–
–
–
Q-switch – $60 - $5000
808nm Diodes – $600
Nd:YAG rod – $50
KTP(KD*P) – $30 to $100
Directing mirrors – $450
Lens – $600
Quarter wave plate – $200
Polarizer – $400
Parts for Laser Power Supply – $200
Parts for TEC Power Supply – $75
Parts for Q switch Power Supply – $50
Parts for Stepper Power Supply – $30
Parts for Power Management Circuit – $50
Fume controller – $30
Total: $3100 to $8100
Software – free
Parts for XYZ table – $200
Laser setup
•
•
•
•
•
•
Q-switch – $512.95
808nm Diodes – $486.99
Nd:YAG rod – $125
KTP(KD*P) – $43.22
Directing mirrors – $27.19
Lens – $420
Quarter wave plate – $74
Polarizer – $49
Parts for Laser Power Supply – $200
Parts for TEC Power Supply – $35
Parts for Q switch Power Supply – $140
Parts for Stepper Power Supply – $30
Parts for Power Management Circuit – $50
Fume controller – $30
Total: $2423.35
Project Progress
Research
85%
Bought Materials
70%
Laser Cavity
12%
Laser Power Supply
15%
Q Switch Power Supply
20%
TEC Controller
90%
XY Table
80%
Software
60%
Total
54%
0%
20%
40%
60%
80%
100%
Questions?