Commit Graph

4696 Commits

Author SHA1 Message Date
Yuri D'Elia
4a4be21374 TM: Fix UV identity 2023-02-15 11:24:49 +01:00
Yuri D'Elia
6d51752ac8 TM: Optimize temp_model_set_lag
Save about 20 bytes by rewriting the sample count check
2023-02-10 15:44:28 +01:00
Yuri D'Elia
b7961ae0e9 TM: Handle L/TEMP_MODEL_LAG 2023-02-10 15:44:28 +01:00
Yuri D'Elia
e147fc2cb0 TM: Handle UV (PTC loss)
Model UV as power-invariant, so that scaling P doesn't change the
intercept location (that is, the zero point remains at the same
temperature even for more powerful heaters).

NOTE: It's not clear to me whether this is generally true (couldn't
find a datasheet from the same heater in diffent power variants
showing the efficiency loss)
2023-02-10 15:44:28 +01:00
Yuri D'Elia
02775fb79e TM: Handle D/TEMP_MODEL_fS 2023-02-10 15:44:28 +01:00
Yuri D'Elia
70fd9a336b TM: Handle UVDL set/load/report/upgrade
- Expose TEMP_MODEL_fS and TEMP_MODEL_LAG as D and L respectively,
  initializing the default values based on the previous hard-coded
  values.
- Always round L to the effective sample lag to future-proof model
  upgrades or changes (the stored value _is_ the effective value).
- Introduce UV as a new linear term for PTC heaters, defaulting
  to an identity for model backward-compatibility.
2023-02-10 15:44:28 +01:00
Yuri D'Elia
5a1ed1519c TM: Allocate new eeprom parameters for PTC handling 2023-02-10 15:44:28 +01:00
Yuri D'Elia
1445c2eecc Backport eeprom functions from 3.13 2023-02-10 15:44:28 +01:00
Yuri D'Elia
b23476aaf3 TM: Do not emit an "error:" on the serial for recoverable errors
Use "echo:" for thermal model error reporting to avoid octoprint
automatically sending a M112 kill.

Keep using "error:" instead for other thermal errors (MAXTEMP/etc).

This should allow resuming a thermal mode pause with the default
octoprint settings.
2023-02-10 14:25:05 +01:00
3d-gussner
8aaf77a6da Change to Thermal model
Add prusa.io/tm-cal link
and update all TM related translations
2023-02-08 18:34:11 +01:00
3d-gussner
c9722c2b63
Merge pull request #3956 from wavexx/tm_cal_check_312
TM: Check for PC parameters more carefully (3.12)
2023-01-27 14:57:41 +01:00
Yuri D'Elia
8ee084944a wizard: Return to status after calibration 2023-01-27 14:55:51 +01:00
Yuri D'Elia
68372c0c0e wizard: Do no set "Self test OK" as an alert message
Alert messages are intended to persist above "info" messages, thus
preventing further calibration status updates to be shown (such as
thermal model calibration).

Just set the message as a regular status message.

Fixes #3892
2023-01-27 14:55:51 +01:00
Yuri D'Elia
4e3152dc1d wizard: Disable TM warnings during calibration
During calibration model warnings are possible/normal. This is
apparently leading some into thinking the hotend might be faulty
and abort the calibration with a hard reset.

Disable warnings/beeps during calibration.

Rely on the error threshold only.
2023-01-27 14:55:37 +01:00
Yuri D'Elia
6058de4ae0 TM: Do not restrict autotune temperature
Fix a wrong type that prevents running TM autotune at temps >127
2023-01-27 14:55:27 +01:00
Yuri D'Elia
36c3814dc2 TM: Check for PC parameters more carefully 2023-01-26 23:47:17 +01:00
3d-gussner
d8ae7cbe11 Revert inverted "Running wizard ..." message
Update build number +1 for PR + one for merge
2023-01-20 09:13:19 +01:00
3d-gussner
149ecb857c Version changed (3.12.1 build 5684) for FW3.12.1 2023-01-19 16:36:26 +01:00
3d-gussner
cf08422672 Version changed (3.12.1-RC1 build 5682) for FW3.12.1-RC1 2023-01-17 09:49:56 +01:00
Yuri D'Elia
4a3644052d TM: Fan measuring state reset unification
Add resetFanCheck() to reset the fan measuring state as it's needed in
several places and save some flash space.
2023-01-16 08:43:23 +01:00
Yuri D'Elia
16922c2643 TM: Restore extruder autofan state when stopping/resuming
During thermal errors all fans are set to full speed.

When the print is resumed or stopped *and* the thermal error is gone,
also restore the autofan state.

Fixes #3893
2023-01-16 08:43:23 +01:00
Yuri D'Elia
128a23544d TM: Set the cal status bit when running M310 A directly
Running `M310 A` should set the TM calibration bit status if the
autotune procedure was successful.

Partially addresses #3891 and #3890, since running `M310 A F0` should
*still* count as valid calibration data and is not something that can be
replicated by using the LCD (which enforces self-test).
2023-01-16 07:33:23 +01:00
Yuri D'Elia
7adfd0c670 wizard: Do not complain about missing calibration if model is disabled
This fixes #3891 without having to set the calibration bit, meaning
that if the model is later re-enabled without a real calibration, a
prompt is shown as expected.
2023-01-16 07:31:57 +01:00
3d-gussner
5b8321d602 Move Z to top during Nozzle change 2023-01-16 07:27:59 +01:00
Alex Voinea
fffb15cc81 Fix MK2.5 softReset()
Disable the watchdog early in the program

More documentation for pins file

retrigger build

fix watchdog not getting disabled on user app boot

Fix interrupts not enabled during setup()
2023-01-13 15:41:54 +01:00
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
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
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