Commit Graph

2138 Commits

Author SHA1 Message Date
3d-gussner c9aba688e3 Saving few bytes by removing spaces in `//action:` host commands. Thanks to @sarusani pointing out inconsistent documentation.
Renaming `MSG_OCTOPRINT_*` to `MSG_HOST_ACTION_*` as it is used also with PrusaLink and other host printing solutions

Fix rebase issues
2024-01-29 13:07:48 +01:00
3d-gussner fda30f82c8 Don't show `Set Ready`when not idle 2024-01-29 13:07:48 +01:00
gudnimg abcb1017f3 PFW-1553 fix regression where SD card file is not closed when stopping paused print
When a print is paused, card.sdprinting is set to false. Instead we can check
if the SD card has been mounted and try to close the file.

The closefile() method will check internally whether or not the file is open.
2024-01-27 15:21:08 +00:00
gudnimg f022567239 PFW-1522 Fix an issue where MMU unloads while nozzle is cold if print is stopped
In the case of a Fan Error, the print is paused. If the nozzle is allowed to cool for a while before the print is stopped via the LCD, then the MMU will try to unload with a cold nozzle.

This can happen with ANY recoverable thermal errors.

In this commit I attempt to fix all scenarios. Including PFW-1544 where the nozzle is cooling down when the print has finished normally.

PFW-1544
PFW-1552

Change in memory:
Flash: +74 bytes
SRAM: 0 bytes
2024-01-27 11:54:54 +00:00
gudnimg c0b76dd5cf cleanup: move st_synchronize under the if statement
If the if statement is not true, then the st_synchronize call is not useful

The raise_z call above the if statement does not need it since it always calls st_synchronize (blocking move)

No change in memory
2024-01-27 10:47:23 +00:00
3d-gussner b80965731f
Merge pull request #4421 from gudnimg/sd-card-mount-opt
cleanup: Don't set root directory if SD card fails to mount + 3 renames
2024-01-22 09:11:19 +01:00
3d-gussner 02b91dc2cb
Merge pull request #4563 from 3d-gussner/MK3_Quick_nozzle_change_menu
Add nozzle diameter change to main menu for REVO builds
2024-01-19 14:26:18 +01:00
3d-gussner 13fb11889e Minor cosmetic changes voted by community 2024-01-12 07:20:33 +01:00
gudnimg adf2ecabc1 Fix pause indicator when print job timer is not used
Fixes #4554

Change in memory:
Flash: +50 bytes
SRAM: +1 byte
2024-01-11 19:30:30 +00:00
3d-gussner d5a5835059 Add nozzle change to main menu when QUICK_NOZZLE_CHANGE is defined
Add Nozzle diameter to Info screen when printer inactive and QUICK_NOZZLE_CHANGE defined
Solves #4488
2024-01-11 07:36:51 +01:00
3d-gussner 8d50d29776
Merge pull request #4553 from sarusani/shutdownHostLCDEntry
Add Shutdown host to LCD Menu
2024-01-11 07:33:16 +01:00
3d-gussner f18fc2bbce Fix Pause->Tune->Auto Home layer shift 2024-01-09 11:07:29 +01:00
sarusani 59093107fd Add #ifdef HOST_SHUTDOWN 2024-01-06 00:45:06 +01:00
sarusani 49f9d7abdc Add Shutdown host to LCD Menu
Add "Shutdown host" entry to LCD menu if printer is not active and host is connected.
2024-01-06 00:45:06 +01:00
3d-gussner db044163f9 Unify Selftest messages 2024-01-04 11:18:07 +01:00
gudnimg 9bd043c83b Move restore_file_from_sd out of power panic file
This function is not specific to power panic. Some printer models
do not have power panic enabled.

This change fixes a build failure

No change in memory
2023-12-30 12:19:51 +00:00
gudnimg ceec54f026 reprint: reduce duplicate code
restore_file_from_sd function now supports any
filename extension. If a print was finished (to allow reprinting) then the
EEPROM filename and extension should always be valid.

