Commit Graph

5325 Commits

Author SHA1 Message Date
Guðni Már Gilbert d483531606 PFW-1358 update c values 2022-10-08 09:40:43 +00:00
Guðni Már Gilbert 00ccdcd467 PFW-1358 change MSG_BTN_MORE from I1 to N1 2022-10-08 09:25:06 +00:00
Guðni Már Gilbert d6e0f47739 PFW-1403 Rename ReportErrorSource to ErrorSource for shorter code 2022-10-08 08:51:32 +00:00
Guðni Már Gilbert 33690b927a PFW-1403 Fix issue where physical MMU buttons do not dismiss error screen 2022-10-08 08:51:32 +00:00
Guðni Már Gilbert 8f0de44d84 PFW-1358 Move 'More' button to the corner of the screen
Make 'More' button position consistent with 3-button screen.
2022-10-08 08:50:40 +00:00
Guðni Már Gilbert 7264391c5f PFW-1358 Fix and optimise button choice positions 2022-10-08 08:50:40 +00:00
Guðni Már Gilbert 9046fb3d44 PFW-1358 Adjust positions of button choices 2022-10-08 08:50:39 +00:00
Guðni Már Gilbert 06427087c0 PFW-1358 Change "More" button to single character 2022-10-08 08:50:39 +00:00
Tomáš Jozífek 233174cf86 Fill the doc for the EEPROM value at 0x0DA1 - active_sheet 2022-10-07 11:59:57 +02:00
3d-gussner 2067cddc46
Merge pull request #3631 from 3d-gussner/MK3_fix_eeprom_documentation_part1
MK3 fix eeprom doxygen documentation
2022-10-06 15:29:15 +02:00
Alex Voinea 629fc9d0f1
Merge pull request #3638 from wavexx/tm_cal_click
TM: Consume LCD click after calibration
2022-10-06 14:29:40 +02:00
3d-gussner bab83704a1 Fix Typo 0X0 to 0x0 2022-10-06 13:23:16 +02:00
Yuri D'Elia bfaed2768c
Merge pull request #3652 from wavexx/cmake_build_v2
cmake build improvements v2
2022-10-05 14:20:28 +02:00
Yuri D'Elia d867da201f cmake: Define FW_VARIANT instead of copying Configuration_prusa 2022-10-05 01:26:30 +02:00
Yuri D'Elia 1d3ee1caba build: Add Configuration_var.h as a configuration wrapper
Instead of including Configuration_prusa.h directly, include
Configuration_var which then includes the proper variant file though a
preprocessor macro.

This allows to keep the existing build system intact, but also redefine
at compile time the final header without having to make copies on the
file system.
2022-10-05 01:26:26 +02:00
Yuri D'Elia 2ae376d633 build: Size optimization
Explicitly force-noinline xyzcal_scan_pixels_32x32_Zhop to match the
previous LTO build behavior.
2022-10-04 12:13:09 +02:00
Yuri D'Elia 5ed6bd7f8b cleanup: Fix more spourious missing return warnings
Rewrite to use a temporary and get rid of the warning.
The generated asm is *unchanged*.
2022-10-03 21:54:08 +02:00
3d-gussner 992845198d
Merge pull request #3648 from wavexx/more_cleanups
cleanup: Expand tabs to fixup suspicious indentation warnings
2022-10-03 11:53:42 +02:00
Yuri D'Elia 4cc6695195 cleanup: Expand tabs to fixup suspicious indentation warnings 2022-10-02 20:42:36 +02:00
Yuri D'Elia a8e85bd146 cmake: Work-around gcc 7 not supporting SOURCE_DATE_EPOCH 2022-10-02 20:32:32 +02:00
Yuri D'Elia 1d520f9165 cmake: Make builds fully reproducible by default
- Work-around SOURCE flags being reset for each project when setting the
  random-seed property by calling a support function.
- Likewise, set correct flags for reproducibility when creating archives.
- Strip source prefix paths from debug info

This should set the EPOCH using the last git commit date when available,
but it's not currently implemented. Just set the EPOCH to be 0 for now.
2022-10-02 20:32:32 +02:00
vintagepc d8c9c4450f
Merge pull request #3641 from vintagepc/build-with-cmake
Build the firmware with cmake
2022-10-02 13:05:32 -04:00
Yuri D'Elia c7b6b9a99b cleanup: Suppress unused argument warnings 2022-09-30 15:08:11 +02:00
VintagePC c522330433 Merge remote-tracking branch 'upstream/MK3' into build-with-cmake 2022-09-30 09:04:35 -04:00
Yuri D'Elia 49f96213a4 Also consume longpress in lcd_consume_click() 2022-09-30 14:29:37 +02:00
Yuri D'Elia b95d508574 cleanup: Remove implicit fallthrough in CRC validation 2022-09-30 12:55:47 +02:00
Yuri D'Elia 71be6b19d4 cleanup: Remove return value from MMU2Serial::write()
Removes a missing return warning.

Looks like we don't handle overflow at the moment and in all surrounding
code, so let's remove the return value for now.
2022-09-30 12:55:47 +02:00
Yuri D'Elia 6cfe000ac9 cleanup: Reorder members to match initialization order 2022-09-30 12:55:47 +02:00
Yuri D'Elia 398a4bf403 cleanup: Do not return const values from functions
This generates a warning under -Wextra, since in most cases a const
value doesn't prevent buggy code (as copies are allowed) while
preventing some optimizations (such as move operations) to take place.
2022-09-30 12:55:47 +02:00
Yuri D'Elia d6af13dfc1 cleanup: Supress missing return warnings
Rewrite the function with a temporary to avoid the spourious no-return
warning.

