Headless SKR Pro Info

Have never been able to run octoprint on a pi zero. Tried 3 different boards before I switched it out with a 3B+ I had been using as a Timelapse controller for photography. Something to do with the webcam eating all the bandwidth

I’m seeing the zero 2 has better specs- might be worth checking out, especially for $15. But my ESP3D is working just fine

How do you get V1E ESP3D/ESP01S connected to SKR Pro, to read files off the TFT card reader? Or will the ESP01S need to be connected to the TFT instead? In which case, do I need to downgrade SKR Pro firmware (updated to 515 yesterday…), and/or upgrade TFT firmware. Sorry if this was described already, I read this entire topic 3+ times.

I appreciate the ‘headless’ effort was started to avoid needing a TFT, but I/others have one already, so may as well maximize the experience, it’s been helpful to see some of the ESP3D messages on the TFT, especially for some instances where ESP3D takes a mysteriously long time to load/respond.

Also, the TFT Card reader is more accessible for my LR3 build setup. I’m willing to recompile firmware, if there isn’t a simpler option, any pointers are appreciated.

Have configured V1E ESP3D/ESP01S back to AP mode until if/when am able to reliably use.

Currently, have the ESP01S mounted to SKR Pro (updated firmware 515), and am able to successfully read files off the SKR Pro’s micro SD card reader. TFT firmware hasn’t been changed since was delivered ~6/22.

Able to read .gcode files written by a PC, then manually inserted into SKR’s micro SD reader. But ESP3D seems clueless when SD Card is inserted into the TFT. Used the SD Memory Card Formatter mentioned earlier.
Reading Why SD upload is so slow ? How to increase speed ? and other discussions in the ESP3D repo has been helpful.

Cheers!

Edit: I guess strapping on a Micro SD to SD Card Extension Cable Adapter (connected to SKR) is an option if the TFT SD Card reader can’t be enabled for some reason.

I can’t say which will be better. The zero 2 w should work though. It works with a zero 1, but it is pretty slow. So the zero 2 should be fine.

The esp01 has a lot less processing power, but it also isn’t running a full Linux OS. The pi zero 2 has a lot more space for the program. So cncjs and octoprint are nicer in many ways.

1 Like

The TFT has two modes. In tft mode, it talks to the skr over serial. In that mode, Marlin doesn’t know if it is being controlled by a TFT, octoprint, or a computer. It has no idea what is on the TFT’s sdcard and it won’t ever be able to.

In Marlin mode, the screen sdcard is connected to Marlin, and Marlin could read the contents. But Marlin can only be configured to read one sdcard. Since we want people to be able to use the skr pro headless, without a screen, Ryan configured it to be the skr pro sdcard.

So if you wanted it to use the sdcard on the screen, you can use the marlin mode, and change the firmware.

2 Likes

The sd extension cable route is what I did

Fwiw- I find control using the tablet much better than the TFT. That feels clunky to me
For some reason. I’m a 44 year old that grew up with TFTs, I’d have thought I’d feel differently.

3 Likes

Thanks, reassuring to see, using a SD extension cable looks helpful. Considered Wifi SD Card?

No idea why, but my ESP01S from V1E was working, stopped working, then started working again, for now… Mentioning because others also seemed to observe unexplained intermittent failures.

Expected behavior… Was initially able to load the ESP3D setup web pages, configure settings, set to AP mode. After restart can see and join the AP’s Wifi network. Great so far, but then…

I often ended up in a state where page doesn’t load, ping responses are slow/dropped. Observing TCP retransmissions, browser never gets a full response, not seeing ack data packets (observed using Wireshark on Windows 10). Tried numerous resets and powering down. One recent change made around the time things started working is I tweaked ESP3D AP IP from 192.168.0.1 to instead be 1.2.3.4, doubt that’s related, but who knows at this point, I’ve yet to locate ESP3D logging.

V1E ESP01S…

Thanks to @tjones99’s really helpful info in Add Wifi to SKR Pro step by step I was able to quickly flash this 4MB ESP01S laying around which has been consistently working today.

So, I currently have two ESP3D/ESP01S boards working for me. Will use them until if/when decide to use v1pi or something else with fancier features.

The ESP3D keyboard jogging is a nice feature, can finally look at the bit while positioning origin. Am looking into key remapping since my amzn fire BT keyboard doesn’t have PageUp/PageDown needed for Z-/Z+. A Joystick managed by Marlin would be cool of course, but for me, a reliably working ESP3D will be an upgrade from unreliably wired Repetier-Host. Cheers!

No, because the sd card extension was $4 compared to $40 for the least expensive wifi sd card I could find. Plus, I feel antsy doing files over wifi when I had ‘hardwired’ as a cheaper option

A note about keyboard jogging: the X and Y axis are flipped in the ESP3D interface. Arrows up/down control X axis, left/right control Y axis. A little annoying

