Core One ESP32-S3 Gcode Console/Progress Viewer
This isn't so much as a mod, more of an addition really.
This started off as a way of allowing me to enter specific gcode commands, like really precise X/Y/Z movements, without the overhead of running an ocotoprint setup.
I knew it was possible to enter these commands over the serial interface so I went about writing some esp32 firmware that would achieve this. I bought a couple of those tiny ESP32-S3 Super Mini boards, these things are tiny, no bigger than a postage stamp (at least where I live).
This basically acts as a USB Host and runs a simple web server where I can input GCode commands to execute, but while I was doing that I noticed the Core one is basically spitting out relatively useful status updates continuously over serial, so I just reported the values to the web browser as a nice little bonus.
I know there are other ways to get this information, Prusa Connect/Link etc , but it always seemed a bit cumbersome to have to open another app to do this, so I wrote a simple Menubar app for MacOS that is constantly reporting these values to the Menubar in the top right of the desktop....that way I can be working on other stuff and with a quick glance up can see whats going on on my printer, print progress etc, without breaking my current work flow. I knew I'd find a use for that extra usbc port at the back of the Core One.
When you consider the esp32-s3 can be picked up for around £5 (even cheaper if you want to order from chin and wait a week) I just find the world we live in wild these days...considering I grew up in the 80s where computers used tapes for storage and took up a quarter of the room 😂
RE: Core One ESP32-S3 Gcode Console/Progress Viewer
This is awesome! Can you share a guide to do this? 😀
RE:
Nice... I haven't touched any console for G-code but it seems like a logical step.
ESP32 is an extremely capable platform, as long as you can fit the problem into the "hard" constraints like SRAM size. Beyond that (e.g. "WROVER modules" with SPI RAM) it stops being fun e.g. juggling GPIOs and strapping pins - for high volume, maybe. R&D would rather upgrade to a more expensive chip)
Random hint: Check Olimex ESP32 ethernet boards as platform. They are well accepted, judging by Digikey or Mouser stock for ETH connectivity. The LAN chip is "not recommended for new designs" but seems well-stocked for the foreseeable future. Power-hungry though, as in 350 mA/3.3 V (ETH locks the clock rate). Or use WLAN and forget everything I wrote 🙂 )
RE: Core One ESP32-S3 Gcode Console/Progress Viewer
I’ll tidy up the code and put in on GitHub when I get the chance mate. The web interface is much more polished now, those screenshots are from the very first version.
The only requisite is the esp32 must be one of the newer ones that supports usb host mode. The esp32 s3 is ideal as it’s cheap and tiny.
If you use the S3 or a version with just one usb port, you’ll need one of those usb-otg cables to power the esp, they’re cheap (around £$€1 from AliExpress/Temu)… you could apply power straight to the header pins on the esp but that’s a bit messy.
RE: Core One ESP32-S3 Gcode Console/Progress Viewer
One other thing, this isn't a case of just uploading a sketch in Arduino IDE..you'll probably have to install esp-idf as currently your wifi details will have to be hard coded somewhere.
The plan all along was to implement some sort of setup mode where Wifi details could be gathered, like virtually all other IOT devices. That part shouldn't be hard, but I'll look to see if there's another way to install the firmware without having to go through the ordeal of using esp-idf.
Unless someone already knows of a simpler way to get the code installed ?
RE:
Unless someone already knows of a simpler way to get the code installed ?
I use "esptool.py" with command line arguments but haven't yet shipped that (instead, using ESP-IDF for initial flashing in a test harness, later updates OTA).
Installing it via "pip" might be one option and there appear to be other solutions - web-based or executable.
For simplicity, I copy the AI-answer below. It's unconfirmed information but looks superficially correct (e.g. links at top)
https://www.espressif.com/en/support/download/other-tools
https://docs.espressif.com/projects/esp-test-tools/en/latest/esp32/production_stage/tools/flash_download_tool.html
Note, there may be references to the wrong processor (plain ESP32).
✅ 1. esptool.py (stand-alone, no ESP-IDF)
Official Espressif tool.
Pure Python.
Works on Windows, macOS, Linux.
Users only need:
Python installed
pip install esptool
Flash command example:
esptool.py --chip esp32 write_flash -z 0x1000 firmware.bin
Pros: reliable, official Cons: needs Python installed
✅ 2. Espressif WebFlasher (browser-only!)
This is usually the simplest for end-users.
Runs in Chrome/Edge/Opera using WebSerial.
No installation required.
You can create your own custom flashing webpage with:
device selection
“Flash firmware” button
progress bar
The official Espressif flasher template is here: https://espressif.github.io/esptool-js/
Your users just click Flash → select COM port → done.
Pros: Extremely user-friendly, zero installation Cons: Only works over WebSerial-compatible browsers
✅ 3. Espressif Flash Download Tool (Windows GUI)
Windows executable (no installation)
GUI for uploading .bin files to ESP32
Often distributed by companies as the end-user flasher
Pros: Stand-alone EXE Cons: Windows only; GUI is a bit “industrial”
RE: Core One ESP32-S3 Gcode Console/Progress Viewer
Unless someone already knows of a simpler way to get the code installed ?
I use "esptool.py" with command line arguments but haven't yet shipped that (instead, using ESP-IDF for initial flashing in a test harness, later updates OTA).
Installing it via "pip" might be one option and there appear to be other solutions - web-based or executable.
For simplicity, I copy the AI-answer below. It's unconfirmed information but looks superficially correct (e.g. links at top)
https://www.espressif.com/en/support/download/other-tools
https://docs.espressif.com/projects/esp-test-tools/en/latest/esp32/production_stage/tools/flash_download_tool.htmlNote, there may be references to the wrong processor (plain ESP32).
✅ 1. esptool.py (stand-alone, no ESP-IDF)
Official Espressif tool.
Pure Python.
Works on Windows, macOS, Linux.
Users only need:
Python installed
pip install esptool
Flash command example:
esptool.py --chip esp32 write_flash -z 0x1000 firmware.bin
Pros: reliable, official Cons: needs Python installed
✅ 2. Espressif WebFlasher (browser-only!)
This is usually the simplest for end-users.
Runs in Chrome/Edge/Opera using WebSerial.
No installation required.
You can create your own custom flashing webpage with:
device selection
“Flash firmware” button
progress bar
The official Espressif flasher template is here: https://espressif.github.io/esptool-js/
Your users just click Flash → select COM port → done.
Pros: Extremely user-friendly, zero installation Cons: Only works over WebSerial-compatible browsers
✅ 3. Espressif Flash Download Tool (Windows GUI)
Windows executable (no installation)
GUI for uploading .bin files to ESP32
Often distributed by companies as the end-user flasher
Pros: Stand-alone EXE Cons: Windows only; GUI is a bit “industrial”
Yeah I got the same results from Claude 😂
Option 2 definitely seems to be the simplest so I'll put together a guide . I'll have to implement the WIFI credentials setup first as my details are hardcoded into the code at the moment which is no good to anyone.(except me 😅)
Side note here is the current web interface:
RE: Core One ESP32-S3 Gcode Console/Progress Viewer
Looks very good!!! I have an M5stack cardputer somewere, maybe that could work, has an S3, USB to serial connection, wifi, and like 40 other things xD just need to solder a USB-C to Serial cabel!
Following with interest!
Posting on Github would be awesome! 😀



