Jackpot / FluidNC WebGUI

I’m this close to making a fork of the FluidNC web GUI.

I think I saw on the Wiki that nobody is working on it. I was thinking about going back to RPI+CNCCJs, but the ESP32 is reasonable, and I really like the simplicity of the Jackpot. Seems silly to add another layer of CPU.

Thinking about adjusting the GUI to make it easier / more flexible to manage working coordinate systems, macros, etc. Things that will (help) keep the user from crashing expensive bits against expensive materials. More cutting, less thinking.

Anyway, just want to check and see if anyone else out there is thinking the same or perhaps already underway?

Alternatively, I’d gladly pay a bit more for a version of the Jackpot with a Pi.

What I really want is a Jackpot running ESTL+CNCJs on a web interface.

Are you referring to the v2 WebUI? or the new v3 that is being worked on now?

A ha! I see that there have been commits in the past week. Thanks.

1 Like

This is a little unclear to me. Do you feel this as is, webui v2, is worse than Marlin in some way?

I’m referring to the actual controls available in the GUI web application. There are a few things that bug me, a few things I’d add. Wish it was more responsive. I’ve noticed that the file upload can get wedged.


I’ve been designing software professionally my whole life. Little flaws really bug me.

I understand that part. I am seeing a lot of complaints, though. I am not sure if this is just little things or people prefer Marlin.

Not sure how much you are keeping up with but the V3 of the jackpot webui is in beta, it is drastically different.

If you want to run CNC.js on the jackpot, he is one of the trusted Fluid devs (he made the web installer if I am not mistaken), you can you just need to be wired, since it will take over as your sender.

Same as Marlin, although marlin had less capabilities

Fluid is designed to be used with workspaces, what part are you having issues with specifically. Are you familiar with GRBL’s slightly different gcodes for this. The Devs do not like the workflow I suggest people use here as they believe everyone should use workspaces for everything. So this catches me off guard for sure.

Marlin workspaces are possible but not to the level of Fluid.

Macro is V2 is an added txt file (which I think is slightly easier)
Macros in V3 is added from the GUI itself.

Not sure these can get any easier, what are you trying to do that you can’t?

Macros were not possible that I know of in Marlin.

In terms of what? If you set your machines dimensions, and “homing required” you can’t hit the end. Although an aircut around any parameter you think might hit an edge or a clamp is my preferred was to do this. This saves you hours, bits, material.

Do you mean wirelessly? You can already do this wired, if you want it wirelessly then yes, you just need to add a pi. You can do this I am not planning on adding this a default though.

This is the same as Marlin.

It is a touch screen interface. In marlin you had to navigate through individual axis menus on an LCD with a knob, or several menus on a touch screen. I am unclear to what you mean here by more responsive.

Currently, we recommend using the SD card for file transfer the same as Marlin. It is unclear why file transfers work fine for some on and not for others. When the work is done moving to V3, I am sure things like the networking can be more closely looked at. Currently, that means looking at two different versions of the UI and why do double the work.

To me this is so drastically better it is not even close, but if everyone hates this, I will stop R&D and just go back to marlin. That is why I am asking, I don’t understand what level this complaint is, it seems like you are very unhappy. When to me it feels like every aspect is a huge step-up, and half the cost.


I don’t seem to have any trouble with wifi uploads, so I can’t talk much about that. However for long jobs on my 3D printers, I’ll download the jobs, and do a CRC compare to the output of the slicer. I’ve caught some errors that way. Sometimes even using the SD card and sneakernet I’ve had errors with sending jobs to machines.

The whole point of the machine mechanism is to allow you to put those expensive bits into the same 3D space as the expensive materials. This is the intended purpose of the machine. I’m not sure how you can prevent accidental crashes without crippling the machine function, or else automating far more functions and adding hardware restrictions. I’d be very interested to hear your thoughts about how to do this though.

As to “less thinking” I’m pretty sure that there’s a reason why people can make good money as a CNC machine operator, and it’s not to just let the machine do the thinking and planning.

Now personally, I’m just getting started with FluidNC. I have a Jackpot board now, and I’m using FluidNC on my vinyl cutter, so I’m doing a little bit with it, but I haven’t done too much of an exploration. I’ve noted that the pause function is not as good as some, the pause function seems to want to run out the planner, but maybe that was my error.

I think people preffer what they’re used to. newcomers will very much like FluidNC, I’m sure. My only thing so far is that I’d like a machine interface, but the FluidDial pendant seems like it would nail that down nicely. I’ll wait a while before I go that way, for now, one of my old phones has been ressurected from a drawer to act as a touchscreen.

