Commit Graph

6170 Commits

Author SHA1 Message Date
3d-gussner
6db58f09d0 Revert LongTimers to uint32_t in mmu.cpp to fix issues with MMU2 fw 1.0.6 2023-01-13 11:20:49 +01:00
DRracer
fdadc9314e
Merge pull request #3887 from 3d-gussner/MK312_Version_change
Version changed (3.12.0 build 5672) for FW3.12.0 final
2023-01-10 10:51:50 +01:00
3d-gussner
fd678bc8ec Version changed (3.12.0 build 5672)
5670 +1 for the commit +1 for the merge
2023-01-10 09:55:46 +01:00
Yuri D'Elia
54356f8d97
Merge pull request #3880 from wavexx/m300_s0_m312
Make M300 S0 pause like Marlin (3.12)
2023-01-02 19:24:02 +01:00
3d-gussner
39a078306a
Merge pull request #3881 from 3d-gussner/MK3_312_Update_Cal_documention
Fix few values
2023-01-02 15:43:07 +01:00
3d-gussner
cfed4bcd19 Fix few values 2023-01-02 15:18:43 +01:00
Yuri D'Elia
3c4373c0c3 Remove extra delay after critical sound
This delay doesn't exist for the tone generator, so remove it from the
pure version as well.
2023-01-02 14:27:46 +01:00
Yuri D'Elia
805e71e504 Make M300 S0 pause like Marlin
Follow Marlin's behavior and simply insert a delay for the requested
duration when using M300 S0.

When S is not specified, use the default tone instead.

Fixes #3856
2023-01-02 14:27:38 +01:00
3d-gussner
46a979271d Update calibration status v2 documentation 2023-01-02 11:22:47 +01:00
Yuri D'Elia
f68479fc38 TM: Mark more internal functions as static 2023-01-02 10:52:20 +01:00
Yuri D'Elia
5a89f6934a TM: Also clear the status flags when disabling the model
Disabling the model during a warn/error condition will also stop
updating the warning/error flag, keeping the printer in an error state.

Clear all flags as well when changing model settings.
2023-01-02 10:52:20 +01:00
Yuri D'Elia
8bd0d6aeb8 wizard: Ask about the sheet before doing Z calibration
Ask to install the sheet immediately after removing the test print.
This makes further messages less confusing.
2023-01-02 10:51:47 +01:00
Yuri D'Elia
fbfacd76a4 wizard: Resume the wizard for missing calibrations during upgrades
Instead of checking for explicit versions, resume the wizard if some
(new) wizard is missing.

This handles both the old SELFTEST check, the new thermal model
and any future check in the same fashion.
2023-01-02 10:51:47 +01:00
Yuri D'Elia
05f37edad5 Read version data from progmem in eeprom_fw_version_older_than 2023-01-02 10:51:47 +01:00
Yuri D'Elia
a8057e0d36 wizard: Disable temperature model during hotend testing
This avoids confusing error messages if the hotend is defective and
caught by selftest itself.

Rearrange Stopped state checks (saves 2 bytes)
2023-01-02 10:51:47 +01:00
Yuri D'Elia
d8ae372309 wizard: Allow partial resuming after reset
Update the eeprom FW version as soon as migration is complete, to avoid
resetting the CALIBRATION_V2 variable at each reset.

Do not implicitly reset the calibration steps for WizState::Run: do this
only for the menu action.
2023-01-02 10:51:47 +01:00
Yuri D'Elia
f158a75041 Unbreak build with !PINDA_THERMISTOR 2023-01-02 10:51:47 +01:00
Yuri D'Elia
0c583ff90a Handle CALIBRATION_STATUS_TEMP_MODEL 2023-01-02 10:51:47 +01:00
Yuri D'Elia
16de033504 Handle CALIBRATION_STATUS_SELFTEST 2023-01-02 10:51:47 +01:00
Yuri D'Elia
b2f3f476c4 Handle CALIBRATION_STATUS_{Z,XYZ} 2023-01-02 10:51:47 +01:00
Yuri D'Elia
17b10167a0 Handle CALIBRATION_STATUS_LIVE_ADJUST 2023-01-02 10:51:47 +01:00
Yuri D'Elia
16033b40b4 wizard: Rewrite the fw upgrade check logic
- Handle the conversion from the V1 calibration status to the V2 bitmap
  for all past FW versions.
- Allow to run the wizard in "Restore" mode (for example during upgrade
  or service prep) to complete any missing steps.
- Fix service prep to use the above feature by clearing the appropriate
  calibration bits.
- Remove exceptions for FW 3.2.0.4 which can now be handled cleanly.
2023-01-02 10:51:47 +01:00
Yuri D'Elia
d478aa5c5e wizard: Rewrite the wizard handling loop
Simplify status tracking:

- S::Restore to continue to the next logical wizard item
- S::Finish for a successful failure
- S::Failed to exit while showing a failure
2023-01-02 10:51:47 +01:00
Yuri D'Elia
8a43aa0024 wizard: Remove unused wizard stages
Remove PreheatPla/IsPla, as we currently always explicitly ask for the
material type.
2023-01-02 10:51:47 +01:00
Yuri D'Elia
6285951eac Simplify altfan override initialization 2023-01-02 10:51:47 +01:00
Yuri D'Elia
612e9d9303 Replace calibration state with a new calibration bitmap
- Move calibration status/declarations to util.h
- Allows to query the status of each step independently without assuming
  any order
