15W blue (450nm) LED laser module and GRBL investigation

15W LED laser moduleI’ve ordered, not so long ago, 15W laser module to replace my broken 5,5W one (5,5W laser was beeing replaced from factory). I was hoping to get much more power and be able to cut more… sadly it’s not that simple. It does not “engrave” on metal, does not cut deeper – so where is the problem? I’ll try to find out! 馃檪

It seems like this 15W is only on paper, for marketing purpose. It’s called “impulse”, and we should be able to get peak power of impulse around 15W.  Continuous power is 8W. I’ve ordered also module with fixed focus, not adjustable, since this type should offer better power transfer.

Browsing over different offers on Aliexpress, we can find some different specs. It should be powered with 12V DC (that is always the same), and peak power consumption should be 4-5A. Some other sellers claims it should drawn I <3A. All this can be true, probably some of them give current for power supply (12V) and other for laser module itself (it should be powered with constant current  – but we can assume peak voltage somewhere near 5V). So 5V times 3A – yup, its 15W 馃檪

Another information we can find is TTL frequency (0-5V). Some sellers write it should be <9 kHz, and this is kind of true (you can read about it later). But some other (but to be fully accurate, with a bit different laser driver) claims it should be TTL <20Khz, and operation mode should be 100 ns pulses, with 50% duty cycle. And this is already suspicious since 100ns is equivalent of 10Mhz… something is certainly wrong here.

Reading further, we can find some seller trying to explain why this is “impulse” power laser and how it works:
Theory is sound, but again we have here pulses that are nano seconds long. This time – 10ns, and this would require 100Mhz TTL frequency.

Ok, so what am I doing wrong, that my laser does not engrave (or more likely) mark steel? Not a clue yet. With a laser package, I received a small steel plate with engraved “OK” – this should be a laser test/prove that is working properly.
I’ve asked my supplayer, what should be TTL then, to be able to engrave on steel. After some debate, and convincing me I should use their laser machine (it’s called AS-5), I’ve received something, that looks like a partially translated Chinese manual from manufacturer. Between lines I could find that I should use 12V, 3A power supply and I can use TTL 0-5V to dimm the laser from 0-100% with 4Khz frequency.

Having all that “knowledge” lets do some tests. I’ve connected two lines of my oscilloscope, “blue” to TTL laser driver module (generated from my Woodpecker/Arduino board) and “yellow” to power output directed to laser diode itself.
Be default GRBL 1.1f uses 1Khz frequency (a bit less, but it’s almost 1Khz).
Laser PWM 1KhzIt looks quite ok. Square wave is sharp and we can see that driver reacts with some delay but is consistent with input signal.
Next step for GRBL is 2Khz (this is consequence of the timer used with 11 pin of “Arduino” –  PCINT3 of Atmega)
Laser PWM 2Khz
Also looks fine. Almost like previous one, but if I would have to guess – 1Khz looks better.
Now 8Khz…
Laser PWM 8Khz
Now we can see clearly, that driver does not manage to keep up with the PWM/TTL signal.
And finally, just to be as close as ATmega can be to those “nanoseconds” for “hammering with laser” 馃槈 – 62Khz
Laser PWM 62Khz
Here the “patient is dead” – flat line :). Certainly not a frequency for this driver.
So what do we get from this? Manufacturer (assumed) says 4khz, some sellers just say <9Khz. I would say anything between 1-4Khz will be fine. But still 1Khz looks the best.
But since we “should have” 4Khz, I’ve setup GRBL on 2Khz and did some more measures. Btw. to setup GRBL PWM frequency, you have to edit “cpu_map.h” file just before the end:
 // Prescaled, 8-bit Fast PWM mode.
#define SPINDLE_TCCRA_INIT_MASK ((1<<WGM20) | (1<<WGM21)) // Configures fast PWM mode.
// #define SPINDLE_TCCRB_INIT_MASK (1<<CS20) // Disable prescaler -> 62.5kHz
// #define SPINDLE_TCCRB_INIT_MASK (1<<CS21) // 1/8 prescaler -> 7.8kHz (Used in v0.9)
#define SPINDLE_TCCRB_INIT_MASK ((1<<CS21) | (1<<CS20)) // 1/32 prescaler -> 1.96kHz
// #define SPINDLE_TCCRB_INIT_MASK (1<<CS22) // 1/64 prescaler -> 0.98kHz (J-tech laser)

Back to the tests…

I’ve tested drawn current by the controller board (so it’s summary of the fan, laser and controller efficiency) from lab power supply (with 2Khz PWM). We can assume that 0,14A with 0% PWM is how much fan uses. So everything above that is used by laser and controller to operate.
We can see here, that real power changes are up to 70% – later power changes are minimal. So when using laser to raster burning some photos, pictures etc. it’s best to use power values 10-70%. There is some strange thing going on around 50% power, that’s why I’ve took more samples. I don’t know why suddenly power is dropping down.
Max. registered power 1,5A was for 90% and 100% PWM frequency. This gives us (minus fan) 1,35A * 12V = 16,2W. Not so bad. But I don’t know what is the efficiency of the driver.

So the question still stands… why the laser in not etching the steel…

And  btw. I’ve checked focus, It’s not as declared 18mm – more like 16mm but still – no luck.

Update 2019.01

So, just to let you know – It looks like the guilty part was the lens. I’m not sure if this lens get cloudy after some time of usage, or it was broken on production level, but I’ll probably know soon.

Anyway, after replacing the lens (I’v got 3 new from manufacturer – but not for free sadly) laser finally managed to etch something on stainless steel.

Notify of

Inline Feedbacks
View all comments
5 years ago

Hello, I really appreciate the info. I have a Woodpecker Arduino Uno with 1.1f grbl. I also bought an upgraded laser module, any information or suggestions you have on connecting the 3 wire module to PWM would be greatly appreciated. Thank you

4 years ago
Reply to  Sauron

I’ve encountered the same issue as jiminsandiego I think. My laser has 4 wires, I configured +12V,PWM,GND and not connected TEMP.
The Woodpecker 3.4 board just does not alter the PWM-pin other than 0.02V (=5/255). Enabled laser by


Did not yet set the max spindle speed @255, it’s still the (virtual) 10000 rpm of the spindle.

Will setting this 255 speed solve my problem, or am I missing some other thing here?

3 years ago

$33= 5000 ( this will give you 5kHz – for example) I know this will run on esp32_grbl and grbl-lpc, although when you’ll type: $$ usually this settings is omitted but on those two systems is registered correctly.

Would love your thoughts, please comment.x