Espressif ESP32 processor was initially designed for cost-sensitive IoT projects thanks to its built-in WiFi & Bluetooth connectivity and low price, but the WiSoC’s fairly powerful two Xtensa cores found other uses such as face detection and audio applications among others.
But a few people are now collaborating to bring ESP32 to the world of 3D printers with an open source hardware RepRap 3D printer controller board that has beta support in Marlin 2.0 RC1 firmware.
There’s no commercially available ESP32 3D printer controller board right now, so only prototypes from the community are available. There are mainly two version of the boards: R1 and R2 designed by Simon Jouet, and at least one member – Felixstorm – made his own R2 board from the MIT licensed KiCad based design. R2 is a better design leveraging ESP32’s I2S interface to have more output pins and improve stepping.
Felixstorm connected the board to its Creality Ender 3 3D printer, and most features do work:
- SD card – OK
- TMC SPI and UART driver – Not in use or tested
- LCD – OK with Ender 3 stock display)
- BLTOUCH – OK
- EEPROM – OK
- USB serial – OK
- Fans – OK. Hotend, part cooling, and controller controlled separately
- Heater – OK (1 in use)
- Heated Bed – OK
- WiFi – Not really used yet
WiFi can be used as an alternative serial port. Felixstorm plans to try out ESP3D firmware specifically designed for ESP8266/ESP32 hardware and providing a bridge between Wifi and serial, as well as a web UI to configure WiFi and monitor the 3D printer. I assume that eventually using a board such as ESP32-CAM or ESP-EYE would also allow the platform to monitor 3D prints via the built-in camera, although we’ll have to see if it conflicts with other parts of the firmware since the camera is normally also connected to I2S. The upcoming ESP-S2 processor should be better suited to those type of applications thanks to built-in USB, DVP camera, RGB LCD, and I2S interfaces.
Thanks to Andreas for the tip.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
Actually ESP3D is already ported for Marlin https://github.com/luc-github/Marlin, the question is more how to integrate it as there is already a basic webui merged in Marlin .
FYI GRBL already have it https://github.com/bdring/Grbl_Esp32
I actually made two different boards based on the ESP32. One uses native pins only (MRR ESPA; repo at https://github.com/maplerainresearch/MRR_ESPA) and the other uses the I2S for steppers and PWM (MRR ESPE; repo at https://github.com/maplerainresearch/MRR_ESPE). Of course, a lot of the work was based on inputs from simon-jouet, while firmware uses the Marlin fork by luc-github (which supports his ESP3D web interface). The native-pin version works really well and stable, fully controlled via WiFi (over ESP3D web interface). The I2S version has certain issues (which felixstorm also faces) and we are trying to see how to troubleshoot. Each of the repo has a “feedback” issue which is like a mini development log.