- Allows to extend the calibration with new steps transparently
2023-01-02 10:51:47 +01:00
Yuri D'Elia
4ff245c7ee eeprom: Fix EEPROM_HEAT_BED_ON_LOAD_FILAMENT debug offset in docs 2023-01-02 10:51:47 +01:00
Yuri D'Elia
670bca47da Simplify FW eeprom version checks
- Generalize force_selftest_if_fw_version() so we can check when upgrading
  between arbitrary FW versions.
- Do not call update_current_firmware_version_to_eeprom() prematurely
  when forcing self-test (if a reset happens before self-test completes,
  the check would be incorrectly skipped on the next run).
2023-01-02 10:51:47 +01:00
Yuri D'Elia
a18f28715d backport: Stub LCDButtonChoice for LCD_LEFT_BUTTON_CHOICE 2023-01-02 10:51:47 +01:00
Yuri D'Elia
3f86636bb6 backport: Sync new offsets from MK3 2023-01-02 10:51:47 +01:00
3d-gussner
83907a9998
Merge pull request #3848 from 3d-gussner/MK3_3.12_Clear_TM_error
MK3_ 3.12: Add translations for Clear TM error message
2022-12-20 16:40:33 +01:00
3d-gussner
b683351b6c Add translations for Clear TM error message 2022-12-20 15:39:36 +01:00
3d-gussner
9fecc77c01
Merge pull request #3846 from 3d-gussner/MK3_3.12_XYZ_cal_fix
MK3_3.12: XYZ cal change message and add LCD ouput
2022-12-20 15:14:33 +01:00
3d-gussner
e511996cd4
Merge pull request #3845 from 3d-gussner/MK3_3.12_tm_partial_lock
MK3_3_12: TM: Prevent lockout on invalid model values
2022-12-20 14:37:24 +01:00
3d-gussner
eb9d58a6e0
Merge pull request #3826 from 3d-gussner/MK3_3.12_tm_default_state
MK3_3.12 TM: Provide full defaults for model data and enable it by default
2022-12-20 14:35:56 +01:00
3d-gussner
5a1743711c Change xyz cal message up to 24 min. instead approx. 12 min. 2022-12-20 14:34:25 +01:00
3d-gussner
2f8b2dcad4 Add LCD output during xyz calibration 2022-12-20 14:30:06 +01:00
Yuri D'Elia
650c76e88d TM: Force initialization after reset 2022-12-20 07:06:37 +01:00
Yuri D'Elia
7bf8a64d38 Improve MSG_ACK_ERROR message 2022-12-19 10:50:50 +01:00
Yuri D'Elia
62d362f45f Also prevent longpress when Stopped 2022-12-19 10:50:34 +01:00
Yuri D'Elia
64eefa969b TM: Disallow preheat/filament actions when stopped
Require acknowledgement first

Fix cherry-pick mmu2 issue
2022-12-19 10:50:06 +01:00
Yuri D'Elia
5fc277469a TM: Allow to resume without a running print
If there is no running print, and the printer is Stopped, add a new
"Acknowledge error" menu entry to unlock the printer.

This simply calls lcd_print_stop(), which is identical in behavior to a
thermal error with a running print.
2022-12-19 10:48:40 +01:00
Yuri D'Elia
3c1c2fd2ca Use menu_set_block() in ThermalStop()
Set a menu block for fatal thermal errors instead of abusing
lcd_return_to_status() to kick the user out of the menus.

This now allows a thermal model error to be recoverable through menu
access.
2022-12-19 10:48:26 +01:00
Yuri D'Elia
5e50a15c88 Do not show/call LCD status updates when unchanged
This mostly prevents useless serial noise
2022-12-19 10:48:12 +01:00
Yuri D'Elia
a551536386 TM: correctly mark repeated anomalies 2022-12-19 10:47:58 +01:00
Yuri D'Elia
3b65aa06c5 TM: Clear the Stopped state when stopping the current print
We allow resuming from the LCD via start print and resume print,
it makes sense to clear the error on stop too.

For this reason distinguish whether the action is performed
automatically or manually (ie: interactively).

The error is only cleared when the command is run interactively.
2022-12-19 10:47:41 +01:00
Yuri D'Elia
94583c861b Rename print_stop() to lcd_print_stop_finish() for clarity 2022-12-19 10:47:26 +01:00
Yuri D'Elia
d37a2a173a Parenthesize IS_SD_PRINTING defensively 2022-12-19 10:47:10 +01:00
Yuri D'Elia
de20fc6a5a Replace two expressions with cmd_head 2022-12-19 10:46:58 +01:00
Yuri D'Elia
5ab0dcb4c5 Allow M310 to bypass the Stopped state for recovery
Since M310 cannot change the heaters, allowing M310 S0 (and changing
parameters) allows to recover a usb-controlled printer which has been
locked-out due to bad model settings.
2022-12-19 10:46:45 +01:00