Change in memory:
Flash: -312 bytes
SRAM: 0 bytes
2023-12-30 12:06:46 +00:00
3d-gussner 15a3fb998c
Merge pull request #4541 from sarusani/actionReadyOpt
Remove leading M118 from "action:ready" & "action:not_ready"
2023-12-19 15:02:09 +01:00
sarusani 2c4474b1dd Remove leading "M118" 2023-12-16 12:51:17 +01:00
sarusani e5d6d72d23 Add #ifdef 2023-12-15 14:09:46 +01:00
sarusani 1407f29362 Prevent oozing after filament load
Retract 10mm of filament after loading
2023-12-14 14:20:46 +01:00
gudnimg 40786a24e0 Rename "cardOK" to "mounted"
Sync the Prusa firmware a little bit with Marlin 2.1
2023-12-09 10:52:26 +00:00
gudnimg d94f263843 Rename initsd() to mount()
Sync the Prusa firmware with Marlin 2.1 a little bit.
2023-12-09 10:50:30 +00:00
3d-gussner 18daa5a62e
Merge pull request #2423 from Panayiotis-git/MK3_M600_Issue-2415
LCD option to unload new filament on M600 (issue #2415)
2023-12-04 17:03:38 +01:00
sarusani 60e311d74f Change reprint MENU_ITEM_SUBMENU_P to MENU_ITEM_FUNCTION_P
There's no submenu -> don't show arrow
2023-12-03 08:46:48 +01:00
sarusani 4d9e084cf7 Rename lcd_reprint_usb_print to lcd_send_action_start
Sending action start can not only be used for reprints
2023-12-03 08:44:54 +01:00
sarusani d267140ee6 Rename reprint_from_eeprom to lcd_reprint_from_eeprom
It sets the lcd_return_to_status() at the end, so naming should be consistent witch the other functions
2023-12-03 08:43:16 +01:00
Panayiotis-git 3da4407e4f Repeat the M600 unload/load filament sequence - Fix translations 2023-12-01 21:13:24 +02:00
Panayiotis-git 8ceda27cda Provide option to repeat the M600 unload/load filament sequence 2023-12-01 21:12:31 +02:00
3d-gussner 4dfc484265
Merge pull request #4207 from gudnimg/crashdet_cancel-fixup
`crashdet_cancel()` doesnt cleanup all variables when USB printing
2023-12-01 17:41:33 +01:00
3d-gussner 096a1c9fe0 Change Reprint action message to comply to OctoPrint actions 2023-11-30 15:08:48 +01:00
3d-gussner d9d42a0678 Use of PrinterState for Reprint menu 2023-11-23 06:47:04 +01:00
Guðni Már Gilbert e1e0b0afa1 Refactor code which resets crash detection setting
Add function crashdet_use_eeprom_setting

Change in memory:
Flash: -52 bytes
SRAM: 0 bytes
2023-11-22 21:19:43 +00:00
Guðni Már Gilbert 30d0da4698 Close SD file in print_stop instead of UnconditionalStop()
Change in memory:
Flash: -6 bytes
SRAM: 0 bytes
2023-11-22 21:19:17 +00:00
Juan Francisco Estrada 0b4af3b97f Fix: Reprint menu does not appear during the heating 2023-11-22 12:20:13 +01:00
Juan Francisco Estrada 73436e9351 Fixed Reprint from USB and from SD, some debug is needed 2023-11-22 12:20:00 +01:00
Juan Francisco Estrada 7130504fcf Apply the reprint_pr_changes_diff2.txt provided by @3d-gussner 2023-11-22 12:18:59 +01:00
Juan Francisco Estrada ce135a0976 Added support for reprint and streamed GCODE 2023-11-22 12:14:08 +01:00
Juan Francisco Estrada 532a5b3e2f - Serial message --> /// action:reprint done
- Yes/no question --> Need to fix the bug related with the filename print --> if (lcd_show_fullscreen_message_yes_no_and_wait_P(altfilename, false, LCD_LEFT_BUTTON_CHOICE)==LCD_LEFT_BUTTON_CHOICE)
2023-11-22 12:14:00 +01:00
Juan Francisco Estrada 004169034a Remove some MYSERIAL calls 2023-11-22 12:13:24 +01:00
Juan Francisco Estrada ae5fbce6e7 Remove MYSERIAL.println code (debug purpose) and old commented code 2023-11-22 12:13:16 +01:00
Juan Francisco Estrada a52d5430aa Change to enquecommandf_P and enquecommand_P 2023-11-22 12:13:01 +01:00
Juan Francisco Estrada e8a2d4c7e1 Reprint function integrated on 3.13v 2023-11-22 12:11:39 +01:00
3d-gussner 02459edcb6 Rebase fix
Add documentation
Whitespace
2023-11-22 08:21:52 +01:00
3d-gussner af79ac0714 Add `SetPrinterState(PrinterState::Idle);` after `lcd_commands_type = LcdCommands::Idle;` 2023-11-22 07:58:17 +01:00
3d-gussner d5d77ee243 Cleanup documentation 2023-11-22 07:58:17 +01:00
3d-gussner 880d2f28bd LCD menu only sends `// action:ready` or `// action:not_ready` via serial
Host has to send back state with `M72 S1|0` to keep printer and host in sync
Changed LCD menu messages to `Set ready` and `Set not ready`
Updated translations
2023-11-22 07:58:17 +01:00
3d-gussner 516ae1b952 Update state 2023-11-22 07:58:17 +01:00
3d-gussner d3b98f30a7 Show Set Ready LCD menu only when M79 timer is running. 2023-11-22 07:58:17 +01:00
3d-gussner 514607318e Add printer_state.cpp/.h 2023-11-22 07:58:17 +01:00
3d-gussner d276695ce7 Set Ready 2023-11-22 07:58:13 +01:00
gudnimg 60cb089e96 Show statistics menu for USB/Serial prints
Change in memory:
Flash: -8 bytes
SRAM: 0 bytes
2023-11-21 18:38:40 +00:00
gudnimg 331ceaf044 M77: Save statistics when timer is stopped
For remote hosts, when the timer is stopped, then also save the statistics.

Slightly refactored save_statistics function by removing the parameters.
The function parameters are always the same.

Change in memory:
Flash: -40 bytes
SRAM: 0 bytes
2023-11-21 18:38:40 +00:00
gudnimg 423f98ff6e Implement Marlin's print job timer
I changed the code a bit so it would compile
in Prusa Firmware.

The paused duration is no longer included in the
print time statistics.

Change in memory:
Flash: -122 bytes
SRAM: 0 bytes
2023-11-21 18:38:40 +00:00
3d-gussner 9fd478c9c2
Merge pull request #4173 from gudnimg/disable-heaters-gudni
optimisation: use `disable_heater()` in more places
2023-11-20 07:01:05 +01:00
Guðni Már Gilbert 4922bcd7b1
Merge pull request #4408 from gudnimg/PR2390
PFW-1097 M600: Fix filament change behavior when print is paused
2023-11-16 07:37:42 +00:00
Guðni Már Gilbert 400722ec67
Merge pull request #4461 from gudnimg/lcd-opt-message
optimisation: simplify two LCD messages
2023-11-16 07:37:09 +00:00
3d-gussner e74abb102a
Merge pull request #4494 from gudnimg/issue3122
Fix #3122
2023-11-12 17:42:10 +01:00
Guðni Már Gilbert 1e6460c344
Merge pull request #4479 from gudnimg/PFW-1523-2
PFW-1523 Add the `S` parameter to `M79`
2023-11-12 16:19:31 +00:00
gudnimg ddbadf4874 Fix #3122
If the feedrate multiplier is changed while the print is paused
update the saved feedrate multiplier in RAM
2023-11-12 12:38:05 +00:00
gudnimg 4e6b649865 PFW-1523 Only overwrite name if not SD printing 2023-11-11 16:56:14 +00:00
gudnimg 45880c252b Fix filament change behavior when print is paused
Reimplementing PR 2390
https://github.com/prusa3d/Prusa-Firmware/pull/2390
from @wavexx
2023-11-11 16:51:35 +00:00
3d-gussner 0016b77827 Updated MMU serial status message
- Shown during bootup
- Shown on LCD menue MMU [ON|OFF]
- Shown using `M709`
- Shown when `Disable`d with MMU ERROR FW UPDATE NEEDED
2023-11-11 12:18:34 +01:00
gudnimg dc280b0d9e power panic: support any valid DOS 8.3 extension
When a SD file is selected to print
save the DOS 8.3 extension into EEPROM.

After a power outage, the correct file extension is then
selected instead of always assuming it's ".gco"

This allows users to recover ".g" files.

Change in memory:
Flash: +104 bytes
SRAM: 0 bytes
2023-11-05 16:46:54 +00:00
Guðni Már Gilbert dec5e2c1b4 Refactor menu_action_sdfile 2023-11-05 16:46:54 +00:00
gudnimg 469f002179 optimisation: simplify two LCD messages
There is no need to restrict how often the message is rendered.
It was being restricted to render every 1 second. We don't do
this for most of the static menus. So I propose this 1 second period
be removed.

Tested on MK3S+

Change in memory:
Flash: -168 bytes
SRAM: -8 bytes
2023-11-05 12:57:28 +00:00
gudnimg 20a2216623 PFW-1523 Implement S parameter for M79
Change in memory:
Flash: +112 bytes
SRAM: +3 bytes
2023-11-04 20:38:50 +00:00
gudnimg 645b11e643 Fix regression in MMU enable menu
Fixes a regression introduced in https://github.com/prusa3d/Prusa-Firmware/pull/4454
2023-10-29 16:17:03 +00:00
3d-gussner fe9a8cf8ac Fix PF-build.sh with new cmake
Same as MK3_3.13.2 branch
2023-10-17 15:36:54 +02:00
gudnimg 466e562360 PFW-1542 Don't allow starting SD print if there is a fan error
Apply same conditions as on "Resume print" feature.
Starting a SD print should not be possible if there is an active hardware error
2023-10-15 12:17:36 +00:00
Alex Voinea 7e88e49b4e Fix tilde in message 2023-10-03 08:19:48 +02:00
Alex Voinea 3e15a24be7 Fix sheet rename resetting characters to blank 2023-10-03 08:19:48 +02:00
Alex Voinea 9dbbb12a13 Fix frame start for non-menu screens 2023-10-03 08:19:48 +02:00
Alex Voinea 8e25e1b164 Allow all diacritics in the sheet name 2023-10-03 08:19:48 +02:00
Alex Voinea 4736a1624f First working implementation
Fix cherry-pick conflict
2023-10-03 08:19:48 +02:00
Alex Voinea e9f74b2678 Remove unnecessary lcd_home() calls 2023-10-03 08:19:48 +02:00
Alex Voinea 580b27e394 Use lcd_home() wherever possible
Fix cherry-pick conflict
2023-10-03 08:19:48 +02:00
3d-gussner f392fae996 Fix cherry-pick conflict 2 2023-10-03 08:19:48 +02:00
Alex Voinea 100a8e3b33 Dynamic characters initial
Fix more hardcoded characters

Finally optimize the lcd printf with custom characters

FontGen.py script

Add arguments and action

Fix build

Fix conflicts
2023-10-03 08:19:48 +02:00
gudnimg 016db6a6e8 Hide menus more consistently when the printer is busy
lcd_calibration_menu: Remove redundant if (!isPrintPaused). The menu
is never called unless this condition is true.

eeprom_switch_to_next_sheet: Don't show this menu if the printer
is busy doing work!

Do not allow these menus to run while a print is paused or
when we're recovering a print:

- Preload to MMU
- Load to Nozzle
- Unload filament
- Eject from MMU
- Cut filament
- Autoload filament
- Settings
- Calibration
2023-09-23 15:42:03 +00:00
gudnimg 06d34b4398 Fix an issue where print can't be stopped under specific circumstances
There is a bug where if the printer is recovering a print, it run a
blocking loop to restore the extruder and bed temperatures.
But if a Fan error is triggered in this loop, then the user can't
abort the print via LCD.

If the fan error resolves on its own the 'Resume print' menu will
appear in a few seconds. But if not, then the user can't resume the print
(which is normal). But with the bug above the user can't abort the print either!

The problem is essentially isPrintPaused variable is cleared too early.
We should wait until the print is completely restored first.

Steps to reproduce:
1. Start a print
2. Pause the print
3. Wait for extruder temperature to fall at lest 180°C
4. Click 'Resume' print
5. While heating, stop the hotend fan and wait for a few seconds until an error is raised
6. Observe issue => 'Stop print' menu item is gone!

PFW-1542
2023-09-23 14:18:52 +00:00
Guðni Már Gilbert 6187b7eecf optimisation: use disable_heater() in more places
Change in memory:
Flash: -84 bytes
SRAM: 0 bytes
2023-09-16 14:26:09 +00:00
3d-gussner 2e70697fa7
Merge pull request #4183 from leptun/mbl_print_area
MBL print area
2023-09-13 10:28:08 +02:00
3d-gussner 0aa380b931
Merge pull request #4206 from gudnimg/sd-card-menu-opt
optimisation: `menu_item == menu_line` is always true in `menu_item_sddir()` and `menu_item_sdfile()`
2023-09-13 07:49:43 +02:00
3d-gussner 73118dd4e2
Merge pull request #2474 from vintagepc/#2161-tune-x-y-rehome
Add X-Y home to tune menu if print is paused
2023-09-13 07:49:23 +02:00
vintagepc b7daac3b70 Direct home instead of G28 2023-09-12 18:41:14 -04:00
vintagepc b75e3b5233 facepalm commit
... I somehow managed to lose a bracket. DERP.
2023-09-12 18:33:27 -04:00
vintagepc ebc6663210 Add auto-home to tune menu 2023-09-12 18:33:27 -04:00
Guðni Már Gilbert ff6fd8cf4b Allow statistiscs menu while running 1st Layer cal
There is no problem with opening the menu during first layer
calibration. Removing this condition simplifies the code a little bit.

Change in memory:
Flash: -8 bytes
SRAM: 0 bytes
2023-09-12 20:26:43 +02:00
3d-gussner 019126778d
Merge pull request #1790 from jiri-jirus/MK3
y-axis self-test hack cleanup
2023-09-12 16:31:34 +02:00
Yuri D'Elia 334bfe4d29 build: Set all version data based on git tags
Drop the ALPHA/BETA/custom version handling. Set the version string and
firmware date based on the current tree description which has all the
required details.

Allow to override the repository information via cmake.

Use a truncated commit hash to set the internal commit number for
compatibility.

Rebase and fix issues
2023-09-04 08:35:15 -04:00
3d-gussner 77a4b99f5e Fix Calibration menu shown during resuming 2023-09-01 16:18:57 +02:00
Yuri D'Elia 2bfd56cd30 lang/mmu: Translate MMU menu strings within caller
This fixes the undefined _T(label) reference, at the expense of a few
extra bytes.

I would argue this is worth the cost for the ability to check
translation references for the future. The warning happens because
`lang-check` cannot check a reference which is not _directly_ a catalog
entry.

We could introduce a method to suppress this warning (either a new macro
or some ///IGNORE comment), but that would mean that the additional
translation check is completely bypassed, defeating the purpose.
2023-08-30 18:54:57 +02:00
3d-gussner 0bbec5626c Update and fix translations 2023-08-21 16:28:36 +02:00
Guðni Már Gilbert 5bf9bf7507 optimisation: reduce code size in MMU filament menus
Change in memory:
Flash: -156 bytes
SRAM: 0 bytes
2023-08-21 07:29:43 +02:00
Guðni Már Gilbert 1881c5f086 Fix filament actions not cleared properly
We can't clear eFilamentAction in every case in mFilamentItem()

mFilamentItem() can trigger a call to M701 and M702 e.g. for Autoloading
and eFilamentAction must be cleared by the gcode to prevent
the user from triggering another Autoload (which will crashe the FW)

The same applies to submenus. Now the MMU submenus clear eFilamentAction
only when the action is done.

For MMU Unload Filament item, eFilamentAction is only cleared after
the unload_filament() call is done running. This fixes an issue where
the menu item can be selected again while the first unload is still
running.
2023-08-21 07:29:43 +02:00
sarusani c4c26050d3 Fix screen update after PFW-1531 2023-08-21 06:36:25 +02:00
sarusani 0d097d5a62 Fix TEMP_HYSTERESIS calculation 2023-08-21 06:35:32 +02:00
Guðni Már Gilbert cabc44194a optimisation: menu_item == menu_line is always true
The if statement is checked in lcd_sdcard_menu()

so checking it again these functions is
redundant since it's always going to be true.

Tested on MK3S+

Change in memory:
Flash: -22 bytes
SRAM: 0 bytes
2023-08-20 08:19:01 +00:00
Alex Voinea 7740a81edb
Do not store a global mbl_z_probe_nr
flash: -6
sram: 0? (somehow)
2023-08-17 07:53:39 +02:00