The generated code is *unchanged*.
2022-09-30 12:31:07 +02:00
Yuri D'Elia 31ea48246a 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-09-30 12:24:54 +02:00
3d-gussner 74e15ac233 Rename EN_ONLY to EN_FARM
remove DEBUG/DEVEL/ALPHA/BETA lcd warning
2022-09-29 16:39:02 +02:00
3d-gussner 346dfbdbb3 Fix MSG_SPOOL_JOIN 2022-09-29 10:54:46 +02:00
3d-gussner c7b500af1e BETA firmware message only in English
Rephrase BETA firmware message to fit on two screens
ALPHA message same as DEVEL
Fix ALPHA DEVEL message
2022-09-29 10:48:16 +02:00
3d-gussner 1a8f18318c Add Temp Model eeprom documentation 2022-09-28 18:15:23 +02:00
3d-gussner 302e4b679c replace tab with spaces 2022-09-28 17:37:46 +02:00
Yuri D'Elia 709d07310a lcd_print_pad: do not overflow len when truncating the string 2022-09-26 11:26:10 +02:00
Alex Voinea 7fb53899dc Merge branch 'MK3' into MK3_MMU2_fix1 2022-09-23 14:55:23 +02:00
Yuri D'Elia 26b091d50e Remove unneeded lcd_finishstatus() 2022-09-23 11:54:16 +02:00
Yuri D'Elia 80c06bda55 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-22 16:12:35 +02:00
Tom Mittendorf 24b638b5d4 fixed undefined behaviour when left shifting a negative number 2022-09-21 16:21:19 +02:00
Yuri D'Elia 9a9aadca87 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:12:16 +02:00
DRracer f7d4095479
Merge branch 'MK3' into MK3_MMU2_fix1 2022-09-21 15:18:44 +02:00
Alex Voinea 2cdd3ba364 Move strings to progmem 2022-09-21 14:53:54 +02:00
Yuri D'Elia 16d1ef8510
Merge pull request #3560 from leptun/splash_version
Show firmware version on splash screen
2022-09-21 14:47:41 +02:00
Yuri D'Elia a1213d6a6e
Merge pull request #3600 from gudnimg/init-lcd-status
Fix initialization of LCD status line message
2022-09-21 14:46:10 +02:00
Yuri D'Elia ca9a28eff2
Merge pull request #3612 from wavexx/tm_update_r0
Temperature model: update R0 estimate
2022-09-21 14:46:03 +02:00
Yuri D'Elia bccdab4c22
Merge pull request #3615 from wavexx/line_cnt_reset_fix
Do not reset line on serial commands without N
2022-09-21 14:45:46 +02:00
3d-gussner 183e21aa0b
Merge pull request #3599 from 3d-gussner/MK3_MMU2_messages
PFW-1339 - Update MMU2 translations
2022-09-21 10:27:01 +02:00
Yuri D'Elia 129df6dd4a 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 10:19:16 +02:00
Yuri D'Elia 1c4e9463ec 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-20 16:57:54 +02:00
Guðni Már Gilbert eb7de5149b Don't inline the function
Change in memory:
Flash: -44 bytes
SRAM: 0 bytes
2022-09-20 06:34:24 +02:00
Guðni Már Gilbert c8a8484ca7 Remove atomic_update parameter
Change in memory:
Flash: +24 bytes
SRAM: -0 byte
2022-09-20 06:34:24 +02:00
Guðni Már Gilbert 76fb4610ea 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-20 06:34:24 +02:00
Yuri D'Elia 156b5e5b99 Update current FW version 2022-09-19 18:15:39 +02:00
Alex Voinea 6a470791d3 Allow sending uint16_t values to registers 2022-09-19 15:13:37 +02:00
3d-gussner 770fdcd83b Fix typo, thanks to @gudnimg 2022-09-19 08:02:40 +02:00
Guðni Már Gilbert 28b0ef1acb PFW-1369 Use same ramming sequence as default settings in Slicer 2022-09-19 07:23:03 +02:00
3d-gussner 075a80e264 Add missing text
Finish Dutch translation
2022-09-17 17:38:45 +02:00
3d-gussner 068f4763e2 Update translatable strings to match our extraction macros
Update pot and po files
2022-09-17 16:53:30 +02:00
3d-gussner 47d7ea5dfd Add MSG_LOAD_ALL and replace it a two loactions -10bytes flash 2022-09-17 16:36:09 +02:00
Guðni Már Gilbert 25a7dc8397 Fix: Filament Already Loaded only has two buttons 2022-09-17 16:36:09 +02:00
Guðni Már Gilbert 15a8c8fe37 Fix: Unload Manually did not send any button to the MMU 2022-09-17 16:36:09 +02:00
Guðni Már Gilbert 9b4a621275 Fix: Fsensor errors only have one reset button 2022-09-17 16:36:09 +02:00
Guðni Már Gilbert 037d51b049 Fix: Filament Already Loaded only has two buttons 2022-09-17 12:21:42 +02:00
Guðni Már Gilbert 3b60b894da Fix: Unload Manually did not send any button to the MMU 2022-09-17 12:21:42 +02:00
Guðni Már Gilbert e7b7d97f11 Fix: Fsensor errors only have one reset button 2022-09-17 12:21:42 +02:00
Guðni Már Gilbert be7c1d55c8 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-17 09:13:07 +00:00
Guðni Már Gilbert 4d6d267aef 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-17 08:57:30 +00:00
Guðni Már Gilbert f1e127ace4 Initialise status line message in setup()
Fixes #3581
2022-09-17 08:53:36 +00:00
3d-gussner 404c622301 Finish German translation
increase 2nd langusge size to 0x3500 13567bytes to fit mmu2 translations 🤞
2022-09-17 10:35:30 +02:00
3d-gussner ec22e5faeb Shorten message to 20 chars
add 01234567890123456789 ruler
2022-09-17 10:34:24 +02:00
3d-gussner 539cdbfeea Lower MSG_ rows 2022-09-17 08:48:56 +02:00
3d-gussner 78fdf33f67 Update Firmware.pot and Firmware_de.po
Started German translation Part 1
Updated c= r= for German translations being longer than 8 rows
2022-09-16 20:42:50 +02:00
3d-gussner 8480c1cb7a Added //#define FARM_CONNECT_MESSAGE 2022-09-16 19:33:22 +02:00
3d-gussner 88b58cdcd5 Update messages missing c= r=
Change MMU2 KEEPALIVE_STATE to IN_PROCESS
2022-09-16 19:24:11 +02:00
3d-gussner f4f09e4062 update mmu2 messages c= r= values 2022-09-16 19:18:23 +02:00
3d-gussner 0f8d84082a Update button menu documentation as there are 1/2/3 options 2022-09-16 19:11:11 +02:00
3d-gussner 9d959f5d12 Prepare progress messages for translation
Remove duplicate messages
2022-09-16 19:08:06 +02:00
3d-gussner 89a03c1f0d MMU2/lang: Update translatable strings to match our extraction macros 2022-09-16 19:02:04 +02:00
3d-gussner 50b6044703 Use origin message on serial 2022-09-16 18:17:50 +02:00
3d-gussner 3f6b05cc35 Remove PAT9125 stats as these aren't different to IR stats 2022-09-16 18:04:21 +02:00
3d-gussner 2ba863d8a5 Reuse MSG_IR_0x_OR_..
fix lowercase
remove todos
2022-09-16 17:23:38 +02:00
3d-gussner edad625cf7 RIP Bondtech long live the Extruder 2022-09-16 16:31:27 +02:00
3d-gussner 37cde856e9 Rename Auto_deplete to Spool_join
Fix some missing MSG_ c= r=
2022-09-16 16:25:47 +02:00
D.R.racer f18493f361 Save some space due to shorter MMU error texts
applies https://github.com/prusa3d/Prusa-Error-Codes/pull/62
2022-09-16 12:12:08 +02:00
D.R.racer 2d98cae8bd Fixup MK3_MMU2 branch after rebase onto MK3 2022-09-16 11:08:03 +02:00
Guðni Már Gilbert 16713aa25a Optimisation: scopeState is already set by SendReadRegister
Saves 2 bytes of flash
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert e9f5a95d4b PFW-1362 Make sure FINDA runout is impossible with MMU disabled
Since mmu_loop() is called in the main loop() function
when the MMU is disabled, we need to utilise the
MMU protocol layer to prevent FINDA runout from happening
if MMU is disabled.

We also need to keep in mind we probably can't trigger
a FINDA runout in the middle of a Q0 query.
So my solution now is to wait for the "Finished" state
and check if the FINDA is off during printing.

When "Finished" state appears, the FINDA value should be up
to date.
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 94119744ad PFW-1362 Change isSpoolJoinEnabled to return bool 2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 65a0036dbe PFW-1362 Optimise debug message
Saves 20 bytes of flash :)
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 998ed87f25 PFW-1362 Use PROGMEM messages
The main purpose of these two messages is just to see if SpoolJoin is enabled or not.
"On" and "Off" are descriptive enough.

Saves 16 bytes of flash
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 63b4abb66d PFW-1362 SpoolJoin needs to known what the previous slot was 2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 1010f23959 Fix an issue where findaPressed is never set
This caused instant FINDA runout when the print starts. Now fixed :)
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert b292a5bf4e PFW-1362 temporarily don't use SpoolJoin in Tcodes
I think in the current implementation, this will cause more harm than good.
But we can improve SpoolJoin later
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 7dcfc1484e PFW-1362 temporary debug messages 2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 8610636906 PFW-1362 Add a log when FINDA filament runout is triggered 2022-09-16 10:23:47 +02:00
Guðni Már Gilbert c5bb34f226 PFW-1362 Show if SpoolJoin is enabled or disabled at bootup 2022-09-16 10:23:47 +02:00
Guðni Már Gilbert fb27a7d72b PFW-1362 Remove "NA" EEPROM status 2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 166ecbc7d8 PFW-1362 Fsensor is not required for Spooljoin
Since the Fsensor is not required to use SpoolJoin,
it makes little sense to me that we need the fsensor
to "enable" SpoolJoin
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert d51026d8f7 PFW-1362 Rename settings for consistency 2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 7c95f87867 PFW-1362 Fsensor status is not required for SpoolJoin 2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 715af8fcc2 Rename files to SpoolJoin 2022-09-16 10:23:47 +02:00
Guðni Már Gilbert afc67332c7 PFW-1362 Initial commit 2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 2276217cbb Optimisation: Remove forceMenuExpire variable
During first layer calibration we have the live Z baby step menu
on the LCD and the user can tune their Z offset live.

Once the first layer calibration is done, we want to exit the menu
immediately. For this purpose it is much more efficient to
call lcd_return_to_status(). There is no visual difference
on the LCD for the user.

Change in memory footprint:
Flash: -34 bytes
SRAM: -1 byte
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert e39d1458a1 Fix lost changes during rebase 2022-09-16 10:23:47 +02:00
3d-gussner fae420f1e2 Fix MMU_ALWAYS_CUT enabled in variants 2022-09-16 10:23:47 +02:00
3d-gussner 8e9a49082b Set Cutter OFF if 0xff 2022-09-16 10:23:47 +02:00
3d-gussner b3ec36228d Update doxygen documentation for M704-M709 2022-09-16 10:23:47 +02:00
D.R.racer 2e7258d7a8 Include fix protocol from MMU PR#199 2022-09-16 10:23:47 +02:00
D.R.racer 4d3a5433ad Implement read/write registers for M707/M708 2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 04a1a67b05 PFW-1386 Address TODO
We want to move the Z-axis after the XY move is done.

raise_z cannot be used here because it relies
on current_position[] for all axis.

