Commit Graph

4696 Commits

Author SHA1 Message Date
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
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
Yuri D'Elia
42125b4bb2 Keep a pointer past the line number in cmdqueue
This allows to skip line numbers transparently and perform faster
checks on the actual command to process.
2022-12-19 10:46:33 +01:00
Yuri D'Elia
c890c9e8b0 TM: Do not lockout the menus on thermal errors
This prevents the ability to run gcode from the SD card.

In a thermal error with faulty values, and without serial access, this
is the only way to process an M310 instruction and recover.
2022-12-19 10:46:17 +01:00
3d-gussner
263a4959d7 Fix µ character shown on translations
Fix cherry-pick issues
2022-12-16 15:58:29 +01:00
Yuri D'Elia
4438aa4909 TM: reset fan measuring state when changing speed
Ensure that fan checks are reset and use the new speed at each step of
the calibration.

This also gives extra time to the fan to ramp-up from a cold start,
when a fancheck could previously start right *after* the speed change.

Should fix #3791
2022-12-16 15:31:34 +01:00
Yuri D'Elia
f81b2a00c1 Restore the previous model state when performing a nozzle change
Do not force-enable the model if it was previously disabled.

Fix cherry-pick issue lcd_show_fullscreen_message_yes_no_and_wait_P
2022-12-15 06:42:21 +01:00
Yuri D'Elia
f194bb1242 wizard: Allow finishing the calibration through menus
If the wizard is interrupted during model calibration, allow the
menu to mark "temperature model" calibration as complete.
2022-12-15 06:32:56 +01:00
Yuri D'Elia
41be93735c eeprom: Document new calibration state 2022-12-15 06:32:35 +01:00
Yuri D'Elia
4ce808c98b wizard: Rework the thermal model calibration logic
- Correctly sequence the enqueued commands in order to check for the
  real calibration result.
- Perform autocalibration with self-check enabled.
- Only save/continue the wizard if autocalibration succeeds.
2022-12-15 06:32:14 +01:00
Yuri D'Elia
6d83a494d6 selftest: Handle thermal errors in lcd_selfcheck_check_heater
- Simplify lcd_selfcheck_check_heater loop
- Check for/abort on Stopped (indicating a thermal failure).
2022-12-15 06:32:01 +01:00
Yuri D'Elia
d2019b70f2 Remove M999 remnants
This was already removed in fc10ca3146
but got reinstated by mistake in the mmu2 merge.

Also remove another incorrect Stopped usage.
2022-12-15 06:31:18 +01:00
Yuri D'Elia
c7812063d9 TM: Restore all original values if autotune fails
- Ensures repeated autotune attempts with self-check can't succeed due
  to different starting conditions.
- Allows for a simpler workflow during selftest and wizard if autotune
  fails.
2022-12-15 06:29:24 +01:00
Yuri D'Elia
f6c16455bb TM: Store only the last autotune result state
- Remove tm::valid and temp_model_valid as it's a duplicate of the
  calibrated() state.
- Add temp_model_autotune_result() for future use.
2022-12-15 06:29:10 +01:00
Yuri D'Elia
dac73c9582 TM: Set default resistance levels for MK3/MK3S
Provide average calibrated values for all fan levels for MK3/MK3S
variants and enable the model by default.

This ensures the calibration step is not skipped unless explicitly
disabled.

Force-clear fan values during autotune to restore the previous
calibration behavior, as fan resistance levels can be too big and
prevent the autotune-with-selfcheck to fail.
2022-12-15 06:28:57 +01:00
Yuri D'Elia
d84231f2d5 Fix potential buffer overflow in LCD messages 2022-12-15 06:28:46 +01:00
Yuri D'Elia
6a3d82e492 TM: Remove unnecessary display comments
Favor code readability
2022-12-15 06:28:22 +01:00
Yuri D'Elia
1e19eedf26
Merge pull request #3806 from 3d-gussner/MK3_3.12_Fix_M862.4_strict
MK3_3.12: Fix `M862.4` with [strict] mode
2022-12-12 13:04:12 +01:00
Yuri D'Elia
a6eff8f8a5 Simplify firmware/gcode version comparisons
Fix cherry-pick issue
2022-12-12 12:43:13 +01:00
3d-gussner
49506b5348 Fix M862.4 with [strict] mode
Max 8 falvor versions

