Commit Graph

8066 Commits

Author SHA1 Message Date
Guðni Már Gilbert ae31c0ec31 optimisation: used expired() instead of elapsed()
If the timer is expired, then the timer is stopped. This is OK since
we are starting the timer again anyway

Change in memory:
Flash: -14 bytes
SRAM: 0 bytes
2024-01-06 00:23:19 +00:00
gudnimg 09952db139 Restart USB timer during long moves
When long moves are planned and executed the USB timer can expire.

In PrusaSlicer 2.7.1 the Toolchange command (T0, T1, etc.) is sent while the USB timer is expired. This will trigger
a manual MMU unload in the firmware. Not only does this trigger a loud beep from the buzzer, but this will also significantly increase print time.

The issue only affects host prints. SD card printing does not have this issue.

Fixes #4551

The fix in this commit is the following:
If there are blocks queued while printing via host AND the USB timer is halfway expired WHILE executing a move. Then simply restart the timer to keep it alive.

Change in memory:
Flash: +62 bytes
SRAM: 0 bytes
2024-01-06 00:23:19 +00: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
3d-gussner ba027dd41e
Merge pull request #4552 from gudnimg/reprint-opt
reprint: reduce duplicate code
2024-01-03 14:45:57 +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 45d70b195d
Merge pull request #4405 from gudnimg/mmu-response-fix
MMU: always wait for a request's expected response
2023-12-22 16:34:27 +01:00
3d-gussner 8aa344ea38
Merge pull request #4545 from 3d-gussner/MK3_Fix_M850
Fix M850 output and documentation
2023-12-19 17:26:16 +01:00
3d-gussner c9ea5fa746 Fix M850 output and documentation 2023-12-19 15:34:16 +01: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
3d-gussner b894fcc11c
Merge pull request #4534 from sarusani/oozePrevention
Prevent oozing after filament load
2023-12-19 15:01:50 +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 c384524877 mmu: always wait for a request's expected response
If a planned request is activated when the current status is finished
then the firmware must wait for the response when the request
is expecting it

An example is a register read or a register write.

manage_response not return unless the register has been read or
written. And we must see the response to know if an error should be
reported.

Step to reproduce issue:
1. Fail selector homing
2. Select 'Tune' item
3. Observe issue. In this situation you can see the value
for the previous register read is shown. Which is 0. This very timing dependent and does not always happen.
4. Repeat step 2 until the issue appears. It may take a few times.
2023-12-10 12:54:18 +00: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
gudnimg 42855f9f13 Rename setroot() to cdroot()
This way the name is the same as Marlin 2.1
2023-12-09 10:50:30 +00:00
gudnimg e0eb8b8a24 optimisation: if SD card fails to mount, do not set root directory
I noticed this on Marlin 2.1 side, it should apply here as well.
2023-12-09 10:50:30 +00:00
3d-gussner 3c64874e20
Merge pull request #4530 from 3d-gussner/MK3_fixc_cmake_t_tags
Fix cmake with tags starting with `t`
2023-12-05 17:19:57 +01:00
3d-gussner 1868839dc6 Fix cmake with tags starting with `t` 2023-12-05 15:42:47 +01:00
3d-gussner bc9e47c13e
Merge pull request #4529 from 3d-gussner/MK3_3140B1_bump_up_version
Bump up version to 3.14.0-BETA1
2023-12-05 15:22:15 +01:00
3d-gussner 69b35d37c3 Bump up version 2023-12-05 14:53:56 +01:00
3d-gussner aa92375e62
Merge pull request #4523 from 3d-gussner/MK3_Improve_PP_Crash
Improve Host Power Panic and Crash
2023-12-05 14:49:33 +01:00
3d-gussner 91d11a2d99
Merge pull request #4528 from 3d-gussner/MK3_Norwegian_reprint
Update translations
2023-12-05 14:31:31 +01:00
3d-gussner dd5f2e1196 Reprint Norwegian translation update 2023-12-05 08:37:24 +01: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
3d-gussner 2b18921035
Merge pull request #4524 from sarusani/cleanupLCDMenu
Cleanup LCD menu
2023-12-04 17:03:03 +01:00
3d-gussner 4684c3bc44
Merge pull request #4527 from prusa3d/vintagepc/update-stale-message
Update stale message
2023-12-04 16:30:51 +01:00
vintagepc 0546566fc7
Update stale message 2023-12-04 07:19:58 -05:00
sarusani e2aafc882c Fix MSG_PRINT_PAUSED
MSG_PRINT_PAUSED used the lang declaration MSG_PAUSE_PRINT instead of MSG_PRINT_PAUSED
2023-12-03 10:16:16 +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 47b298782f Set YES as default in Crash Resume message 2023-12-01 17:43:29 +01:00
3d-gussner d36ea24c02 After reset or low bed temp recover HOST print as the HOST has to decide what to do
Only during SD print and a Reset + Low Bed temp the user has to confirm on LCD
2023-12-01 17:43:29 +01:00
3d-gussner 4bc6bc3f90 Improve USb power panic 2023-12-01 17:43:29 +01: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
gudnimg 4d9dc11510 power panic: pause the print, and wait for M79
"PRUSA uvlo" is the last g-code to be processed after the power panic
recovery. For host prints, we want to finish processing all these
g-codes and put the print in a paused state.

Currently I am using lcd_pause_print() but this may be simplified
later.

A new PrinterState is introduced PowerPanicWaitingForHost to
differentiate this paused state from the typical paused state.
In this new paused state the printer is waiting for the host to boot up
and send M79.

Once M79 is seen a new action is sent "// action:uvlo_recovery_ready"

It is up to the host software to then resume the print correctly. All
the needed information to resume the print is in EEPROM and can
be read by using the D3 g-code.

Change in memory:
Flash: +82 bytes
SRAM: 0 bytes
2023-12-01 16:16:39 +01:00
gudnimg 02c5da198d Enable EEPROM_UVLO flag for host prints
Change in memory:
Flash: -30 bytes
SRAM: 0 bytes
2023-12-01 16:16:39 +01:00
gudnimg ce24d917e6 power panic: Only send M24 for SD prints
For host prints, we don't want to send M24.

Change in memory:
Flash: +16 bytes
SRAM: 0 bytes
2023-12-01 16:16:39 +01:00
gudnimg 67c7ad1c99 power panic: improve file position recovery
- Only queue M26 for SD prints
- Add M110 to set gcode_LastN for host prints
- Remove one debug log to save resource (52 bytes)

Change in memory:
Flash: -14 bytes
SRAM: 0 bytes
2023-12-01 16:16:39 +01:00
gudnimg 665c01804c power panic: remove redundant lcd_setstatuspgm
If recover_print was never called, then there should be
no need to call lcd_setstatuspgm(MSG_WELCOME) since
the status line was not modified by the power panic feature.

Change in memory:
Flash: -4 bytes
SRAM: 0 bytes
2023-12-01 16:16:39 +01:00
gudnimg e2d0e9a2ee power panic: remove redundant lcd update calls
lcd_show_fullscreen_message_yes_no_and_wait_P will
enable LCD update upon exit.

Change in memory:
Flash: -24 bytes
SRAM: 0 bytes
2023-12-01 16:16:39 +01:00
3d-gussner 02a5228f5e
Merge pull request #4520 from 3d-gussner/MK3_Reprint_OP
Change Reprint action message to comply with OctoPrint actions
2023-12-01 09:06:32 +01:00
3d-gussner 096a1c9fe0 Change Reprint action message to comply to OctoPrint actions 2023-11-30 15:08:48 +01:00