Which keyboard did you get? I got the mini one linked up thread . The main issue with it is that if I’m using keyboard mode to type in terminal commands, it doesn’t turn off the ‘X’ button being the ‘home X’ hotkey, so it Homes x (or Y if you hit Y) if I’m writing a gcode command. I have to go out of keyboard mode, type, then back into keyboard mode. It’s messed me up more than once and I’ve stopped using the keyboard for those two reasons. I only use it for making macros now, but I’ve set it up so I have set target locations for different sized boards or router/laser home points.

I’ll occasionally get a slow response if I’ve recently used my kids baby monitor app- the wifi camera for that is ESP3D based as far as I can tell, and I get a weird IP conflict. If I try to connect to the Cnc, it pulls up the camera splash page. If I close out of the app first, it’s all good.

The solution is to go back to ‘broadcast’ mode and connect to the ESP3D under its own wifi, not connect as a client on my home network

2 Likes
1 Like

My guess on the intermittent behaviour would be wifi channel interference. You can set what channel the ESP-01s uses. Try setting a channel that is not used. THATS easier said than done. You pretty much need to run a little utility that does a wifi site scan to tell you what channels are in use and how strong they are.

Smarter wifi access points are capable of doing a site scan on startup and picking an unused channel. But an ESP-01s is not a smart device. Just does what it’s told.

If your poor ESP-01 is fighting a real access point with big antennas on the same wifi channel it’s going to lose.

I use a windows app called Netspot.

1 Like

Yes, agree. ESP3D default key mappings didn’t feel intuitive for my combination of machine orientation and keyboard (Wireless BT keyboard for my Amazon Fire 10"). Was curious about ESP3D code and used this as an opportunity to learn about, and extend, ESP3D WebUI code to support configurable optional key mappings. Will send details in a bit hopefully.

Curious, has someone in the community already extended/modified ESP3D code for their V1E builds before? Pointers to your forked repo’s would be appreciated. Welcome to track my experiments in GitHub - aaronse/ESP3D-WEBUI at 3.0, cheers!

Problem: The axis orientation and direction of ESP3D’s default jogging keyboard shortcuts didn’t make sense for my build, and keyboard layout. Sounds like @Neilp didn’t like default behavior either, guessing others too?

Fix: Implemented small ESP3D-WebUI edit allowing Users to optionally configure ESP3D keyboard shortcuts. Requires uploading a index.html.gz that includes the changes. Added a key remapping property to the Jogging section. This enables arbitrary keyboard shortcut overriding, defining, or suppression even.

Shared a short demo (@7:53):

Sent an initial pull request mainly to communicate the idea and possible approach. The edits don’t handle a bunch of cases/scenarios, and there’s no documentation (@coders, see jog.js to discover Ids of functions that can be mapped). That said, I personally like setting key remapping property with the following for my build…

ArrowLeft=btn-X,ArrowRight=btn+X,ArrowUp=btn+Y,ArrowDown=btn-Y,'=btn+Z,/=btn-Z

Hope that helps. Cheers!

2 Likes

I assume I need one of those data writer dongles to do this?

I have zero ESP3D coding knowledge and bought mine configured from Ryan.

The reverse mapping is bugging me. I mean- it’s literally a Cnc controller interface, with the keys backwards.

Thanks!

I mean the shortcut is just stand to the left side… :rofl:

I’m pretty sure me, you, and jeff talked about that way back and y’all said I just needed to reorient my thinking, and use it like a Cnc operator

:stuck_out_tongue_winking_eye:

Don’t need a dongle for this. You’d need the programmer dongle if/when firmware needs to be updated. Unrelated to this change, there’s a recovery scenario where the dongle can be helpful.

Fortunately, the web app can be updated using the web app :slight_smile: You can upload index.html.gz, refresh the browser to load the updated website pages, set the key remapping property, save changes, refresh the browser to pickup new settings, and your new keyboard shortcuts will kick in. Assuming I didn’t screw up the code changes…

I initially created the video above mainly to communicate key remapping idea to ESP3D folks. But on reflection, with a bit more effort maybe it could help folks considering using ESP3D to go wireless, either completely headless, or enhance their SKR+TFT experience even?

2 Likes

Awesome info

I’ll try this tomorrow, thank you so much!

Where in the web panel do I upload?

OMG I did not notice that was a video!

I chimed in to your conversation with Luc, I completely forgot to bring this up with him before. I bought the keyboard but I only ever use the esp3d with a touch screen laptop or phone. Sorry everyone for forgetting. I did not add it to my list.

1 Like

I honestly think they are just mapped wrong. Why would anyone want the keys that way?

Vaguely recall you wanting to suppress key presses from being considered jogging key shortcuts.

For example to prevent ‘x’ key from triggering X homing, you could define a remapping that includes… x=NOP

Where NOP means no operation, don’t do anything, just ignore. Sorry if that’s not clear, I probably should’ve used different value to enable suppressing key shortcuts.

Right? Makes no sense