JL1 (JL3) GRBL firmware avialable

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

They are posted in this thread in message 6.

What does this mean?

Used that method for model decals, how does it work for documentation?


Wetransfer is a Chinese cloud storage/transmission service meant mostly for the transfer of files outside of email or cloud links. Mozilla had a solution at one point for this but was canned.

1 Like

Sal, if I get this machine, I will build GRBL and try to install it via ST-Link and setup with endstops and normal GRBL features. I can put files up on github for others if needed or post to a gdrive.

Just wondering if you had posted anywhere what pin assignments you had to customize for the JL1 version of STM32?


Not if, just get it. Some still available on Amazon. If not JL1 then JL2. As of this moment 6 in stock.

Are you a software/firmware developer? I’ve learned that recompiling for STM32 is not a matter of pin edit in CPU header file. This is how it was in Atmel. ST is very different animal. I’ve spent two weeks trying to move single PWM pin to another port, to match JL1 hardware. Most (all) sources are created for generic STM32F103 boards, Blue Pill specifically, and have PWM on first hardware timer port. There are no switches in any source I’ve tried to select different pin for PWM. I’ve jumped on it with exactly the same expectation as in Atmel world but hit the wall quick. But I’m not a professional firmware developer, though I’m not that far from it either. At the end it was good learning experience.

I’m planning to post my BINs on GITHUB. As a fact I will do it today. Maybe not my code mods but BINs definitely.
I did post parts of my pinout work here. It is messy, I know. My code edits are not much better.
There are more hardware info scattered though various threads. I might organize it and put on GITHUB, when I have time and desire.

I did solicit cooperation at the beginning but gut zero interest, so I went solo. Still great fun and personal satisfaction for for me. And once in a while I can help someone directly - feels good.

I would give credit for sparking my interest of this activity to Francesco Grieco in his original post. This was all I needed. He actually got JL3 firmware from Wainlux before me. Then it just took of for me. I got micro OCD to make it work right. This resulted in my own firmware. (I do not have OCD :grinning:).

And to be fair, I got a good number of people who did express their appreciation for my work. I appreciate that too.

So, I will post BINs on GITHUB. If you would like to cooperate - I will do it gladly. If you have some questions - shoot. I will help with what I can. As long as my interest in it is alive.


:slight_smile: It was stated with trepidation since I had ordered the first one but after 2 weeks got notified that the order was cancelled. I was quite surprised to see this unit flagged for delivery on this Friday. Hoping to be surprised but not holding my breath.

I was trained in that profession and worked for a few years doing it so some of this could make sense. I did used to do software development where we had to read data sheets to setup registers, ports, etc but that was over 20 years ago. Again, I might be able to figure some of this out.

Ya, these ARM devices are a bit tricky in their vast flexibility. I stayed away from MicroChip forever and loved the Atmel platform and gawd Arduino and PlatformIO has made microcontrollers so much fun to work with. Sounds like I’m in for a bit of a learning experience with the STM32 devices. I will have to ring up a family member who has really only done embedded development and I think it includes STM32 devices.

I think once I get my unit I will ask the manufacturer for the source code and see what happens. I don’t think there’s really anything special going on but maybe their Windows app is ‘special’ and they want to keep it that way. Easy enough to try.

It’s nice to be able to just upload and go but if there’s something I can help with towards the build process I have no problem building a dev env and trying to hammer on it a bit.

Ya, I saw that but once my order was cancelled their was little I could do without a device so I didn’t respond.

I will check those links out but I’m not currently sure what the difference is between the JL1, JL2 and JL3 boards. Are these different boards or are they different laser engraver machine configurations? I thought the board was called JL1.

Original work stating how to get the bin files working with an operational bootloader have made lots of people happy. Speaking of bootloaders… Ortur uses STM32 chips and they are supposed to be releasing their source for GRBL. A number of people had bricked Ortur LaserMaster boards trying to use a Mac or Linux to upload firmware using the bootloader. Funny thing, their bootloader exposes a 64K FAT32 USB drive you are supposed to copy the firmware.bin file to. BUT, you have to copy it so it names the file in both short and long directory entries. Ortur have me their bootloader to upload to the boards using ST-Link and then I use MSTOOLS to copy the firmware.bin file properly setting the directory names. On Linux… So that’s how I know Ortur uses STM32 chips and grbl firmware.

I’ll see if I can get their build environment for grbl too.

GITHUB is set. Feel free to participate.

JL1board used on original JL1 frame, this is what we are dealing with here. Home switches at bottom right.
Then there is JL2, that is small-ish “T” (or X?) frame. It is listed at this time together with JL1. Home is at upper right, I think.
JL3, is what Wainlux’s firmware is for. It has about twice larger frame and home switches at bottom left.
It appeared that JL4 is the same as JL2.
There are number of machines form Wainlux that also uses the same board.

The board in all of these is the same, with “JL1” silkscreen on it.


I thought Jack tried that already?
Developers of JL1 are obviously under different jurisdiction. They do not care. Maybe they do have all own code and do not have to share?
I’m curious to setup LSA and capture original protocol.
Also would be useful to grab WiFi setting commands. Maybe, some day, we can enable that ESP inside? I have DLC32 boards and it is handy to run it from my couch without wires attached. It is probably just a transparent web socket.
It might be also possible to upload to ESP with some special ESP uploader firmware for STM32, then flash that ESP with ESP_3D. That what FluidNC interface is based on. I also got it on my 3D printer.

1 Like

It’s a pleasure😉

1 Like

@LsrSal I received my JL1 engraver but it’s still in the box. Caught a cold and have been sick since Sunday morning. I did just get grblhal and did the default compile for the STM32F1xx driver. If feeling any better tomorrow I might try to install it on a bluepill and try to get the GRBL prompt.


Get well first!

Keep your JL1 in the box for now and use BluePill, the board, not the other thing.
In my firmware thread I’m trying to use factory boot loader. There is some primitive scrambling. Maybe you can see some pattern?
It is not a problem to compile with start offset, and as I understand now not a problem to figure out that offset, but that scrambling makes it so far not practical.
It would be nice to use factory boot loader to update firmware. If you use STLink - you will loose that boot loader.

I have no doubt in your success of getting serial prompt from Blue Pill quickly. It took me 10 minutes. Edit CPU_MAP header file and you are done.
Took couple days to find my starting point source to compile cleanly, just a leg work. There are literally hundreds of forked sources and most are abandoned.

Fun part was to move spindle/PWM signal to new pin, as it was hardware tied, normally defined with HALCoGen (Cube MX). Every time I touch Halcogen - it breaks. So I end up not redoing HAL but adding/overriding relevant part of HAL at the end of init.

Lets see how you can solve it! As professional firmware developer - you have advantage.

To help you get started - here is my pin map for JL1, saves you a few hours of signal mapping. It is very possibly not complete. I suspect there might be boot pin for ESP, but I yank module out early and had no real reason to check every connection to ESP. Maybe handy to re-flash it with ESP3D interface.
JL1 STM32 pin map.txt (370 Bytes)

I have started to prune the code/commenting out every unused pin and did a few, but some are still there. Does not appear to interfere with anything.

Waiting for your updates. Maybe better to discuss development in JL1 firmware thread.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.