Fix cherry-pick issues
2022-12-06 13:31:44 +01:00
3d-gussner
a1da5ed1ad Add Nozzle change menu to FARM mode under Settings
Fix cherry-pick issue
2022-12-06 11:28:21 +01:00
3d-gussner
b2b8fee015
Merge pull request #3790 from 3d-gussner/MK3_3.12_Nozzle_change
Fix yes no for Nozzle change
2022-11-30 17:59:34 +01:00
3d-gussner
12fc82fc36 Fix yes no 2022-11-30 16:16:57 +01:00
3d-gussner
b5b4e4d335
Merge pull request #3789 from 3d-gussner/MK3_3.12_Nozzle_change
Mk3 3.12 nozzle change
2022-11-30 15:51:17 +01:00
3d-gussner
6062a507d9
Merge pull request #3770 from 3d-gussner/MK3_3_12_Temp_model_cal_wizard
PFW-1434: MK3_3.12 Temp model calibration during wizard
2022-11-30 15:34:01 +01:00
3d-gussner
7a42af1ba6 Update internal translations
Fix G28 W
2022-11-30 15:23:31 +01:00
Alex Voinea
ade8a87a3f fullscreen message: use \n to force the next word on the next line
Useful for printing short URLs since those contain punctuation characters, which get treated at the end of a word under usual circumstances
2022-11-30 15:23:07 +01:00
Alex Voinea
8261712635 Fix recursion 2022-11-30 15:22:42 +01:00
3d-gussner
d87f499443 Nozzle change menu
Fix cherry pick
2022-11-30 15:20:44 +01:00
3d-gussner
ac55c103a4 Update internal translations
Fix typo
2022-11-24 11:03:04 +01:00
D.R.racer
a03183723c Fix & optimize FW version parsing and checking
PFW-1433
2022-11-23 13:58:55 +01:00
3d-gussner
6d7d5d4ef3 Fix typo
Add Norwegian translations thanks to @OS-kar
2022-11-22 08:31:12 +01:00
3d-gussner
696117e73b Fix cherry-pick 2022-11-20 11:14:06 +01:00
3d-gussner
6e330c11a7 Update Temp Model messages
Deepl translate cs,de,es,fr,it,nl,pl
2022-11-20 11:12:20 +01:00
3d-gussner
f8edad2fba Unhack selftest hack during wizard 2022-11-20 11:05:45 +01:00
Alex Voinea
0f70665e44 XYZ calibration fixes 2022-11-20 11:05:26 +01:00
Alex Voinea
7e9d9ade5c Fix wizard serial messages 2022-11-20 11:03:06 +01:00
3d-gussner
7fe1a50899 Inital Temp Model cal wizard 2022-11-20 11:02:38 +01:00
3d-gussner
a8de9d5696 Bump up build number to 5576
+2 for https://github.com/prusa3d/Prusa-Firmware/pull/3745
+1 commit
+1 merge
2022-11-14 14:17:11 +01:00
Alex Voinea
478a9a6cec MK2.5: unblock planner after plan_abort_hard() 2022-11-11 09:17:17 +01:00
3d-gussner
de562800ca Fix Long-press cherry-pick from https://github.com/prusa3d/Prusa-Firmware/pull/3737
Fix eeprom documentation
Update pot and po files as pre-release task
Bump up to FW 3.12.0-RC1 and build number +2 (+1 commit + 1 merge)
2022-11-07 10:37:43 +01:00
Guðni Már Gilbert
e9b7763af6 Fix long-press LCD inactivity timeout
Fixes #3715

