Headless wifi upload gcode via ESP3D (ESP01s/ESP32) to Octopus (or SKR)

Goal: Want to wirelessly upload/access gcode files to/from my LR3.

Anyone happily wirelessly uploading .gcode to their SKR/Octopus via ESP32?

Is there some Marlin #define and ESP3D configuration option that magically makes this all work? Snapshot of Marlin edits used on my Octopus LR3 are here.

Was thinking ESP3D on V1E ESP01s or BTT ESP32U could be used to wirelessly upload gcode files, but… Although .gcode files can be wirelessly uploaded to the ESP’s inbuilt flash, the space is really limited, just ~200k on ESP01s and just ~2MB on ESP32U. So, we need to wirelessly upload gcode to SD cards, if possible…

ESP3D Web UI can read files on the SKR/Octopus SD Card, great. But ESP3D Web UI does not permit uploading files to the SD card, this is the problem. Looks like you wouldn’t want to anyway because the existing protocol is really slow (1MB takes 30 mins) to upload .gcode → Wifi → ESP3D → slow small buffer Ack’d serial → Marlin → Octopus → SD Card.

Was hoping alternative communication/channel could be used. Would’ve been nice if Octopus SD adapter shared SPI pins with the ESP32U, so they could both read/write the same SD card. Unfortunately (to me at least), after looking at the Octopus Pins and Schematic, looks like Octopus SD Card Adapter has SDIO pins with traces that go directly to the Octopus’s MCU. The ESP32U’s SPI pins also go directly to the Octopus’s MCU.

So, am wondering if Marlin already has some feature that needs to be #defined to enable, or, would a feature need to be implemented in both Marlin and ESP3D enabling ESP3D (on ESP32U) to read/write SD Card contents via SPI and/or something else at an acceptable rate?

Alternative options

  • Keep using a SD Card (i.e. save gcode to SD card, walk over to LR3, then physically insert into TFT’s SD slot, start job from TFT UI). I need to burn more calories anyway…
  • Buy/make Wifi enabled SD Card, e.g. BIGTREETECH Module BTT TF Cloud V1.0 SD Cloud Wireless Transmission Mo | Biqu Equipment, this would be separate and additional to the BTT ESP32U I’m currently using for jogging/homing (via Phone/Tablet).
  • Mod BTT ESP32U to have SD Card reader. Configure ESP3D to read/write files to this additional SD card adaptor. Only the ESP3D can read/write it’s SD card, so ESP3D will have to be the controller that sends gcode to Octopus.
  • Replace BTT ESP32 with an ESP32 Node MCU with integrated SD Card reader, e.g. ESP32-Cam. Configure ESP3D similar to above option.
  • Remove BTT ESP32U, instead, use Raspberry Pi or similar and use V1E Pi, Klipper, or some other popular wifi capable sender controller
  • Ditch Marlin, use RepRap firmware which can flash ESP32U, and seems to have tighter SPI integration between BTT ESP32U and Octopus board.
  • Other ideas?

Related Topics

Cheers!

I saw where someone had created a wifi enabled SD card. I cannot remember if I saved the link or not, but I will try to find it.

1 Like
1 Like

OK, wow. This one is over $440! Pricey.

Toshiba FlashAir 4th Generation SD Wifi SDHC / SDXC memory card - 16GB (OEM Pack)

1 Like

Thanks @DougJoseph !

Here’s some info/links from my notes on wifi enabled SD cards:

Yeah, crazy right. BTT do have this though…

Noticed @marvinlange uses a remote SD card, https://www.youtube.com/watch?v=lvxrEHiJwDM&t=53, curious if he/others like them? Think @Neilp does too? Seen mixed reviews/feedback online about their reliability.

Feels like I’m missing something if I add yet another ESP based remote SD card, when I already have an ESP32U connected to the Octopus. The ESP32U already has a bunch of wired connections beyond just UART tx/rx (i.e. Octopus SD Card Adapter SDIO → Octopus MCU → ESP32U UART, SPI and misc GPIO).

Feels like there’s probably firmware support already just awaiting the right #define to be compiled…

1 Like

Asked related question on ESP3D discord, Luc (ESP3D Creator) shared lots of helpful info. Unfortunately doesn’t look like sending/streaming .gcode from a ESP32Cam’s SD Card to a connected Octopus/SKR is implemented.

Wifi .gcode upload to ESP32-Cam isn’t an option until ESP3D is updated to implement streaming gcode from ESP32’s SD card to Marlin/Board firmware. Tracking item is GCODE Streamer Host definition for 3.X · Issue #243 · luc-github/ESP3D · GitHub

Unfortunately the Octopus SD Card’s SDIO pins, and ESP’s SPI2 pins separately go to the MCU, so, Marlin (or what ever board firmware used on Octopus) need to support.

So, will be running around with SD cards for now. Increasingly curious about RepRap firmware, and likely going to hookup Pi sooner than originally anticipated…

Same boat… The config looks easy enough. I have not even had a chance to play with my octo yet. Maybe that is where I should start. It has been so long since I tried it maybe all the reasons I stayed away are gone.

1 Like

I really like RRF. I find that it is very intuitive, and the configuration goes very quickly.

Mostly though I like the wifi access and the Duet Web control interface which means no more sneakernet to get files to the machine. Just upload from the web page.

I haven’t put the SKR Pro through its paces just yet, but I think I should…