It is actually 10 bytes cheaper to use the previous method
because syncing current_position with lastpos is surprisingly expensive
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 27ff01cf91 Shorter code
Change in memory:
Flash: 0 bytes
SRAM: 0 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert db1b0ea9ac Optimisation: Set lastpos using memcpy directly
Verified the change by running the M600 gcode. All axis move as expected.

Change in memory:
Flash: -64 bytes
SRAM: 0 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert f984072eab Remove unused #define 2022-09-16 10:23:47 +02:00
Guðni Már Gilbert f49b88c1a1 Optimisation: lcd_commands "M702 C" should be "M702"
Change in memory:
Flash: -2 bytes
SRAM: 0 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 0c1052b0da Optimisation: mmu_M600_load_filament
Don't render full screen for Loading Filament X
this is already done in load_filament_to_nozzle
so no need to do it twice

Change in memory:
Flash: -54 bytes
SRAM: 0 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert bf9ba3c003 Optimisation: setTargetedHotend serial message
Change in memory:
Flash: -130 bytes
SRAM: 0 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 635ae2bf20 M600: Small optimisation in if statements
Change in memory:
Flash: -4 bytes
SRAM: 0 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert f297131792 M600: lcd_change_fil_state does not need to be global
Refactor lcd_alright() to save flash

Change in memory:
Flash: -98 bytes
SRAM: -1 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 2216ba9fbf M600: Ask for which slot to use when loading
This fixes an issue where the assumed slot to use is unknown and
the printer will hang on loading filament 100.

Another good thing is this is an old user feature request which
we have in our 3.12 milestone.

Change in memory:
Flash: +14 bytes
SRAM: -1 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 3e86bbb93f M600: Don't unload if filament is unknown
Change in memory:
Flash: +8 bytes
SRAM: 0 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 05bf5de518 Fix calibrate_z_auto crashing Z-axis
Steps to reproduce:
1. Run M45 Z after booting the printer up

Change in memory:
Flash: -4 bytes
SRAM: 0 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 03b8a6e464 Use raise_z in more places
Change in memory:
Flash: -474 bytes
SRAM: 0 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 4758ac3f1b PFW-1399 Don't show cut filament menu if setting is not enabled 2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 55d2eaf8c0 M706: Only cut filament if the setting is enabled 2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 66994d010d Fix a few cases where rebase overwrote stuff 2022-09-16 10:23:47 +02:00
D.R.racer 0537908d8c Fixup 2 2022-09-16 10:23:47 +02:00
D.R.racer 37b50477cd Fixup after rebase onto MK3 2022-09-16 10:23:47 +02:00
D.R.racer 18423685b6 Cleanup ExpectsResponse usage 2022-09-16 10:22:39 +02:00
D.R.racer d5377c1781 Remove extra "scopeState = ScopeState::FINDAReqSent"
saves ~20B in total
2022-09-16 10:22:39 +02:00
D.R.racer e205d0ee2f Autoretry Idle scope: transf. into Finished, should stay in Processing 2022-09-16 10:22:39 +02:00
D.R.racer 78cbea08e6 Fix pgm_read* usage 2022-09-16 10:22:39 +02:00
D.R.racer 6c0d3b0b78 Optimize MMU protocol logic 2022-09-16 10:22:39 +02:00
D.R.racer 05ad1dc2f6 Refactoring of protocol logic to lower RAM consumption
Should also place the statistics request to the right spot in the state machine.
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert dfddf3eaa5 Initial commit for MMU statistics 2022-09-16 10:22:39 +02:00
Guðni Már Gilbert 2616df66af PFW-1386 st_get_position_mm() is more accurate when using endstops (not homed printer)
If the endstops kick in, then st_get_position_mm shows the actual travel distance. current_position[Z-AXIS] does not get updated correctly thus we cannot use it when unhomed.

current_position[Z-AXIS] is later set to Z_MAX_POS,
we cannot use that either to calculate the travel distance
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert f409426bdc PFW-1386 Refactor raise_z
Removed the "plan" parameter.
We were incorrectly returning from the function if the printer was homed,
but plan = false. This would leave current_position with an incorrect value

If the printer is homed => finish the move and return the travel distance

If the printer is not homed => rely on end stop to prevent damage,
return travel distance even if the endstop stopped the move.
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert 4a1479b5bc PFW-1386 Clamp Z-axis when homed 2022-09-16 10:22:39 +02:00
Guðni Már Gilbert fa6e30389a PFW-1386 Add a TODO
When recovering the Z-axis in M600, we'd like the Z move to
happen after the XY move.
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert 0a90c7ffda PFW-1386 Use Marlin 2 unload sequence for single material
The current unload sequence does not give good results.
The Marlin 2 sequence looks good on my end. This can be later
used to improve M600

Added all the constants from Marlin 2
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert ff91b4670d PFW-1386 Use same code for Z-lift in M600 as in M701/M702
This reduces flash usage by 128 bytes!
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert 099c3a1f1f PFW-1386 fixup 2022-09-16 10:22:39 +02:00
Guðni Már Gilbert 38952f1f33 PFW-1386 Optimisation: st_synchronize is not needed after raise_z_above
Saves 16 bytes of flash
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert 214b6a9220 PFW-1386 M701, M702: Move Z-axis using relative position
* Created a new function raise_z() which will move the Z axis by some
X millimeters. If plan = false, the function will return the
actual travel distance since the move is blocking.
* raise_z_above() is refactored to call raise_z()

Now the M701 and M702 will move the Z-axis relatively, and also
when done, revert the Z axis position when done.
This is a similar behavior as in Marlin 2.
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert 217b537961 PFW-1386 Remove old debug message to save space
Saves 34 bytes of flash
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert bb0bbfb45f PFW-1386 Minor correction to M707 and M708 useage example 2022-09-16 10:22:39 +02:00
Guðni Már Gilbert d78c575399 PFW-1386 Address should accept hexidecimal values
Now these are equal:
M707 A255 C1
M707 A0xFF C1

Both address inputs are interpreted as FF
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert ba7dae5c79 PFW-1386 I don't see a reason for these lines
So I'm removing them
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert 3192a95e78 PFW-1386 Optimise default value assign z_target 2022-09-16 10:22:39 +02:00
Guðni Már Gilbert 20c865c2d4 PFW-1386 Implement 'U' parameter for M702
Similar to 'L' in M701, this does not apply to the MMU
The U parameter controls how much mm the extruder will unload
Default value is 80mm
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert 7e9166976f PFW-1386 Implement 'L' parameter for M701
It is only used when the MMU is disabled. With the MMU we use a defined ramming sequence.

When the MMU is disabled I borrowed the usages from Marlin 2.
The L parameter only defines the length for the "fast" load length.
Default value is 70mm, same as M600
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert 94dd4aec73 PFW-1386 M701 now loads to nozzle with MMU 2022-09-16 10:22:39 +02:00
Guðni Már Gilbert 8462b38446 PFW-1386 Create a common function for M704 to M706
Saves 36 bytes of flash
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert d6564d3617 PFW-1386 if automatic = false, raising Z-axis is done via gcode 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 32ec1587b9 PFW-1386 Implement changes to M702 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 9b0d89213b PFW-1386 Raising Z-axis during M701 is now done via Gcode
If the Z-parameter is not issued, then default behavior will raise
the Z-axis by MIN_Z_FOR_LOAD
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 5bb36546b4 PFW-1386 Implement changes to M701 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert fb087fc535 PFW-1386 Add M707 and M708
WriteRegister and ReadRegister function will create new compiler
warnings due to unused parameters, we can ignore it for now.
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 3664d29b21 PFW-1386 Add M709 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert de0539b630 PFW-1386 Implement M704, M705, and M706 2022-09-16 10:22:38 +02:00
D.R.racer 70532333dc Optimize filament sensor implementation
- remove virtual methods (we only have one fsensor implementation at a time)
- comment out some of the debugging texts
- remove volatile and replace them with proper synchronized access to relevant variables
2022-09-16 10:22:38 +02:00
D.R.racer 2662e09f1e Another message remove from RAM 2022-09-16 10:22:38 +02:00
D.R.racer 0e036b9d8a Save some more RAM in protocol_logic 2022-09-16 10:22:38 +02:00
D.R.racer 022aa53b2d Remove active_extruder completely
we only use 1 extruder + saves ~800B
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 0889109760 Fix corrupted chars in "Engaging Idler" message 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert bac3168ca4 Optimise power_on and power_off
eeprom_update_byte only updates the EEPROM if the value is different