When a long-press is triggered, the LCD inactivity timer
needs to be restarted. This is done with lcd_timeoutToStatus.start()

This also fixes situations where a long-press is triggered, and the timer
times out immediately (because it was not reset properly)

Change in memory:
Flash: +8 bytes
SRAM: 0 bytes
2022-11-07 10:11:35 +01:00
3d-gussner
4785eedc06 Fix typo
Add lcd_setatatus_serial to output lcd status message and serial at the same time
2022-11-02 10:19:16 +01:00
3d-gussner
67877acbf6 Fix MK25/S builds 2022-10-28 05:39:42 +02:00
3d-gussner
6d358187ff Temp Model cal. menu 2022-10-28 05:39:14 +02:00
3d-gussner
cb5e6d700b Rename Sheets
- `Satin 1` to `Satin  `
- `Satin 2` to `NylonPA`
2022-10-24 08:07:18 +02:00
3d-gussner
1b08776873 Change fan RPM display to 5 digits
All credits to @ WarrenSchultz for initial PR https://github.com/prusa3d/Prusa-Firmware/pull/3656
2022-10-19 07:01:54 +02:00
3d-gussner
162ab4538f rename Extruder fan to Hotend fan
Fix cherry-pick issues
2022-10-19 07:01:07 +02:00
Alex Voinea
00de54adfb Enable MISO pullup during SD CMD0
fix typo
2022-10-10 09:43:07 +02:00
3d-gussner
d9e8b18569
Merge pull request #3667 from 3d-gussner/MK3_3.12_fix_eeprom_documentation_part2
MK3_3.12 fix eeprom doxygen documentation
2022-10-07 08:25:46 +02:00
3d-gussner
a061f4ec32 Fix Typo 0X0 to 0x0 2022-10-06 15:34:59 +02:00
3d-gussner
76cc9b9c20 Add Temp Model eeprom documentation 2022-10-06 15:34:24 +02:00
3d-gussner
07ad255f7d replace tab with spaces
fix cherry-pick issues
2022-10-06 15:33:24 +02:00
Yuri D'Elia
ae1c88823c Also consume longpress in lcd_consume_click() 2022-10-06 15:22:08 +02:00
Yuri D'Elia
8ae499c352 TM: Consume LCD click after calibration
Consume any pending LCD click after the temperature model calibration.
Since we're already in the status menu, the usual consume action is not
done automatically here.
2022-10-06 15:21:52 +02:00
3d-gussner
350b2a6993 Version changed (3.12.0-BETA1 build 5536) 2022-09-29 19:57:46 +02:00
3d-gussner
6c6f6abfc0 Rename EN_ONLY to EN_FARM
remove DEBUG/DEVEL/ALPHA/BETA lcd warning

Fix cherry-pick issues
2022-09-29 17:47:05 +02:00
3d-gussner
ff85e8e100 BETA firmware message only in English
Rephrase BETA firmware message to fit on two screens
ALPHA message same as DEVEL
Fix ALPHA DEVEL message

Fix cherry-pick and use MSG_AUTODEPLETE
2022-09-29 17:25:41 +02:00
Yuri D'Elia
aa721cafd9 lcd_print_pad: do not overflow len when truncating the string 2022-09-26 12:18:47 +02:00
Yuri D'Elia
6bee4fec8d Remove unneeded lcd_finishstatus() 2022-09-23 14:55:03 +02:00
Yuri D'Elia
b710ca0e58 Improve warning behavior during thermal anomaly
The current code forces any warning to return the user to the status
screen in order to show the message.

Thermal anomaly warnings can repeat at very short intervals, making menu
navigation (to pause/tune the print) impossible.

We now check if the message to be displayed is the same and only force a
kickback for new messages.

