JL1 (JL3) GRBL firmware avialable

Do you have a link on how to do this…?

Anything would be good… :slight_smile:

It sat here until I got the upgrade program and binary a few days ago.

Only used the few programs listed to see if it could talk at all… Just invoked the ‘test-flash’ without any parameters… Do you think it is going out to the board?

It was hosed as soon as I ran the upgrade, without the power/button sequence… Never has booted properly and the laser is ‘on’ all the time… don’t know what power level…


Can you solder?
At very least I would advice you to spend $10 on STLink V2 and have some patience.
I just confirm that 4-pin header is working STLink interface. I’m trying to do the dump and copy. (to copy working JL1 to Blue Pill). Will report if sucsesful. If so - we will have safe recovery option for all.
You also need to solder 4-pin header into the board and to have 4pin jumper cable female to female.

I will provide instructions when I have all files ready.

Y’all: does anybody able to successfully flash their JL1 to GRBL?

Not able to dump flash as it is protected.
While messing with it - after toggling protection bit back and forth - my JL3 GRBL firmware is no longer booting. Yep, I’ve bricked it. Later found here:https://chowdera.com/2021/04/20210426103900089b.html
that flash will be erased on unlock, all Fs now. Exactly what happened.

Oh well, even more pressure to get recompiled version working.
At least I can confirm that hardware is wide open, that 4-pin header is STLink port and flashing with STLink is trivial. Just need new firmware.
Fun Sunday!

I will post when progress is made.

1 Like

I’ve used a few micros and all of them will allow you lock portions of the memory/flash. Else, someone can just copy it off and disassemble the code.

On the 320p (Arduino) you can lock it up where you need a high voltage programmer to ‘un brick’ or reprogram the chip. I’ve got over a dozen donated 328’s that were ‘bricked’ inadvertently.

If I can, I’ll try to recover it for them and I put it in the programmer and rewrite the boot loader, usually recovers. If it’s a smd, sometimes you’re sol…

Chuck it up to ‘live and learn’…

I’ll probably order a programmer. I have a pair of Dragon (obsolete) programmers for the atmel series. I guess they are now 'microchip …


Have this ordered, here in a couple of days…

This utility is available on my Ubuntu box… It’s in the Ubuntu respository you can use the standard apt software to install it.


can you upload the .bin or .hex file that you used?



I’m glad to see that many people are able to successfully flash that JL3 GRBL firmware to their JL1 machines.

I have compiled new firmware specifically for JL1 where everything works, I think, except PWM on port B0, that is spindle/laser PWM control. Something with timer 1 partial remap and timer output control registers. I’m still sorting through it. For ethical reasons I do not want to let firmware loose in the wild that is definitely not usable. I mean I guess it is possible to just jump A8 to that laser control pin and have complete functionality this way. It would be ugly hack due to lack of software skills, but hey, whatever works, right. So let me try it and if it works - I will consider it. I can feel sentiment for you, sitting with dead board can’t be fun.
Another option is to take this journey solo, like I’m trying to do now.

I got " RepRapThailand / grbl-stm32" on GIT as starting point, mostly because Embitz IDE is much lighter than Cube or Atollic and does not go to the cloud every minute. Also this was the first package of many for STM32 that I’ve tried and that compiled cleanly right away without single warning. If you are Linux fan - there is version for that. It also has built in flashed for STLink, very convenient.
To start - remap pins in cpu_map.h . May use map I’ve posted earlier.
After that - everything works except Spindle/Laser PWM .
There is also bunch of unused signals. I’ve deleted definitions for all unused pins and progressively prune the whole source code for each error/warning for any call that uses these signals.
Now I have just the set of functions/pins I need. Only hardware PWM not so easy to move.
Now this board happily converses with any software that supports GRBL and as much as I see on the scope - it has what appeared to be the right signals for steppers.
Almost there.
You may replicate my journey or wait till I complete mine.

I’m not a software engineer. I’m barely a hobbyist, and I’m having fun with it.

Any other developers with proper skill set - welcome to help.


@berainlb makes an interesting point here

The photo in post 6 shows the controller and the cpu was tagged as an APM32, which does exist and if @berainlb is correct, it is likely some type of commercial atm32 clone or something. Sounds like the binary will run on either… ?

Do you have a header file or something with the changes to the pins in it? Which pin is the jl1 using for pwm control ?