Saves 40 bytes of flash memory
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 0d64cfa2e5 extruder variable should be one byte
Saves 1 byte of SRAM and 132 bytes of flash
2022-09-16 10:22:38 +02:00
D.R.racer 87a4f58e66 PFW-1363 Change MMU Error parking position 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 703c463a49 Optimize unload
Toolchange during print is now much quieter.
Excessive E-motor movement during print is now gone
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 47e57646ea Optimize load
Don't start moving the E-motor immediately

Instead of starting the E-motor move when the load to extruder starts,
we can start when we are loading to the fsensor. At that stage
the MMU has changed from a fast load to a slow load.
2022-09-16 10:22:38 +02:00
D.R.racer 2f0ceabce5 Upgrade protocol to v2.1 - read/write registers + CRC 2022-09-16 10:22:38 +02:00
D.R.racer f18721bee3 Fix unintentional typo 2022-09-16 10:22:38 +02:00
D.R.racer 6d6f9583ea Initialize retryAttempts in constructor 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 485ed4a213 Fix issue where logs show two corrupted chars
Issue only appears when LANG_MODE = 1
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 938fac4058 Remove old comment, button is acknowledged now 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert f717aa161c Remove TODO in ActivatePlannedRequest 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert b9d9308f9f Support 3x Retry in Idle state machine 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert ab32769487 Send button from current state machine 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 4f30cf0ba3 Add missing ProtocolError 2022-09-16 10:22:38 +02:00
Alex Voinea bc85a41059 Fix xflash flashing 2022-09-16 10:22:38 +02:00
D.R.racer 53e2d68183 Retry up to 6x in case of incorrect MMU FW version
Because it looks like the communication drop outs are caused by some electrical issues and we can loose even a byte from the version response, which is deadly for future operation.
2022-09-16 10:22:38 +02:00
D.R.racer 6e5fcb5838 Tune a few MMU progress codes' texts to fit on the LCD 2022-09-16 10:22:38 +02:00
D.R.racer 14b2befb7d Switch from Start Seq into Idle immediately + disable FS autoload on MMU 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 400fec5d9f Reset CustomMsg when Command in progress is None
When a Progress report is started, we set the CustomMsg to MMUProgress.

But there was an issue where, once the reported "Progress" action was done.
We did not reset the CustomMsg to Status. So if we are printing from the
SD card, the file name is not displayed on the LCD.
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 5b184d885c Add LCD_BUTTON_TIMEOUT to enum 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert e59651a279 Remove description in header file
The description are more detailed in the ultralcd.cpp file

No need to document the function in two places :)
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 2fc8b50f11 Fix lcd_show_multiscreen_message_yes_no_and_wait_P after rebase 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert be3f9376ba Add missing break 2022-09-16 10:22:38 +02:00
D.R.racer 09cb9c6ecd Fixup after rebase + discussion 2022-09-16 10:22:38 +02:00
D.R.racer 1d2acb5bd6 Bump MMU FW version to 2.0.19 to match/enforce the necessary compatibility level 2022-09-16 10:22:38 +02:00
D.R.racer fa176c69db Fix protocol error recovery
Communication timeout and Protocol Errors are now distinguished.
In case of a Protocol Error, the printer waits for heartBeatTimeout to allow filling up the input UART buffer (we expect the MMU still produces some bytes).
Once the timeout elapsed, the input UART buffer is cleared and a new Start Sequence is initiated.
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 6bf2aebf04 Fix typo 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 80c640deb9 PFW-1373
Fix the unload procedure when the user has paused a print
then stopped the print after the temperature has reached below 175°C
Now the E-motor will move as expected
2022-09-16 10:22:38 +02:00
VintagePC ba52430e1d Magic numbers are bad... 2022-09-16 10:22:38 +02:00
VintagePC 69c39e2281 An attempt at fixing the retry. Discussion needed. 2022-09-16 10:22:38 +02:00
D.R.racer c412f062c8 Perform 3xRetry automatically
This is a draft PR showing the potential 3x retry implementation on the printer's side.
It is much less code and looks more reliable than the same functionality in the MMU FW.

Still, more work needs to be done:
- [ ] Button is sent to the MMU even before returning from the parking position
- [ ] Then the button is sent again
- [ ] Then the printer runs out of retryAttempts

