Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ESP 3D 3.0 Status #239

Closed
luc-github opened this issue Jul 4, 2018 · 162 comments
Closed

ESP 3D 3.0 Status #239

luc-github opened this issue Jul 4, 2018 · 162 comments

Comments

@luc-github
Copy link
Owner

luc-github commented Jul 4, 2018

Ok time to prepare 3.0

What is the plan ? Do what was not done in 2.0/2.1 😉

1 - Nextion Screen support ((ESP3D + Nextion FW) (postponed / cancelled) use touch tft instead
2 - M408 support according target FW support (WebUI) (ongoing)
3 - Reprap support
4 - MKS TFT WiFI support (Simulate MKS-WiFi module behavior to use the connector)
5 - ESP3D as Library as part of main board FW (eg Marlin) Code is emmbedded in Marlin ESP3DLib or GRBL_ESP32 firmware so will be a porting when 3.0 stand alone is done
_6 - UI improvement :
* Follow disconnection in authenticate page (WebUI + ESP3D) (done 👍 )
* add toshiba flash air support (WebUI) (done 👍 )
7 - Add ethernet support for ESP32 (like olimex)(done 👍 )
8 - Add optional translation file on flash FS for oled ESP3D message like (connected, update, etc...)
9 - Monitor temperatures on Oled in autonomous way (no web browser connected)
10 -Embedded Host support for ESP32 (on hold}
11 - New webUI (on going)
12 - Fix issue with ESP8266 and Async Webserver and big Serial flow (on hold as 3.0 is planed to be sync only)
13- Put all GCODE in preferences file for easier customization (WebUI)
14 - Heart beat generation to help UI to known if ESP3D is still connected or not (already implemented in GRBL-ESP32 and Marlin-ESP32 but disabled as buggy) (WebUI) (done 👍 )
15 - Fat FS support as option for SPIFFS for ESP32 , LittleFS as option for SPIFFS ESP8266 (done 👍 )
16 - Serial Bluetooth for ESP32 (done 👍 )
17 - Macro autostart (from FS done 👍 ) (from SD : TBD)
18 - Date Time on FS (SPIFFS / FAT / LittleFS) for ESP32 as ESP8266 (done 👍 )
Note: ESP8266 SPIFFS time support is not yet ready in core
19 - Add LittleFS support for ESP32 (TBD)
20 - Buzzer support (done 👍)
21 - Push Notifications (Pushover / email) (done 👍)
22- Both way websocket communication (done 👍)
23 - Add auto notifications like #351 (done 👍)
24- USB host support using arduino usb host shield (https://github.com/felis/USB_Host_Shield_2.0) (on hold)
25 - Embedded camera support (done 👍)
26 - SD access with time support: Native (all) / SDFat (all) / SDIO (esp32 only) (done 👍)
⚠️ Note: this not Printer SD so printer has no access to it, it is for host feature, storage purpose or FW flash purpose.
27 - TFT touch (on hold)
28 - USB Disk support (using CH376s) (not started)
29 - FTP Server (done 👍 )
30 - telegram notification support (done 👍 )
31 - BTT tft support (on going)

@Amtho
Copy link

Amtho commented Jul 4, 2018

Nice list of work. Sorry i think i cant help you much to accomplish all. Im more from the electrician/hardware site...
But as you may have noticed ;) SD Card support directly on the ESP32 would be my top wish ;)

@luc-github
Copy link
Owner Author

No worry, testing and feedback are great help, so you help ^_^

@luc-github
Copy link
Owner Author

PR for sync webserver (esp8266/ESP32) have beed done - first one is in waiting list for 2.5 and second one is merged already

I am spending some time on UI to get consistent UI across browsers and devices - especially mobile devices - seems response behvior of bootstrap 3.0 is little bit messy sometimes - so need to be managed

  • unfortunatly fix depend of each control and position - so need some time - but results are promising so should be ok next week

@ModMike
Copy link

ModMike commented Aug 5, 2018

Marlin library is brilliant!

@luc-github
Copy link
Owner Author

