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

[Q] USB Print doesn't start LCD Print #2944

Closed
felipebraz opened this issue Jun 27, 2024 · 16 comments
Closed

[Q] USB Print doesn't start LCD Print #2944

felipebraz opened this issue Jun 27, 2024 · 16 comments
Labels
question Further information is requested Stale

Comments

@felipebraz
Copy link

I have an SKR E3 Mini V3 + TFT35 with Marlin 2.1.2.3 and everything is working fine except when I starting printing from USB (Octoprint).
When I start printing from USB the LCD doesn't open the printing screen, it keeps an state as iddle. The print occurs and everything works except this part.
How solve this issue?

@felipebraz felipebraz added the question Further information is requested label Jun 27, 2024
@rondlh
Copy link

rondlh commented Jul 9, 2024

So you use Octaprint to start a print job that is located in the USB port of the TFT?
How are things connected together?

Are you sure you are starting the job in the USB port of the TFT?

I don't use Octaprint, I use ESP3D, which is connected to the 2nd TFT serial port, from there I can start a print job located in the USB or SD port of the TFT. That works fine.

@felipebraz
Copy link
Author

felipebraz commented Jul 9, 2024

No, the Octoprint is connect via USB directly to the SKR Board.

I found a workaround to make it work sending the updates do LCD through GCODE, but it's not very reliable.

The issue seems to be a bug on the TFT, Marlin is sending the data to the LCD, but it just can't listen. I've seen other LCDs working just fine with Marlin, but this one has this issue.

@rondlh
Copy link

rondlh commented Jul 9, 2024

So you are printing from Octaprint? If so, what do you want the TFT to do in that case?

@felipebraz
Copy link
Author

Monitor and follow the printing status, I don't want to open an app or PC just to see the progress and other status if I have an LCD waiting for me.

@rondlh
Copy link

rondlh commented Jul 9, 2024

In your way of printing, the TFT doesn't know what's going on, it's not part of the Octaprint to motherboard serial communication. The TFT only receives very limited information like temperature reports and perhaps some fan speed, printer feed rate and flow info. It will not receive any progress or expected print time information that can be displayed.

Typically the print is run from the TFT, then the TFT is in control and you can get a status overview.

@zonalimitatore
Copy link
Contributor

If you start to print from an external program/terminal/sender, how can display full interact with that program?
You'll be able to control flow/speed/temp/light/printer settings (acceleration, save babystepping values)/maybe fan % (but if the gcode "recall" at every layer the fan speed, you have to continue to change that).
I mean, you can control almost all, but you haven't the "print screen as print from sd/usb"

@rondlh
Copy link

rondlh commented Jul 11, 2024

If you start to print from an external program/terminal/sender, how can display full interact with that program?

The display cannot, it doesn't have access to the gcode file that is being printed.

You'll be able to control flow/speed/temp/light/printer settings (acceleration, save babystepping values)/maybe fan % (but if the gcode "recall" at every layer the fan speed, you have to continue to change that).

Marlin will accept commands from defined serial sources, so you can still control your printer though the TFT, even during printing. Other serial sources can overrule your gcode commands, commands are processed in the order they are received by Marlin.

What concrete information are you missing? Print progress?

@felipebraz
Copy link
Author

If you start to print from an external program/terminal/sender, how can display full interact with that program? You'll be able to control flow/speed/temp/light/printer settings (acceleration, save babystepping values)/maybe fan % (but if the gcode "recall" at every layer the fan speed, you have to continue to change that). I mean, you can control almost all, but you haven't the "print screen as print from sd/usb"

In fact you can have, there ia trick you can do in GCODE, I found an workaround that works almost fine in issues is this repo.
About the display recognizes the print, it can. Other printers with OEM LCD display works just fine. Even my previous display (Generic DWIN) with custom Marlin worked just fine. It recognizes when a print starts from an external event, show the updates, you can interact with the printer, you can even cancel the print on Octoprint directly on the display.
Marlin sends a code for the display informing there is print starting, status, movements,... In this case (TFT35) the display is not "hearing" it.
Look at this issue: #2631

@zonalimitatore
Copy link
Contributor

If you start to print from an external program/terminal/sender, how can display full interact with that program?

The display cannot, it doesn't have access to the gcode file that is being printed.

You'll be able to control flow/speed/temp/light/printer settings (acceleration, save babystepping values)/maybe fan % (but if the gcode "recall" at every layer the fan speed, you have to continue to change that).

