Converting a Chinese A5 Clone into a Precise Open Source Networked Laser Cutter
In order to cut my watch face designs from ~1/32″ (0.8mm) real hardwood veneer, I need a powerful, and extremely precise laser cutter. So, I purchased a clone of the Eleksmaker A5, laser safety glasses, and an extra arduino. Follow along if you like!
What you’ll need:
- $142 A5 laser engraver DIY kit: 2000mW 450nm 17cm X 20cm Laser Engraver from eBay.
- $40 Professional laser safety glasses: Honeywell Sperian Uvex LSK style Argon-KTP OD 7+ @ 190nm-532nm 50% VLT from Ebay.
- (Optional) $10 Extra Arduino: Arduino Nano ATMEGA328P FT232RL FTDI from eBay.
- (Optional) Extra “Mini USB” cable (NOT “Micro USB”) The one that comes with the laser cutter is probably bad, so just in case have another one hand that you know is good.
- (Optional) Extra USB Wifi dongle. Only necessary if you want to be able to print to the cutter wirelessly.
- Computer that can run Linux. (PC, Laptop, Raspberry Pi, etc..)
While CO2 lasers are much more powerful with hobby ones usually running around 40-80 Watts, I believe this 2 Watt solid state laser will cut commercial hardwood veneer without issues. Because of the low 405nm wavelength the power is focused on a super small dot. Thus more punch than other higher wavelength lasers at higher power. Plus at that wavelength wood absorbs more of the power of the laser than at longer wavelengths (lower frequency). Recently experimenting with a $50 Super Carver 1000mW 405nm laser cutter has confirmed this. Easily punching through the maple veneer. However, the software and firmware the come with the 1000mW machine only cut raster images not paths. This makes cut lines all pixelated and jagged instead of smooth, so was unusable for my needs.
At 2 Watts this is a Class 4 laser! There is no higher class. We need to protect our eyes. There are some cheap green safety glasses that comes with the laser, but I don’t trust them. The color of the lenses on safety classes for 405nm wavelength (violet or blu ray) lasers should be orange or orange-red. The complimentary color on the color wheel. So, I purchased these:
They may be overkill for my application, but I value my eyes highly! At OD 7+ they should provide ample protection reducing the power of the above laser by a power of 7. At least OD 4+ is recommended for 2000mW laser like this one. Reducing the power by a power of 4 to 0.2mW. Any laser under 1mW aka Class 1 laser is fairly safe if you’re not staring directly into it without blinking.
More reading on the cheap laser glasses: https://laserpointerforums.com/f53/budget-tested-laser-safety-goggles-od-5-a-101989.html
Only thing I’m still wondering about is this:
One last note about wavelength: some lasers have more than one! Why? Because they are frequency-doubled, such as 532nm “green laser pointers” which might also leak laser light at 1064nm — a dangerously invisible NIR (near infrared) wavelength that will not be stopped by most filter materials. According to this, 445nm diode lasers are not frequency doubled, while some (but not all) 404/405nm are actually doubled 808nm. ~ http://www.instructables.com/id/Making-Your-Mini-Laser-Engraver-Safer-and-Better/
What if this particular 405nm laser is a frequency doubled 808nm laser? Will it leak light at 808nm? How can I find out? Do I need laser glasses that also block 808nm?
(Since the laser that was actually sent to me was a 450nm blue laser It’s unlikely it’s frequency doubled.)
The stock firmware that comes with the machine is severely limited. It allows you to only use a piece of Windows 7/10 software to run it. Called “Lite Fire Laser”. It limits you to raster images (i.e. BMP, JPEG, PNG and GIF). Or, GCODE nc file. Not so good for people who use other OSes, and/or require precise vector designs with low tolerances. I’d like to import (SVG) files directly, and use Ubuntu.
Like the links I reference below, I will be reflashing the Arduino Nano that comes with the cutter with GRBL 1.1. An Open Source laser cutter firmware. With GRBL, and the LaserWeb4 project we will be able to run the laser cutter from any device with the Chrome web browser (Linux, MacOS, Android, iOS, Windows, etc..), and also utilize vector files for precise cutting.
I will be using Ubuntu 18.04 desktop amd64 machine to configure and run the laser. I purchased an extra $10 Arduino Nano so that I don’t have to overwrite the stock firmware in case I want to revert the laser cutter to stock. I made sure to purchase one with the standard FT232RL USB chip and not the newer cheaper CH340G chip. The newer CH340G chips needs additional drivers when using MacOS or Windows.
1. Install Arduino IDE
There are three ways to install the IDE, as an Ubuntu package, a precompiled binary, or the web IDE. I’ll be using the Ubuntu package.
sudo apt install arduino
2. Flash GRBL v1.1f
There are two options flashing using command line and precompiled hex, or compiling using the IDE. I’ll be using the command line version to flash the hex file.
- Download Hex file.
avrdude -v -patmega328p -Uflash:w:grbl_v1.1f.20170801.hex:i -carduino -b 57600 -P /dev/ttyUSBXFrom: https://github.com/gnea/grbl/wiki/Flashing-Grbl-to-an-ArduinoOr, if that doesn’t work try compiling it with the IDE form: https://github.com/gnea/grbl/wiki/Compiling-Grbl
3. Install LaserWeb4 v4.0.130
There are two ways of installing. The AppImage or using git.
- The AppImage did not work for me, so I used the Raspberry Pi git instructions modified slightly for Ubuntu:
sudo apt update
sudo apt install nodejs npm git
git clone https://github.com/LaserWeb/lw.comm-server.git
sudo npm install serialport --unsafe-perm --build-from-source
sudo npm install
- From: https://github.com/LaserWeb/LaserWeb4/wiki/1_Installation
4. Configure LaserWeb4
- Point your browser to localhost:8000
- Connect to the nano @ /dev/ TTYUSB0 in my case.
- Confirm Laserweb4 connects successfully with GRBL 1.1f.
(Work in progress)
X-length (Width) – 145
Y-length (Height) – 195
Tool Head Beam/Laser Dia – 0.1
SVG DPI – 96
G21 ; Set units to mm
G90 ; Absolute positioning
M4 S0 ; Enable Laser/Spindle (0 power)
M5 ; Disable Laser/Spindle
Gcode homing – $H
Tool On – M4
Tool Off – M5
Laser Intensity – S
PWM Min S Value – 0
PWM Max S Value – 1000
Check-size power – 1%
Tool Test Power – 1%
Tool Test duration – 6000ms
(Work in Progress)
$0=10 ;step pulse, usec $1=25 ;step idle delay, msec $2=0 ;step port invert mask:00000000 $3=0 ;dir port invert mask:00000000 $4=0 ;step enable invert, bool $5=0 ;limit pins invert, bool $6=0 ;probe pin invert, bool $10=0 ;status report mask:00000011 $11=0.010 ;junction deviation, mm $12=0.002 ;arc tolerance, mm $13=0 ;report inches, bool $20=0 ;soft limits, bool $21=0 ;hard limits, bool $22=0 ;homing cycle, bool $23=0 ;homing dir invert mask:00000000 $24=25.000 ;homing feed, mm/min $25=500.000 ;homing seek, mm/min $26=250 ;homing debounce, msec $27=1.000 ;homing pull-off, mm $30=255 ;max. S-value for Laser-PWM $31=0 ;min. S-value $32=1 ;Laser Mode on $100=80.000 ;x, step/mm $101=80.000 ;y, step/mm $102=80.000 ;z, step/mm $110=1000.000 ;x max rate, mm/min $111=1000.000 ;y max rate, mm/min $112=1000.000 ;z max rate, mm/min $120=400.000 ;x accel, mm/sec^2 $121=400.000 ;y accel, mm/sec^2 $122=400.000 ;z accel, mm/sec^2 $130=145.000 ;x max travel, mm $131=195.000 ;y max travel, mm $132=200.000 ;z max travel, mm
Zero/clear workspace offset:
GRBL Command GCODE:
G10 L2 P1 X0 Y0 Z0
Laser on to Check bounding box size.
If you want the laser to power on when you’re checking the bounding box size you need to create a macro button with the GCODE:
More info and laserweb/grbl settings:
- Post warning sign with laser stats
- Replace USB cable
- Replace 3amp power supply with 5amp
- Install webcam for monitoring (I use an android phone with AndroidIP)
- Create enclosure with exhaust filter
Update July 2nd: After eBay stepped in I was given a full refund, and I got to keep the laser cutter! =] Yay. I have been having a hard time getting it to connect with my computer reliably. “unable to enumerate USB device”. Using a USB 2.0 hub might fix this issue.
Update June 20th: Success! The seller is taking their sweet time on the return, so I had longer to troubleshoot. Again, I posted my issue on the Google Group. Once again my hero from Laserweb responded.
From the wobbly lines I would guess you have play in the x axis. Try to press the wheels together while tightening the screws.
The other engrave looks like you had a shift in the y axis mid job. This could have several reasons. Are the pullys and belts tight? Is the stepper current correctly set? Also the acceleration could be too high.
Did you check the wiki @ https://github.com/LaserWeb/LaserWeb4/wiki/2.1-Initial-Configuration-GRBL-1.1 ?
I did as he instructed. Made sure all the wheels were in the tightest position, and really tightened all belts, bolts, and nuts. The holes for the Y axis pulleys are oblong, I did really have to “press the wheels together while tightening the screws.” Now I’m getting MUCH better results. One of the pulleys still is not touching the rail as firmly as all the other ones. I think perhaps some of the little white spacers for the pulleys are a bit warped.
Thinking about keeping it.
Update June 16th: I’m returning the machine. The Y bridge would just get stuck for a second once in awhile even after tightening everything as much as I could. It would happen usually halfway or more through the burn, ruining it. I had to ask eBay to step in since the seller would not send me a return label. Saying I would have to pay for freight. However, since they did not send the correct laser, according to eBay they must pay for return freight, and offer a complete refund.
Update June 12th: My engravings are not coming out accurately at all. Raster images are a bit wobbly, and vector images get WAY off during the engraving process.
I have secured the engraver, and the platform it stands on. I tried tightening and loosening the belt. It seems to be worse at low speeds. I’ve also noticed that when cutting paths, it pauses every few seconds, and that seems to bump the laser. These problems were not there with the original GRBL 0.8c firmware and the Lite FireLaser software.
Tried to make sense of this document: https://github.com/LaserWeb/LaserWeb4/wiki/2.1-Initial-Configuration-GRBL-1.1
After tightening EVERYTHING, and reducing the speed settings WAY down, I was able to get fairly accurate results. However, everything takes a LONG time. =] There’s burning as well. I’ll see if masking off the surface with tape helps.
Update June 10th: I posted in the Google Group about my controller board/firmware issue.
Trying to run Laserweb4 on this Eleksmaker A5 clone. The controller does not support GRBL 1.1. Only GRBL 0.8c. Is there a drop in replacement, or some kind of fix? I have written pretty extensively about the issue below. Any help would be greatly appreciated! -JP
This hero responded!The only difference between v0.8 and v0.9 is that pins D11 and D12 was swapped.
Since gbrl v0.9 D11 is Laser PWM and D12 is z-limit (which you don’t need).
You can cut the track connected to D12 on your board and connect it to D11 to install grbl v1.1.
I then followed this suggestion to modify the arduino instead: https://github.com/gnea/grbl/issues/145.
I bent pins D11 and D12 away from the arduino nano, and soldered a salvaged cross pin so that D11 on the Arduino goes to D12 on the controller board.
The laser is now controllable through laserweb4!
Update June 9th: Packages all arrived. It only took 6 days! o_O The kit contained a 450nm laser not the 405nm laser advertised in the photos. =[
Luckily the laser safety glasses block wavelengths up to 532nm.
The controller card did not have the jumper for switching from v 0.8 to a GRBL version greater than or equal to >=0.9 under the arduino nano! =[ Like the earlier L7 models of Eleksmaker ManaSE. Just some empty traces. Thus I cannot use Laserweb4 since it requires GRBL v1.1. The laser is just stuck on at 100% all the time whenever I try to control it with GRBL v1.1f. As described in:
http://forum.eleksmaker.com/topic/602/laser-stays-on-at-full-poUpdate July 4th:wer-with-grbl1-1e-f
Is it true that the newer versions of the Eleksmaker ManaSE don’t have this jumper either, and don’t support GRBL 1.1?
What controller can I buy as a drop in replacement that can support GRBL 1.1f?
Maybe this one? CNC Shield V4? Nope! That one was designed incorrectly!
I’m still curious even though I ended up just hacking my replacement Arduino nano instead.
Thank you to the authors of the instructions and videos below!
Especially this one:
Assembly Instructions & Videos
The hardest parts of the assembly were:
- Which side of the laser mount tray to use the longer standoffs so that the motor and the bearings aligned.
- Getting the belts to slide under the nuts when tightening them.