JL1 (JL3) GRBL firmware avialable

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.