Speaking of which… you know the TFT35 screens that go on the SKR boards has its own CPU and runs its own firmware, right? Same thing with the PanelDUE touchscreens that I have on my Duet boards, and even the FluidDial, they each run their own firmware and CPU and just communicate with the firmware on the mainboard. Heck, if you put a wifi ESP01S on an SKR Pro it runs its own ESP8266 CPU just to run the web interface. Seems to me like a lot of resources to throw at a “simple” problem, but really, it’s more amazing to me that the ESP32 can run a web interface at all while still managing everything else in handling the machine. It seems more common now to distribute the computing for UI tasks.

Adding a Pi is a little more expensive, and it does seem like a lot of resources for what amounts to a small increase in capability. Most of the core functions that CNC.js would add are already present, including the wifi connectivity, so it does seem a waste, but considering that we’re actually asking quite a lot from that little ESP32, and some people are having issues with the machine pausing while it catches up, maybe there are other reasons for offloading that processing as well. It could well be that adding more functionality to the existing web interface adds more strain to the ESP32, which can result in more critical errors in the machine handling. It could well be that adding a Pi ends up being a very effective way to address all of the functionality issues.

It also seems to be entirely possible to use an $8 ESP01S module to connect to the serial UART and offload the UI that way. That reduces the cost by a major factor and offloads some of the troublesome overhead on FluidNC, while giving more flexibility to the UI.

Oh no, I’m quite happy with Jackpot.

I had a little trouble getting it into my network at first but that’s fine now.

I just wish, for example, that it had an integrated editor for text and gcode, more controls for managing workspaces and coordinates, customizable layout, etc.

I dream about an integrated camera, so I can map the coordinates to my material visually a la Lightburn or Shaper Origin.

I was looking at the v3 repo a bit last night, and still haven’t found the actual web application. Looks like a lot of the work is around plumbing, which is good.

This post is good, because now I know there’s a v3 underway and maybe I’ll even contribute to that rather than fork it myself.


Just to underscore and enlarge on what @vicious1 mentioned here:

I’m using Jackpot with FluidNC, and in my config.yaml file, I have my table’s cuttable area dimensions inputted as max travel for each axis, and I have both hard limits and soft limits enabled for each axis. Once I home my machine, I cannot jog past the set limits. Now, this won’t stop me from accidentally driving a bit down into material in a Z movement, but one cannot rule that out and still be able to cut.


I find myself doing a lot of manual commands, which lead to dumb monkey fat-finger errors on my part.

For example, yesterday I was essentially jointing a piece by running a long-reach spiral bit along an edge. Small adjustments interspersed with long movements along one axis. Had notepad open on my desktop, copy/paste GCode into the browser.

Wishing I could just write little macros on the fly and assign them to buttons.
Wishing I could manage all of the available coordinate spaces easily.
Wishing I could customize the movements on the jog control and the layout of the various controls.
Want to map a network drive and save directly from ESTL. Or at least FTP.

Things like that.

It should be drastically faster than Marlin. Like it finishes the current path and stops, Marlin had to finish 12 cached moves.

What?!? That absolutely should not happen, ever.

As in editing your gcode file itself? I am sure that is possible if we really wanted to, but at some point some things really should be done with CAD or CAM.

What does that mean? Workspaces are set with gcode, you can type it in or make your own buttons, what do you feel is not there?

V3 is fully customizable, even the colors.

You can, it is a text file, in V3 it is a string of commands.

Again, what does that mean, you have 100% control of workspaces already.

As I said, networking could get better after V3, but this is largely dependent on your home network it seems, STA vs AP mode. This is a common request, but this was not possible in Marlin at all.
Small files should actually work just fine it tends to be larger files that have an issue for whatever reason.
Again though I will repeat this. You are working at a CAD machine and have to physically go to your CNC to use it, Moving a SD card is not a huge ask.

1 Like

In this thread it looks like we need to get you caught up in how to make a text macro, how GRBL handles workspaces, and maybe how to test out STA mode.

Other than that I don’t actually think the UI is in need of any edits to get all your request satisfied. V3, which you can use right now, solves the rest of the requests.

1 Like

If you look through the forums at this point, there are tons and tons of “issues” with FluidNC or the Jackpot.

If you look at these issues from an outsider’s perspective, it looks as though you should not use Fluid or the Jackpot in favor of Marlin. Heck, I just asked earlier if I should stop wasting time on it.