Any road maps of the board you have would be good, even it it’s this pin does this…

Cloned the github project… Do you have any details on what you have changed so far?

I have another controller on the way from China… It would be nice to use the existing hardware…

My st-link programmer is supposed to be here today…


1 Like

I just want to let you know, that I found an easier resolution of my problem: I’ll return the small K6-engraver an order another product, which explicitly mentions lightburn. It uses GRBL and has a more than 4 times bigger engraving-capability. By the way, the laser is also about twice as intense.
Thanks for your input. Maybe my pic of the K6-board helps someone.

It already has … thanks

Is it twice the price?

Sometimes that’s a good solution. The jl1 I have was dirt cheap and a hobbyist might end up with a nice machine at a low price. But they have ‘sweat’ equity in it.

Good luck


NO. It is not twice the price, “only” about 1.6 times.

Can you post the binary for what you have loaded? :pray:

I have the st-link working and have loaded the original files, both the bin and hex, but it won’t talk to anything on the serial port. I think you had that issue.

It would be much easier if you could post it what you have and I’ll try that binary…

Getting a message of any kind would be a step up…



What you want to do? Just test if you can flash? See serial talking GRBL? Move any motor? Laser control?

I have one that talks serial and I see pulses on motor control. Just tried to upload to JL1 and apparently something is off as I do not see motors moving, I thought they will. I can give you hex to test your uploader and talk to GRBL, not so far nothing beyond that. I would be able to move motors soon. I’m still struggling with PWM for laser control.

That would be great… At least I’ll know some part of it is working.

Can you post the .h file you have modified?

I just add a .txt to whatever the filename is and it will upload it…



Slightly off topic. Has anyone used the mks dlc32 board with this engraver yet? what firmware can be used?

I did. I use V2.10_H35_2022_0621_N_ZX_001.bin and it has X L<>R swapped on screen, GRBL control is unaffected. Other than that - works fine. I also got 2209 drivers and they are sweet.
Just this morning there was close to dozen older firmware versions. Just checked and they have only two left. I got to try one back to see if X is right. If you do not have LCD - then there is no problem.

This is my setup:

The MK32 I ordered from Aliexpress is in Compton CA… Supposed to be here the 9th, hoping for sooner.

Did it plug in or did you have to modify the connections?


DLC32 on JL1 frame:
Both motors are straight in.
Y cable is 2-pin and DLC has 3pin, can be forced but better to adapt or move pins,to 3 pin housing, no need to recrimp…
Main laser is sharing connector with X home. Worse - ground pin is double crimped. Actually it can stay this way.
To do it proper:
Need JST-XH connector kit and a crimper. Will need to reap that 4 pin laser connector and split into 3 pin for laser and 3 pin for X home.
Cost free alternative is to pull home pin out, cut potion oh connector housing off, leaving x3 pins and plugin home wire without shroud. Ugly but will work just fine.
Without crimping - it is possible to pull pins out and insert into proper housings. Once again double crimped ground may stay and home connector may get one wire only (still get ground through the other connector). Or can be cripmed into 3 pin connector.

Another alternative is to not destroy JL1 setup but make adapters. JST kit came with headers. it is possible to construct proper adapter without destroying original cables.

There might be a way to connect pointer. I2C connector can work as GPIO for cooler control. Can be used for pointer instead, have not tried it yet.

I’m running with no home switches, not yet. Really do not need them. Origin of work set separately anyway. Unlike JL1 board - DLC does not enforce soft limits, it always free to move into hard stop at any end. I might connect optical sensors later.

I’ll just make extensions and keep the original harness. I’d actually like to buy another one and see if I can make it work with the ‘upgrade’ and keep it mechanically stock. I have a 30 watt Neje I’d like to mount on one.

Do you have any notes on how this thing is wired up… It was nice of them to use mostly black wires, tough to chase down… Will have to figure out how to get the pwm out of it in order to use the Neje.

Installed optical limits to the original cnc3018 I had… It threw some debris into it and stopped an almost perfectly done project and halted it… Now they are hall switches… Both ends for X & Y, one sensor for Z that does both top/bottom.

I assume it will detect the limits switch trigger when operating?



just posted: MKS DLC32 adapter for JL1

Hello, can you send me the files please, I have asked the manufacturer for them but they have been sent to me by wetransfer and I cannot download them because they have expired, thanks chik3te@gmail.com