04 Dec 2022 - tsp
Last update 21 Mar 2023
27 mins
So there I’ve got this new laser diode and thought about building a laser cutter / engraver - but that takes some time. So what is more logical than to mount your diode simply on your existing over-engineered pencil holder, i.e. your 3D printer or CNC mill? Especially since Marlin is a general GCode interpreter and runner so one can use it to execute one’s laser tool paths. As it turns out this works pretty well and there is already a huge number of possible tool-sets available out there for laser cutting..
Over the course of writing this article I’ve used three different diodes. The first diodes are rated 5.5W optical output power (20W electrical power; 405nm and 450nm), the second is a dual diode module rated 40W optical output power.
The 450nm diode modules (or at least modules that are equivalent) are also available on Amazon (note: affiliate links, this pages author profits from qualified purchases):
As one can see the specifications of manufacturers in the DIY segment are also not
really reliable. Sometimes they specify optical power, sometimes they specify
electrical power and when shopping on some other platforms they also often specify
fantasy numbers. Basically for 450nm diodes available on the consumer marked are
usually either 5.5W diodes like most of the time the NUBM08
(available in
China for around 25-30 Eur) or diodes rated around 7W like the NUBM44
or NUBM0E
(costs
around 70 Eur or more in China). Diodes for 405nm are usually not found at higher
power levels on the marked as of today so these are custom semiconductors
and also diodes in the range of 20W or 40W optical power are not out there, those
ratings are usually the peak electrical power consumed by the laser modules. Usually
for higher powers serious companies build laser modules housing multiple diodes - these
are then usually fiber coupled and cost a few thousand of Eur. The dual diode
modules built around the NUBM
diodes are about the most powerful diode
solutions available on the DIY consumer marked as of today. They are not able
to output a collimated beam, they only allow focusing - but that’s what one wants
for laser cutting applications anyways.
In case you’re searching datasheets - they are hard to get for the NUBM diodes. The first thing one has to know is that they are usually not sold as single diodes but as modules (the NUBM44 and NUBM47 modules only differ by the number of diodes but carry the same diodes for example). And then the datasheet for the NUBM44 will not be found under that name anyways due to industry-trade-secrecy-reasons.
The important information though that one is able to determine about typical behaviour of those diodes also shows that most of the commercially sold modules really overdrive diodes (keep in mind that one should usually run them at 80% of their designed power, not above - in case one values lifetime or wants to reach near the 2000-20000 hours of lifetime and now have a dead diode a few days to weeks later on. So make sure to measure the settings on delivered modules and change them to sane values except you really only need high power for a short time). The lifetime one can expect is about 1000 hours with 99% of likelihood when never exceeding 3A of supply current and a temperature of 70 C and about 20000 hours with a likelihood of 50% under the same conditions (this would equal to 41 days of continuous operation / a third of a year for 8 hours daily with 99% likelihood and more than two years with continuous operation and more than 7 years with 50% likelihood with 8 hours a day of operation). In case one drives the current higher (for example at 3.5A) th expected lifetime cripples rapidly (this goes exponential with temperature and thus current - one can model the expected lifetime using the Arrhenius model - and as one would expect the time to failure $t_f \propto e^{\frac{E_a}{k_B T}}$; this of course means that $ln(t_f) \propto \frac{E_a}{k_B T}$)).
The most important takeaway from the Arrhenius model is, that one can use the knowledge of the activation energy at a given temperature to the increase or decrease in lifetime:
[ \frac{t_{f,1}}{t_{f,2}} = \frac{c_1 e^{\frac{E_a}{k_B T_1}}}{c_1 e^{\frac{E_a}{k_B T_2}}} \\ \frac{t_{f,2}}{t_{f,1}} = e^{\frac{E_a}{k_B} * (\frac{1}{T_2} - \frac{1}{T_1})} \\ \frac{t_{f,2}}{t_{f,1}} = e^{\frac{E_a}{k_B} * \frac{T_1 - T_2}{T_1 * T_2}} \\ \frac{t_{f,2}}{t_{f,1}} = e^{\frac{E_a}{k_B} * \frac{- \Delta T}{T_1 * T_2}} ]What one knows on the other hand about those prominent InGaAs modules (that have been designed by the manufacturer for some laser video projectors from which most of the diodes that one can buy in China are simply pulled out of - there is up to my knowledge no way to buy them directly):
Quantity | Condition | Min, Max, Typical (NUBM08 ) |
Min, Max, Tpyical (NUBM0E ) |
Min, Max, Typical (Sharp GH04C05Y9G ) |
---|---|---|---|---|
Optical output power | $I_f = 3.0A$ | 4.35W typ. | 5.0W typ. | 5.075W to 7W typ. |
Dominant wavelength | $I_f = 3.0A$ | 448nm, 462nm, 455nm | 448nm, 462nm, 455nm | 440nm |
Threshold current | CW operation | 280mA, 480mA, - | 220mA, 420mA, - | -, 370mA, 0.45mA |
Slope efficiency | CW operation | 1.7 W/A typ. | 1.8 W/A typ. | 1.45 W/A min to 2 W/A typ. |
Forward voltage | $I_f = 3.0A$ | 3.6V, 4.8V, - | 3.6V, 4.8V, - | 4.0V, 4.6V, 5.3V |
Beam divergence (parallel) | $I_f = 3.0A$ | 0.65 deg, 1.05 deg, 0.85 deg | 0.65 deg, 1.05 deg, 0.85 deg | 4, 10, 16 |
Beam divergence (perend.) | $I_f = 3.0A$ | -1.0 deg, 1.0 deg, 0 | -1.0 deg, 1.0 deg, 0 | 35, 43, 53 |
One should also honor the absolute maximum ratings:
Quantity | Abs. Maximum (NUBM08 ) |
Abs. Maximum (NUBM0E ) |
Abs. Maximum (Sharp GH04C05Y9G ) |
Comment |
---|---|---|---|---|
Forward current (at $22 C$) | 3.5 A | 3.5 A | 3.5A | Never exceed the absolute maximum current. The diode should run at $3.0A$, for prolonged life at $2.5A$ (around $3.5W$ for the NUBM08 and $4W$ for the NUBM44 ) |
Reverse current | 85 mA | 85 mA | Even short exceeding this current kills diodes. A multimeter for measuring the resistance is usually enough to destroy them. Use a diode tester if necessary | |
Storage temperature | -40 to 85C | -40 to 85C | -40 to 85C | |
Operating temperature | 0 to 70C | 0 to 70C | 0 to 60C | Looks like a wide range but sets the limit for cooling. A diode without proper cooling will not live long. The colder (above dew point) the better |
When one wants to go to higher powers one usually also has to shift wavelength and take the route towards either CO2 lasers ($9.4 \mu m$ to $10.6 \mu m$) which are cheaply available up into the 150W range and are often found in hackspaces and cloth cutting industry or towards Nd:YAG lasers (primarily emitting in the 1064nm band as well as 946nm, 1320nm and 1444nm; those are usually pumped with either flashlamps or 808nm laser diode arrays) which get pretty expensive.
Using 450nm diodes one is able to cut wood, many types of cloth, paper and other non transparent stuff. One can even engrave soda lime glass with some tricks but one is not able to cut it (or work with Borosilicate glass). When going to Near IR like with Nd:YAG one is still not capable of cutting most transparent materials - in this case one would need a CO2 laser with sufficient power. In case one wants to cut steel one should really go either the CO2 (500W or higher) or an Ytterbium fiber laser (1030-1090nm) with 500W or higher and gas assist using oxygen - this is not a small scale home tool any more and does cost more than just a few hundred Eur. And they are by far no entry level devices either.
Note that for lasers it usually does not make sense to start talking about power until one has decided which material one wants to cut and thus which wavelengths make sense. You cannot just ask which laser power you need to cut some material, it’s always the absorption spectrum that’s most relevant; only after that the thermal conductivity determines the required optical power (which again is also linked to the used assist gas and the focus spot size).
So first a few words of caution:
Note that this list is nowhere near complete but one should get the idea. As one wise laser safety person once said class 4 lasers range from a region “not so bad” into the “death star” region so make sure you know what you’re dealing with before handling such stuff. It’s helpful to have heard a professional laser safety introduction before - but I think it helps to get the idea when one’s reminded that in professional environment even beams as low as 100 mW are threatened as huge potential hazard to eyesight - and they are already dangerous. And beware that some eye damage is not sensible immediately even though being present (small puncturing in the retina for example). Do not take this as some over-cautious list of possible problems - lasers often look harmless but they are definitely not - even not when you can freely buy them on the Internet.
Hooking up the laser to my custom 3D printer was pretty simple - I used the attachment point that I used previously for my capacitive tramming sensor (which was later substituted by my piezo bed leveling which works way more reproducible and reliable than the capacitive sensor - and which is also nice for this project also with non conductive surfaces put on top of the work surface).
I then reused the GPIO pin 4 as PWM output and hooked the diode driver board up to
the 12V supply - since this will at maximum draw around 50W (i.e. 4 ampere) the
same 12V supply as for the steppers and - in parallel unused - hot end could be used.
The only drawback with this method is that the GPIO pin is floating on machine
reset and power up and thus the missing pull down on the diode driver board lead
to 100% PWM cycle for optical power which would be a health and fire hazard - a
high ohmic pull down solved that problem. To switch the pin I simply used
the M42
commands:
M42 P4 S0
disables the laserM42 P4 S255
switches it to maximum duty cycleS
parameter allows one to switch the power in steps of 0.39%
tough the lower levels are of course not accessible due to lasing threshold of
the diodeOne caveat that I stumbled over was that Marlins GCode processing is
that this works - obviously - asynchronous. Commands like M42
get executed
exactly when the decoder sees them and not after the previous command has been
finished by the motion planner. In this case one has to insert M400
finish
moved statements immediately in advance. This was not a problem during the first
tests when I used fine grained circles since the delay way nearly not noticeable
but when I started to use my own script generating simple rectangles it even
lead to the cutter only cutting half of the rectangles
Running some test structures shows some thresholds for cutting in 4mm cottonwood plywood. The laser head has been positioned 19mm above the surface (focal length 20mm), the cut diameter is around 0.3mm.
Repeats | Threshold for cutting | Comments |
---|---|---|
1 | no cut | only engraving |
10 | starting from 6th cut (64%, S163 , 3.52W optical power) |
not worse than higher powers and repeats |
25 | starting from 3rd cut (36%, S94 , 1.98W) |
ok |
50 | aborted somewhere in between, inconclusive |
On first sight it looked like the surface had only been engraved but lifting the wooden board shows that everything except the single pass that only engraved did a clean cut - at least at the highest energy setting. Note that the structure on the backside are no cutting artifacts but remains of the previous try on the other side of the board.
A closer look shows that all rings starting from the 6th cut worked perfectly well with 10 passes - this has been around 64% optical output power (3.52W):
On the 25 pass structure everything from the 3rd cut has succeeded:
I’ve interrupted the cut of the 50 pass structure due to long cutting duration so there is no conclusion from this structure:
Below the plywood I used another board of plywood wrapped in 4 layers of aluminum foil since the 450nm laser will not be able to cut through aluminum foil. One can clearly see residue of the burnt non organic components of the wooden boards:
This works pretty well with a lower power 5.5W 450nm diode. The cuts are not as good as with a 405nm diode but they are cheaply available at higher powers. Most of the cuts have been made with one pass at 50% of power for engraving and between 10 to 15 passes with 100% of power for cutting. Additional tuning will be required though since there are some marks of burnt fumes on the edges of the wood though.
Note that the closed build surface provided a air vent through a activated carbon filter to neutralize the burnt adhesives (usually phenol or urea formaldehyde resins) as well as the burnt tar - do not threat this gasses thoughtless. Either provide really good ventilation or other safety measures.
The printer was used unmodified with Marlin as firmware on an AVR board and Octoprint as networked printer controller so one can use the device independent of any other machine. This is something that’s less important for laser cutters than for 3D printers since they might do pretty long print jobs (on the order of days) in an unattended fashion. Management of print jobs is again done using the MQTT interface and HTTP interface of Octoprint as is done with 3D prints. I just had to disable the Filament Manager plugin that keeps track of used filament rolls during prints since the laser cutting GCode does not include any tool movements that this plugin recognizes which would lead to the plugin preventing one from starting the print.
So the first tests went not so great due to determination of correct parameters for the respective materials. To aid this a little bit I decided to implement my own simple test structure generator. The structures consist of nested rectangles that are drawn with increasing power from outside inwards. The basic idea was to see when a clean cut allows one to directly remove a part of the material or when it’s just perforated. In addition the generator generates a set of power sequences for different numbers of passes on the specified area.
The (rather crude) code is available as a GitHub GIST
The first tool that has been used to do 2D vector graphics is the really great vector graphics program Inkscape. It’s open source and allows simple editing of vector graphics in it’s native SVG format. In addition there is a great plugin - the Inkscape-Lasertools-Plugin that one can then use to convert paths into generic GCode sequences with some configurable settings like GCode used to turn the laser on or off, cutting speed, Z stepping on each iteration as well as two different laser powers for infill regions and cutting regions which is interesting when engraving. Unfortunately one cannot really decide which paths to use for engraving and which for cutting - but one can easily generate two different GCode sequences when one wants to do both and then perform first engraving, then cutting.
Not directly working with the laser cutter but the head of the tool chain I use for fabric - Seamly2D, previously called Valentina as one of the best open source and free pattern drafting tools (which also offers management of measurements with SeamlyMe so you can adapt your parameterized designs to different people) allows exporting it’s paths as scalable vector graphics (SVG). This can then be imported in Inkscape and exported as GCode again using the Inkscape-Lasertools-Plugin. Of course cutting fabric only became more interesting after scaling up the working area of the cutter a little bit …
Over the course of time also a small custom GCode combination and analysis toolkit emerged. The basic idea was to have a tool that:
job
files that describe all engrave and cutting steps using JSON.
This is also thought for the batch processing mode later on - they can be stored
in conjunction with the source GCode to allow easy modification of settings applied
by the post processor.The tool has been developed in Python and only supports a really small subset of GCode - it’s available on GitHub
The following material list is just a collection of some experiments that I’ve done myself. It will grow over time, is by no way complete and should not be seen as an authoritative source for reliable information. As one can see there are also some fun records in there.
Laser | Wavelength | Material | Speed (cutting) | Speed (travel) | Iterations | Power | Result | Product link |
---|---|---|---|---|---|---|---|---|
5.5W | 405nm | Plywood (cottonwood) | 300 mm/sec | 3000 mm/sec | 1 | 100% S255 (5.5 optical power) |
Engraving (also works with ~ 20% power) | |
5.5W | 405nm | Plywood (cottonwood) | 300 mm/sec | 3000 mm/sec | 10 | 64% S163 (3.52W optical power) |
Cuts 4mm plywood, about 0.3mm cut diameter; 19mm above top surface |
Laser | Wavelength | Material | Speed (cutting) | Speed (travel) | Iterations | Power | Result | Product link |
---|---|---|---|---|---|---|---|---|
5.5W | 405nm | PMMA, transparent | 300 mm/sec | 3000 mm/sec | 1 | 100% S255 (5.5W optical power) |
No sign of any cuts; plywood below would burn and cause residue on the PMMA surface; maybe a light shadow around the cut region | |
5.5W | 405nm | PMMA, transparent, painted with black permanent Edding | 300 mm/sec | 3000 mm/sec | 1 | 100% S255 (5.5W optical power) |
Cuts as long as paint is present (burns paint), cuts a few tenth of millimeters into the PMMA (upside and downside works) | |
5.5W | 405nm | PLA, 7mm BQ coal black | 300 mm/sec | 3000 mm/sec | 1 | 100% S255 (5.5W optical power) |
Engraving a few tenths | |
5.5W | 405nm | PLA, 7mm BQ coal black | 300 mm/sec | 3000 mm/sec | 10 | 40% S102 (2.2W optical power) |
Clean cut after 10 iterations at 40% |
Laser | Wavelength | Material | Speed (cutting) | Speed (travel) | Iterations | Power | Result | Product link |
---|---|---|---|---|---|---|---|---|
5.5W | 405nm | Leaf of a tree | 300 mm/sec | 3000 mm/sec | 1 | 100% S255 (5.5W optical power) |
Hard to focus, leaves burnt track, possible that multiple passes cut as for plywood (most likely) | |
5.5W | 405nm | White bread (dry) | 300 mm/sec | 3000 mm/sec | 1 | 100% S255 (5.5W optical power) |
Leaves marks as on plywood (engraving) | |
5.5W | 405nm | White bread (dry) | 300 mm/sec | 3000 mm/sec | 10 | 100% S255 (5.5W optical power) |
Around 3mm deep cut, heavily burnt | |
5.5W | 405nm | White paper | 300 mm/sec | 3000 mm/sec | 1 | 100% S255 (5.5W optical power) |
Way too slow, fire | |
5.5W | 405nm | White floor impact fall insulation | 300 mm/sec | 3000 mm/sec | 10 | 100% S255 (5.5W optical power) |
No visible effect |
Laser | Wavelength | Material | Speed (cutting) | Speed (travel) | Iterations | Power | Result | Product link |
---|---|---|---|---|---|---|---|---|
5.5W | 405nm | Copper coated FR4, Copper side | 300 mm/sec | 3000 mm/sec | 1 | 100% S255 (5.5W optical power) |
No visible effect |
Laser | Wavelength | Material | Speed (cutting) | Speed (travel) | Iterations | Power | Result | Product link |
---|---|---|---|---|---|---|---|---|
5.5W | 405nm | Microscope slide (Borosilicate) | 300 mm/sec | 3000 mm/sec | 1 | 100% S255 (5.5W optical power) |
No visible effect | |
5.5W | 405nm | Microscope slide (Borosilicate) | 300 mm/sec | 3000 mm/sec | 10 | 100% S255 (5.5W optical power) |
No visible effect |
Laser | Wavelength | Material | Cotton | Polyester | Elastan | Viscose | Polyurethane | Acetate | Speed (cutting) | Speed (travel) | Iterations | Power | Result | Product link |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
5.5W | 405nm | Cotton beige | 100% | 300 mm/sec | 3000 mm/sec | 3-4 | 100% S255 (5.5W optical power) |
Works | Stoff4You | |||||
5.5W | 405nm | Cotton battist white | 100% | 300 mm/sec | 3000 mm/sec | 7 | 100% S255 (5.5W optical power) |
Works | Stoff4You | |||||
5.5W | 405nm | Viscose pattern blue | 100% | 300 mm/sec | 3000 mm/sec | 4 | 100% S255 (5.5W optical power) |
Works | ||||||
5.5W | 405nm | Sweatshirtstoff sand | 60% | 40% | 300 mm/sec | 3000 mm/sec | 2-3 | 100% S255 (5.5W optical power) |
Works, burned at more than 5 iterations | Stoff4You | ||||
5.5W | 405nm | Crepe Chiffon rose | 98% | 2% | 300 mm/sec | 3000 mm/sec | 1 | 100% S255 (5.5W optical power) |
Works | Stoff4You | ||||
5.5W | 405nm | Vichy Karo green-white | 100% | 300 mm/sec | 3000 mm/sec | 1 / 30 | 100% S255 (5.5W optical power) |
green works with 1 iteration, white not at all or at 30 it. | Stoff4You | |||||
5.5W | 405nm | Cotton Jersey black / brown | 100% | 300 mm/sec | 3000 mm/sec | 1 | 100% S255 (5.5W optical power) |
Works | ||||||
5.5W | 405nm | Universal cloth black | 100% | 300 mm/sec | 3000 mm/sec | 1 | 100% S255 (5.5W optical power) |
Works | Stoff4You | |||||
5.5W | 405nm | Viscose Jersey red | 8% | 92% | 300 mm/sec | 3000 mm/sec | 1 | 100% S255 (5.5W optical power) |
Works | |||||
5.5W | 405nm | Crepe Georgette bordeaux | 97% | 3% | 300 mm/sec | 3000 mm/sec | 1 | 100% S255 (5.5W optical power) |
Works | Stoff4You | ||||
5.5W | 405nm | Bekleidungsstoff Acetat | 100% | 300 mm/sec | 3000 mm/sec | 1 | 100% S255 (5.5W optical power) |
Works | Stoff4You | |||||
5.5W | 405nm | Bekleidungsstoff Stretch Viscose beige | 64% | 4% | 32% | 300 mm/sec | 3000 mm/sec | 3-4 | 100% S255 (5.5W optical power) |
Works | Stoff4You | |||
5.5W | 405nm | Artificial leather brown | 29% | 71% | 300 mm/sec | 3000 mm/sec | 5-6 | 100% S255 (5.5W optical power) |
Works | |||||
5.5W | 405nm | Artificial leather black | 29% | 71% | 300 mm/sec | 3000 mm/sec | 100% S255 (5.5W optical power) |
Dipl.-Ing. Thomas Spielauer, Wien (webcomplains389t48957@tspi.at)
This webpage is also available via TOR at http://rh6v563nt2dnxd5h2vhhqkudmyvjaevgiv77c62xflas52d5omtkxuid.onion/