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

[FEATURE REQUEST]🦄GCODE Streamer Host definition for 3.X #243

Open luc-github opened 6 years ago

luc-github commented 6 years ago

Time to define what host feature will be: Basic description 1 - Read Gcode from SD 2- Send GCODE to printer FW via Serial 3 - Wait for ack 4 - if ack go to 1 / if error go to 2

Now need to clarify each part :

Not sure if special command need to be handled (like @pause) right now as it is not a host that have direct UI, but will be when Oled Screen is enabled as well as rotary encoder is supported.

One command is key: Emergency stop, to stop sending commands ans stop printer FW

luc-github commented 5 years ago

some update for command / answer according Firmware: 1 - smoothieware which is quiet (nowait when idle), use N{New Line Position} M110 to reset, and resend error is rs N, M29 does not need checksum, send ok without line number

2 - Marlin Kimbra which is not quiet (send wait when idle), use M110 N{New Line Position} to reset, resend error is Resend: , M29 need checksum, ok does not use line number

3 - Marlin which is quiet (no wait when idle), use M110 N{New Line Position} to reset, resend error is Resend: , M29 need checksum, ok does not use line number

4 - Repetier which is not quiet (send wait when idle), use M110 N{New Line Position} to reset, resend error is Resend: , M29 does not need checksum, ok use line number

luc-github commented 4 years ago

Basic GCODE host functions are now available they will be used for the autotstart feature, the [ESP700] command and Serial Upload the host features will be improved later if necessary

luc-github commented 4 years ago

Next steps to work on for proper gcode host support

luc-github commented 2 years ago

a basic GCODE host stream is now in https://github.com/luc-github/ESP3DLib/tree/2-0 it is basic ping/pong command/ack with ok it is no more blocking and it is used by [ESP700], can be used with line script/FS file and SD file

Current limitation:

macro

probonopd commented 1 year ago

"can be used with ... SD file"

How?

luc-github commented 1 year ago

by typing the command manually for the moment [ESP700]/SD/myfile.gco

luc-github commented 11 months ago

The latest definition used currently on ESP3D-TFT is here: StreamingService.md

luc-github commented 10 months ago

The ping pong streaming service is available in ESP3D-TFT as POC and will be ported to ESP3D once validate

kleffa commented 3 months ago

Is to difficult read gcodes from esp3d SD as a macros?

luc-github commented 3 months ago

what do you mean ? read gcode is not hard - send gcode is not hard but that is not streaming Streaming is to control the flow of commands, control the response and react accordingly, if error , if timeout, also errors and responses are different for each FW : Marlin / Repetier / Smoothieware / grbl / etc... In addition need to handle user command like PAUSE, filament sensor reporting no more filament, etc it is not difficult but is a lot of possible users cases that need to be handled. also need to handle user send manual commands as well as polling commands from external device like tft or even computer while streaming is ongoing

Macros are suposed to be few gcodes and so currently they are all send blindly at once without checking the response , and because they are only macros, if they failed it is not a big issue - but once gcode host will be implemented they will be handled as any other gcodes