This firmware allows not only to have a cheap bridge between Wifi and serial, but also to have a web UI to configure wifi, to monitor 3D printer and even control it, and to make things easy, UI is fully customizable without reflashing FW.
Firmware should work with any 3D printer firmware (repetier/marlin/smoothieware using GCODE) if serial connection has a correct setup. I currently use it with my personnal flavor of repetier for Due based boards.
The web interface files are present in data directory but UI has it's own repository ESP3D-WEBUI.
- be aware ESP3D-WEBUI is for firmware 0.9.99 minimum - previous released version use tpl files which are no more used.
Stable version (ESP8266 only):
Arduino ide 1.6.5 with stable 2.0.0 from ESP8266, please use https://github.com/luc-github/ESP3D/releases/tag/v0.5.1
Arduino ide 1.6.8 with stable 2.2.0 from ESP8266, please use https://github.com/luc-github/ESP3D/releases/tag/v0.6.2
Arduino ide 1.8.5 with stable 2.4.0 from ESP8266, please use https://github.com/luc-github/ESP3D/releases/tag/1.0
- to @disneysw for bringing this module idea
- to @lkarlslund for suggestion about independent reset using GPIO2
- to Roy Cortes from http://www.panucatt.com for supporting and pushing me implementing great features
- to all contributors, feedbacks owners and donations.
- Serial/Wifi bridge using configurable port 8888, here to enable/disable TCP_IP_DATA_FEATURE
- Use GPIO2 to ground to reset all settings in hard way - 2-6 sec after boot / not before!! Set GPIO2 to ground before boot change boot mode and go to special boot that do not reach FW. Currently boot take 10 sec - giving 8 seconds to connect GPIO2 to GND and do an hard recovery for settings, here to enable/disable RECOVERY_FEATURE
- Complete configuration by web browser (Station or Access point) or by Serial commands
- Authentication for sensitive pages, here to enable/disable AUTHENTICATION_FEATURE
- Update firmware by web browser, here to enable/disable WEB_UPDATE_FEATURE
- Control ESP module using commands on serial or data port, here to enable/disable SERIAL_COMMAND_FEATURE
- UI fully constomizable without reflashing FW using html templates, keywords and html files/images
- Captive portal in Access point mode which redirect all unknow call to main page, here to enable/disable CAPTIVE_PORTAL_FEATURE
- mDNS which allows to key the name defined in web browser and connect only with bonjour installed on computer, here to enable/disable MDNS_FEATURE
- SSDP, this feature is a discovery protocol, supported on Windows out of the box, here to enable/disable SSDP_FEATURE
- Printer monitoring / control (temperatures/speed/jog/list SDCard content/launch,pause or stop a print/etc...), here to enable/disable MONITORING_FEATURE/INFO_MSG_FEATURE/ERROR_MSG_FEATURE/STATUS_MSG_FEATURE
- Fail safe mode (Access point)is enabled if cannot connect to defined station at boot.
- The web ui add even more feature : https://github.com/luc-github/ESP3D-WEBUI/blob/master/README.md#features
*Wifi Mode : Access point / Client station
*IP Generation: DHCP/Static IP
*IP/MASK/GATEWAY for static data
*Baud Rate for serial (supported : 9600, 19200, 38400, 57600, 115200, 230400, 250000)
*web port and data port
Mode: g (n is not supported by AP, just by STA)
Sleep Mode: Modem
IP Mode: Static IP
Baud rate: 115200
Data port: 8888
Web Page refresh: 3 secondes
- Please follow installation of the ESP core you want to use : ESP8266 core version or ESP32 core version
- Add missing libraries if you target ESP32 present in libraries directory
- DNSServer (from https://github.com/bbx10/DNSServer_tng)
- WebServer (from https://github.com/bbx10/WebServer_tng)
- NetBIOS and SSDP are currently disabled for ESP32 as not yet supported
- Compile project (ESP3D.ino) according target: ESP8266 board or ESP32 board, please review config.h to enable disable a feature, by default athenticatio is disabled and all others are enabled.
- for ESP8266 set CPU freq to 160MHz for better (https://github.com/luc-github/ESP3D/wiki/Install-Instructions)
- Upload the data content on ESP3D file system
- Using SPIFFS uploader, this plugin and install instructions is available on each ESP core - please refere to it
- Using embedded uploader (you may need to format SPIFFS using : [ESP710]FORMAT on ESP8266 first)
if embedded uploader does not show up you can force it ti display using : http://your_IP_address?forcefallback=yes
- Generate a binary using the export binary menu from Arduino IDE and upload it using ESP-WEBUI or embedded interface
⚠️Do not flash your Printer fw with ESP connected - it bring troubles, at least on DaVinci
- To style the code before pushing PR please use astyle --style=otbs *.h *.cpp *.ino
- The embedded page is created using nodejs then gulp to generate a compressed html page (tool.html.gz), all necessary modules can be installed using the install.bat file content, then it is included using bin2c (https://sourceforge.net/projects/bin2c/) to generate the h file used to create the file nofile.h, update the array and size according new out.h.
- The current UI is located here
- An optional UI is under development using old repetier UI - check [UI\repetier\testui.htm] (https://github.com/luc-github/ESP3D/blob/master/UI/repetier/testui.htm) file
Feedback/suggestion/discussions are always welcome
Need more information about supported boards or wiring ?
❓Any question ?
Check Wiki or
❗️Any issue/feedback ?
ESP3D is used by :
- Custom version is used on azteeg mini wifi : http://www.panucatt.com/azteeg_X5_mini_reprap_3d_printer_controller_p/ax5mini.htm
- GRBL_Esp32 a GRBL port on ESP32 done by @bdring - https://github.com/bdring/Grbl_Esp32
- Marlin_ESP32 a Marlin port on ESP32 done by @simon-jouet is under sync : https://github.com/luc-github/Marlin/tree/eps32_webui
- More to come...
If you use ESP3D on your product, drop me a message so I can link your product page here.
TODO/On going :
-- Version 2.X
-- Close open topics
-- Do testing (a lot)
-- UI Improvement
-- ESP3D V2