We need to find a better spot to check for "automatic" retry and issuing of the buttons
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 999320f671 Limit build number to uint8_t (#49)
Currently the MMU only sends one byte so there is no need
in storing the version with two bytes
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 6b7a018f9b PFW-1354 Fix slow button processing (#37)
* Fix MK3S buttons being processed too slowly

After a button is selected on the MK3S MMU error screen, we need to process it before asking for another MMU Query.

Because the MMU Query will make the Error screen return and overwrite the status screen

* Add back CheckUserInput for ButtonPushed event
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert d420b20bd9 Add a missing break
I don't see any difference in behaviour but this should be more correct
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 3520020b24 * Correct the unload length on the MK3S side
* Pull all numbers into global constants
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 6eb2767dd2 PFW-1334 Distinguish between a retry unload and U0 unload
U0 unload uses the ramming sequence, while the retry unload does not because the MMU starts unloading much sooner
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 9a52bb5d04 Add MMU2_UNLOAD_TO_FINDA_FEED_RATE 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 59d19a8330 PFW-1334 Move E-motor on FSENSOR error retry 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert b8432e6bf2 Partial fix for PFW-1334
When a FSENSOR error happens, the first step for the MK3S should be to stop any loading by stopping the E-motor.

From this point, the buttons should determine what the MK3S does next.
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 2aa6cfc1ab Optimise mmu_cut_filament_menu (#40)
preheat_or_continue should be used here to reduce copying code
2022-09-16 10:22:38 +02:00
VintagePC 8eb054e789 Fix trying to use serial before it's intiialized 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert ace5130d9f PFW-1375 MMU error reported by MK3S does not appear on LCD 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 7d3a50450d PFW-1340 Hide Done button for two errors
* FSENSOR_DIDNT_TRIGGER
* FSENSOR_DIDNT_GO_OFF

The Done button does not Move the E-motor because it
expects the user to have manually resolved the problem

Also if the filament is in the gears, we cannot pull the filament out.
In this case the Retry button is more suited as it will unload the filament.
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 4dd689ba9a Fix PFW-1357 (#35)
lcd_encoder_diff would be set to 0 if lcd_update_enable(true)
is called outside ReportErrorHookMonitor
This would put enc_dif out of sync with lcd_encoder_diff and could cause false rotation triggering
2022-09-16 10:22:38 +02:00
vintagepc d7d6885765 PFW-1351 Cooldown timeout (#33)
* PFW-1351 WIP

* Fix bug with cooldown timing due to bad bitfield.

* Use default safety timer value for timeout
2022-09-16 10:22:38 +02:00
D.R.racer d1b216da0d Disable fsensor newVolt debug reporting 2022-09-16 10:22:38 +02:00
D.R.racer f94c2cba46 Fix rendering temp. + toolchange on MMU error screen 2022-09-16 10:22:38 +02:00
D.R.racer a004273e8f Avoid drawing MMU Error screen while MMU moves manually 2022-09-16 10:22:38 +02:00
D.R.racer 98adcbaff2 Bump required MMU FW version to 2.0.18 2022-09-16 10:22:38 +02:00
D.R.racer dab26fe50b Report detected MMU version in the Support menu
It was just subtly broken, all the functionality had already been implemented.
2022-09-16 10:22:38 +02:00
D.R.racer 121d43f896 Add a Try-Load-to-Bondtech operation
PFW-1347
2022-09-16 10:22:38 +02:00
VintagePC 0e96169bb3 remove logspam 2022-09-16 10:22:38 +02:00
VintagePC 4ea53ad4bf fix bug I introduced 2022-09-16 10:22:38 +02:00
VintagePC c07a5f396d Fix button enum 2022-09-16 10:22:38 +02:00
VintagePC d9676eff25 Fixed buged temperature resume. 2022-09-16 10:22:38 +02:00
VintagePC f9bedc3c94 Button handling WIP 2022-09-16 10:22:38 +02:00
VintagePC 9a20c85a5d First pass, improving the error recovery. 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 1e391f303c PFW-1344 Fullscreen message Loading Filament
When loading a filament through the LCD,
show a full screen message:

Loading Filament N

Where N can range from 0 to 5.
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 8aa16a6429 Write documentation for lcdui_print_extruder 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 8fd1653b84 PFW-1343 initial commit 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert ed04c24ba0 Implement 'Filament not loaded' option for M600 with MMU 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert caf98936e3 Minor cleanup 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert b9c23cd6b8 Add Unloading message to LCD
Also made mmu_M600_load_filament static to limit its scope
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert d5cdb412ba Introduce a way to read the previous tool used 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 2d02877686 Disable automatic in M600 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert e39bc3f12d During Tx, temporarily allow cold extrusion
This prevents a FSENSOR DIDNT TRIGGER error
and allows the bondtech gears to grab the filament.
2022-09-16 10:22:38 +02:00
D.R.racer 45a5e719a2 Disable filRunout when MMU.Enabled()
It turned out the runout is caused by the ramming sequence in the G-code, which is interpreted before the actual MMU command gets into processing.
The frequency of these errors/runouts differed one machine from another and was really hard to track down.
Therefore - once the MMU is enabled (active and running) we'll disable filament runout handling caused by the printer's filament sensor.
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert a1881b4a07 Disable filament runout when MMU is unloading 2022-09-16 10:22:38 +02:00
VintagePC 762080ab1a Fix some partking and recovery bugs 2022-09-16 10:22:38 +02:00
D.R.racer 8b6941d493 Temporarily disable runout
There are still printers which suffer from spurious runouts for no reason.
For testing purposes, runout will be disabled until the real cause is found.
2022-09-16 10:22:38 +02:00
D.R.racer 01f926f074 Fix build MK25S 2022-09-16 10:22:38 +02:00
VintagePC f155c7664d Add missing CheckUserInput calls, fix bad array entry for FW_update 2022-09-16 10:22:38 +02:00
VintagePC e8088b0161 Allow reset if the EEPROM is set to "on" 2022-09-16 10:22:38 +02:00
VintagePC 888a37450b Fix wrong return 2022-09-16 10:22:38 +02:00
VintagePC 73c486cc2f - Fix DisableMMU button on FW incompat
5823c14
- Implement eeprom var, fix reset
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 204b43dce4 PFW-1336
The following situation is now fixed, steps:
1. Load filament through LCD
2. Load to nozzle through LCD
3. Before filament reaches Fsensor => turn off the printer
4. Wait a few seconds and then turn the printer on again
5. Start a print through the SD card
6. Printer will unload and then re-load the filament

Previously in step 6, the printer would start a print without any
filament loaded.
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 46184a9447 Update printer name if M862.3 is called but not M862.2 2022-09-16 10:22:38 +02:00
D.R.racer 236098dbca Make init MMU error screens send buttons (Idle mode) 2022-09-16 10:22:38 +02:00
D.R.racer b880559ba7 Reset MMU upon start + fix reporting its start errors 2022-09-16 10:22:38 +02:00
D.R.racer 1ff7459743 Re-enable filament runout + add debug msgs
Needs a fix on the MMU side (report FeedToBondtech::DisengageIdler)
2022-09-16 10:22:38 +02:00
D.R.racer b6b265e371 Hack around old MMU FW's msgs 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert c1134e7e68 Cleanup: Remove an old comment 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert bd932b3b10 Cleanup: Fix two compiler warnings 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert cfc56af95c Cleanup: fix parameter comments 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 268c96334b Cleanup: Pull out PrusaErrorCodeIndex
Saves 8 bytes of flash
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert d49e858cf7 PFW-1323 Fix MMU error screen doesn't disappear when error resolved on the MMU 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 7b91e73c8b Fix issue where error screen updates too slowly in manage_response 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 98d07e6a09 Call lcd_set_custom_characters_nextpage 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 5ced30d8ca Cleanup: Add comments and reduce code size slightly 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 352a22c22e Cleanup: Remove unused callback
Remove unused callback in lcd_show_multiscreen_message_with_choices_and_wait_P
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert ecb4d08049 PFW-1318 Rewrite the implementation to be non-blocking 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert dc87bbae11 Fix compile error 2022-09-16 10:22:38 +02:00
D.R.racer 0e75a03c8c Reuse FSensor runout blocking impl. throughout the whole FW 2022-09-16 10:22:38 +02:00
D.R.racer eed816d9de Fix build 2022-09-16 10:22:38 +02:00
D.R.racer d7270e0b80 Fix lang build 2022-09-16 10:22:38 +02:00
D.R.racer f04d83fc4c Update printer's type (MMU/non-MMU) at runtime
+ reformat utils.cpp
2022-09-16 10:22:38 +02:00
D.R.racer 5082da78d2 Convert button on LCD into button for MMU
- Dependent on current MMU error being processed
- Includes rename of LEFT_BUTTON_CHOICE -> LCD_LEFT_BUTTON_CHOICE (and right, middle as well) to avoid confusion with MMU buttons' ordering
2022-09-16 10:22:38 +02:00
D.R.racer a0e9a302b8 Suppress communication drop-out < 8s (MMU in bootloader)
PFW-1327
2022-09-16 10:22:38 +02:00
D.R.racer ba8332cd3e Fix MK25 build 2022-09-16 10:22:38 +02:00
D.R.racer d628525a94 Fix build MK25S 2022-09-16 10:22:38 +02:00
D.R.racer f3f2086f29 Fix compilation MK3 2022-09-16 10:22:38 +02:00
D.R.racer 0bd3dfdcf7 This starts to print ;)
Temporarily disabled filament runout as this breaks ToolChange operation
yet for unknown reason.
2022-09-16 10:22:38 +02:00
D.R.racer 456ddbb538 Handle the new MMU states (slow load to fsensor) 2022-09-16 10:22:38 +02:00
D.R.racer 5f9ca6a6f3 Reorder errors list according to Prusa-Error-Codes #61 2022-09-16 10:22:37 +02:00
D.R.racer 8a92865969 Update MK3S to match MMU PR#168
- new progress and error codes
- remove #error from mmu2_power.cpp as it makes no sense
- remove temporary error translation code
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert 33650c6e56 Remove redundant call to lcd_update_enable 2022-09-16 10:22:37 +02:00
Guðni Már Gilbert f1803357b0 Fix default selection after changes in PFW-1312
The Yes and No are reverted. Before PFW-132 Yes is 1 and No is 0
Now they are Yes is 0, and No is 1
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert 45edc69cc4 Add back menu it confirm if extrusion has correct color after loading to nozzle via LCD
I've added the call to this message via the menu function to ensure it
only appears when interacting with the LCD
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert 1c26875e0e PFW-1318 Implement callback to render status line
To render the thermometer and degree symbols
the CGRAM table will instead swap out
the feedrate and clock symbol when
lcd_set_custom_characters_nextpage()
is called.
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert 452f39dc4b fixup 2022-09-16 10:22:37 +02:00
Guðni Már Gilbert 3b0fba14ac Remove unused parameter nlines to simplify things
This allows us to remove one overload
of lcd_display_message_fullscreen_P
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert e817a2d321 Don't block OnMMUProgressMsg while waiting for fsensor to trigger 2022-09-16 10:22:37 +02:00
Guðni Már Gilbert 0aa3a5855e Add TODO to prompt user if extruder is extruding correct color 2022-09-16 10:22:37 +02:00
Guðni Már Gilbert 1c25041134 Add the load to nozzle sequence once the MK3S takes control and MMU has disengaged idler.
Also removed ProgressCode::FeedingToNozzle from switch-case since it is not used for this purpose at the moment.
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert 3e77f9f3a1 Reduce grinding when loading to the fsensor
- We need to take into account additional 35mm move by the MMU.
- While the fsensor is not triggered, reduce the extruder movement each step from 20mm to 5mm. This should help reduce the variance in the filaments position before we run the final load to nozzle sequence.
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert 450ce0fc64 Improve load to nozzle sequence
- Fixed a bug where the feed rate was 60x higher than intended
- Adjusted the sequence via trial and error. The sequence where the filament has not exited the nozzle is 35mm shorter than the previous implementation
- I reduced the feed rate slightly (by 1mm/s) on the fast load sequence
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert 50cd6e77cc Initial commit for loading filament to the nozzle 2022-09-16 10:22:37 +02:00
D.R.racer 87ed42ba9b Fix FW update needed button order 2022-09-16 10:22:37 +02:00
D.R.racer 108f439bb7 Make sure the MMU error title never overflows on the LCD 2022-09-16 10:22:37 +02:00
D.R.racer 68b007c759 Fix compile-time conversion MMU2 ErrorCode -> Prusa-Error-Code
and hide some of the implementation details into mmu2_error_converter.cpp
which makes the code in mmu_reporting.cpp much easier to read.
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert 138a0d21c7 Change default selection parameter from bool to uint8_t
This allows us make any of the three button choices the default selection
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert 89e2bc4d6b Change name of variable 'yes' to be more descriptive 2022-09-16 10:22:37 +02:00
Guðni Már Gilbert c1ec80817c Update the error menu after merging new changes
Will test this tomorrow
2022-09-16 10:22:37 +02:00
D.R.racer c28354bf92 Update error codes + constexpr FindErrorIndex
Beware - requires avr-gcc 7.3!
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert 6e1cf7e98c Fixup 2022-09-16 10:22:37 +02:00
Guðni Már Gilbert 031c588802 Make all choice menus return consistent values
Such that left = 0, middle = 1, and right = 2
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert 37bfd8ecd1 Checkpoint
- combined lcd_show_three_choices_prompt_P and lcd_show_two_choices_prompt_P into one function called lcd_show_choices_prompt_P
- Removed third_col parameter
- Added an enum to make the button selection result more readable
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert 8dbb883971 Add helper macros to parse nibbles
Also made the button operations and nibbles constant since they should not be modified.
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert e6a3fa5e40 Remove unused includes after I moved the MMU error screen 2022-09-16 10:22:37 +02:00
Guðni Már Gilbert 83fefe10c1 Checkpoint:
- Rename lcd_show_multiscreen_message_two_choices_and_wait_P to lcd_show_multiscreen_message_with_choices_and_wait_P

- Move MMU error screen from ReportError() to ReportErrorHook()

- Fix the menu selection to work for menus with either two choices or three choices

- The buttons shown on the MMU error menu are now determined by the definition of btnOperation[]
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert 96ff291f59 Implement PFW-1312 in MMU code 2022-09-16 10:22:37 +02:00
Guðni Már Gilbert 734e176445 Don't disable LCD updates in menu_item_function_P 2022-09-16 10:22:37 +02:00
Guðni Már Gilbert ffe8c7c31a Update lcd_show_multiscreen_message_two_choices_and_wait_P
to support 3 choices
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert 39df6440ce Allow LCD to be updated in manage_response loop
Also removed one TODO which David mentioned is not needed anymore
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert 74ea9a7e43 Remove class LcdUpdateDisabler
Calling lcd_update_enable directly gives us more control

This also save a bit of flash memory
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert 1ba314d95b Print the MMU progress into status screen 2022-09-16 10:22:37 +02:00
Guðni Már Gilbert 15fbb93a8c add that downwards facing >> character 2022-09-16 10:22:37 +02:00
Guðni Már Gilbert b59c9da9ee Move extruder when loading filament to fsensor
When the fsensor see filament, stop the extruder
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert 96540d6e2d Fix return value of WhereIsFilament()
getFilamentPresent returns the state of the IO pin of the sensor.
So we should use AT_FSENSOR instead of IN_NOZZLE
since the fsensor does not know if the filament is actually in the nozzle.
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert 11290c1123 Add a read function for mmu_print_saved
and remove the old extern value which is not used anymore

I had to remove "MMU2::" from mmu2_protocol_logic.cpp, otherwise the build failed.
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert dcebad21c8 Add missing spaces to ErrorCode messages
Such that:
MMU2:E=32766ErrorTitleTextDescription
Becomes:
MMU2:E=32766 ErrorTitle TextDescription

Also simplified the process of combining ErrorTitle and TextDescription
into the msg buffer by using snprintf. This is saver since we only
use dstSize in one place instead of two.
2022-09-16 10:21:53 +02:00
Guðni Már Gilbert 6fab95f145 Fix PROGMEM read in ErrorCode message
This could cause the printer to crash. The Serial Stream would show
a garbled string.

Also included in this commit:
* The buffer size is increased from 64 bytes to 192 bytes.  We need to
take into account the length of the ErrorTitle and ErrorDescription.
* Fix overwrite in ErrorCode message buffer.
2022-09-16 10:21:53 +02:00
Guðni Már Gilbert 52f7fb8c51 Add missing space in ProgressCode message
Such that:
MMU2:P=123EngageIdler
Becomes:
MMU2:P=123 EngageIdler
2022-09-16 10:21:53 +02:00
Guðni Már Gilbert 2142cb0849 Fix overwrite in ProgressCode message buffer
When snprintf() if called we need to read the return value to see how
many bytes were written. Then when we call strncpy_P() through
TranslateProgress(), we need to tell the code to start writing
at byte 'len', or &msg[len]. Also we need to update the byte size
which strncpy_P() is allowed to write (64 - len).
2022-09-16 10:21:53 +02:00
Guðni Már Gilbert 4b71466526 Fix PROGMEM read in ProgressCode message
This could cause the printer to crash. The Serial Stream would show
a garbled string and the same corruption would appear on the Status
Screen's status line.
2022-09-16 10:21:53 +02:00
Guðni Már Gilbert d6044387d9 Fix crash in manage_response
The watchdog needs to be kicked in the for(;;) loop.
This is usually done by calling manage_heater before
manage_inactivity.
2022-09-16 10:21:53 +02:00
Alex Voinea c0a6d1343a Increase RX buffer size 2022-09-16 10:21:53 +02:00
Alex Voinea c201a5791a Implement MMU hw reset 2022-09-16 10:21:53 +02:00
Alex Voinea cc177ec5ad Remove old mmu.cpp 2022-09-16 10:21:53 +02:00
D.R.racer b27f690556 Add ProgressCodes -> text converter 2022-09-16 10:21:53 +02:00
D.R.racer 9140ebba55 Add MMU FW version variables
hardcoded for now, but API ready
2022-09-16 10:21:53 +02:00
D.R.racer 22287fec5d Add original M600 MMU handling
seems to be almost unrelated to MMU function at all,
so returning it almost intact.
2022-09-16 10:21:53 +02:00
D.R.racer 87d9f9aba7 Introduce MMU errors + their texts 2022-09-16 10:21:53 +02:00
Alex Voinea 74fad4f8f6 Implement fsensor raii event suppression 2022-09-16 10:21:53 +02:00
D.R.racer 1211ad9360 Report state of fsensor into the MMU code 2022-09-16 10:21:53 +02:00
D.R.racer 825eed97d4 Fix build after rebase 2022-09-16 10:21:53 +02:00
D.R.racer 4fa4b3b2fc Refactor Tx/Tc/T? commands 2022-09-16 10:21:53 +02:00
D.R.racer 4732859a98 Avoid exposing internal variables of fsensor
makes the code a bit shorter as well, because the compiler can be sure
that the variables are not accessed from the outside of the
fsensor.cpp compilation unit.
2022-09-16 10:21:53 +02:00
D.R.racer db0374896f Implement mmu2 serial interface 2022-09-16 10:21:53 +02:00
D.R.racer 208e620660 Return ir_sensor_detected + related functionality 2022-09-16 10:21:53 +02:00
D.R.racer 5870bbc524 Prune most of TODO from mmu2.cpp
+ refactor sound.h for better readability
2022-09-16 10:21:53 +02:00
D.R.racer 2e293e90a0 MMU2 interface overhaul
First port of the new MMU2-printer interface into 8bit FW.
2022-09-16 10:21:53 +02:00
Alex Voinea c27e4623c5 Fix build (??) 2022-09-16 10:20:32 +02:00
Alex Voinea 329745368e Improve PAT9125 UI implementation 2022-09-16 10:20:32 +02:00
Alex Voinea 340bc87110 Checkpoint: jam detection 2022-09-16 10:20:32 +02:00
Alex Voinea 65b2881b06 PAT9125 first prototype 2022-09-16 10:17:33 +02:00
Alex Voinea c5c4c21124 Update Sensor info menu documentation 2022-09-16 10:17:04 +02:00
Alex Voinea bdfd3305cb Cleanup pat9125.h 2022-09-16 10:17:04 +02:00
Alex Voinea c46b97ec2d Add base code for PAT9125_sensor 2022-09-16 10:17:04 +02:00
Alex Voinea 90b78616b7 Fix reinit on error 2022-09-16 10:17:04 +02:00
Alex Voinea fba6d44f33 fsensor event blanking 2022-09-16 10:17:04 +02:00
Alex Voinea 52b44ad178 fsensor add deinit 2022-09-16 10:17:04 +02:00
Alex Voinea ea23e6d924 Fix MK2 build? 2022-09-16 10:17:04 +02:00
Alex Voinea bbe1b1145e Correct ifdefs for all IR sensor types 2022-09-16 10:17:04 +02:00
Alex Voinea a256370c39 Remove original marlin fsensor code 2022-09-16 10:17:04 +02:00
Alex Voinea f9ff929bbe Enable fsensor when preparing for shipping 2022-09-16 10:17:04 +02:00
Alex Voinea d2bfe422f1 Separate runout and enabled settings 2022-09-16 10:17:04 +02:00
Alex Voinea b741707c0e Fsensor error state 2022-09-16 10:17:04 +02:00
Alex Voinea cfe8444fe3 Revert menu hack 2022-09-16 10:17:04 +02:00
Alex Voinea 5484882758 Checkpoint after a lot of removal 2022-09-16 10:17:04 +02:00
Alex Voinea 8fae5e708e Remove unused fsensor variables 2022-09-16 10:09:20 +02:00
Alex Voinea fc49ba115a Move more IR sensor analog stuff to Filament_sensor.h 2022-09-16 10:09:20 +02:00
Alex Voinea b52022f6c6 More dead code removal 2022-09-16 10:08:39 +02:00
Alex Voinea 241c4cc86c Remove dead code 2022-09-16 10:08:39 +02:00
Alex Voinea 6663f719f6 Remove old fsensor_init() 2022-09-16 10:08:39 +02:00
Alex Voinea 43db24e4fe IR_sensor_analog voltage readings 2022-09-16 10:08:39 +02:00
Alex Voinea 7224b5c2b6 Remove OQ and add fancy autoload interaction 2022-09-16 10:08:39 +02:00
Alex Voinea d84e6bda63 Remove old fsensor init 2022-09-16 10:07:49 +02:00
Alex Voinea 338f1f7615 IR volt debugging 2022-09-16 10:07:49 +02:00
Alex Voinea f03922f7cf Fix repeated autoload menu 2022-09-16 10:07:49 +02:00
Alex Voinea 45e43137a5 Filament sensor refactoring initial 2022-09-16 10:07:49 +02:00
Alex Voinea ce0d8f2f12 Correct sensor orientation for old pat9125 init 2022-09-16 10:06:26 +02:00
Alex Voinea 4f08caaa2b Shorter TWI timeout 2022-09-16 10:06:26 +02:00
Alex Voinea 47e610a2c6 Add disable() to swi2c as well 2022-09-16 10:06:26 +02:00
Alex Voinea abbf2a3927 twi safe init 2022-09-16 10:06:26 +02:00
Alex Voinea 28c527fece Use _check instead of register read for probe() 2022-09-16 10:06:26 +02:00
Alex Voinea 54b98c4e63 swi2c safe init 2022-09-16 10:06:26 +02:00
Alex Voinea 8b9bb23652 Unflip the hardcoded flip of the Y axis 2022-09-16 10:06:26 +02:00
Alex Voinea f4dbf424e4 Use PAT9125 new init sequence 2022-09-16 10:06:26 +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
3d-gussner 83315d0494 Update config.h translation documentation and move language to group2
Update fw-build.sh
 - Output used space of each translation (easier to troubleshoot)
 - Read config.h max size per translation
 - output variant .map files (easier to troubleshoot and finding missing/unused messages)
2022-09-14 11:33:24 +02:00
Yuri D'Elia 35c3e3ce68 Remove MSG_M117_V2_CALIBRATION
This message is never actually shown on the LCD (it's immediately
overwritten by other content). It also include g-code in a translatable
string, which is not a good idea. It's also otherwise identical to
MSG_V2_CALIBRATION, which we should have used.

Just remove it and save some space in the process.
2022-09-14 11:33:24 +02:00
Yuri D'Elia c7354bdfe8 lang: Fix usage of new non-translated strings
Fix cherry-pick
2022-09-14 11:33:24 +02:00
Yuri D'Elia 7a80252556 lang: Add support for raw catalog references with _R
_R marks a raw catalog entry as Referenced (= used) for cases where the
catalog pointers are handled at a lower level.
2022-09-14 11:33:24 +02:00
Yuri D'Elia 05093fbf49 lang: Add inline documentation for the various language macros 2022-09-14 11:33:24 +02:00
Alex Voinea 510f13b24a Make the diag pins open collector with pullup.
Solves random crash detected on startup
2022-09-14 07:39:47 +02:00
Alex Voinea bb57d99c35 Remove the crashDetection software counters and use sfilt 2022-09-14 07:39:47 +02:00
D.R.racer 996f9943a1 Extract PRINTER_ACTIVE into a noinline function
Having the original PRINTER_ACTIVE macro copied at multiple spots doesn't make sense.
Refactoring it into a non-inline function saved ~400 bytes of code.
It should be safe in terms of performance, all occurrences are at non-time critical spots.
2022-09-14 07:31:39 +02:00
Yuri D'Elia 16d666302b Allow choice positioning. Balance Yes/No messages.
Add an additional parameter to control the position of second choice
prompt position (while defaulting to the old).

This allows Yes/No prompts to be equally spaced.
2022-09-14 07:30:57 +02:00
Yuri D'Elia b41fb8a13a Unify fullscreen/multiscreen/yes-no prompt message handling
Modify lcd_show_multiscreen_message_two_choices_and_wait_P to also
handle single-screen or empty (no-clear) prompts, making other functions
redundant. Saves 76 bytes.

Change existing functions to simply call
lcd_show_multiscreen_message_two_choices_and_wait_P with the correct
arguments.

This changes the prompt of existing Yes/No messages: the previous prompt
would use the last two lines of the LCD, while the new prompt is using
just the last line of the LCD instead.

Translation do not require updates, since the Yes/No translation was
already the same in both implementations.
2022-09-14 07:30:57 +02:00
Alex Voinea 4491c64835 Allow "PRUSA SN" to print the SN in eeprom on all variants 2022-09-08 16:40:38 +02:00
Yuri D'Elia d78506a8ea TM: Rename D70 I to D70 S for consistency with M310 S 2022-09-02 15:59:29 +02:00
Yuri D'Elia 9dbee61b74 TM: Remove an unnecessary fabsf call
Ironically gcc was stripping that one for us already.
2022-09-02 15:59:29 +02:00
Yuri D'Elia 81238fbb15 Move MSG_PAUSED_THERMAL_ERROR outside TEMP_MODEL
MSG_PAUSED_THERMAL_ERROR is not specific to model-checking and can be
used also on MK25* variants.
2022-09-02 15:59:29 +02:00
Yuri D'Elia b48c698562 TM: Update default C/R0 estimates for MK3/MK3S variants 2022-09-02 15:59:29 +02:00
Yuri D'Elia 10c524fdb3 TM: Add M310 [F] parameter to enable autotune self-test 2022-09-02 15:59:29 +02:00
Yuri D'Elia 9b9ce1733c TM: Allow to keep model checking enabled during autotuning
Allow running the model checking during autotuning, with the only
exception being the parameter estimation stage where we alter the same
value which is used by the checker (done to conserve memory/code).

With previous changes the model checker will disable/enable itself when
passing through an unavailable R vector entry, allowing to start the
calibration by checking only the stages where the part fan is disabled.

The C/R0 values should be stable enough to provide a fail-safe mechanism
for printers of the same variant right from the factory.
2022-09-02 15:59:29 +02:00
Yuri D'Elia ff459a6427 TM: Handle dynamic parameter changing
Instead of assuming the model state is always valid, allow NAN values to
pass-through the various check/estimation stages.

This allows running the model checker with incomplete parameters (for
example, missing entries in the R vector) and resume automatically.
2022-09-02 15:59:29 +02:00
Yuri D'Elia 54e5702f30 TM: Move initial R0 initialization closer to usage 2022-09-02 15:59:29 +02:00
Yuri D'Elia 9b5ef75b68 Correctly translate thermal model LCD messages 2022-09-02 15:59:29 +02:00
Yuri D'Elia 331de988f7 TM: Avoid an useless float promotion 2022-09-02 15:59:29 +02:00
3d-gussner 66b97683bb Update build.sh and travis to build EN_ONLY
Change FARM_MODE
- Active only on EINSYs in EN_ONLY
- Active on miniRAMBo in all languages
2022-08-30 13:57:43 +02:00
Alex Voinea f5840e1b02 Fix minirambo build 2022-08-30 13:57:43 +02:00
Alex Voinea d1c545fdd6 Disable farm mode in config file 2022-08-30 13:57:43 +02:00
Alex Voinea ec84c22865 Remove unused define 2022-08-30 13:57:43 +02:00
Alex Voinea 2959cc0b64 Do not compile farm lcd_commands 2022-08-30 13:57:43 +02:00
Alex Voinea 2b4c2127e6 Make lcd function static 2022-08-30 13:57:43 +02:00
Alex Voinea 3537024ba2 Remove forgotten config in MK2_minirambo_1.0a 2022-08-30 13:57:43 +02:00
Alex Voinea 8033b65a02 Isolate farm preheat config 2022-08-30 13:57:43 +02:00
Alex Voinea 435ee66bdd Move all farm configuration to header 2022-08-30 13:57:43 +02:00
Alex Voinea d049d09623 Isolate FARM_DEFAULT_SAFETYTIMER_TIME_ms 2022-08-30 13:57:43 +02:00
Alex Voinea 39eb728d54 More farm optimizations
Kudos @gudnimg
2022-08-30 13:57:43 +02:00
Alex Voinea d1c30c338f Fix farmless mode 2022-08-30 13:57:43 +02:00
Alex Voinea bef7b086e3 Isolate the entire farm and statistics code 2022-08-30 13:57:43 +02:00
Alex Voinea 7d597eb8b0 Move farm mode to separate file 2022-08-30 13:57:43 +02:00
Alex Voinea 4e7d686b83
Merge pull request #3574 from leptun/extra_optimizations
More optimizations for 3.12 to fit
2022-08-29 19:25:46 +03:00
Alex Voinea 692f51c51e Save target bed temperature, not current temperature 2022-08-28 11:21:17 +03:00
Guðni Már Gilbert 37c9dcbe53 Optimise calculations to use hypot() where possible
flash: -122
RAM: 0

It is defined: hypot(x,y) = sqrtf(x*x + y*y)
2022-08-26 19:36:28 +03:00
Alex Voinea 7d72f0ee2e better lcd printing for IP address
flash: -46
RAM: 0
2022-08-26 19:33:53 +03:00
Guðni Már Gilbert 4e798c9ed1 Remove unused variable maxlimit_status
flash: 0
RAM: -1
2022-08-26 19:29:32 +03:00
Guðni Már Gilbert 7711969e57 ftostr12ns: change xx from long to int
flash: -44
RAM: 0

Largest expected number is 999 after the multiplication by 100.

I measured the execution time drops from ~170us to ~73us.
2022-08-26 19:28:36 +03:00
Guðni Már Gilbert 88e0e33fb2 Use set_destination_to_current instead of memcpy
flash: -14
RAM: 0
2022-08-26 19:27:16 +03:00
Guðni Már Gilbert 7d86a0d121 Reduce a few magic numbers for FILENAME_LENGTH
flash: 0
RAM: 0
2022-08-26 19:26:26 +03:00
Guðni Már Gilbert 22582e560e Remove one redundant st_synchronize() call
flash: -4
RAM: 0

st_synchronize() is called just before leaving gcode_G28() so we don't need to call it again just after leaving gcode_G28()
2022-08-26 19:25:07 +03:00
Guðni Már Gilbert 89fc9f7a62 Optimise lcd_menu_show_sensors_state()
flash: -22
RAM: 0

menu_lcd_lcdupdate_func() takes care of starting lcd_timeoutToStatus if the knob is clicked.

When the knob is clicked we only want to back out of the menu.
This changes makes the menus slightly more conistant behind the scenes.
2022-08-26 19:22:23 +03:00
Guðni Már Gilbert c2340d3648 lcd_babystep_z should not start lcd_timeoutToStatus
flash: -8
RAM: 0

When the menu is entered and left the function
menu_lcd_lcdupdate_func() takes care of resetting the timer.

Currently the firmware will reset the timer twice when the lcd_babystep_z menu is entered. This commit fixes that.
2022-08-26 19:20:22 +03:00
Guðni Már Gilbert 74d6aead2f Optimise if statements in lcd_tune_menu
flash: -10
RAM: 0

I am basically combining two if statements if(SilentModeMenu == SILENT_MODE_NORMAL)
2022-08-26 19:17:07 +03:00
Alex Voinea 25350dfbbc Remove unused variable bFilamentFirstRun
flash: 0
RAM: -1
2022-08-26 19:14:40 +03:00
Alex Voinea 4ded6f195e Move string to progmem
flash: -52
RAM: -6
2022-08-26 18:59:53 +03:00
Guðni Már Gilbert f7ae3039f8 Don't include M851 in build if Auto Bed Leveling is not enabled
The variable cs.zprobe_zoffset is not used unless
auto bed leveling is enabled
2022-08-26 15:35:28 +00:00
Guðni Már Gilbert d87999a020 workDirDepth can be one byte
We set the max working directory depth to 6 (see MAX_DIR_DEPTH)

Changes save 1 byte of SRAM and 50 bytes of flash
2022-08-26 10:56:02 +02:00
Alex Voinea c7762386df
Merge pull request #3565 from wavexx/m115_respect_settings
Do not prompt on M115 if FW version check has been disabled
2022-08-25 19:43:12 +03:00
Yuri D'Elia cf1edc85c3 Set a few function attributes to conserve space 2022-08-25 16:50:06 +02:00
Yuri D'Elia 7c8539a9f9 Report correct fan speeds in M155 during calibration 2022-08-25 16:15:51 +02:00
Alex Voinea 78534f3b48 Start at the first segment, not the last segment 2022-08-24 20:19:26 +03:00
Alex Voinea 671519caf3 Optimize by hand since the lto is still stooopit
saves ~100B
2022-08-24 20:19:26 +03:00
Alex Voinea b27c8b50e0 Fix power panic handling 2022-08-24 20:19:26 +03:00
Alex Voinea 05bd1ba57f Multi-segment pause resume initial 2022-08-24 20:19:26 +03:00
DRracer 2e677ea3ee
Merge pull request #3569 from leptun/fix_card_removed
Fix "Card removed" on startup
2022-08-24 19:17:24 +02:00
DRracer 0933fdb6fe
Merge pull request #3552 from wavexx/temp_model_check
Thermal Model protection
2022-08-24 19:16:48 +02:00
Alex Voinea ef8be4dfca Fix "Card removed" on startup 2022-08-24 20:10:09 +03:00
Alex Voinea f2f136e014 Use timer3 instead of timer5 on miniRambo 2022-08-24 10:18:45 +03:00
Yuri D'Elia 7907e14cbf Resync planner position upon exiting xyzcal
Split the planner sync code out of planner_abort_hard() so that we can
independently resync the planner position from the counters.

This is needed in xyzcal as we directly modify the stepper counters
(bypassing both planner and stepper).

Call this new function instead of planner_abort_hard() when leaving, so
that motion can resume in the middle of the gcode_M45 instruction.
2022-08-23 17:25:24 +02:00
Yuri D'Elia 35708a61fe No longer disable temperature management in xyzcal
We already disable the heaters upon entering, and the new temperature
isr doesn't perform any direct movement until we return to the main
loop.

This allows us to remove direct control of the soft_pwm interrupt from
the header, which is dangerous.
2022-08-23 17:19:23 +02:00
Yuri D'Elia 7cd888cd0a Update documentation of ThermalStop() 2022-08-21 15:22:46 +02:00
Yuri D'Elia b672be90b2 Do not overwrite saved values if TM error occurs while paused 2022-08-21 14:53:42 +02:00
Yuri D'Elia d8d085287e Re-enable bed temperature automatically for transitory errors 2022-08-21 14:49:12 +02:00
Yuri D'Elia 30dccb3252 Switch to ATOMIC sections instead of cli/sei/CRITICAL_SECTION 2022-08-21 14:49:12 +02:00
Yuri D'Elia ee12cbd58e Do not prompt on M115 if FW version check has been disabled
As done for M862.4, do now show an upgrade prompt if FW version check as
been disabled in the Settings -> HW Setup -> Checks menu.
2022-08-20 16:55:32 +02:00
DRracer 3ebd8b88a4
Merge pull request #3486 from gudnimg/gudni-optimisation
Flash optimizations in loop() and status screen menu
2022-08-19 17:21:17 +02:00
DRracer 0a8d2a3224
Merge pull request #3456 from wavexx/filament_load_consistency
Cleanup: use more constants in M701
2022-08-19 17:14:54 +02:00
DRracer 84888507e3
Merge pull request #3557 from wavexx/fix_g28_code_value
G28: check for X/Y/Z parameters before calling code_value_long
2022-08-19 17:12:07 +02:00
DRracer 2a0989c440
Merge pull request #3551 from wavexx/eof_crash_reentry
Prevent re-entry in EOF command processing
2022-08-19 17:07:21 +02:00
Alex Voinea 81ec94db64 Show firmware version on splash screen 2022-08-15 16:18:17 +03:00
Yuri D'Elia 06d19b472a G28: check for X/Y/Z parameters before calling code_value_long
Fixes #3555, thanks to @toombaumarkt
2022-08-07 00:36:54 +02:00
Yuri D'Elia 3a1914f2fb Simplify printingHasFinished
Unswitch the call to file.close().

Do not call quickStop(): motion has already completed due to
st_synchronize.
2022-08-06 23:29:34 +02:00
Yuri D'Elia 4f22de2333 Do *not* shorten the current command in printer_smodel_check
printer_smodel_check was incorrectly substituting the final " with a
null in the command to simplify the model string comparison, but in
doing so was also corrupting the next pop from the cmdqueue.

We can modify the current strchr_pointer as long as we *don't* change
it's length. This can cause an incorrect extra read from the queue,
resulting in the last command to be completely ignored.
2022-08-06 23:15:46 +02:00