MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.03k stars 19.12k forks source link

[FR] Lock-Screen - not blocking g-codes - just preventing leaving #18661

Closed AnHardt closed 4 months ago

AnHardt commented 3 years ago

When using screens with their own processor, having a Marlin emulation mode and having an encoder and all (2-3) cables are connected and a matching display is defined in Marlin, editing values in TFT-mode with the endcoder causes random actions, because the encoder is connected to the displays processor and the processor Marlin runs on, in parallel.

When the display is running in its native mode it could send a g-code to send Marlins menus into the lock-screen. Only (randomly) selecting the right number, or the unlock-g-code will let Marlin leave the lock-screen. Random encoder-inputs will not cause random Marlin reactions over the menus because not leaving that screen. But in contrast to the lockscreen-feature where is currently worked on (#18399) this extension should not block g-code so values can be purposely be edited over the TFT. When entering Marlin-mode the TFT could send the unlock-g-code, when entering the TFT-mode the lock-g-code. If something goes wrong Marlin can be unlocked by the unlock-code.

Reference: When the encoder adjusts the fan speed, the fan speed and print speed are changed together 757

thinkyhead commented 3 years ago

What can we do to determine which mode a TFT is currently in?

AnHardt commented 3 years ago

Absolutely nothing. The TFT has to explicitly tell us by sending the lock/unlock-g-codes. A chicken egg problem.

Tygrys-1 commented 3 years ago

There should also be the escape from the console lock, i.e. very long key press.

github-actions[bot] commented 2 months ago

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.