This partially reverts https://github.com/prusa3d/Prusa-Firmware/pull/3600
since we need the string to be null terminated for ease of comparison.

We pad the status line at display time instead using the new
lcd_print_pad() function which achieves the same effect.
2022-09-23 14:55:03 +02:00
Yuri D'Elia
bb0489cba6 Do not hang during startup
In ultralcd_init() do not use lcd_setstatuspgm() to initialize the
welcome message.

The internal call to lcd_finishstatus() requires the serial to be
already available. Split the function into lcd_padstatus() to pre-pad
the string and save some space.
2022-09-21 16:19:08 +02:00
Alex Voinea
7bd9e5e06e Move strings to progmem 2022-09-21 15:09:27 +02:00
Yuri D'Elia
140961290d Do not reset line on serial commands without N
Fix regression introduced in fc10ca3146.

Accept incoming serial commands without line numbers (assumed to be
injected by the host), but do not reset the last line count when doing
so.
2022-09-21 15:05:21 +02:00
Yuri D'Elia
2bd4aef23e Temperature model: update R0 estimate
Update the default R0 estimate thanks to a larger dataset.
This improves the error margin during self-check.
2022-09-21 15:05:05 +02:00
Guðni Már Gilbert
9bff10add5 Don't inline the function
Change in memory:
Flash: -44 bytes
SRAM: 0 bytes
2022-09-21 15:04:40 +02:00
Guðni Már Gilbert
b1bee597aa Remove atomic_update parameter
Change in memory:
Flash: +24 bytes
SRAM: -0 byte
2022-09-21 15:04:40 +02:00
Guðni Már Gilbert
b2530eeb13 Optimisation: Remove duplicated code in cmdqueue_could_enqueue_back()
Code is 28 lines shorter :)

Change in memory:
Flash: -42 bytes
SRAM: 0 bytes
2022-09-21 15:04:40 +02:00
Guðni Már Gilbert
33495d7516 Remove redundant for-loop
Now that lcd_status_message is now initialised correctly at boot-up,
this for-loop is no longer required. Now lcd_status_message is
only set in lcd_updatestatus() which always calls lcd_finishstatus()

lcd_finishstatus() makes sure the message does not exceed 20 characters

Saves 34 bytes of flash
2022-09-21 15:02:26 +02:00
Guðni Már Gilbert
540ce31082 Don't initialise lcd status message in definition
static variables are automatically zero initialised. Now that the
status line message is initialised in ultralcd_init(), we don't
need to set the variable in global scope.

Saves 22 bytes of flash and 1 byte of SRAM
2022-09-21 15:02:26 +02:00
Guðni Már Gilbert
336c41ffe3 Initialise status line message in setup()
Fixes #3581
2022-09-21 15:02:26 +02:00
Alex Voinea
9225c5e28b Show firmware version on splash screen 2022-09-21 14:59:36 +02:00
Yuri D'Elia
178b3e1db4 Update current FW version 2022-09-19 18:11:19 +02:00
3d-gussner
d706ebb556 Update forgotten MSG_ c= 2022-09-14 11:33:24 +02:00
3d-gussner
6e3be50389 Clean up 2022-09-14 11:33:24 +02:00
3d-gussner
f65e8ae5dd Add MSG_ALWAYS 2022-09-14 11:33:24 +02:00
3d-gussner
129b646c58 Fix MSG_ c=
Add MSG_ to messages.c/h
2022-09-14 11:33:24 +02:00
3d-gussner
ee6821eb0e Add missing MSG_ c= r= 2022-09-14 11:33:24 +02:00
3d-gussner
270a1086ab No translation needed 2022-09-14 11:33:24 +02:00
3d-gussner
0a68de0bbe Update MSG c=xx
Mark unused strings as `_n`
2022-09-14 11:33:24 +02:00
3d-gussner
fd2d62dcd4 Set reserved space back after cherry-pick 2022-09-14 11:33:24 +02:00