Marlin will accept commands from defined serial sources, so you can still control your printer though the TFT, even during printing. Other serial sources can overrule your gcode commands, commands are processed in the order they are received by Marlin.

What concrete information are you missing? Print progress?

We're saying the same thing, man.

@zonalimitatore
Copy link
Contributor

If you start to print from an external program/terminal/sender, how can display full interact with that program? You'll be able to control flow/speed/temp/light/printer settings (acceleration, save babystepping values)/maybe fan % (but if the gcode "recall" at every layer the fan speed, you have to continue to change that). I mean, you can control almost all, but you haven't the "print screen as print from sd/usb"

In fact you can have, there ia trick you can do in GCODE, I found an workaround that works almost fine in issues is this repo. About the display recognizes the print, it can. Other printers with OEM LCD display works just fine. Even my previous display (Generic DWIN) with custom Marlin worked just fine. It recognizes when a print starts from an external event, show the updates, you can interact with the printer, you can even cancel the print on Octoprint directly on the display. Marlin sends a code for the display informing there is print starting, status, movements,... In this case (TFT35) the display is not "hearing" it. Look at this issue: #2631

Is your "serial always on"=1 ?

@felipebraz
Copy link
Author

If you start to print from an external program/terminal/sender, how can display full interact with that program?

The display cannot, it doesn't have access to the gcode file that is being printed.

Yes, the display can know, as it seems the display firmware has issues in it's codding.
Someone already debbuged and found some inconsistencies (#2631 (comment)).

You'll be able to control flow/speed/temp/light/printer settings (acceleration, save babystepping values)/maybe fan % (but if the gcode "recall" at every layer the fan speed, you have to continue to change that).

Marlin will accept commands from defined serial sources, so you can still control your printer though the TFT, even during printing. Other serial sources can overrule your gcode commands, commands are processed in the order they are received by Marlin.

What concrete information are you missing? Print progress?

Yes, it is the main information that is missing.

@felipebraz
Copy link
Author

If you start to print from an external program/terminal/sender, how can display full interact with that program? You'll be able to control flow/speed/temp/light/printer settings (acceleration, save babystepping values)/maybe fan % (but if the gcode "recall" at every layer the fan speed, you have to continue to change that). I mean, you can control almost all, but you haven't the "print screen as print from sd/usb"

In fact you can have, there ia trick you can do in GCODE, I found an workaround that works almost fine in issues is this repo. About the display recognizes the print, it can. Other printers with OEM LCD display works just fine. Even my previous display (Generic DWIN) with custom Marlin worked just fine. It recognizes when a print starts from an external event, show the updates, you can interact with the printer, you can even cancel the print on Octoprint directly on the display. Marlin sends a code for the display informing there is print starting, status, movements,... In this case (TFT35) the display is not "hearing" it. Look at this issue: #2631

Is your "serial always on"=1 ?

I honestly don't know... LoL
I'm learning about this display as I talk with you. I have it for just 2 weeks. Previously I used to have another solution.
But I'll search about it.

@rondlh
Copy link

rondlh commented Jul 11, 2024

If you use the display in Marlin mode, then Marlin is in full control of the display, and the progress can be shown. If you use the display in serial mode (which I have been assuming up till now) then things are not so easy because even Marlin doesn't know the progress, unless the gcode commands tell Marlin (M73). Marlin can be configured to send a progress report (M73_REPORT), which could be picked up by the display. This is currently not implemented.

@felipebraz
Copy link
Author

If you use the display in Marlin mode, then Marlin is in full control of the display, and the progress can be shown. If you use the display in serial mode (which I have been assuming up till now) then things are not so easy because even Marlin doesn't know the progress, unless the gcode commands tell Marlin (M73). Marlin can be configured to send a progress report (M73_REPORT), which could be picked up by the display. This is currently not implemented.

Yes, I believe it is the case. Will be great if implemented some day.

@rondlh
Copy link

rondlh commented Jul 12, 2024

I just came across this section in Mainboard_AckHandler.c

  else if (ack_seen(":print_start"))  // print started from remote host (e.g. OctoPrint etc.)
  {
    startPrintingFromRemoteHost(NULL);  // start print originated and hosted by remote host and open Printing menu
  }

Can someone check the terminal when an OctaPrint print job is started, to see what is received by the display?

Copy link

This issue has been automatically marked as stale because it has had no activity for the last 60 days. It will be closed in 7 days if no further activity occurs. Thank you for your contribution.

@github-actions github-actions bot added the Stale label Sep 11, 2024
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Sep 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested Stale
Projects
None yet
Development

No branches or pull requests

3 participants