Hi ! I'm using latest Marlin 2.1.2.1 together with latest TFT firmware (tft_fw_1.27.x_patch_11) from Digant on my Artillery Genius (not Pro).
My problem is that the percentage progress bar is only working if I'm printing via usb stick. But my normal procedure is using octoprint, then the bar and value always showing 0%. If I stop a print or a print is done then 100% is displayed.
I've checked the firmware and "SET_PROGRESS_MANUALLY" and "M73_REPORT" are defined, "SDSUPPORT" is not.
Also I've checked that M73 plugin is installed to octoprint:
From your reply, it appears that your firmware does not properly support the M73 gcode command. You didn't include the "Recv:" response to the command. On my LulzBot TAZ 6 I get:
Send: M73 P25 R43
Recv: ok P15 B3
If you get an "ok" response, then the firmware has partial support for the command but it is not updating the display as indicated in the command description.
At this point, there is nothing OctoPrint or any plugins can do. The firmware is FUBAR.
The command description says "Set current print progress percentage and/or remaining time for display on the LCD" which is not the same as sending echo: M73 Progress: 25%; Time left: 43m; to the USB connection.
Clearly, the firmware implements the M73 command but not in the expected way. There isn't much OctoPrint can do so I'd suggest you contact the author of the firmware for additional support.
If I understand your original post, your "problem" is that the bar that appears in the center of the display is not getting updated. You have correctly surmised that the gcode M73 command should update the display but we have determined that it does not.
On my LulzBot TAZ 6 LCD display there is a bar which is shown below after sending an M73 P50 command.
Would you think the firmware (Marlin) or tft firmware is the problem?
I don't know but based on the links you have already provided, the source code appears to be available so you could research the answer yourself. Since my TAZ 6 is running Marlin and the display bar works, I'd suspect the TFT firmware.
I had contact with the developer digant who told me that if he sends for example this command:
M117 Data Left 123/12345
the TFT properly set the progress bar and the % value displayed on TFT.
So I would assume that M73 commands aren't needed in tis tft firmware.
But the problem is that the bar doesn't get updatet if I send the exact same command...
So how to figure out where the issue is ?!
If I send your M117 example to the printer then my additional external OLED SSD1306 display is updatet and the message is viewed there but the tft progress bar isn‘t.
BTW: I'm now pretty sure that this isn't an ocoprint issue but where else could I ask for help...?!
Often these types of TFT screens work by acting as a host, much the same way as OctoPrint does. They communicate with the printer, but have their own firmware that controls all the touch & display functions. So when you send M73 from OctoPrint, you are sending it to the printer not the screen. The printer firmware and the screen firmware are separated.
The thingiverse link to the firmware confirms this is how it works. M117 & M118 commands as set out in the examples should cause something to be updated on the display, if you have the host action commands & host notifications options enabled in the printer (Marlin) firmware.
I don't think you'll be able to specifically update the progress bar from OctoPrint, only change the text that is displayed on the screen because this is all that is supported.
-> Enabled in the firmware but M117 commands seems to have no effect
Yes but shouldn’t that then send to the tft from the printer ? Otherwise I would assume that the possibility to use better progress estimations would be useless (because not displayed on the tft).
Why that ? I‘m trying with the terminal of OctoPrint (and tried Pronterface aswell).
The developer sent me this, so also from a host (not OctoPrint):
Tried the following sequience of commands (reported on section Printing from Remote Host) and it properly worked
M118 P0 A1 action:print_start
M117 Data Left 1234/12345
and
M118 P0 A1 action:notification Data Left 1234/12345
@lethuer, Please remember that this is the OctoPrint forum. We have no control over the firmware in the printer or the firmware in the TFT.
All OctoPrint can do is send M73, M117, and/or M118 commands through the USB serial interface to the printer firmware. It is up to the printer firmware to communicate those commands (or modifications of them) to the TFT firmware. Perhaps the TFT firmware eavesdrops on the printer communications. The exact communications path(s) are completely out of OctoPrint's control.
If the M117 or M118 commands that are documented don't work as advertised or as you would like them to, then nothing you communicate here will change the behavior.
Wow ! Finally I found this is working for me to update the tft...
Never tried M118 before for more than switching to printing menu.
Now back to octoprint...
How can I include M118 messages in the stream which is sent to the printer ?
This is excellent news. I believe a one line change in OctoPrint-M73Progress will solve your issue. Now all I have to do is figure out how you can do that!
Probably the easiest way would be to fork the original plugin and make the change in it and install that version. Otherwise, in order to manually update the code you have to find the files in site-packages of the venv. For an octopi 0.18 installation that would probably be something like this...