About Marlin library code is under early development here : https://github.com/luc-github/Marlin/tree/esp32 because hard to separate both code
Latest Status is here: luc-github/Marlin#1
it is alpha state and need code cleaning as I currently I focus on 'feasability' first - once everything is working / code will be cleaned for sure

@vivian-ng
Copy link

Another feature request (wishlist?): display the interface on a touch screen (not just the Nextion) so that it can be used with generic TFT screens which we usually use with Arduino or STM32 dev kits. This is probably quite a major undertaking with a total design of the menu tree plus touch interface. Maybe start small without touch (use buttons or rotary encoder for inputs). Just an idea that makes the ESP3D effective the "OS" for MKS TFT alternative.

@luc-github
Copy link
Owner Author

Currently Oled screen is supported
Having TFT or Nextion make sense only if ESP3D become a Host or you have something else in mind ?

So first step is to add full host feature - which is planned then TFT

Do you have TFT screen to recommend ? One you already used and happy with
Nextion is nice for easy customization but I am not really happy with touch responsiveness - so TFT support should happen before Nextion

@vivian-ng
Copy link

@luc-github Yes, full host feature is what I was thinking about. The web interface is great already, but without a local interface, it is still somewhat hard to use. So a screen and input (rotary encoder or buttons) would be great. But that only comes after full host feature.

As for screens, I have a few lying around, using ILI9341 (need additional 8 pins), ILI9225 (SPI), ILI9486 (need additional 8 pins), and ST7735S (SPI). I also have a M5Stack, which comes with its own screen and 3 buttons (so it already has all the stuff required to be a host). I am not a very good programmer, but I hope to help by testing and debugging.

@luc-github
Copy link
Owner Author

luc-github commented Sep 12, 2018

@vivian-ng thanks for the feedback - I have ordered a couple of ILI9341 which seems well supported by ESP32
I will received them in 2 weeks I guess - I will start to check then

@luc-github
Copy link
Owner Author

GRBL-ESP32 and Marlin-ESP32 are now using using ESP-WEBUI 2.1
I will create an ESP3D 2.1 branch soon to sync latest bug fixes and features to ESP3D itself

2.1 is mostly ESP32 focused because more and more possibilities / features come with ESP32
the top 2 I am exited to integrate :
1 - Touch Screen TFT for ESP32 as host (got ILI9341 screen to play with)
2 - Camera (just got couple of OV2640 modules and M5Stack ESP32 camera modules )

@luc-github
Copy link
Owner Author

Ok I have re-ordered TFT as the ones I got were without touch 😞
this time the Touch is confirmed to be XPT2046 spi port ....

@luc-github
Copy link
Owner Author

I rename topic 3.0 - I am rewriting the complete core because I want to add more cross platform functions and simplify the code by splitting files by functions
So it will be easier to add new features or modify existing ones
because it is big rewrite - I thing it make sense to change the major version number

@luc-github luc-github changed the title ESP 3D 2.1 Status ESP 3D 3.0 Status Nov 29, 2018
@luc-github
Copy link
Owner Author

luc-github commented Dec 9, 2018

I remove Reprap support as there Marlin Emulation
I add Fat File System for ESP32
I add Serial Bluetooth for ESP32 also
I remove ESP3D as Library as part of main board FW because now already part of GRBL and Marlin

@just-jason
Copy link

Hi Luc, the M5 stack camera modules look great, I also found these, and was wondering what you think of them as candidates of ESP3D. The thing that catches my eye is the built in SD card. This opens a few possibilities for host function, or at least file upload to sd card.
https://www.aliexpress.com/item/1pcs-ESP32-CAM-WiFi-WiFi-Module-ESP32-serial-to-WiFi-ESP32-CAM-Development-Board-5V-Bluetooth/32955484091.html

@luc-github
Copy link
Owner Author

Hi Yes I have M5 stack camera and was in plan to work on it but I am not really familar on video coding
During my tests the board was really hot - make me wonder it use mcu a lot so I am not sure it can handle more but need to test.
I have also saw the other board and did not noticed the SD card reader ... which is better candidate for sure - but again I am not familiar with video coding so it could take some time but I agree would be great combo

@vivian-ng
Copy link

Hi Luc, the M5 stack camera modules look great, I also found these, and was wondering what you think of them as candidates of ESP3D. The thing that catches my eye is the built in SD card. This opens a few possibilities for host function, or at least file upload to sd card.
https://www.aliexpress.com/item/1pcs-ESP32-CAM-WiFi-WiFi-Module-ESP32-serial-to-WiFi-ESP32-CAM-Development-Board-5V-Bluetooth/32955484091.html
These cameras are not as easy to flash as they do not come with USB port.

Even the new M5Cam with PSRAM is working quite hard to stream the video. Without PSRAM, video streaming will have lag. I am not sure if it can handle the additional load of running ESP3D if video streaming is already such a burden. Instead, I intend to use my ESP32CAM and M5CAM modules to monitor my prints. They can be configured to connect to the home router, and then it is just a matter of inserting "http://192.168.x.x/jpg_stream" as the link for camera streaming in Octoprint or ESP3D.

@luc-github
Copy link
Owner Author

@vivian-ng ok you confirm my fears

@luc-github
Copy link
Owner Author

@luc-github
Copy link
Owner Author

luc-github commented Dec 29, 2018

Quick note, 3.0 have several settings simplifications:

  • no more sleep mode configuration : always set to none as connected to printer
  • no more PHY configuration : esp8266 looks have now hard coding N mode so no need to bother with useless setting
  • AP IP is only static and the only settings that can be configured are IP and channel, mask is set as 255.255.255.0 because only 1 client is supported at once.
  • AP is always visible and security will be set to WPA if password is defined or OPEN if no password, so no more settings for SSID visibility neither authentication type.

Feel free to comment if any issue

@luc-github
Copy link
Owner Author

luc-github commented Dec 30, 2018

I am starting working on Ethernet support - I have a board for ESP32 (olimex gateway) but none for ESP8266 .

  • Anyone know an existing solution for ESP8266 or one that does not need to solder component ? - I am not good at it 😢
  • Does another board with ethernet exist for ESP32 ? I know there is a POE version but looks expensive.

So currently only the ESP32 Olimex gateway should be supported.

Ethernet will have DHCP / Static IP and can be act as DHCP server, by default not
So network modes will be :
1 - Nothing
2 - Wifi AP (static IP only)
3- Wifi STA (static or DHCP IP)
4 - Ethernet Client (static or DHCP IP)
5 - Ethernet Server (static IP only) Not supported by API
6 - Serial Bluetooth
I think it should cover all needs, to clarify acting as gateway (WiFi / Ethernet) is out of current specs so far.
Feel free to comment

EDIT: Removing Ethernet Server because DHCP server is currently only for WIFI AP not ethernet 😭

@luc-github
Copy link
Owner Author

I see several libraries for ILI9341 and Touch XPT2046 SPI
-> TFT_eSPI (esp8266/esp32) https://github.com/Bodmer/TFT_eSPI
-> ESP32_TFT_library (esp32) https://github.com/loboris/ESP32_TFT_library

I did not play with any yet

Looks like TFT_eSPI is multiplatform which would be easier to implement
Anyone used these libraries or any others ones ? Any comment ?

@vivian-ng
Copy link

@luc-github
I can see merits of both, so I am quite torn over which to suggest too.
-> TFT_eSPI (esp8266/esp32) https://github.com/Bodmer/TFT_eSPI
Bodmer seems to be very active in development of drivers for displays, so it is likely that this library is going to be stable and capable, and can probably rely on Bodmer to help if problems are encountered.

-> ESP32_TFT_library (esp32) https://github.com/loboris/ESP32_TFT_library
I thought I recognized the name loboris, then I saw the repos and yup, this is the same person who has a fork of MicroPython working on the ESP32 with PSRAM. So it is again someone who can be relied on to help if any problems are encountered.

Similar to you, I think TFT_eSPI seems to be easier to implement, since it is an Arduino library (ESP32_TFT_library doesn't have any Arduino examples, so it is going to be a bit harder to try an figure it out). It also looks to be easier to configure for different displays through the User_Setup_Select.h header file. This makes the implementation more high-level, and we just need to worry more about how to implement features, and let the library handle the backend low-level driver portion. End users will then just need to change the config file to select their specific display, and can then compile.

@DerKrawallkeks
Copy link

I just wanted to tell you how great this project is, since I just installed it with an esp8266 on my printer.
Again, is there any chance to increase the speed of upload to SD?

@luc-github
Copy link
Owner Author

@DerKrawallkeks I have just created a FAQ for this question : #292, please have a look

@luc-github
Copy link
Owner Author

I am now rewriting the web events part to use same api as async with sync webserver - this would simplify the ESP3D and ESP3D-WebUI code not using the Websocket for sync instead, it will also be implemented in embedded page for communication control

@IInickII
Copy link

Great work, do you have any guess when can be avaible version with SD print support and what type of ESP32 board do you prefer let I can order one from ebay?
Thanks a lot

@ithinkido
Copy link

ithinkido commented Aug 3, 2020

I am starting working on Ethernet support - I have a board for ESP32 (olimex gateway) but none for ESP8266 .

  • Anyone know an existing solution for ESP8266 or one that does not need to solder component ? - I am not good at it 😢
  • Does another board with ethernet exist for ESP32 ? I know there is a POE version but looks expensive.

So currently only the ESP32 Olimex gateway should be supported.

EDIT: Removing Ethernet Server because DHCP server is currently only for WIFI AP not ethernet 😭

If you are still looking at ethernet equipped boards
https://www.aliexpress.com/item/4001122992446.html?

@luc-github
Copy link
Owner Author

@ithinkido thank you - I will have a look

@florin03
Copy link

Hello,

Any update on:

24- USB host support using arduino usb host shield (https://github.com/felis/USB_Host_Shield_2.0) (on hold)

I am really interested in this solution, usb is a lot faster than serial (some times on serial i heave problems with printing large files).

Thx

@luc-github
Copy link
Owner Author

No - I am currently busy in ESP3D 3.0 test with current features and on WEBUI for 3.0 - if any update it will raise here

@Bastlwastl84

This comment has been minimized.

@luc-github

This comment has been minimized.

@maf-o
Copy link

maf-o commented Oct 19, 2020

The UI is not designed for Marlin but Smoothieeware and Repetier, it is also designed for GRBL/GRBL_ESP32 and for ESP3DLib 3.0 that will be for Marlin_ESP32 boards, no ESP3DLib 2.1 is planned, jump will be from 1.0 (current) to 3.0, and also Panucatt Devices ESP3D based (WiFi backpacks , Azteeg WiFi, WiFi ViKi LCD)

If i plan to use ESP CAM Modul with 3.0 for Marlin on printer it wont't work?

@luc-github
Copy link
Owner Author

the meaning is not only for Marlin but also .... - typo mistake
any esp32 with Marlin should work but it is still in alpha - and currently having hard time handling embedded camera because is use a lot of esp power

@maf-o
Copy link

maf-o commented Oct 19, 2020

Ok, so i would give it a try.
Especially if there are only problems while streaming.
If its possilbe to send every 5min a telgram photo and i can sometimes look for livestream everyting would be ok :)

@luc-github
Copy link
Owner Author

for camera support I am on it you can give try to this : https://github.com/luc-github/ESP3D/tree/camera-test
but I have still some issue - send photo is not done yet / neither time lapse

@luc-github
Copy link
Owner Author

but webui loose connection time to time when streaming is on when doing query

@luc-github
Copy link
Owner Author

/snap function has just been added to take picture in jpeg format
image

@luc-github
Copy link
Owner Author

Streaming from camera is consuming too much bandwidth and time to time (often actually) webui queries are rejected, splitting activities in different tasks do not help - the streaming task keep esp32 busy and multitasking is not doing as expected
As streaming is actually mjpeg - I have removed the streaming code and webUI will do the periodic queries, so of course it will be less smooth because esp32 will now recover some mcu time to process others commands but I think it is acceptable to give priority to esp3d tasks instead of only streaming only and no flow control, the webUI should be able to control the flow as it send each commands one by one, the esp32cam.html has been updated accordingly

@luc-github
Copy link
Owner Author

WebUI and FW code now work with embedded camera and flow control

@ETE-Design
Copy link

ETE-Design commented Nov 16, 2020

@luc-github Seems great, and can see you already working on WebUI 3.1 with @alxblog... Now that you have a PC + Mobile Version... Mabye you could look at the TTGO Watch 2020... Build on ESP32... Would be so nice if you could build an application for it to control / view settings from ESP3D...
BTW have one on it's way, was hoping to make it work with your ESP3D... And thanks for the great work you do :-)

@luc-github
Copy link
Owner Author

luc-github commented Nov 16, 2020

The esp3d features for 3.0 is here https://github.com/luc-github/ESP3D/blob/3.0/ESP3D-features.xls as you can see we are far from done
the 3.0 webUI 3d printer is still not done using current code (even starting now rewrite is for 3.1 as it is not a small task)
there is also #523 for people complaining about upload speed but I do not have any hardware so I do not know when I could work on it

then it will be the esp32 tft full support (ESP3D v3.2 ?)
may be TTGO Watch could be part of it but to be honest I do not see how to link the 3D printer / cnc to this watch and I even do not see the point - I do not understand the user case sorry

@ETE-Design
Copy link

@luc-github About TTGo Watch, I was just thinking about a piece of software for it to get the info on the watch from WebUI, don't want the watch to be the brain... So just a UI for watch screen's...

@luc-github
Copy link
Owner Author

@ETE-Design if need to use esp3d info, the best would be to use tcp connection instead of use webUI as starting point
TFT and webUI are totally different rendering
I understand the fun of it could be done - but I have no bandwith for such thing, user case of TTGO watch rendering vs mobile phone rendering is very very very low if even happen
but I guess it could be naturaly done when real TFT support will be done - it will just use tcp connection instead of serial connection to get infos / send commands

@MillerRen
Copy link

@luc-github Direct SD is supported now? Which one is? TFT SD or TFT USB or Printer SD? I'd like it to drive grbl offline. This is a great project.

@luc-github
Copy link
Owner Author

SD directly connected to ESP board so none of the ones you mentioned

@luc-github
Copy link
Owner Author

if you use GRBL - better use this FW https://github.com/bdring/Grbl_Esp32 , the board using it has a sd card reader and so allows direct access

@luc-github
Copy link
Owner Author

luc-github commented Nov 24, 2020

About file upload, to clarify and avoid recurrent questions, here is what the 3.0 should support in beta, this is an under going and planned work, implementation should follow list order.

  • UPLOAD_DIRECT_SD (implemented)
    the SD is directly connected to ESP board but printer has no access to it
    e.g: ESPCAM32 board

  • UPLOAD_SHARED_SD (implemented)
    the SD is shared between ESP and printer using hardware switch
    e.g: Panucatt wifi back pack and other related devices

  • UPLOAD_SERIAL_SD (implemented in 2.1 but not available yet in 3.0)
    the access to SD is done using M28/M29 protocol
    e.g: Default 3D printer protocol

  • UPLOAD_FAST_SERIAL_SD (not started yet, waiting for hardware)
    the access to SD is done using an additional pin to let printer FW / TFT FW know this is an upload
    e.g: MKS TFT / MKS Robin
    Note: it is currently limited to MKS TFT and boards using Marlin as no one else implemented this protocol yet

  • UPLOAD_FAST_SERIAL_USB (not started yet, waiting for hardware)
    the access to USB TFT port is done using an additional pin to let TFT FW know this is an upload
    e.g: MKS TFT
    Note: it is currently limited to MKS TFT as no one else implemented this protocol yet

  • UPLOAD_DIRECT_USB (not started yet, and may be delayed to 3.1, waiting for hardware setup)
    the access to direct USB port using CH376s chip
    Note: CH376S support is not yet implemented but definitly planned

@github-actions
Copy link

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Dec 22, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests