Headless SKR Pro Info

Trying to finalize everything and take notes for a Docs Page. Also looking for any suggestions on the settings.

Here is how I am setting up the headless option for the SKR Pro. I plan on offering them for sale for under $10 depending on how long they take to flash and test. Right now it takes a bit.

Currently, I can not find an easy solution for the Rambo or Mini, the SKR has a built in memory card slot that makes all the difference. There is a chance that I can get it working with the esp32 Cam board, I need to retest after learning a few things the last few days.

This uses the ESP-01s board. https://amzn.to/3RC6rXZ
The easy plug in flashing tool has not worked for me, so I prefer this one.

I use vscode and platform i o to flash them, with the changes that are made here, ESP3D-Configurator That link lets you make some initial changes, I will include more complete files below. To use the configurator you overwrite the plat form io file and the configuration file then compile and upload.
If you do not want to compile here is the bin, Unzip it first
firmware.zip (401.7 KB)
There is another flashing tool I can list or Teaching Tech shows it here (don’t use any of his other files) Add wifi to your Bigtreetech mainboard/touchscreen - ESP-01S guide - YouTube

After you flash the board, you need to add the files to get the esp3d ui. The config tool above gives you a drag and drop file but I have a much more complete on below.
esp3d ui.zip (88.3 KB)
Unzip first. Sign into the wifi SSID “ESP3D”, password is 12345678. From there upload all the files. Reboot.

Then sign into “V1 CNC Control” same password. good to go!’

IF you are not automatically redirected the webpage is at or more directly

From here there are lots of options, but I need to use it more to see what to change. I started adding Macros. M108 for resuming from a M0 pause, and the buttons to quickly level the LR3. But we can have more!

Please give it a shot and give some feedback

ESP3D now includes;
Long file names.
Keyboard jogging, or onscreen joging.




Happens in the desktop mode as well. It must be in the SKR?? Long file names are not a deal breaker but they sure are nice.

That is a limit on the marlin gcode interface.

The gcode to list the files returns 8.3 filemanes. Although I thought there was another gcode command to get more details from the 8.3 name. So maybe they can query the filenames and update them in the UI.

Looks like you can add L to get the long names, but the webui needs to still use the 8.3 format to command it to print.

M33 is the one I was thinking about to get extra detail:

WebUI needs to get the list of files in 8.3 format and then call M33 on all the files it wants to display to get the string used to display to the user. But then use the 8.3 in the command to play a file.

At least, that is how I would do it. With some caching to keep it from over asking.

1 Like

Oh really?!? I can change the commands. Let me check

So M20 T, or M20 L doesn’t change anything let me check, LONG_FILENAME_HOST_SUPPORT

1 Like

I could kiss you right now!


I’m pretty sure there’s an only fans for that

Sorry- just got my laser so now I’m trawling all the newer laser threads. Just cuts and some regular engravings. So I’m not sure this info applies, but I’ll store it away for future

Do you mean ones like this?


If so, the trick is to add a button to them to make grounding GPIO0 easier to put them in flashing mode. There are many variations on this, but they all work. Then it is just plug in, press button and flash. Something like that may help you speed up the work?

no that one doesn’t work well for me.

Oh I see what you are saying. Yes the new ones come with a button already. The other one though just works as is no buttons needed.

I tried it but now I get an error about not connecting to the board, something about invalid json and a /, no idea how to fix that. (EDIT used /?forcefallback=yes and good to go) Good thing I have a spare esp3d.


Default UI
index.zip (162.0 KB)

1 Like

Need to try that.

I did try to update and it does not seem to work from 2 to 3…the configurator does say the esp01 can’t OTA. Guess that is the same?

My esp32-01s came with this default page, no need for a flasher board. Same page you land on with /?forcefallback=yes.

The error page is:

with a brief flash of something about json and slash, it’s not the preferences.json, I kept mine second time round.

Feature request, to a UCase on the terminal input, g1 doesn’t work, G1 does. :slight_smile:


I appreciate that. But this was all you. I only pointed to a small doc and you took it way further.

To do an OTA update, it has to have enough flash to have the entire running program, and then enough space to keep a copy of the updated firmware. So you are limited to half the space. It is already packing 5 gallons of features in a 3 gallon bucket. So I am not surprised it doesn’t work OTA. A bummer, but not surprising.


I see, you still need to flash the V3 of esp3d. Looks kinda similar but the base is different, they have to match.

Figured. I was really hoping it was doing some sort of download and overwrite. This really throws a wrench in ease of use though. I guess if it is functional, then no real need to update. It really is just to move it, serve files, and provide a terminal.

1 Like

Well, if you can be happy selling them for $10 with the latest update, then people can just update by buying another one. Of course, they can still be updated without you (that freedom is important). But the convenience comes from having a store with them readily available.

You just need to make sure that a) you’re happy to sell updated chips at the price you set and b) you make sure the version installed on the chips you ship are stable enough to not require any updates.

Or, there are probably esp32 versions that cost a little more and can be updated OTA.

Can they plug in the same spot? foot print 8 pins