As much as I don’t understand why everyone is NEEDING wireless file transfers, I understand it is a WANT. Development is progressing in Fluid and things are getting better and better every week, but making things work with everyone’s networks, and all devices, and browsers is not a simple ask. Will we ever be able to wirelessly transfer large files, I have no idea. This is not even an option in Marlin, either is OTA firmware updates, easy config edits with a reboot not a recompile and flash. Or is wireless file transfer a dealbreaker for most?

I guess what I am getting at is how do we make these threads a bit different so it does not seem like Fluid and the jackpot are a step backwards?

Things like the fluid dial are nice but if you want wired control why not just stick with marlin?

I am not really understanding how to move forward and make this stand out as the better, less expensive, more customizable option. Or is it?

Well, I’m sold :slight_smile:

I have two of them and will probably order a third soon.

I just want it to be even better. There’s a lot of potential there.

So let’s start to work through some of these.

Would you prefer to start with the V3 GUI since a lot is different and we are going to hopefully be moving that way very soon? This should get you customizability and “easier” macros. From there we can get some of your macros going then work on workspace use in GRBL?

Using The V3 Ui is as easy. I suggest you use a second Micro SD so you have a backup in case you want to swap back the V2 for some reason.
1- Using a Chrome browser head to , https://installer.fluidnc.com/
2- Erase and flash the new 3.7.14 firmware onto your esp32.
3- load up the Yaml file from the V1 link, GitHub - V1EngineeringInc/FluidNC_Configs: Configuration and support files for the FluidNC boards typically used and V1 Engineering
4- You will also need to load up this file, https://github.com/bdring/FluidNC/blob/WebUI3/FluidNC/data3/index.html.gz, linked from the web installer page.
5- From there you will want to save a new preference file with any changes you make, this will include your macros when we get there.

This could improve file transfer as is, you should try AP and STA mode to see which works better on your network.


This thread reads very differently from my end. It looks like you disslike nearly everything about it. I am glad to hear that is not the case.

1 Like

NOOOO! FluidNC and the Jackpot are so much better than Marlin. The ease of customization is great!
I think that might be part of the issue. People are seeing how much more you can do with them, and come up with more ideas on improving/customizing it to their liking.

It is… but my basis for comparison isn’t Marlin… It seemed to me that it needed to complete some cached moves as well, but as I said, that could well be my own error. I haven’t used it nearly as much

Hmmm. I personally have only had something like that happen with Marlin on a RAMPS stack (One of the big reasons why I switched to the Duet boards) but I thought I saw some comments about it in the Jackpot dev thread. It was one of the things that going with AP mode seems to help. (FWIW, I’m using STA mode on a reasonably busy wifi network without problems.)

I just wrote a little snippet of code to initialize my servo Z system:

G92 Z4

Saved it as a “macro1.g” file, and it’s a button on the UI. It works fine.

Manage how? Switching between them? editing offsets? Seems to me that the above can manage most of that. G54 to switch to coordinate space 1 (G55, G56, etc.) and then to initialize the workspace X/Y coordinates add G10 L20 X0 Y0 (I’d do that as a separate macro, as I do on my machines.) I have another one to set the Z0 on my CNC that does the same for Z, separate from the one that handles the Z probe.

This goes back to asking an awful lot from that little ESP32. So not only do you want the HTTP daemon process running but you want an FTP daemon running as well? Or SMB? This seems like a really good idea to add another processor layer on to me. This much extra overhead, I’d want to offload to a Pi and then maybe use CNC.js to talk to the Jackpot. Run the Jackpot without the wifi, and just talk to the Pi over the network.

The Duet Web control has a function to edit text files on the SD, because of course everything is Gcode with RepRap Firmware. I won’t say I never use it, because it’s there, and I don’t have to worry about starting with an out-of-date copy of the files, like the config files, but I do generally download them, use a real text editor on my machine and re-upload them.

I think we kind of should for a while, as in those of us who have used both should point things exactly like that out. For example “While pausing in Marlin took 8-12 moves to clear the cache which can be several minutes, the pause in Fluid seems like it might still be clearing 1-2 moves out of the cache, should it be instant?”

For us Fluidnc is very new and I think a lot of people are wondering which control or firmware they should use and if they browse the forums jackpot/fluid do not look very good.

I do understand what you are saying I just think we are nitpicking excellent features to be even better.

The only time I ever say this happen was when we had the marlin firmware issues with ARCS for a couple of bugfixes 4-5 years ago. I never shipped it that way.

I am not sure myself but I think Mitch might have actually added that to the tablet tab on the V2 UI, that is not currently in V3. It also has the gcode visualizer next to it. It is not something I would use so I never looked for it.

I am very careful with my Gcode I take my time with edits, and tend to fix them in CAM and regenerate the code. One bad edit and things break.

1 Like