It's really amazing that even today we still need to resort to these laborious etching methods of making PCB's and there's still no easy way to merely print out a prototype PCB on a printer e.g. using conductive inks. Perhaps just too niche market for the printer manufactures to be interested in this?
At a certain stages in our development process we nearly always need to move away from prototpying boards and start make various prototype PCB's
We've tried various prototype PCB methods, such as using contact negative / positive films, PCB milling, direct PCB inkjet printing, direct PCB plotting (using permanent maker pens), use of various PCB group batch services and direct PCB UV laser exposure. The complexity of these various methods tend to increase dramatically when trying to make double sided PCB's!
Each time when making a PCB, we attempt to improve on our prototyping process. The notes on this webpage are for reminding us what we did and what worked or not. We thought our experiences would be interesting for others, to share and encourage more ideas.
We are particular excited about direct laser plotting (UV light exposing) onto UV sensitive PCB. We're NOT actually laser cutting the copper on the PCB board (yes! that would be great), but we are merely selectively exposing a PCB with UV sensitive etch resistant coating. These type of PCB's are just slightly more expensive then non-UV coated PCB material and save a lot of hassle with painting an ironing on UV sensitive films etc. In our review we also test other methods of etch resist such as black paint, masking films, etc.
So lets start with this review first. Others will come later.
When PCB etching there are 2 main UV materials and processes
- Negative exposure - what is exposed is etched away. i.e the gaps between the tracks)
- Positive Exposure - what is exposed is not etched away- i.e. the tracks).
Negative exposure process
This process is more common for PCB milling where isolation areas are milled away. Negative sensitive UV film is however available and is applied in the same way as positive UV sensitive films.
Some people have been very successful spraying a matt black paint over the PCB and 'burning' away isolation areas in a similar way to milling.
Positive Exposure Process
<Add process here>
UV sensitive PCB material
The UV PCB (positive) material we are used for this PoC is from Bunard; which can be obtained from most suppliers such as Conrad
, eBay, etc. A specification of the material is (in German) -> here
. This PCB material is positive UV sensitive material i.e. what is exposed to UV light is cured and is not etched away. However to save 'lasering' time; we will also testing UV 'negative' PCB material; where the exposed areas is etched away.
As a summary, the UV etch resistant coating has a peak spectral sensitivity of 400nm wavelength; which matches well with the Blue UV laser at 405nm. The specification states that the UV material becomes cured (etch resistance) after exposure from a 2kW UV light at a distance of 1m for 90 seconds; with an optimum exposure of 120 seconds (exposure of 1,5 mJ/cm’ is required). This depends greatly on the light box being used and so they recommend making test strips within 20 second intervals to confirm this. We did some experiments to see how this relates to exposure via the laser.
The development process using Natriumhydroxid
(1g NaOH auf 1l Wasser) takes typically 45 seconds at 20 deg.C. UV exposed areas will be 'curred' and remain on the PCB for up to 5 minutes; but this depends on dilution and temperature and how often the solution has been used before.
For the chemical enchant of the copper layers we used Natriumhydroxid, at a temperature of 25 deg.C.
As with all chemicals, please be careful and use eye, hand, body protection and dispose of the material environmentally safely; according to the directives of your local bylaws (i.e. do NOT rinse the chemicals into your drains!).
Laser Exposure of UV sensitive PCB material
(Note: a laser is very dangerous if the beam (or scattered beam) comes in contact with your eyes or skin. Wear eye protection or you could be blinded!! )
Eleks maker Laser Engraver (approx $200 from Gearbest or Banggood):
This is the laser engraver we used for the PoC, which we purchased from GearBest. It came with a 2500mW near Ultravilot Laser (405nm) and an Arduino based controller with a version of the GRBL firmware installed. It's important to get the Ultraviolet Laser diode as this is what most UV PC material is sensitive to.
We were very impressed with the presentation of the kit with all parts nicely packed and prepared. We however don't recommend getting it from GearBest, as we had a lot of issues with the post-sales support when trying to get a replacement of a faulty Laser. GearBest spent weeks trying to get a replacement from the manufacturer but eventually they said they couldn't send just a replacement laser. The however offered to send another complete Laser kit again for another $80. This replacement process has taken so far about 6 months to resolve. In the meantime we had bought a replacement laser head from Bangood, but bought the kit for $80 for GearBest too for another project to get some of the costs back.
- Some other makers have converted their 3D printers to do the same such as the thing https://www.youtube.com/watch?v=B1lgdg1IGoI by MadyWinter. Mady reports that most of his failed attempts were done at the maximum laser power ( 100mw ). That turned out to be much to high. Instead of exposing, it would destroy the photo resist layer. In the end he used a resistor at ~30% power. Another big problem was the unstable nature of the laser diode, sometimes it produces more, sometimes less. He got his diode from http://www.insaneware.de/
- https://youtu.be/endcUTFt-9M - High power laser from http://www.lpkf.com/index.htm (this look like a much better way of doing this)
Laser CNC Applications and Firmware
There are a few software/applications that need to be installed; depending on the process you decide to use. The software can be described as the following:
- Arduino IDE and Drivers for the Arduino
- Firmware for the Arduino (Grbl): This simply turns an Arduino into a simple 3 AXIS CNC controller reading most G-Code and converting this into pulses which control Steppmotors connected to the Arduino.
Grbl version V.1.x, now supports Laser Mode cutters and engravers with a new control paramter $32=1 (on) or 0 (off). When enabled, GRBL will move continuously through consecutive G1, G2, or G3 motion commands when programmed with a S spindle speed (laser power). The S G-Code command normally determines the spindle speed, but when $32 is set, it controls the laser intensity by adjusting the PWM of the Arduino pin. Grbl control parameter $30 sets the Max spindle speed and $31 sets the min Spindle speed. The new laser control enables the spindle PWM pin on the Arduino to be updated instantaneously through each motion without stopping. The advantage of the command is that you no longer get excessive "burn" holes when the machine pauses on a change of directions. When he command is disabled, Grbl will operate as it always has, stopping motion with every S spindle speed command. This is the default operation of a milling machine to allow a pause to let the spindle change speeds. How to install this is explained below and loads of details of the Grbl control commands are -> here.
- PC Software Application: This is the software which communicates with the Grbl firmware on the Arduino and sends the CNC G-Code commands to the Arduino. In this PoC we used a PC with Windows 10 operating system, but it should work just as well using Ubuntu or other Linux or MAC operating system.
The PC software applications used in this PoC are detailed below.Here is a summary:
- PCB Design Software. In this PoC we used Eagle, but also tested Fritzing.
- CAM file conversions: In this PoC we used FlatCam
- CNCLaserControl client: In this PoC we tested:
Other PC applications (Not part of this review):
- PCB applications for designing and creation of the necessary G-Code files for plotting the PCB:
- For HPGL plotting see:
- For G-Code output see:
- CAD software for creation of DXF files (e.g. rasters or other shapes):
GRBL (opensource Arduino based CNC controller firmware)
An Arduino Nano and 2x stepper motor drivers come with the Laser Engraver kit which is pre-loaded with a version of Grbl firmware. However, unless you intend to use the provided EleksMaker software, the first thing is to install the latest version of Grbl firmware onto the Arduino nano as follows:
- Downloaded and unzip the latest GRBL version (1.1e at the time) from on the Grbl home on GitHub
- Make sure you are using the most recent version of the Arduino IDE! It's recommended and easiest to use the Arduino IDE to upload the lastest GRBL firmware / sketch to the Arduino. Details of how to compile and upload the Firmware using the Arduino IDE is explained in detail on the GIThub wiki -> here. It's important to upload the GRBL library as instructed into the Arduino IDE beforehand.
- Launch the Arduino IDE
- Load Grbl into the Arduino IDE as a Library.
- Click the Sketch drop-down menu, navigate to Include Library and select Add .ZIP Library.
- IMPORTANT: Select the Grbl folder inside the grbl-master folder, which only contains the source files and an example directory
- Open the GrblUpload Arduino example
- Click the File down-down menu, navigate to Examples->Grbl, and select GrblUpload.
- Compile and upload Grbl to your Arduino
- Connect your Arduino Uno to your computer
- Make sure your board is set to the Arduino Uno in the Tool->Board menu and the serial port is selected correctly in Tool->Serial Port
- Click the Upload, and Grbl should compile and flash to your Arduino! (Flashing with a programmer also works by using the Upload Using Programmer menu command.)
The Arduino should now be installed with the latest Grbl firmware and will work as a basic 3-Axis CNC controller.
Post CAM file processing
Some post processing of the files exported from Eagle will need to be carried out to make them suitable for Laser Plotting. This is because Eagle generates the CAM files which represent the actual PCB tracks using HPGL or Gerber. This is good for postive plotting but for isolation plotting we don't actually want to "plot" the tracks if we are doing negative PCB exposure, as we only need to plot the isolation paths.
FlatCAM is really a great Python Based CAM application by Juan Pablo Caram. It's used for preparing the G-Code files for milling PCB's.
FlatCAM is particularly useful for converting Excellon, Drill, Gerber or other file formats to G-Code e.g. from Eagle. It allows creation of 1 or 2-sided PCB's and helps with drilling holes including alignment pins for double sided boards. This feature is really handy.
We used the software for first drilling the alignment pins and all drill holes on the PCB. The alignment pins are then used for registering the correct position when exposing the top and bottom of the PCB.
We use Flatcam for post-processing the Gerber and Excellon files generated by Eagle for positive UV exposure. However as the software is intended for isolation plotting, you need to use a tedious work-around to make it do positive plotting. An automatic feature for positive plotting hasn't been implemented yet but I see in the forum that many are requesting this.
How to export the necessary files are explained here on the FlatCAM website. As a summary in the CAM module export as GERBER-R274-X for the top, bottom, pads, vias, and dimensions (for the board outline).
One word about drill files. The exported Eagle Excellon_24 drill file needs editing or you'll need to set a configuration in FlatCam to interpret the leading zeros in the Excellon file correctly. This is using the set_sys command in the FlatCAM Shell Command Line Interface:
set sys excellon_zeros T
- git clone https://bitbucket.org/jpcgt/flatcam.git
HPGL to G-Code converters, HPGL and G-CODE viewers
These post-processing tools are required for post processing if you need positive tracks and pads drawn on the PCB such as when doing direct pen-plotting to PCB or using positive UV sensitive film
These are not required if you are doing negative or isolation plotting. i.e. isolation routing around the tracks when milling.
The best method to do this seems to be the same as for the direct pen-plotter method by exporting HPGL plot files directly from Eagle and converting them into G-Code. The challenge is to obtain the correct scale if you are using multiple files (top bottom, solder resist). I tested the following applications:
- hpgl2gcode (http://hpgl2gcode-4646.rhcloud.com/)
- An online HPGL to GCODE conversion program
- Merely upload an HPGL file generated from Eagle. Enter a distance for pen up and pen down. Pick something easy to find such as 10 for pen-up and -10 for pen-down. These are replaced later, so ensure to use values that can easily be found. The conversion factors of 40.2 HP units/mm seems to be OK. I however noticed that the application skipped some pads.
- hp2XX runs from a command prompt and hence a bit awkward to use. The program seems however quite flexible and gave us very good resutls. Example command line was: hp2xx -m nc -w 45.72 -h 24.13 DemoEagle_HPGL_01.plt where:
- -m nc instruct that the output should be in G-Code format
- -w and -h was the width and height of the board in mm I took directly from Eagle
- DemoEagle_HPGL_01.plt was the input file (output from Eagle HPGL CAM file using a pen size of 0.1 mm)
The g-code output need to be edited before LaserPlotting. Open the file and replace all instances of G1 Z10 (Pen-up) with M5 (i.e. the grbl code for turning on laser off) and G1 Z-10 (Pen-down) with M3 S200 (grbl code for turning the laser on).
Then upload into Chillpeppr or LaserWeb (see below) for running the Laser CNC.
- Open source pen and laser plotting projects by Dirk Herrendoerfer.
He's done a really tremendous job of developing a direct PCB pen / Laser plotting with exchangeable heads and a 3D printer and other projects. I recommend to follow his channel as the work is really excellent.
- The laser module he uses is SKU:844441403 at eud.dx.com
- The heatsink No: 152362009112 on ebay.de
- SPLOT viewer (http://www.swplot.com/splot.htm)
- This is a commercial program (about€ 65) which enables your to view the HPGL file and to print out to a printer or plotter. It*s very useful when creating positive films or directly plotting onto a PCB. This could be an interesting project to create an Arduino firmware / sketch to Laser /pen-plot HPGL files directly to PCB rather than needing to convert to G-Code.
Inkscape Laser Tool Plug-In
- This plug-in will convert a path object in inkscape into a G Code file for use in your laser upgraded machine. Put the contents of this .zip folder into the “inkscape\share\extensions” folder. Once it is there it will show up under the “extensions” tab in inkscape.
Others applications which I couldn't get to work:
There are many G-Code viewer driven by the increase use of 3D printers in the last years.G-Code viewers are useful as a check before actually running the laser.
- G-CODE View - http://jherrm.com/gcode-viewer/ - Web application that simulates the G-Code file loaded. Code on Git-hub -> https://github.com/jherrm/gcode-viewer
PC Application for driving the CNC Laser.
There's a good overview of various CNC controllers on the Grbl site:
We tested various of these applications for driving the Arduino CNC controller. Our experiences are detailed below.
- Chillipeppr is so cool and allows the Eagle brd file to be imported directly into the application for direct processing and laser exposing.
- This approach assumes you have painted, rolled, glued, or stuck on a UV senstive PCB etch mask you want to laser etch or mill away the solder pads and smd pads. Some people use Dynamask, which is a gel film laminated onto the PCb with with a hot roller. Some people use vinyl and then cut out the pads, then paint. Laser etching the mask can work because copper is highly reflective and thus lasers won't effect it, while burning away the paint. Milling is possible, but you need to be massively accurate on your Z depth to not mill away the copper and only mill the mask ink. Auto-levelling is highly suggested before mask if milling
- It doesn't seem to work with RAMP/Mega boards (e.g running Grbl for Cyclone) but only the intended Uno boards
This is really neat Java Script application which runs on a webserver (Node.js 6.x) residing on NPM. It loads most PCB file formats; even dxf files for laser plotting.
1. Read the instructions on GitHub -.> https://github.com/LaserWeb/LaserWeb3/wiki/Install:-Windows. At the time the instructions for LaserWeb4 were not available.
2. LaserWeb install instructions:
- Download and install Node 6.x LTS from https://nodejs.org/en/download/
- Install Google Chrome if not already installed
- Download and install Git for Windows from https://git-scm.com/download/win
- Upgrade your GRBL based controller to version 1.1e. LaserWeb won't work with old builds.
To start the software:
- Start a windows command prompt by typing "cmd" in windows search.
- cd \
- git clone https://github.com/openhardwarecoza/LaserWeb3.git
- cd LaserWeb3
- npm install - Install the development environment.
The software is now installed.
- Start a windows command prompt by typing "cmd" in windows search. In the command prompt window type:
- cd \laserweb3
- node server.js
- Note: Only works with Smoothie, Grbl and TinyG.
- Start Google Chrome
- Type "localhost:8000" in the address bar
Alternatively you can run it from here:
Size Configuration (Part 2)
The Laser Engraver used is an A5 size engraver and the following seemed to work well.
G-Code Configuration (Part 1)
G-Code Configuration (Part 2)
BenBox application comes with the CNC Laser and can be downloaded from the gearbest or banggood
website. It's based on a version GRBL. This is OK for engraving but was not suitable for our PCB creation process. Soem instructions on how to use the software are also explained in instructables.com -> here http://benboxlaser.us/index.php?topic=175.0
PCB Drilling & Isolation Milling
Isolation milling is an alternative to chemical etching. It is good enough for most prototyping boards. Use together with FlatCam will enable easier creation of gbode files especially for double sided boards.
Arduino Based shields for CNC isolation milling
GRBL on RAMPS
- Site with good instructions on how to set-up RAMPS:
Marlin on RAMP 1.4 (as CNC machine)
Traditionally, 3D CNC carving requires a complex software chain: CAD software to create a design, CAM software to set toolpaths, and additional software to send it to the machine.
They thought there was a better way, so built Easel with an intuitive interface.
AutoLevelling: This is recommended before starting to do any isolation milling. Most of the software reviewed have this feature embedded. Here are some other versions:
The following Notes still need to be edited:
Assembly of CNCLaser
- Setup by
axCUT (Damian Axford)
Safe Laser Glasses
Buildlog.net 2.x Laser
PCB Gerber file preparations
Driving the Laser using Arduino wiht the GRBL firmware (v1.1e)
Other Arduino CNC Controller boards
- Overview of Config parameters Commands https://github.com/gnea/grbl/blob/edge/doc/markdown/settings.md
Library from the GITHub
Wiki : https://github.com/grbl/grbl/wik
how to upload to the Nano: https://github.com/grbl/grbl/wiki/Compiling-Grbl
The GRBL Shield is a great way to use G-Code to create an Arduino-based CNC machine, but setting up the software and wiring the hardware
- G-code Commentor: http://www.buildlog.net/cnc_laser/cnc/gcode_comment.html
ACNC (by Fabien-Chouteau)
- An ADA controller board
Buildbot is an open-source framework for automating software build, test, and release processes.
Grouped Batch PCB Manufactures
Matt Black Spray Paint Examples:
using black paint as the etch resist
- Using 25W laser cutter, Muratic Acid, 30% H2O2 and a sponge - https://www.youtube.com/watch?v=OTGZcY7WyYI
- https://w ww.youtube.com/watch?v=uIIwU29H3E8
using Nail Varnish as the etch resist
Spare stepper motor drivers
Other things to explore:
- Vacuum disposition of PCB tracks
- Solder paste on Laser Jet printed paper
- 5 Axis Machining https://www.kickstarter.com/projects/2003668803/5axismaker-first-ever-affordable-5axis-multi-fabri/description
- W3Schools Training SVG: http://www.w3schools.com/graphics/svg_intro.asp
- RAMPS + ARDUINO as CNC controller
- Wiring of RAMPS: https://www.youtube.com/watch?v=U-VyUV3k6xI
Link to gearbest and drivers for Arduino Clone
Unversal G-Code Sender
Eleks controller boards
Inkscape laser plugin:
JSCUT a cam in your browser
3 AxiS GRBL board to replace the PRoxon milling one
Plotting onto postive photsenstive material
- Gerber Plotter files need to be converted to g-code
Conversion of gerber to g-code
- Useful packages -http://reprap.org/wiki/Useful_Software_Packages
- other software:
- http://www.laserwood.hu/pltviewer/showplt.php (HPGL viewer)
Process for PCB creation
1. Create PCB n Eagle
2. Use cam processor and select excellon
3. select top layers including pads,
4.export to a file
5.user flatcam to convert the pcb excellon and gerber files into a graphic for plotting or lasering
Solution in Flatcam for postive printing: