luc-github / ESP3D

FW for ESP8266/ESP8285/ESP32 used with 3D printer
GNU General Public License v3.0
1.73k stars 465 forks source link

ESP 3D 3.0 Status #239

Closed luc-github closed 3 years ago

luc-github commented 6 years ago

Ok time to prepare 3.0

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

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 :

luc-github commented 5 years ago

about USB host support using arduino usb host shield I have ordered a couple of shields to check - they will arrive in few weeks in theory

schorhr commented 5 years ago

about USB host support using arduino usb host shield I have ordered a couple of shields to check - they will arrive in few weeks in theory

Hello :-) I am just curious if it works, no rush or anything. Would be amazing. Thank you for your hard work!

luc-github commented 5 years ago

@schorhr I have tested a little but seems my hardware is a clone - no wonder it was cheap, and USB connector is not really reliable, so I got a lot of random disconnection , undetected connection, etc... I have ordered an uno shield usb host too compare behavior but did not have time yet. during my test I realized the code need to match the targeted device, which will make task little bit more complex than I expected. I have also received today some UDisk boards (USB connector with CH376s chip) to read USB drive like SD card, I plan to support it also

schorhr commented 5 years ago

Thank you for taking the time to update on the progress! Too bad you're having troubles with the clones. But I suppose it's a good thing, as many people would use clone boards as well, so it's no surprise later on. Great! Good luck!

ithinkido commented 5 years ago

Hello Luc,

Would it be possible to get the actual flow, feed, ( and fan speed ? ) values? At the moment , if for any reason you reconnect, then the value shown will be 100% even when the machine is running a different value

luc-github commented 5 years ago

Which gcode get these values ? M408 may give the status but it is not supported by smoothieware and not sure how it is on Marlin/Repetier, anyway M408 support is already planned for webui

luc-github commented 5 years ago

Tft screen have colors support and better resolution than oled so I will integrate littlevgl support. This great library allows very nice UI, for oled I will keep current simple UI I have already wrote littlevgl drivers to access Flash (Fat and SPIFFs) and SD for images. But in case of flash image storage, I think 8M to 16M flash will be necessary, TBC

labotecno commented 5 years ago

hello what stuff do you use for your new esp3d 3 ? to plain to byy it soon i use esp3d 2.1 what is the last version of your firmware esp3d 2.1 thank you

luc-github commented 5 years ago

any ESP should fit but better have at least 4M flash depending on needs ou choose ESP32 or ESP8266, some feature like host or even Touch/tft ESP32 is better choice more pins and 2 cores, more feature need more power = esp32, limited/specific feature need less power = esp8266.

On esp32 I do not use SPRAM so it is not necessary

luc-github commented 4 years ago

Ok after watching nice POC of @eben80 https://github.com/eben80/ESP32-CAM-Print-Monitor I took some time to check and was able to make the camera streaming server to coexists with webserver and ESP3D. decreasing the task priority and disabling the face recognition helped a lot ^_^ Still need to do some stress tests to verify - but I was able to upload a small file on SPIFFS when video was streaming The video is streamed using httpd server which require 2 ports available, the commands to modify camera settings are sent using [ESP172] command WebUI is not done yet but camera stream is visible using browser <ip>:<camera port>/stream

vivian-ng commented 4 years ago

@luc-github Interesting idea for the camera.

I actually have a ESP32-CAM module (actually, a few) which I configured to do a MJPEG stream for the "Camera" tab in ESP3D now (running on Marlin-ESP3D). Of course, the camera module is not connected to my MRR ESPA board except for power, but it would be interesting if I can modify the "webcam" sketch to monitor the serial port for similar [ESP172] codes. Your Camera::command method looks like a good place to start.

eben80 commented 4 years ago

Glad that this device is getting a second look :-) I'm still using it with my basic functionality, monitoring, manual gcode entry, abort sequence and remote power down. Following you with interest!

luc-github commented 4 years ago

@vivian-ng using current 3.0 should be ok out of the box for what you describe , for adding ui command should need to modify the html page of webcam to change the commands to send to webserver for camera- I will try to do it this week as sample. @eben80 yes thanks you for showing the possibilities ^_^, I still need to do a compatible WebUI with and without overlay info so it is not currently as convenient as your solution.

vivian-ng commented 4 years ago

@luc-github Let me play around with @eben80's sketch and see what I can do with it.

@eben80 I see that your cpp file has a cmd_handler which seems to allow the camera settings to be changed on the fly. If you can expand a bit on how to do that in the README, that would greatly help. Of course, one can always read the code... 😅

eben80 commented 4 years ago

@vivian-ng that cmd_handler actually comes from the espressif CamWebserver code. I've remove it from the interface HTML of course by you can still set the values based on the HTML parameters that you can find in here In the original code from espressif it is HEX encoded and gzipped. So far I've found that the most usable frame rate I could get was with SVGA res. I'm still having issues where the stream stops every once in a while, but the device is still responsive to cmd_handler commands. Then the only way to recover the stream is rebooting the board through the cmd_handler. Not sure what is happening in that case. Currently I'm trying to implement the auto-scrolling responses for example when I issue M21 for file listing... but I'm having difficulty reading the multi-line serial responses I know @luc-github has a very nice implementation to do this but it's not simple enough for my limited skills to re-use :D

luc-github commented 4 years ago

sample page https://github.com/luc-github/ESP3D/blob/3.0/esp3d/data/esp32cam.html with auto detection of stream port and [ESP172] command support which give : image

the image is full of random lines it may be due to EMI noise on my wires, because even on sample code I have them.

eben80 commented 4 years ago

@luc-github those look like EMI noise lines yes :) I've seen them before...

ETE-Design commented 4 years ago

Would like to try this on my ESP32-Cam module, so I just use ESP3D 2.1 and UI 3.0? Another thing, is it possible to send files to the SDCard on the module, to speed Up Wireless filetransfer?

luc-github commented 4 years ago

there is no UI 3.0 yet 3.0 is only on FW part for the moment

ETE-Design commented 4 years ago

So FW 3.0 with UI 2.1 to test it?

luc-github commented 4 years ago

as wrote there is no UI for 3.0 yet . 2.1 is not compatible that is why for testing cam I did sample page

ETE-Design commented 4 years ago

Mabye this could be used for the Cam Support: https://github.com/jameszah/ESP32-CAM-Video-Recorder

luc-github commented 4 years ago

SDcard management iimplementation is on going, Add FTP server support should be next addition

Picture capture and video capture to SD or USB disk will be done later but implemeted for sure

luc-github commented 4 years ago

I have updated the status Recent update : SD FS is now supported : native (all) / SDFat (all) / SDIO (only esp32) The SDFat has specific feature, it allows to Format SD, this would help to avoid unsupported formating FS This is for SD card connected to ESP only - printer has no access to this SD card, this will be used by host feature, as storage and way to flash / configure ESP3D. These features are ready but not yet implemented in this repo

ETE-Design commented 4 years ago

Any news on the GUI part of this amazing work? Would like to "Test" it soon :-)

labotecno commented 4 years ago

i want to test it ! can you tell me when you have the GUI ?

luc-github commented 4 years ago

wow so much expectations ^_^ Well I am super late on it - 6 month late already and no defined date yet Coding the gcode host part give me some challenge and add some delay as I was planning to start after but I may be not wait for host part after all.

In same time I need to build some sytems for Marlin_ESP32 and GRBL_ESP32 and for an ESP3D with esp32 as I am currently coding/supporting them without real system.

I am building them with all spare parts I have, so it need time to get everything up to work,

In same time I do support on existing projects and help on another using reprap FW.

Finally, IRL I help my aunty to setup a new house by building furnitures/doing small works.

So let say I have no excuse but being super busy :D

Please be patient, I cannot give a clear date yet sorry, but will work on it soon (in theory)

ETE-Design commented 4 years ago

@luc-github No expections, just looking forward to try the Esp32-Cam - That's my reason for asking ;-) Can hear you have a lot to do since you have to help all the others also...

labotecno commented 4 years ago

@luc-github thank you to much ! can i use the normal version with esp32 ? je peux utiliser le GUI 2.1 avec esp32 merci

luc-github commented 4 years ago

GUI 2.1 + ESP3D 2.1 + ESP32 = Ok No compatible GUI for 3.0 for the moment but sample pages

ETE-Design commented 4 years ago

@luc-github So I can flash 3.0 on the ESP32-Cam and use a sample page to see output? Is there a how to for that?

luc-github commented 4 years ago

flash as usual - configure network using [ESPXXX] commands by serial:

[ESP100]<AP to join>
[ESP101]<AP password>
[ESP102]DHCP
[ESP110]WIFI-STA

the uploader page is available so you can upload the sample page for camera

luc-github commented 4 years ago

if BTT FW works great on MKS TFT I may not porting from 2.1: 4 - MKS TFT WiFI support (Simulate MKS-WiFi module behavior to use the connector) Feel free to share if any concern

luc-github commented 4 years ago

I will hold the not yet implemented/partially implemented features on ESP3D 3.0, so these feature will be in next version (V3.1?) Instead I will work on WebUI 3.0 from now to have at least a full package in 3.0 to be tested.

ETE-Design commented 4 years ago

@luc-github So BBT FW Work on MKS Screen? Have to try that then... Perfect you hold implementation for now and Work on the WebUI, is you need help testing just reach out :-)

luc-github commented 4 years ago

@ETE-Design have look here https://github.com/darkspr1te/MKSTFT_Marlin_Touch I did not tested yet

luc-github commented 4 years ago

I am more than late on ESP3D webUI so now everything on 2.1 is put on hold so I can focus ESP3D-webUI 3.0

March should 100% be dedicated to new webUI for ESP3D 3.0 - so please do not find any critical bug until new webUI is done 🙏 😹 thank you for your patience ^_^

vivian-ng commented 4 years ago

@luc-github If it is not too much to ask, can there be a toggle switch or checkbox in the main window for 3.0 that allows to toggle camera on or off? Having the printer controls and camera view in one page will really help for remote operations. Just a suggestion. Of course, once everything else on the list at the top is done. :sweat_smile:

luc-github commented 4 years ago

@vivian-ng you are refering which camera ? ip camera ? or esp32 camera embeded with esp3d ?

vivian-ng commented 4 years ago

@luc-github Nothing fancy, just the current IP camera support that is already available in the separate tab. I just thought it would be nice to be able to view that same camera in the main tab where all the controls are. That way, you can actually see the printer moving when giving commands for the X, Y, and Z movements.

luc-github commented 4 years ago

@vivian-ng do you know that you can detach the camera window in current webUI ? - which allows of having control and camera windows side by side.

image

For 3.0 I was planned a "camera mode" in addition to normal mode with camera as main window and some control in overlay (jog / and temperature monitor) like for ESP32-camera, but the IP camera detach mode will also be present like today

ETE-Design commented 4 years ago

@luc-github Do you have any ETA on when we can begin testing the v3.0?

luc-github commented 4 years ago

no, I have put in hold all others projects, March will be only for 3.0 web UI, so end of March, I hope to have better visibility. the Webui 3.0 is using new concept/langage for me (Preact) so define an ETA is impossible for me, it is a new journey. The target is ASAP, what ever it take

labotecno commented 4 years ago

hello when we can try the last version ? can be mix with version 2 ? webgui

luc-github commented 4 years ago

@labotecno : https://github.com/luc-github/ESP3D/issues/239#issuecomment-558253300 https://github.com/luc-github/ESP3D/issues/239#issuecomment-590810325

3.0 without webUI is functional, configuration can be done using [ESPXXX] commands

bkzspam commented 4 years ago

Hi, can you add temperature graphic to webUI? It can be great...

luc-github commented 4 years ago

there is already in 2.1 or do you request somesting else for graphical rendering ?

image need auto check on

image

bkzspam commented 4 years ago

there is already in 2.1 or do you request somesting else for graphical rendering ?

image need auto check on

image

Oh, thank you. I didn't notice that.

labotecno commented 4 years ago

hello again can i use esp3d with esp32-cam? to get the cam working at same time thank you

luc-github commented 4 years ago

@labotecno https://github.com/luc-github/ESP3D/issues/239#issuecomment-536529510