Commit Graph

5702 Commits

Author SHA1 Message Date
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
Yuri D'Elia 68c04ca2f6 Switch a few pointers that don't manipute strings to const 2022-08-06 23:08:03 +02:00
Yuri D'Elia a533ba3574 Reset sdpos_atomic when starting a new SD print
Fix an incorrect SD offset on the first G-Code command when the second
SD print is started.
2022-08-06 22:16:50 +02:00
3d-gussner 8cbe69e285 Update RepRap documentation 2022-08-02 17:56:53 +02:00
3d-gussner 9633f34e89
Merge pull request #3544 from 3d-gussner/MK3_Fix_po_for-MK25s
Sync PF-build.sh and MK404-build.sh with MK3_3.11.1 branch
2022-07-29 16:13:59 +02:00
Yuri D'Elia c0b5fea525 Prevent re-entry in EOF command processing
cmdqueue will run commands when EOF is reached without returning to the
main loop, which is already incorrect.

However, since it needs to ensure the queue is empty, an st_synchronize
call can result in a re-entrant call to get_command, which will
reprocess EOF again. Even if we removed st_synchronize, another command
could be picked by an unsuspecting manage_inactivity() somewhere else.

Short-circuit EOF processing by closing the file early and checking for
the file state early in get_command.

This should fix #3549
2022-07-29 15:55:54 +02:00
VintagePC fa1be17b7c cmake lang control 2022-07-28 08:07:08 -04:00
Guðni Már Gilbert ca8d47a6da If lcd_draw_update is set outside lcd_status_screen
then render the sceen without delay

This adds only 10 bytes of flash
2022-07-27 11:55:08 +00:00
Guðni Már Gilbert f6fd91a235 Optimise lcd_status_screen
Saves 20 bytes of flash
2022-07-27 11:14:18 +00:00
Guðni Már Gilbert 33a0a58810 Optimise manage_inactivity call in loop()
Saves 12 bytes of flash
2022-07-27 11:14:17 +00:00
Yuri D'Elia c5c2557c5e Improve M310 documentation 2022-07-25 17:30:22 +02:00
Yuri D'Elia 41abe1689c Block LCD during temperature model autocalibration 2022-07-25 17:30:22 +02:00
Yuri D'Elia 79161f829e Remove last_alert_sent_to_lcd and simplify mintemp alert automaton
Thanks to LCD message priorities this not needed anymore and it's just
overhead.
2022-07-25 17:30:22 +02:00
Yuri D'Elia 374b829fb6 Generalize menu_block_entering_on_serious_errors for menu lockout
Call this variable menu_block_mask instead. We don't need to know the
exact reason of why we're locking the menu.

We will be able to reuse this to prevent menu entry during more
activities in a cleaner way than testing for each condition as it's
currently done for both menu entry and longpress.
2022-07-25 17:30:22 +02:00
Yuri D'Elia 49a288e6cf Restore the "MINTEMP * fixed" message
Set the LCD messages with the correct priority
2022-07-25 17:30:22 +02:00
Yuri D'Elia 4ca0012077 Prevent longpress if a serious error is set 2022-07-25 17:30:22 +02:00
Yuri D'Elia cb3fec5cac Improve M310 documentation 2022-07-25 17:30:22 +02:00
Yuri D'Elia e77a5345a2 Do not show "THERMAL ANOMALY" with "M310 B0"
This allows us to use "M310 B0 W0.01" as a way to report the current
error continuosly on the serial without 1) more code and 2) without
preventing regular usage.
2022-07-25 17:30:22 +02:00
Yuri D'Elia 19df196e1f Better differentiation between pause/paused resume/resumed states
Use OCTOPRINT_ASK_* for the present form of actions. In these cases the
host will perform the pausing manouvers for us.

Use OCTOPRINT_* instead for the past tense forms when we are in charge.

Also always emit the action, whether we are or not sd-printing. This is
due to the new Stopped handling behaving correctly in either case.
2022-07-25 17:30:22 +02:00
Yuri D'Elia 39ad53ab11 Simplify fan checks now that lcd pause works correctly 2022-07-25 17:30:22 +02:00
Yuri D'Elia 1eb7871bab Also save fan speeds during a thermal error pause
Similarly to temperatures, the fan speed is overwritten and needs to be
restored appropriately.
2022-07-25 17:30:22 +02:00
Yuri D'Elia c98e133ae2 Never stop spinning the extruder fan on thermal failures 2022-07-25 17:30:22 +02:00
Yuri D'Elia eccfcd7424 Save/restore temperatures during a thermal pause
Re-used saved_* vars (as normally used during the paused state) to
backup the original values when a thermal error occurs.
2022-07-25 17:30:22 +02:00
Yuri D'Elia 63dab63f2e uvlo: Never wait for bed temperature when recovering
If the user accepted to resume, do not wait for bed temperature when
recovering. This only adds a pointless delay when recovering a short
pause and doesn't really improve the recovery quality after a long
pause.
2022-07-25 17:30:22 +02:00
Yuri D'Elia 8f02262bbd Save/restore bed temperature during pause
This will be needed during a thermal error pause that disables the bed
as an additional safety precaution.
2022-07-25 17:30:22 +02:00
Yuri D'Elia 9ef80226c9 Rename argument of ThermalStop for clarity 2022-07-25 17:30:22 +02:00
Yuri D'Elia b9fc73c4c3 TM: Pause the print and allow recovery from a thermal error
Do not allow resuming until all thermal and fan errors are clear.

Call the appropriate resume function when resuming a printing depending
on the saved_print state (is saved_print is available, then we always
need to resume from the saved state even when printing via usb).

Clear the Stopped state when resuming, so that commands can be accepted
again.
2022-07-25 17:30:22 +02:00
Yuri D'Elia f454d1ecf2 TM autotune: fix off-by-one in fan power levels 2022-07-25 17:30:22 +02:00
Yuri D'Elia 5dc0d5f7fa TM autotune: fail if value is outside of the boundaries
Ensure we never fall into the boundary values provided by the min/max
limits.

Save/restore the initial guess value, so that a convergence failure
restores the initial model state.
2022-07-25 17:30:22 +02:00
Yuri D'Elia d1864011f4 Handle pause/stop in the main loop, again
Force processing of the pause and stop "parking" commands _after_ the
main loop completes.

This was/is currently done in lcd_commands, which is a poor place to
continue processing, since it can be called already within an aborted
command. This requires checking for planner_aborted before any action
can be performed.
2022-07-25 17:30:22 +02:00
Yuri D'Elia f835537e88 Exclude TempErrorSource::ambient for boards without a thermistor 2022-07-25 17:30:22 +02:00
Yuri D'Elia 5965572e88 Enforce full-loop handling of aborted commands
After calling planner_abort_hard() no motion command can be
scheduled until we return to the main loop since the call can
potentially be scheduled inside a nested process_command call.

Despite previous fixes, bugs keep creeping in due to nested calls not
being obvious to detect at all.

Stop allowing motion _completely_ for the entire processing loop by
default. That is, instead of aborting the current plan_buffer_line call,
abort the entire command until we can actually schedule motion safely
again.

This benefits handling of pretty much all g/m-codes, since this flag
(now "planner_aborted" for clarity) becomes a general "command aborted"
call.

This also now ensures that the flag prevents _any_ new block (including
blocks partially planned while servicing an interrupt) are scheduled
after planner_abort_hard is called.

There are only two exceptions where it's safe to resume in this context:

- Within uvlo_, where we never return to the main processing loop
- When we're intentionally scheduling a new process_command loop for a
  MK3 filament recheck (which is *bad*)

Handle those two cases as exceptions.
2022-07-25 17:30:22 +02:00
Yuri D'Elia 48c7c9d464 Exclude M310 if TEMP_MODEL is not enabled 2022-07-25 17:30:22 +02:00
Yuri D'Elia 142db85bbb Pause: only move to park position when homed
This can happen is pause is issued before homing.
2022-07-25 17:30:22 +02:00
Yuri D'Elia fc10ca3146 Change how "Stopped" is handled internally, do not inhibit motion
Do not inhibit motion when Stopped is set.

We actually do need to move to move away the extruder from the bed, and
setting Stopped breaks it without adding any sort of security (M*
commands, such as M600 could still perform moves and still pass
through, while M104 would still set heaters).

During a hard error the internal queue is cleared (and sd file closed,
if any), so no new "unforeseen" command can be read.

Handle "Stopped" instead as a flag to inhibit serial processing and
automatically switch to "paused for user" state. While in this state
simply drop any input without incrementing the processed gcode line
number, behaving as-if the last command was still being processed.

This allows "Stopped" to correctly handle a printer-initiated paused
state and recover as expected by requesting a resend when resuming.
2022-07-25 17:30:22 +02:00
Yuri D'Elia b3ca70a007 Show thermal warnings using the new LCD_MESSAGE_INFO priority
Add a new LCD_MESSAGE_INFO priority which can be overridden by regular
status updates, but only if a certain amount of time has passed.

Assign a time stamp to all message updates, so that the time since the
last update can be determined. Also switch the message type to Status,
so that the message always becomes visibile.

Always show status or info messages when printing via SD if the message
is recent enough.
2022-07-25 17:30:22 +02:00
Yuri D'Elia 8d9d367d6b Implement Timer::expired_cont()
Returns true if the timer is not running, effectively allowing to check
if a certain set time in the future has passed.
2022-07-25 17:30:22 +02:00
Yuri D'Elia dc2d596f40 Do not allow lcd_updatestatus to be called directly
Enfoce the usage of lcd_setalertstatuspgm and lcd_setstatus so what we
consistently have alert severities properly set.
2022-07-25 17:30:22 +02:00
Yuri D'Elia 6751586db6 Cleanup original thermal error handlers.
Remove useless repeated calls to disable heaters and turn on the fans,
since this is done at a higher level.

Avoid repeating messages on the serial. Do it just once.

Make a critical alert sound unconditionally.
2022-07-25 17:30:22 +02:00
Yuri D'Elia 50c71924a2 Include fan measurements when estimating resistance 2022-07-25 17:30:22 +02:00
Yuri D'Elia 92bc7554b6 Enable the model last, if set
We need all the values to be set before we can attempt to enable the
model.
2022-07-25 17:30:22 +02:00
Yuri D'Elia 49048fdcd6 Add temperature model configuration for MK3 2022-07-25 17:30:22 +02:00
Yuri D'Elia ea0840dee9 Refuse to run TM calibration if the printer is not idle 2022-07-25 17:30:22 +02:00
Yuri D'Elia 9c971b1b89 Add a note about resetting waiting_inside_plan_buffer_line_print_aborted 2022-07-25 17:30:22 +02:00
Yuri D'Elia 0680c0b428 Refresh the lcd periodically during calibration 2022-07-25 17:30:22 +02:00
Yuri D'Elia 47d2e9e61c Handle failures during calibration
Break out of the autotuning if a thermal error condition is detected and
attempt to restore a safe initial state irregardless of the error
handlers.

Also error out if the estimation fails to converge.
2022-07-25 17:30:22 +02:00
Yuri D'Elia cc96a47e7f Implement temperature model autotuning
Calibrate C/R values via univariate minimization using golden section.
This is done in several passes:

- Bootstrap C by setting an initial high R value
- Calibrate R at the requested working temperature
- Cooldown
- Refine C to the final value
- Estimate R losses for a subset of fan speeds
- Interpolate remaining values to speed-up the process

This results in robust values which are tailored to the current
filtering constants, and avoid having to sample for an extended
time to reach the required resolution.

The refining pass could avoid cooldown if the recording buffer was at
least twice as large, so that we could record both the heating and the
steady-state, saving _considerable_ time.
2022-07-25 17:30:22 +02:00
Yuri D'Elia ec74b88ebc Correct pre-warning to just warning 2022-07-25 17:30:22 +02:00
Yuri D'Elia 14622bc577 Actually disable the temperature manager in TempMgrGuard 2022-07-25 17:30:22 +02:00
Yuri D'Elia 8620059067 Allow to disable the model warning beeping
Mostly useful for debugging
2022-07-25 17:30:22 +02:00
Yuri D'Elia 6832ec7648 Allow to save/restore temperature model settings
This currently bypasses the ConfigurationStore, which doesn't fit the
malin model nicely.

temp_model is using it's own private copy directly.

But maybe we should change this in the future.
2022-07-25 17:30:22 +02:00
Yuri D'Elia b0b2ff5f9e Rewrite/modularize the model checker
- Allow all parameters to be changed at runtime through M310
- Move the model prototypes into a separate temp_model.h header
- Allow the checked to be enabled/disabled at runtime
- Introduce a warning threshold
2022-07-25 17:30:22 +02:00
Yuri D'Elia fabf511b97 Add the ability to log continuously
TEMP_MODEL_LOGGING enables D70 to record precisely each cycle of the
temperature regulation for offline model simulation
2022-07-25 17:30:22 +02:00
Yuri D'Elia 690affe5a2 Further enhance thermal error priorities
When triggering a thermal error, allow higher-priority errors to
override the initial error source.

This allows a fatal error such as maxtemp to trigger to a full stop even
if thermal runaway has already been triggered.

Reorder error types according to their priority.
2022-07-25 17:30:22 +02:00
Yuri D'Elia 8220d0196b Lock onto the first error source until cleared
Do not overwrite the error source if the error flag is already set.

As checks are performed in priority order, this ensures min/maxtemp
user-level handlers are triggered even if the thermal model can detect
an issue in the same cycle.

This restores MAXTEMP handling, which was simply shadowed.
2022-07-25 17:30:22 +02:00
Yuri D'Elia f82048977a Start PWM timers _after_ initializing min/maxtemp ranges
This would otherwise cause check_temp_raw() to operate on unitialized
values and trigger failures too early.
2022-07-25 17:30:22 +02:00
Yuri D'Elia f1d88ebd40 Protect pid_tuning_finished behind temperature.cpp
Setting pid_tuning_finished can result in the heaters stuck to full
power. As a result, we need to ensure that when PID management is
disabled, heaters are also.
2022-07-25 17:30:22 +02:00
Yuri D'Elia 442b2e16de Set pid_tuning_finished globally to true
Use pid_tuning_finished as a flag to prevent automatic PID management.
As a result, set the default start-up state to true and adjust the
dependent code accordingly.
2022-07-25 17:30:22 +02:00
Yuri D'Elia 92418e9d1b Do not perform PID management while autotune is running 2022-07-25 17:30:22 +02:00
Yuri D'Elia c15d599f71 Convert two PID_autotune strings to PROGMEM 2022-07-25 17:30:22 +02:00
Yuri D'Elia 0c1c350a93 Simplify one expression 2022-07-25 17:30:22 +02:00
Yuri D'Elia 70093fc9dc Allow to redefine basic model constants 2022-07-25 17:30:22 +02:00
Yuri D'Elia a15f2807d9 Allow to continue printing with TEMP_MODEL_CHECK_WARN_ONLY for debugging 2022-07-25 17:30:22 +02:00
Yuri D'Elia 929843e295 Switch two divisions to faster multiplications 2022-07-25 17:30:22 +02:00
Yuri D'Elia bc53bd5305 Make the error threshold be sample-rate invariant 2022-07-25 17:30:22 +02:00
Yuri D'Elia 3eda8b61ee Include the model checker with hard-coded constants 2022-07-25 17:30:22 +02:00
Yuri D'Elia 61575995e0 Isolate temp runaway checks from PID management 2022-07-25 17:30:22 +02:00
Yuri D'Elia 026733e75f Improve comments 2022-07-25 17:30:22 +02:00
Yuri D'Elia 283d5566f1 Limit the rate manage_heater() as it did previously
Avoid running the user-level error handlers too fast.
2022-07-25 17:30:22 +02:00
Yuri D'Elia de77a47906 Correct handling of preheat/runaway errors
As for min/maxtemp, flag the error in the isr, then handle it in the
user code calling the original handler.
2022-07-25 17:30:22 +02:00
Yuri D'Elia bd9a6acd59 Correct handling of min/maxtemp
- Flag the error condition from the temp_mgr_isr
- Handle the error state from the user code

Currently only handles min/maxtemp and relays the error to the original
handler (which is a poor fit for the current design).
2022-07-25 17:30:22 +02:00
Yuri D'Elia 4a0203d691 Isolate oTimer4minTempHeater/Bed into check_min_temp 2022-07-25 17:30:22 +02:00
Yuri D'Elia 7659844012 Reimplement disable_heater to take immediate effect
Split off setIsrTargetTemperatures and temp_mgr_pid() so that we can
propagate the target temperatures instantaneously down the pid/pwm chain
during emergencies.

This reduces the amount of code in disable_heater() itself, making it
a bit more maintenable.

The bed still isn't disabled on-the-spot yet, due to the heatbed_pwm
automaton. To be improved later.
2022-07-25 17:30:22 +02:00
Yuri D'Elia e070bc6455 Remove obsolete and commented variables 2022-07-25 17:30:22 +02:00
Yuri D'Elia ccaecc87aa Reduce code duplication in setTargetHotendSafe 2022-07-25 17:30:22 +02:00
Yuri D'Elia 7d82cd641e Rename ADC callback 2022-07-25 17:30:22 +02:00
Yuri D'Elia bcd8496113 Introduce a new set of temperature values for the PID regulation
*_temperature_raw: buffer for the ADC ISR (read by temp ISR)
*_temperature_isr: latest temperatures for PID regulation (copied from
  _raw values)
*_temperature: latest temperature for user code

The flow:
  - ADC ISR (async)
    - perform oversampling
    - call ADC callback: copy to _raw (async)
  - temp ISR (timer)
    - convert to C (_isr values)
  - user code (async)
      - check temp_meas_ready
      - call updateTemperature()
        - copy from _isr to current
        - syncronize target temperatures

This removes PINDA value averaging (if needed, should be re-implemented
by averaging in user code where needed)
2022-07-25 17:30:22 +02:00
Yuri D'Elia c1051e046c Remove private declaration 2022-07-25 17:30:22 +02:00
Yuri D'Elia 65cf8e541a Isolate current/target temperature in pid_heater/bed functions 2022-07-25 17:30:22 +02:00
Yuri D'Elia 0933f01a7f temperature: Do not expose check_min/max_temp 2022-07-25 17:30:22 +02:00
Yuri D'Elia 9e826afee9 Switch regulation interval to 270ms 2022-07-25 17:30:22 +02:00
Yuri D'Elia c6d0494cbc Split temperature management into it's own ISR
Use a new low-priority "temp_mgr_isr" running at constant rate for
temperature management.

This is done so that the temperatures are sampled at a constant
independent interval *and* with reduced jitter. Likewise for actual
PID management.

This will require further adjustment for the min/max/runaway display,
which cannot be done directly into this function anymore (the code will
need to disable heaters but flag for display to be handled in
manage_heaters).
2022-07-25 17:30:21 +02:00
Yuri D'Elia 2ca16a06cd Rename tp_init to soft_pwm_init for consistency 2022-07-25 17:30:21 +02:00
Yuri D'Elia b56d31b5b3 Improve comment 2022-07-25 17:30:21 +02:00
Yuri D'Elia 38b3e53f67 Syntax/comment cleanup 2022-07-25 17:30:21 +02:00
Yuri D'Elia 932fcbb33f Simplify soft_pwm_isr even further
Isolate the PWM management into soft_pwm_core
2022-07-25 17:30:21 +02:00
Yuri D'Elia dfd8fee712 Isolate babystep to a separate function 2022-07-25 17:30:21 +02:00
Yuri D'Elia bd28007312 Rename check_fans>readFanTach manageFans>checkFans 2022-07-25 17:30:21 +02:00
Yuri D'Elia 383319dbac Rename temperature_isr to soft_pwm_isr 2022-07-25 17:30:21 +02:00
Yuri D'Elia 16b9acf8bc Decouple temperature ISR from ADC readings
Read from ADC as fast as possible using the ADC interrupt to get
more accurate instantaneous readings.

Decouple the temperature_isr from the adc reading interval, so that
the two can run independently for future use.
2022-07-25 17:30:21 +02:00
Yuri D'Elia e87188e7e3 Ensure ADC and thermistor tables use the same oversampling
The current code assumes that values are directly comparable
2022-07-25 17:30:21 +02:00
Yuri D'Elia 2535d072c4 Do not recursively enter temperature_isr
Disable the interrupt source instead, which avoids the added latency of
reentering the isr in the first place.
2022-07-25 17:30:21 +02:00
Yuri D'Elia 82e221e3c7 Remove ADC pullup checks
Setting pullups on the ADC should trigger the model-based check, making
this redundant and wasteful.

Keep the DEBUG_PULLUP_CRASH menu so that we can verify this behavior in
the future.
2022-07-25 17:30:21 +02:00
Yuri D'Elia 306f77ccbd Disable IR_SENSOR due to the injected ADC read for now
This is already reimplemented in the newer fsensor implementation
2022-07-25 17:30:21 +02:00
Yuri D'Elia 13163e9fbf Move millis_nc to system_timer.h 2022-07-18 17:53:27 +02:00
Yuri D'Elia f8de274db3 Split fan checks out of temperature.cpp 2022-07-18 17:53:27 +02:00
Alex Voinea 8e72470afc
Merge pull request #3435 from leptun/MK3_variant_hotend_name
Use correct filament type in variant files
2022-07-15 15:57:53 +03:00
Alex Voinea 510c874619 Fix scrolling timing issue when the menu is rendering very slowly 2022-07-15 15:46:01 +03:00
Alex Voinea 8bb451129d Remove compiler bug workaround
These lines had to be done like that because gcc 5.4.0 would throw a segmentation fault when linking. With gcc 7.3.0, this is no longer an issue
2022-07-15 15:46:01 +03:00
Alex Voinea ae1815dc52 When over the SD limit, continue from the last sorted file
This gives a significant speed boost when just above the sorting limit, while only costing 2 bytes of ram
2022-07-15 15:46:01 +03:00
Alex Voinea a96e60c241 Do not call lcd_update after presorting 2022-07-15 15:45:34 +03:00
Alex Voinea 3a5bc0462a Do not call lcd_update recursively when running presort with many files 2022-07-15 15:45:34 +03:00
Alex Voinea 3c579bf738 Fix fullscreen message lcd_update handling 2022-07-15 15:45:34 +03:00
Alex Voinea 2059e40596
Merge pull request #3054 from espr14/insert_sort
File: use insert sort
2022-07-15 15:44:04 +03:00
Alex Voinea 49fb27bb28
Merge pull request #3504 from gudnimg/gudni_printer_smodel_check
Simplify `printer_smodel_check()`
2022-07-12 21:53:23 +03:00
3d-gussner 15bac09594 Fix typo 2022-07-12 11:24:35 +02:00
Alex Voinea 3ed3f87db6 Prevent beeps when P is 0 2022-07-12 09:57:56 +03:00
Yuri D'Elia 2a9869ce2d M300: do not set a default frequency if S is not set
Fallback to use the default HIGH value if a frequency has not been
specified.

This makes the tone of "M300" and "M300 P<x>" identical as a result.

Supersedes #3339
2022-07-11 15:18:56 +02:00
Alex Voinea 56bc2f1a0c
Merge pull request #3495 from wavexx/extrude_min_temp
Replace EXTRUDE_MINTEMP with the configurable extrude_min_temp
2022-07-05 12:02:26 +02:00
Alex Voinea 9466945532
Merge pull request #3461 from wavexx/fan_selfcheck_test
Fix/optimize fan selftest
2022-07-05 11:32:57 +02:00
Alex Voinea 19b494a554 Make the fan thresholds configurable 2022-07-05 09:02:47 +02:00
Yuri D'Elia a8244dc2bd
Merge pull request #3455 from wavexx/stop_raise_higher
Stop raise higher
2022-07-04 20:05:23 +02:00
3d-gussner 6271f17340
Merge pull request #3442 from gudnimg/fix-M701-doc
Add documentation for M701, M203, M201 parameters
2022-07-04 18:51:31 +02:00
Alex Voinea 253b14def1 Clamp Z movements to machine limits 2022-07-04 18:26:14 +02:00
Yuri D'Elia 44fce0696b Make the stop raising distance configurable (Z_CANCEL_LIFT) 2022-07-04 18:21:59 +02:00
Yuri D'Elia 2c41857cb5 Raise Z 5cm after stopping
Check if Z axis has been homed and, if so, raise Z at least 5cm after
stopping so that the steel sheet can be comfortably removed.
2022-07-04 18:21:59 +02:00
Alex Voinea 61b8dbbab5 Disable sorting speedtest 2022-07-04 18:06:54 +02:00
Alex Voinea e79e15b12f Use the sd cache for positions even when not sorting 2022-07-04 18:06:54 +02:00
Alex Voinea d9d3d68217 Remove postponed sorting of elements
Now that the position is a uint16_t instead of uint32_t, it is simpler to just sort the positions in place without using the uint8_t indices. Also, this approach is considerably lighter on the stack usage and it also removes a delay after the sorting happens
2022-07-04 18:06:54 +02:00
Alex Voinea c100df7ba3 Remove quicksort, shellsort and add performance benchmark 2022-07-04 18:06:54 +02:00
Alex Voinea cac2b9ae40 Implement timer elapsed function
also fix build
2022-07-04 18:05:49 +02:00
Alex Voinea 490754a0f0 Fix build 2022-07-04 18:05:49 +02:00
espr14 02ca9496e8 File: use insert sort 2022-07-04 18:05:49 +02:00
Yuri D'Elia e37435b53f Merge remote-tracking branch 'upstream/MK3_3.11.1' into mk311_sync 2022-07-04 16:14:23 +02:00
Alex Voinea 3ff2b04801 M701 Alias T for E parameter 2022-07-04 15:01:41 +02:00
Alex Voinea fd702c8a21
Merge pull request #3527 from gudnimg/fix-cmdbuffer-debug-crash
Fix a crash during file check when `CMDBUFFER_DEBUG` is defined
2022-07-04 12:02:51 +02:00
Alex Voinea d5fc2a28f2
Merge pull request #3014 from Panayiotis-git/MK3_ButtonLongPress_Fix
Ignore button long-press event, if not allowed
2022-07-04 09:46:08 +02:00
Alex Voinea 29159a5bf3
Merge pull request #3475 from gudnimg/custom_message_m601
Make M117 message persistent on LCD when used with M601 or G4
2022-07-04 09:42:23 +02:00
Alex Voinea 61151251ff
Merge pull request #3485 from wavexx/ambient_raw_temps
Fix AMBIENT_RAW_*_TEMP define names
2022-07-04 09:38:05 +02:00
Alex Voinea 1fa87da2d0 Fix gnu++17 register warning 2022-07-04 09:35:17 +02:00
Panayiotis-git 87e45056c3 Ignore button long press if not allowed 2022-07-03 22:01:47 +03:00
Guðni Már Gilbert b64377b9de Fix a crash during file check when CMDBUFFER_DEBUG is defined
The file check is so slow that we need to kick the watchdog to prevent a "crash"
2022-07-02 16:54:05 +00:00
Alex Voinea dc812dabb2 _O() macro
Ability to get the english (original) variant of a translated message. Helpful for serial messages where translations must be prohibited for compatibility.
2022-07-01 16:01:51 +02:00
Yuri D'Elia af9daecf5b Correctly show XFLASH initialization errors
Remove the first serial message, which cannot be displayed since serial
is not available yet.

Move both the serial message and display after
serial/temperature/planner is setup, so that we can use
lcd_show_fullscreen_message_and_wait_P properly.
2022-06-29 11:44:53 +02:00
3d-gussner f3adb781a1
Merge pull request #3457 from wavexx/remove_runout_support
Cleanup: remove unused FILAMENT_RUNOUT_SUPPORT define
2022-06-29 08:16:31 +02:00
Yuri D'Elia 0d7680dbf7
New PO-based language translation support (#3471)
* lang: Add a PO language extractor with FW metadata support

Implement a straight-to-po language extractor which supports our custom
language requirements:

- _i/_I/ISTR for text string definitions
- _T for catalog translations (with back-reference support)
- //// EOL comments with:
  - MSG_ catalog entry name identifiers
  - c=X r=Y annotations for screen dimensioning checks
- Crude support for commented lines

All source locations are correctly referenced in the PO, with the
metadata colleted in the comment for further processing.

Several checks are implemented already during extraction:

- Correct catalog name assignment (no duplicates)
- Metadata checks for each entry

Further checks will be implemented by directly checking the translated PO file.

Requires "polib" and "regex" python modules.

* lang: Adapt lang-check to work directly on PO/POT files

* lang: Allow lang-extract to generate stable (pre-sorted) output directly

* lang: Further extend lang-extract consistency/error checking

- Do not parse inside preprocessor conditionals
- Distinguish between references and definitions
- Warn about missing references and definitions

* lang: lang-extract: warn about incorrect PROGMEM assignments

Check that ISTR is used along with PROGMEM_I1 in an attempt to spot
useless translated catalogs.

* lang: lang-extract: Improved handling of same-line translations

Correctly reference metadata on same-line translations.

* lang: lang-extract: Handle _O as a cat-ref

https://github.com/prusa3d/Prusa-Firmware/pull/3434

* lang: lang-extract: Warn about unused catalog definitions

* lang: lang-extract: Allow propagating translation comments via //

The definition:

    code //// definition [// comment]

will check [definition] as before, but blindly accumulate // comment.
The comment is then re-appended back into the PO files for translators
with the form:

    definition
    comment
    comment...

* lang: Fix incorrect display definitions

* lang: lang-extract: Check source encoding/charmap

* lang: Translate the degree symbol

* lang: Unbreak/cleanup DEBUG_SEC_LANG

* lang: Improve meaning of comment

* lang: Split charset conversions into an aux lib for future use

* lang: Implement lang-map.py to extract the translation symbol map

- Extracts the translatable symbol map for further use
- Computes a stable "language signature" from the map itself
- Optionally patches the binary update the symbols

* lang: Check for translation recoding problems

* lang: Implement a transliteration map to post-process translations

TRANS_CHARS is now used to replace unavailable symbols to the source
encoding, only while producing the language catalog.

* lang: Handle/check character replacements in lang-check

Filter the translation through TRANS_CHARS, so that the preview and
length check are performed correctly for expanding replacements such as
'ß' to 'ss'.

* lang: Implement lang-build.py to generate the final language catalog

* Cleanup .gitignore

* lang: Drop txt language files

* lang: Remove outdated translation scripts and obsolete docs

* lang: Update build scripts for new infrastructure

* lang: [no] Integrate accents from po/new/no.po

We now support accents natively

* lang: Remove redundant directory po/new/

* lang: Fix encoding of LCD characters in PO files

* lang: [hr] Fix wrapping in MSG_CRASH_DET_ONLY_IN_NORMAL

* lang: Sort and reformat PO files for further massaging

* lang: Switch to developer (dot) comments for PO metadata

* lang: Allow the IGNORE annotation to skip extraction

* lang: Fix missing/broken language metadata in sources

* lang: Add update-pot.sh and regenerate po/Firmware.pot

* lang: Add update-po.sh and refresh all PO files

* lang: Add summary documentation about the new translation workflow

* Add more ignored files

* CI: Add new required dependencies to travis

* lang: lang-build: Improve warning message

"referenced" was really meaning that data is being duplicated.

* lang: Respect the language order as defined in config.sh

This correctly splits normal and community-made entries during language
selection.

* lang: More typos in the documentation

* lang: Check for the maximum size of each language

Each table needs to fit within LANG_SIZE_RESERVED

* lang: Properly align _SEC_LANG to page boundaries

... instead of relying on _SEC_LANG_TABLE to calculate the offset

* lang: Build support for dual-language hex files

Detect the printer type by checking the current variant type.

On printers with no xflash (MK2*), generate one hex file for each
additional language file by patching the built-in secondary language
table during the build process

* lang: Mention lang-patchsec.py

* lang: Use color() instead of tput for clarity

* lang: Allow disabling terminal colors with NO_COLOR/TERM=dumb

* lang: Consistent use of redirection in config.sh

* lang: Stricter variant-type check for xflash support

* lang: Output size stats when building double-language hex files

* lang: Respect NO_COLOR in lang-check.py

* lang: Check for repeated/incorrect annotations

Catch errors such as "c=1 c=2"

* lang: Correct MSG_SLIGHT_SKEW/MSG_SEVERE_SKEW annotations

* lang: [it] Improve MSG_*_SKEW translation

* lang: Use INTLHEX instead of OUTHEX_P/S for configuration

We already have OUTHEX which is the compiled firmware.

Use INTLHEX for the final internationalized firmware, which is less
confusing. Also, assume it being a prefix for all generated hex
files, which reduces the number of variables set.

* lang: Move lang_map to lib.io for further use

* lang: lang-check: Accept a firmware map file to suppress unused string warnings

* lang: Use the map file to reduce useless warnings during fw-build

* lang: lang-check: Also suppress unused empty annotations

* lang: Fix MSG_MOVE_CARRIAGE_TO_THE_TOP_Z annotation

Refresh pot file

* lang: lang-check: Do not warn about same-word translations by default

Do not warn when one-word translations such as "No" result in "No" also
in other languages, since this is common in latin languages.

Allow to re-enable the warning with --warn-same

* lang: lang-build: Handle same-source/translation efficiently

* lang: [it] Explicitly add On/Off/Reset/Wizard to suppress warnings

Instead of displaying a warning, supress the warning and explicitly
translate each entry using english (which is the common/acceptable
word in these cases).

* lang: [it] Suppress more warnings

* lang: lang-check: Add intermediate "suggest" warning category

Warnings in the "suggest" category as shown as [S] as based on pure
speculation from the checking tool, such as the translation being
significantly shorter than the original.

As a result, they can be suppressed with --no-suggest

* lang: Return translation status from lang-check

- 0 if the translation only contains suggestions
- 1 if the translation contains warnings or errors

Check for the exit status in fw-build.sh, but do nothing at the moment
except printing a non-fatal error.

* lang: Remove "trim_trailing_whitespace=false" for po files

PO files got cleaned up/rewritten. We can now ensure they stay
consistent.

* lang: [sv] Re-integrate changes from 70c73cb

* lang: [no] Reintegrate changes from @pkg2000
2022-06-16 15:03:30 +02:00
3d-gussner 880853650d
Version changed (3.11.1-RC1 build 4987) 2022-06-13 12:03:48 +02:00
3d-gussner 3ae4b6d329 Merge remote-tracking branch 'pkg2000/MK3_3.11.0' into HEAD
Fix merge issues and POEdit double `\\` to `\`
Update `lang_en_no.txt`
Enable Norwegian translation in `config.h`

Tested on MK404 MK3S
2022-05-24 07:28:10 +02:00
Guðni Már Gilbert 65d500f2ed Simplify printer_smodel_check
Saves 140 bytes of flash and 4 bytes of SRAM
2022-05-22 17:57:47 +00:00
Yuri D'Elia d53eb69150 Manually cast to int when comparing against extrude_min_temp
Avoid the automatic conversion to float to improve code size.
2022-05-12 12:20:54 +02:00
Yuri D'Elia ea46402e4d Replace EXTRUDE_MINTEMP with the configurable extrude_min_temp
Everywhere MINTEMP is checked, use the configurable value set by M302,
not an hardcoded value.

EXTRUDE_MINTEMP is now used only as the initial default value.

Reduce the precision of extrude_min_temp to an integer to reduce the
generated code size (constant folding did in fact do the same previously
anyway). Having tenths of degrees is not necessary for this feature.
2022-05-11 20:07:38 +02:00
Yuri D'Elia 64f646a8a4 Add notices about Sheet::bed_temp and Sheet::pinda_temp being unused
There is a potential for 2*8 bytes of extra sparse eeprom space, plus a
few bytes saved if we remove the update calls, so add a notice that
these values are currently only written-to, but never actually used.
2022-05-11 11:15:36 +02:00
Alex Voinea 7515db1ef0 Adjust comments 2022-05-02 10:02:00 +02:00
Alex Voinea 0b23ccdee9 Abort arc on planner hard stop 2022-04-29 20:38:48 +02:00
Yuri D'Elia 5b3441b2bd Fix AMBIENT_RAW_*_TEMP define names
The max/min temperature check were incorrectly using
HEATER_AMBIENT_RAW_*_TEMP (non-existing) instead of the correct
AMBIENT_RAW_*_TEMP (this is not a heater afterall).

This doesn't change the current behavior, since the check defaulted to
the correct path for the MK3+ configuration anyway.
2022-04-29 16:54:39 +02:00
FormerLurker bb33c76d2b Fix and simplify M214 data types and default config initialization. 2022-04-28 14:36:51 +02:00
FormerLurker 02b0307307 Code Cleanup 2022-04-28 14:36:51 +02:00
FormerLurker 623c029bfa Code cleanup to reduce program storage 2022-04-28 14:36:51 +02:00
FormerLurker acc234b0c5 Fix config store load (was missing n_arc_correction). 2022-04-28 14:36:51 +02:00
FormerLurker 3880777691 Fix invalid bool compare. 2022-04-28 14:36:51 +02:00
FormerLurker 6fc8155cbe Add n_arc_correction and enhanced small angle sin/cos approximation. 2022-04-28 14:36:51 +02:00
FormerLurker 58d9916d54 Make suggested corrections. 2022-04-28 14:36:51 +02:00
FormerLurker 4aa5a75301 Enhance arc interpolation and add M214 for controlling arc interpolation settings. 2022-04-28 14:36:51 +02:00
Alex Voinea e3f48ead9f
Merge pull request #3440 from gudnimg/optimise-checkFanSpeed
Optimise `checkFanSpeed()` Flash use
2022-04-21 14:04:23 +02:00
Alex Voinea d860d61513
Merge pull request #3459 from gudnimg/remove_pid_add_extrusion_rate
Remove unused setting `PID_ADD_EXTRUSION_RATE`
2022-04-21 14:01:50 +02:00
Alex Voinea d4d8149c9b
Merge pull request #3438 from leptun/MK3_reset_acceleration_rates_on_steps_per_mm_change
Reset acceleration rates when changing microstepping resolution
2022-04-21 13:59:55 +02:00
Alex Voinea a4887b542f
Merge pull request #3467 from gudnimg/autostart_stilltocheck-optimisation
Optimise `autostart_stilltocheck` variable
2022-04-21 13:57:02 +02:00
Guðni Már Gilbert bf38241afe Make M117 message persistent when using G4 command
This is also supported in Marlin 2 FW

Fixes #1443
Fixes #2970
2022-04-18 17:07:34 +00:00
Guðni Már Gilbert 727060ddd8 Replace CustomMsg::MsgUpdate with CustomMsg::M117
MsgUpdate was only used with M117, renaming the message type to M117 may be more descriptive for current use case.
2022-04-17 15:01:48 +00:00
Guðni Már Gilbert c77b768fdd Make M117 custom message persistant if print is paused
If M117 is called before M601 then we would like the custom message to
be visible on the LCD screen until the print is resumed.

Change in memory: +10 bytes of flash

Fixes #3316
2022-04-17 14:00:41 +00:00
Alex Voinea b5f6bbb2c3 XFlash upload message 2022-04-15 12:37:51 +02:00
3d-gussner 312f3070c2 Use/show `help.prusa3d.com` instead of `howto.prusa3d.com` 2022-04-13 13:33:26 +02:00
Yuri D'Elia 765fbd3e92 Fix argument of lcd_selftest_fan_auto to be uint8_t 2022-04-11 17:42:31 +02:00
Guðni Már Gilbert 15b41e7348 Optimise autostart_stilltocheck variable
Make the variable static within the checkautostart function.
When the function is called for the first time autostart_stilltocheck
is set to true and will continue to live after the function is exited.
After it is set to false within checkautostart() it will continue to be
false forever.

Using static this way is more efficient than using a global variable

Saves 6 bytes of flash and 1 byte of SRAM
2022-04-09 11:10:55 +00:00
Alex Voinea b52597f1b2
Merge branch 'MK3_3.11.1' into MK3_3.10.2 2022-04-07 14:05:34 +02:00
D.R.racer 6b6e06695f Version changed (3.11.0 build 4955) 2022-04-07 09:38:13 +02:00
Yuri D'Elia 859aa4d283 Reuse M123 during fan selftest to report RPM
M123 reports both fan speeds nicely in RPM, as well as the requested PWM
for each so that we don't need to show the test "number" to distinguish
between the two in the serial output.
2022-04-04 23:29:52 +02:00
Yuri D'Elia 7671ff37a9 Fix/optimize fan selftest
Rewrite the part of the fan selftest to use a shared path between hotend
and print fan.

Remove the useless 10 seconds spin-up delay for the print fan. Reduce it
to 5 seconds.

Properly wait for readings after spin-up, so that RPMs are more
reliable. Also tune the print fan threshold to a more reasonable
default. Both, in conjunction, now avoid the "swapped fan" check that
was incorrectly triggered in almost every case.
2022-04-04 21:36:02 +02:00
Guðni Már Gilbert c62c412cc3 Remove unused setting PID_ADD_EXTRUSION_RATE
Even if the setting was turned on, it doesn't do anything useful.
2022-03-30 19:03:41 +01:00
Yuri D'Elia 1949802bea Cleanup: remove unused FILAMENT_RUNOUT_SUPPORT define
FILAMENT_RUNOUT_SUPPORT has never been supported in the MK3 branch, and
contains a ton of horrible and unmaintained code that doesn't even
compile anymore.

Since this code is currently polluting a sizable block inside the G0/G1
code block, simply get rid of it.
2022-03-30 12:49:08 +02:00
Yuri D'Elia d724eb1f92 Cleanup hardcoded values to constants in M701 2022-03-30 12:33:46 +02:00
Yuri D'Elia 6317a6147d Use a consistent distance/feedrate for the [auto]load sequence 2022-03-30 11:38:25 +02:00
3d-gussner 4752b2b479 Disable Norwegian 2022-03-23 10:18:16 +01:00
3d-gussner 85a5986e9e Update `////MSG...` for `lang-add.sh` 2022-03-16 09:01:14 +01:00
Guðni Már Gilbert 7f751ae6ac Add M201 paramters to documentation
Also fixed the reprap link for M201
2022-03-13 15:53:51 +00:00
Guðni Már Gilbert 8e2d44987f Document M203 parameters 2022-03-13 15:49:38 +00:00
Guðni Már Gilbert 935458beca Add 'E' parameter to M701 documentation
Remove missing 'U' parameter in M702
2022-03-13 12:04:26 +00:00
3d-gussner 7c55cf801b Fix additional merge issues
Update lang-??port.sh scripts
2022-03-12 10:51:26 +01:00
3d-gussner 764a1fd411 Merge remote-tracking branch 'upstream/MK3_3.11.0' into MK3_3.11.0_Improve_languages2
Fix Swedish merge issues
2022-03-12 09:44:00 +01:00
3d-gussner 626e5b43eb Fix part 2 of `\04Refresh` and `Sheet...` 2022-03-11 15:37:57 +01:00
3d-gussner b4492067a4
Merge branch 'MK3_3.11.0' into MK3_3.11.0_Swedish 2022-03-10 14:59:46 +01:00
3d-gussner d6de893ac5 Fix SN compile warnings for MK2.5/S 2022-03-07 18:45:45 +01:00
3d-gussner 45cd904520 Remove duplicate `Extruder fan:`
Create MSG in messages to reuse it
Remove `Nozzle FAN`
Change Support -> Extruder info -> fan speeds
2022-03-07 11:47:53 +01:00
3d-gussner bcd2b6f8bf Remove `Choose filament` as it is a duplicate of `Select filament` 2022-03-07 11:47:53 +01:00
3d-gussner 879803daa9 Temp. cal. -> PINDA cal.
01234567890123456789
 Temp. cal.   [Off] old
 PINDA cal.   [Off] new

Temp. cal.  1/6     old
PINDA cal.    1/6   new

MSG_TEMP_CALIBRATION -> MSG_PINDA_CALIBRATION
MSG_TEMP_CALIBRATION_DONE -> MSG_PINDA_CALIBRATION_DONE

Updated text
- MSG_PINDA_CALIBRATION_DONE
- MSG_PINDA_CAL_FAILED

Update status line during PINDA cal.

Changed PINDA cal. from submenu to function
- Deleted `lcd_pinda_calibration_menu()`
- Deleted `#MSG_CALIBRATE_PINDA c=17`

Tried to update translations

Updated po files
2022-03-07 11:47:52 +01:00
3d-gussner 7939142922 Change `Choose extruder` to `Select extruder` for consistant wording 2022-03-07 11:47:52 +01:00
3d-gussner 81d8c72cc4 Remove duplicate `Extruder fan:`
Create MSG in messages to reuse it
Remove `Nozzle FAN`
Change Support -> Extruder info -> fan speeds
2022-03-07 11:47:52 +01:00
3d-gussner 4a73cad3fd Remove `Choose filament` as it is a duplicate of `Select filament` 2022-03-07 11:47:52 +01:00
3d-gussner 6822b65e9c FW Crash messages will not be translated 2022-03-07 11:47:52 +01:00
Guðni Már Gilbert d42ef4784c Optimise checkFanSpeed()
Changes save 28 bytes of flash
2022-03-06 12:54:24 +00:00
3d-gussner 851f72b059
Merge pull request #3389 from leptun/MK3_SN_GET_only_on_Einsy
Allow SN get only on the Einsy
2022-03-04 08:16:01 +01:00
3d-gussner 0889b3f49e
Merge pull request #3390 from leptun/MK3_fake_SN
Fix Octoprint connect because of SN GET on blank einsy boards
2022-03-04 08:15:48 +01:00
3d-gussner e10e196982
Merge pull request #3350 from leptun/MK3_fix_SN_crash2
Add a uart RX timeout
2022-03-04 08:15:17 +01:00
Alex Voinea 159c4cf8ae Reset acceleration rates when changing microstepping resolution 2022-03-03 22:25:48 +01:00
Alex Voinea 0896442335 Use correct filament type in variant files 2022-03-02 12:02:17 +01:00
Guðni Már Gilbert 4a02ff3de8 Change SERIAL_PROTOCOL to SERIAL_PROTOCOLPGM in a few lines
Saves 12 bytes of SRAM but increases flash use by 12 bytes.
2022-02-28 11:37:13 +01:00
Alex Voinea 97c371e5e8 Make the "ln" functions no-inline.
Save 348B of flash
2022-02-27 20:58:56 +01:00
Guðni Már Gilbert af36f654d1 Optimise a few uses of SERIAL_PROTOCOLLN
Saves 34 bytes of flash memory and reduces code by 8 lines.
2022-02-27 20:58:50 +01:00
Alex Voinea bb56c35b87 Optimise PINDA cal status Serial print
"PINDA cal status:" is always printed no matter what cal_status is so we can pull that out of the conditional statment.

cal_status is also a boolean, lets just print it directly. Its a simpler code.

Saves 32 bytes of flash and 22 bytes of SRAM

Change serial messages to PGM
2022-02-27 20:58:46 +01:00
Guðni Már Gilbert efde923e57 Purge ftostr3
Saves 54 bytes of Flash and 2 bytes of SRAM
2022-02-27 20:58:39 +01:00
Alex Voinea 8e85242c8f Temperature selection is int16_t. Use sprintf for PID start command.
Saves 90B of flash and 2B of ram
2022-02-27 20:57:24 +01:00
Guðni Már Gilbert 6d98e99356 Use sprintf_P for M301 instead of ftostr32
Also fixed indentation of if statement

Saves 248 bytes of flash
2022-02-27 20:57:24 +01:00
Guðni Már Gilbert 0e6ff38b61 Optimise strcpy calls to use strcpy_P
Saves 24 bytes of SRAM
2022-02-27 20:57:24 +01:00
Guðni Már Gilbert 3ab57086b1 Remove one call to dtostrf
I could not see any difference in the functionality when testing this locally

Changes save 818 bytes of flash memory
(I suspect this is due to dtostrf no longer being called in the firmware for MK3S?)
2022-02-27 20:57:24 +01:00
Alex Voinea 6e15df6a4e
Merge pull request #3430 from leptun/MK3_MK2_obsolete
Make the MK2 variants obsolete in the MK3 branch
2022-02-25 13:04:39 +02:00
Alex Voinea 0c716d21fe
Merge pull request #3377 from leptun/MK3_fix_lang_reserved_area
Fix lang reserved area alignment
2022-02-25 12:36:33 +02:00
Alex Voinea a617025d85 Move MK2 variants to obsolete 2022-02-25 11:14:55 +01:00
Alex Voinea ce7cccab80
Merge pull request #3417 from leptun/MK3_temperature_busy_messages
Print busy messages while waiting for heaters
2022-02-25 12:03:23 +02:00
Alex Voinea 50f4981a06 Remove forgotten SNMM code in M600 2022-02-24 14:02:49 +01:00
3d-gussner 715f466fda Add Norwegian 2022-02-22 11:56:01 +01:00
3d-gussner 436b6f206a Activate Swedish community translation 2022-02-22 06:59:23 +01:00
Guðni Már Gilbert 227b6b4b03 Fix FINDA timer
We want to set the FINDA state IF the timer has not expired.
It is helpful to see why by looking at the commit which broke
this 802b8860c8

Without this fix my FINDA sensor just shows N/A. But after this commit is works perfectly.
2022-02-20 12:28:40 +00:00
Alex Voinea 0cc364ff7a Print busy messages while waiting for heaters 2022-02-17 17:53:02 +01:00
Alex Voinea b654217a5b
Merge pull request #3416 from leptun/MK3_MMU2_capability_line
Add MMU2 capability line
2022-02-17 17:44:39 +01:00
Alex Voinea e98bb086cc
Merge pull request #3414 from leptun/MK3_xflash_partitioning
xflash partitioning
2022-02-17 17:10:10 +01:00
Alex Voinea 5499ce5931 Add MMU2 capability line 2022-02-17 17:05:17 +01:00
Alex Voinea 28a3458634 Fix crash detected message translation 2022-02-17 13:05:01 +01:00
D.R.racer c5999888e6 Version changed (3.11.0-RC1 build 4864) 2022-02-17 10:16:52 +01:00
DRracer 159c9c34bd
Merge pull request #3089 from wavexx/show_axes_during_crash
Show affected axes in crash detection messages
2022-02-17 09:52:19 +01:00
Alex Voinea 52b464688f Make layout static regardless of what is enabled 2022-02-17 09:34:09 +01:00
Alex Voinea eae6b4e911
Merge pull request #3412 from leptun/MK3_TWI_timeout
Hardware TWI timeout
2022-02-17 09:26:47 +01:00
Alex Voinea 1e0f414d41 Make twi timer local to the wait function 2022-02-17 09:22:18 +01:00
Alex Voinea 536395eabf
Merge pull request #3413 from leptun/MK3_fix_timer_polling
Make some timers LongTimer
2022-02-17 09:00:13 +01:00
Alex Voinea 91c71da810 Convert some more suspicious timers to LongTimer 2022-02-17 08:48:29 +01:00
Alex Voinea 0172cbdf8b Extra TWI disable code. Not used yet. 2022-02-17 00:05:31 +01:00
Alex Voinea 6351d29d70 TWI timeout 2022-02-17 00:05:09 +01:00
Yuri D'Elia 5b6a057037 Reduce duplication and code size 2022-02-16 16:45:06 +01:00
Yuri D'Elia 35a67ad51f Fix typo 2022-02-16 16:23:31 +01:00
Yuri D'Elia 3a00054c55 Show the axes invoved during crash detection
Explicitly show which axes are affected on the status line when a crash
has been detected.

When the crash recovery prompt is triggered, also show all axes which
have been affected during the detection interval (currently X, Y, or
both).

The timer detection has been simplified to match the MK3 optical
filament timeout handling, which makes more sense: a crash immediately
following a crash recovery prompt will trigger the prompt again. The
timer needs to properly expire in order to reset the crash count.

This helps crash detection tuning (and help users reporting issues with
crash detection) without having to monitor the serial line.

This currently abuses the MSG_CRASH_DETECTED message by prepending the
[X][Y] labels to the message, which is ok in english but might not
translate that well for all languages.
2022-02-16 15:47:28 +01:00
Yuri D'Elia 9b6fca9214 Introduce lcd_show_yes_no_and_wait for future use
Split off yes/no lcd handling from
lcd_show_fullscreen_message_yes_no_and_wait_P into a separate function
in order to allow generic requests where the text prompt can change.
2022-02-16 14:17:56 +01:00
Alex Voinea 26f31743f7 Fix crashDet timer overflow handling 2022-02-16 10:06:07 +01:00
Alex Voinea 91797214b0 Update Eject and Cut to use for loop for menu items
Saves 134B of flash
2022-02-15 23:37:55 +01:00
Alex Voinea 2ec530c282 Do not hardcode the factory reset menu item count 2022-02-15 15:58:33 +01:00
Alex Voinea a6331d22c8 Remove ancient SNMM code in the MK3 branch 2022-02-15 15:58:33 +01:00
Alex Voinea 775c460dc5
Merge branch 'MK3' into MK3_fix_usb_timer 2022-02-15 10:36:57 +01:00
DRracer 9aa0b250ff
Merge pull request #3405 from wavexx/fixup_suspicious_indentation
Fixup suspicious indentation in lcd_show_sensors_state
2022-02-15 10:31:20 +01:00
DRracer 8a1e9ea38e
Merge pull request #3397 from leptun/MK3_reset_time_remaining_on_stop
Fix time remaining not reset on stop print
2022-02-15 10:30:09 +01:00
DRracer 2d9a154541
Merge pull request #3247 from gudnimg/remove-ifdef-gudni
Remove unused ifdef `MK1BP` and `MAX_SILENT_FEEDRATE`
2022-02-15 10:27:21 +01:00
DRracer e641d6e1e1
Merge pull request #1263 from metacollin/calfix
Make the simple 4 axis stepper control respect the axis inversion settings in Configuration_prusa.h
2022-02-15 09:26:42 +01:00
Alex Voinea a1711f727e Disable pullup crash test 2022-02-15 09:07:18 +01:00
Alex Voinea 73406f53e9
Merge pull request #3393 from gudnimg/add-menu-back-arrow-to-preheat-menu
Add menu back arrow to the Preheat menu
2022-02-15 08:49:07 +01:00
Yuri D'Elia 40881f52ad Prettify lcd_show_sensors_state() v2
Allow to show the full precision of Xd/Yd by rearranging the layout
2022-02-14 23:30:08 +01:00
Yuri D'Elia 0c63e0e8df Prettify MK3 sensor-info screen 2022-02-14 18:07:54 +01:00
Yuri D'Elia d89f4e9952 Fix indentation in the MK3 sensor information screen 2022-02-14 17:59:47 +01:00
Alex Voinea 8d0f4b766a Change fake SN as requested 2022-02-14 10:14:08 +01:00
Alex Voinea 4ec8781df2 Fix usb print timer 2022-02-13 22:52:49 +01:00
Alex Voinea 5ae45d583f Fix time remaining not reset on stop print 2022-02-13 08:52:27 +01:00
Alex Voinea 480c30221e
Merge branch 'MK3_3.11.0' into MK3_3.11.0 2022-02-12 23:01:02 +01:00
Guðni Már Gilbert bd3a835516 Optimise preheat menu's MENU_ITEM_BACK_P
Saves 10 bytes of flash memory
2022-02-12 14:17:11 +00:00
Guðni Már Gilbert 70ee06144e Add menu back arrow to the Perheat menu
All other menus have this arrow on the back button.
2022-02-12 12:48:39 +00:00
Alex Voinea 7e90047bba Use eeprom_update_block instead of a for loop
Saves 32B
2022-02-12 09:41:07 +01:00
Guðni Már Gilbert 4672b6444c
Merge branch 'MK3' into remove-eeprom-func 2022-02-11 19:32:11 +00:00
Alex Voinea ea39a245af
Merge pull request #3388 from leptun/MK3_fix_broken_progmem_string
Fix PRUSA commands
2022-02-11 15:46:30 +01:00
3d-gussner 8e73bb030e Change to python3
Bump up version
2022-02-11 15:04:35 +01:00
Alex Voinea 3031f68d31 Fix Octoprint connect because of SN GET on blank einsy boards 2022-02-11 14:21:06 +01:00
ingbrzy 5b45553f38
add community SK 2022-02-11 13:31:43 +01:00
Alex Voinea 6689581364 Allow SN get only on the Einsy 2022-02-11 13:11:13 +01:00
Alex Voinea 489e4fd35c Fix PRUSA commands 2022-02-11 13:04:27 +01:00
ingbrzy 9f093ee404
typo 2022-02-11 12:49:41 +01:00
Alex Voinea ed8252527c Add a uart RX timeout 2022-02-11 12:49:11 +01:00
Alex Voinea 426ab24c36 Let's not talk about this 2022-02-10 20:19:52 +01:00
Alex Voinea bf45d4dcd1 Make the compiler align the lang reserved area to the spm page boundary 2022-02-10 20:19:52 +01:00
Alex Voinea e358cb2b78 Fix DEBUG_SEC_LANG 2022-02-10 20:19:52 +01:00
ingbrzy 834cc24e6c Add SK language 2022-02-10 19:01:04 +01:00
Alex Voinea 882a73b867 VERBOSE_CHECK_HIT_ENDSTOPS 2022-02-10 16:42:02 +01:00
Alex Voinea 18dde3fb61 Faster code when endstops/probe are not enabled 2022-02-10 16:24:52 +01:00
Alex Voinea 42b91a83cd Merge branch 'MK3' into MK3_3.12_Optimizations 2022-02-10 10:36:31 +01:00
Alex Voinea dee8da61f6 Optimize endstop flags even more 2022-02-10 10:35:25 +01:00
Alex Voinea 380377db0f Add static assert 2022-02-10 09:47:37 +01:00
Alex Voinea 060581962c Fix sizeof array look 2022-02-10 09:33:55 +01:00
Alex Voinea e35b21569d
Merge pull request #3005 from wavexx/remove_mres_limits
Allow all microstep resolutions for all axes
2022-02-09 13:48:51 +01:00
Alex Voinea 6aaf784975
Merge pull request #3251 from gudnimg/farm-mode-setup-gudni
Optimize `farm_mode` initialisation in `setup()`
2022-02-09 13:48:12 +01:00
Alex Voinea 916212b597 Add ALLOW_ALL_MRES as requested in PR 2022-02-09 10:28:45 +01:00
Guðni Már Gilbert c4f1023924 Add back second call to prusa_statistics(8) when farm_mode is enabled.
Adds 18 bytes of flash
2022-02-09 07:30:50 +00:00
Guðni Már Gilbert caf496e996 Optimise FanCheck initialisation when farm mode is on
Saves 12 bytes of flash memory (Arduino IDE 1.8.19)
2022-02-09 07:26:34 +00:00
Alex Voinea 1342db3532
Merge pull request #3257 from gudnimg/lcd-optimisation-gudni
Remove redundant operations on LCD CGRAM
2022-02-09 08:09:48 +01:00
Alex Voinea aab094ff4f
Merge pull request #3292 from gudnimg/fix-pinda-thermistor-build-fail
Fix build error if `PINDA_THERMISTOR` is not defined
2022-02-09 07:54:42 +01:00
3d-gussner e6703125ec
Merge pull request #3268 from gudnimg/lcd_button_update_gudni
Remove one call to `lcd_timeoutToStatus.start`
2022-02-09 07:37:36 +01:00
Alex Voinea 0b7aa31b2a Fix MUL24x24R24 comment 2022-02-09 00:26:46 +01:00
Alex Voinea 5c0d2767a8 Move the test to the experimental menu
.
2022-02-08 11:18:09 +01:00
Alex Voinea fb1c8ee0a3 Change the pullup test 2022-02-08 10:53:47 +01:00
3d-gussner a4b605ba16 The `Bed level correct` menu is under `Calibration` so `BACK` is correct 2022-02-08 10:38:04 +01:00
3d-gussner d80cef5443 Change [um] to [μm]
Including lang-im/export.sh to convert HD44780 to UTF-8 and vice versa
2022-02-08 10:18:27 +01:00
3d-gussner 881db2e747 Change `MSG_YES` to max. 4 chars
Hungarian YES is 4 letters long
2022-02-08 08:50:24 +01:00
3d-gussner e7d7068840 Change `MSG_WIZARD_DONE` rows to 3 2022-02-08 08:46:07 +01:00
Alex Voinea 234add3c58 Merge branch 'MK3' into lcd-optimisation-gudni 2022-02-08 00:14:59 +01:00
Guðni Már Gilbert 121324d20b Revert "Remove one space from Support -> Temperatures menu"
This reverts commit 158877e736.
2022-02-08 00:09:09 +01:00
3d-gussner 8d0af30aa7 Update doxygen documentation 2022-02-07 19:41:14 +01:00
Alex Voinea 2b18357fef
Merge pull request #3375 from leptun/MK3_arduino_1.8.13
Fix arduino 1.8.13 warnings
2022-02-07 17:27:13 +01:00
Alex Voinea 9c3c47ea29
Merge pull request #3253 from gudnimg/sd-sub-dir-fix
Fix edge case when SD card is inserted while user is inside the 'No SD card' submenu
2022-02-07 17:09:14 +01:00
3d-gussner 75d6942d81
Merge pull request #2836 from wavexx/remove_jerk_limits
Remove hard-coded X/Y jerk limits
2022-02-07 17:04:49 +01:00
3d-gussner 0d4d386991
Merge pull request #3228 from gudnimg/remove-mmu_lcd
Remove a few redundant lines from ultralcd code
2022-02-07 17:04:34 +01:00
Alex Voinea c06ec9d05b Add pullup error test to define 2022-02-07 13:56:46 +01:00
Alex Voinea 5d29c4fab2 Fix build for real this time 2022-02-07 13:49:56 +01:00
Alex Voinea b3a53f6436
Fix build 2022-02-07 14:41:56 +02:00
3d-gussner db79ae9d5e Forgot #ifdef DEBUG_PULLUP_CRASH 2022-02-07 13:31:55 +01:00
3d-gussner 0b8ecfbf7c Add Test Pullup Crash menu 2022-02-07 13:28:48 +01:00
Guðni Már Gilbert ff00988303 Revert "Replace hardcoded values and optimise strings"
This reverts commit e62bc4686f.
2022-02-06 11:09:45 +01:00
Alex Voinea 670214a30b Fix indentation 2022-02-06 11:01:35 +01:00
Guðni Már Gilbert c6ecc0dfc9
Merge branch 'prusa3d:MK3' into lcd-optimisation-gudni 2022-02-06 09:54:58 +00:00
Guðni Már Gilbert c2bad473dc Optimise _menu_edit_P
If the first if statement is true, then we don't need to check the next if statement.

Saves 64 bytes of flash memory
2022-02-06 09:01:16 +00:00
Alex Voinea 70cb30208c Also change MUL24x24R24 to the new format and fix rounding 2022-02-06 01:11:22 +01:00
Alex Voinea d06e74dd6f Fix Welcome message and language flashing 2022-02-05 23:44:24 +01:00
Guðni Már Gilbert a22a7ea9d7 Change LCD_STR_UPLEVEL to LCD_STR_UPLEVEL[0] for consistency
Saves 4 bytes of flash and 2 bytes of SRAM (Arduino IDE 1.8.19)
2022-02-05 19:58:31 +00:00
Guðni Már Gilbert d5b666d260 Add LCD_STR_SOLID_BLOCK to represent \xFF 2022-02-05 19:53:42 +00:00
Guðni Már Gilbert 976c8c4902 Change message from .c to .cpp
The allows us to include lcd.h and replace hardcoded value with define LCD_STR_REFRESH

Also deleted a #define for bool which does not seem to be used.
2022-02-05 18:57:18 +00:00
Guðni Már Gilbert e62bc4686f Replace hardcoded values and optimise strings
This commit saves 64 bytes of flash memory on my end
2022-02-05 18:28:17 +00:00
Guðni Már Gilbert 19dc05597d Fix identation in PR
Also combined the if statements that check farm_mode
If farm_mode is 0xFF then we can skip the next if statment.

No change in memory footprint
2022-02-05 11:24:04 +00:00
Alex Voinea 274f198188 Fix typo from long ago 2022-02-04 16:28:49 +01:00
Alex Voinea 58867f6c06 Fix arduino 1.8.13 warnings 2022-02-04 15:53:49 +01:00
Alex Voinea f068c3258f Pack endstop flags 2022-02-04 15:24:43 +01:00
Alex Voinea 21a0b53647 remove firstrun 2022-02-04 13:27:43 +01:00
Alex Voinea 858984ef35 SD sorting entries instead of positions 2022-02-04 10:47:56 +01:00
3d-gussner 22b3fbfe09 Deactivate translations haven't been merged or translated yet 2022-02-03 07:05:59 +01:00
Guðni Már Gilbert 1f3640ab26 Merge branch 'MK3_3.12_Optimizations' of https://github.com/leptun/Prusa-Firmware into MK3_3.12_Optimizations 2022-02-02 20:49:41 +00:00
Guðni Már Gilbert 43bf33e791 Optimise usage of code_value()
code_value() is float but in some cases we can save memory when the expected output is only 1 or 2 bytes.

Changes save 182 bytes of flash memory on my end.
2022-02-02 20:48:36 +00:00
Alex Voinea f25bddce35 Simplify GETPC() 2022-02-02 21:06:58 +01:00
Alex Voinea 6ce7792045 Remove "hh" in fmt where it makes no difference 2022-02-02 20:58:21 +01:00
Guðni Már Gilbert 146b008186 Remove redundant variable farm_status
It is unused and status_number variable can be used instead.
2022-02-02 18:37:55 +00:00
Guðni Már Gilbert 459570ab66 Change prusa_stat_printerstatus parameter to uint8_t
Also changes status_number global variable to uint8_t

Changes save 80 bytes of flash and 1 byte of SRAM (Arduino IDE 1.8.19)
2022-02-02 18:35:52 +00:00
Guðni Már Gilbert e525bcb7f5 Optimise lcd_selftest_screen input parameters and return type
* _progress_scale is max 3 so it can be uint8_t
* _progress is max 6 so it can be uint8_t
* Change _delay type to uint16_t to be explicit

Changes save 102 bytes of flash memory (Arduino IDE 1.8.19)
2022-02-01 18:57:43 +00:00
Guðni Már Gilbert 8681d84c44 Merge branch 'MK3_3.12_Optimizations' of https://github.com/leptun/Prusa-Firmware into MK3_3.12_Optimizations 2022-02-01 18:37:57 +00:00
Guðni Már Gilbert 53dfcf9d6f Optimise if-statments in world2machine_clamp
Only one of the statements can be true: tmpx < X_MIN_POS or tmpx > X_MAX_POS.
So we can be a little bit smarter here and skip the second if statement if the first was true.

This saves 6 bytes of flash memory and potential some clock cycles
2022-02-01 18:37:41 +00:00
Alex Voinea aec2db7683 Optimize MUL8x16R8 2022-02-01 18:12:13 +01:00
Alex Voinea b7806bf25f Crash if pullups get enabled on the thermistor inputs 2022-02-01 12:34:07 +01:00
Guðni Már Gilbert c0e7e17fc3 Fix type of nrFiles 2022-01-30 13:07:09 +00:00
Alex Voinea 1523194d3b Fix build (merge conflict) 2022-01-30 13:18:07 +01:00
Alex Voinea 67e6361ff1 Fix temperature runaway variable types (merge conflict) 2022-01-30 13:16:05 +01:00
Guðni Már Gilbert 9bf45773f9 Merge remote-tracking branch 'upstream/MK3' into rebase-testing-ground-v2 2022-01-30 11:43:16 +00:00
Alex Voinea aae562e480 Fix G81 for loop 2022-01-30 11:39:29 +00:00
Guðni Már Gilbert c081e1a5ae Loop index can be unsigned
Saves 4 bytes of flash memory
2022-01-30 11:39:29 +00:00
Guðni Már Gilbert 49693a9fb3 Remove undefined function
No change in memory footprint.
2022-01-30 11:39:29 +00:00
Guðni Már Gilbert c705d4aa10 Change set_z() parameters to uin8_t
Saves 24 bytes of flash
2022-01-30 11:39:28 +00:00
Guðni Már Gilbert 581188ce2c Fix an issue found in code review
Unfortunately this increases flash usages by 212 bytes (same usage as in current release) It seems it is most memory effcient to use int16_t (int). int8_t requires more memory.
2022-01-30 11:39:28 +00:00
Guðni Már Gilbert f8847edca6 Remove one unused variable
Saves 1 byte of SRAM

The variable is only assigned a value but is never used.
2022-01-30 11:39:28 +00:00
Guðni Már Gilbert d8723c0eac Use code_value_uint8() in get_command()
The if statement is simplified as the value is never negative
and we can get rid of one variable

Saves 12 bytes of flash memory
2022-01-30 11:39:27 +00:00
Guðni Már Gilbert ac049c7e3c Use code_value_short() in get_command()
Same code but uses a defined function

Saves 28 bytes of flash memory
2022-01-30 11:39:27 +00:00
Guðni Már Gilbert 052ecc3782 G81: Change for loop variables x and y to uint8_t
Saves 198 bytes of flash, that's crazy
2022-01-30 11:39:27 +00:00
Guðni Már Gilbert 7787f17139 Smaller code in G28
Replace two blocks of code with already defined functions.

Change saves 100 bytes of flash memory and 11 lines of code.
2022-01-30 11:39:27 +00:00
Guðni Már Gilbert b835f31904 Remove variable move_menu_scale
The variable is just set to 1.0 and is never modified, I also
removed the function lcd_move_menu_1mm()

Changes save 96 bytes of flash memory and 4 bytes of SRAM
2022-01-30 11:39:27 +00:00
Guðni Már Gilbert a940c364c9 Create enum class for heating_status variable 2022-01-30 11:39:27 +00:00
Guðni Már Gilbert 2013295f94 Change farm_timer to uint8_t
Remove extern declaration of farm_timer and farm_status as they
are only used in one file.

Saves 26 bytes of flash
2022-01-30 11:39:26 +00:00
Guðni Már Gilbert a687173e02 Change custom_message_state_old and custom_message_state to uint8_t
I see max value as 7*7+10 = 59

Saves 100 byte of flash and 1 byte of SRAM
2022-01-30 11:39:26 +00:00
Guðni Már Gilbert 60c9640602 Change heating_status_counter to uint8_t
It has a max value of 14

Saves 28 bytes of flash and 1 byte of SRAM
2022-01-30 11:39:26 +00:00
Guðni Már Gilbert 22f23dff36 Change heating_status to uint8_t
Saves 66 byte of flash and 1 byte of SRAM
2022-01-30 11:39:26 +00:00
Guðni Már Gilbert 2d614a8d41 Change usb_printing_counter to uint8_t
It is assigned max value of 10

Saves 26 byte of flash and 1 byte of SRAM
2022-01-30 11:39:26 +00:00
Guðni Már Gilbert aa0a86bf13 Remove internal Prusa command 'Beat'
It doesn't seem to do anything.

Saves 22 bytes of flash
2022-01-30 11:39:25 +00:00
Guðni Már Gilbert 42778cae83 Remove unused kicktime timer
The variable is only set and never actually used

Saves 8 bytes of flash and 4  bytes of SRAM
2022-01-30 11:39:25 +00:00
Guðni Már Gilbert ef8083a148 crashDetTimer can be ShortTimer
Expired value is less than 65535

Saves 8 bytes of flash and 2 bytes of SRAM
2022-01-30 11:39:25 +00:00
Guðni Már Gilbert 6a9bab02f7 Convert display_time to ShortTimer
Saves 24 bytes of flash, 1 byte of SRAM
2022-01-30 11:39:25 +00:00
Guðni Már Gilbert 802b8860c8 Convert mmu_last_finda_response to ShortTimer
Saves 48 bytes of Flash, 1 byte of SRAM
2022-01-30 11:39:25 +00:00
Guðni Már Gilbert 37fd9d1b11 Convert NcTime to ShortTimer
The variable is only used in ultralcd.cpp so I made it static there
and deleted it from Marlin_main.cpp

Saves 24 bytes of flash and 1 byte of SRAM
2022-01-30 11:39:25 +00:00
Guðni Már Gilbert a1abd094dd Convert autostart_atmillis to ShortTimer
Saves 34 bytes of flash and 1 byte of SRAM
2022-01-30 11:39:24 +00:00
Guðni Már Gilbert 762a5db125 Convert previous_millis_cmd to LongTimer
Saves 196 bytes of Flash but adds 1 byte of SRAM
2022-01-30 11:39:24 +00:00
Guðni Már Gilbert 1cd9ecb2c7 Convert mmu_last_request and mmu_last_response to ShortTimer
Saves 180 bytes of flash and 2 byte of SRAM
2022-01-30 11:39:24 +00:00
Guðni Már Gilbert 66782e9c9d setTargetHotend expect an uint8_t, not int for second parameter
also change _usb_timer to ShortTimer

Saves 28 bytes of Flash and 1 byte of SRAM
2022-01-30 11:39:24 +00:00
Guðni Már Gilbert 77cce1fc05 Replace three lines by one function call which does the same thing
Saves 42 bytes of flash memory
2022-01-30 11:39:24 +00:00
Guðni Már Gilbert a26651e7aa Change return types of two functions uint8_t
These functions aren't used but they should return the appropriate type.
2022-01-30 11:39:24 +00:00
Guðni Már Gilbert 800f44509d Change row_offsets[] to uint8_t
Saves 10 bytes of flash, and 4 bytes of SRAM
2022-01-30 11:39:24 +00:00
Guðni Már Gilbert 58213814cf Replace for-loop with memcpy
Saves 22 bytes of flash memory
2022-01-30 11:39:23 +00:00
Guðni Már Gilbert 52aa5a5f00 Use inlined function set_destination_to_current() in more places
Saves 70 bytes of flash memory
2022-01-30 11:39:23 +00:00
Guðni Már Gilbert a8d16d2949 Use memset to zero previous_speed array
Saves 150 bytes of flash memory
2022-01-30 11:39:23 +00:00
Alex Voinea cdd7ea30f4 Fix LUT loop 2022-01-30 11:39:23 +00:00
Alex Voinea fb10b4398e Merge pull request #6 from gudnimg/gudni-PR1
Purged some `int`s for `uint8_t` when using the axis enum
2022-01-30 11:30:25 +00:00
Guðni Már Gilbert f81db56793 temp_runaway_check() parameter _heater_id should be uint8_t
Saves 58 bytes of flash
2022-01-30 11:22:45 +00:00
Guðni Már Gilbert 261f311825 Change two arrays from int to uint8_t
__preheat_counter has max value of 16
__preheat_errors has max value of 5

Saves 58 bytes of flash memory and 4 bytes of SRAM
2022-01-30 11:22:45 +00:00
Guðni Már Gilbert 7535fa3a44 Remove unused variable
Saves 2 bytes of SRAM
2022-01-30 11:22:45 +00:00
Voinea Dragos 623762bd50 Fix build 2022-01-30 11:22:44 +00:00
Voinea Dragos 42a5f7dc20 Fix M226 2022-01-30 11:22:44 +00:00
Voinea Dragos 4aae88afdf M42 optimization 2022-01-30 11:22:44 +00:00
Voinea Dragos a5cd99a917 Disable unimplemented PID_ADD_EXTRUSION_RATE 2022-01-30 11:22:44 +00:00
Voinea Dragos 9951e3da52 Sound enums as uint8_t 2022-01-30 11:22:44 +00:00
Voinea Dragos 6dd59985ee Disable PRUSA M28 2022-01-30 11:22:44 +00:00
Voinea Dragos f22b9260ae Fix build 2022-01-30 11:22:44 +00:00
Voinea Dragos 9abae2fd97 Remove maxlimit_status 2022-01-30 11:22:43 +00:00
Voinea Dragos 9684806e00 Change arduino IO to fastio where possible 2022-01-30 11:22:43 +00:00
Voinea Dragos 42c393764f Adjust temperature runaway extruder count 2022-01-30 11:22:43 +00:00
Voinea Dragos 78362419da nIRsensorLastTime 2022-01-30 11:22:43 +00:00
Voinea Dragos a5f1f23fe2 TimeNow && TimeSent 2022-01-30 11:22:43 +00:00
Voinea Dragos f64c6c2a39 Remove unused Stepper.cpp variables 2022-01-30 11:22:43 +00:00
Voinea Dragos 9d1e54e685 Tmc2130 use ShortTimer instead of custom timer implementation 2022-01-30 11:22:43 +00:00
Voinea Dragos d8a14842c5 Remove unused `skip_debug_msg` flag 2022-01-30 11:22:43 +00:00
Alex Voinea 4d348fa953 Initial Romanian translation 2022-01-17 16:21:59 +01:00
Alex Voinea c09b732522 Reserve xflash space for the mmu update files 2022-01-17 12:03:12 +01:00
Alex Voinea b72c027924 XFLASH layout explained 2022-01-17 11:46:14 +01:00
Alex Voinea 93b1a6b736 "Unload filament" c adjustment 2022-01-16 11:19:24 +01:00
Alex Voinea 1d491e772b
Expand maximum language count (#3345)
* Expand maximum language count
2022-01-13 16:01:36 +02:00
3d-gussner 1544a79b4e Add Lithuanian 2022-01-03 15:00:45 +01:00
3d-gussner 54d7e9331b Add Croatian 2022-01-03 11:25:15 +01:00
3d-gussner 75dc5bd410 Add Luxembourgish 2022-01-03 11:25:15 +01:00
3d-gussner 8911161f6b Add Hungarian
Fix typo
2022-01-03 11:25:15 +01:00
3d-gussner 7083529990 Add Slovanian 2022-01-03 11:25:15 +01:00
3d-gussner f8a0d3ad7b Add Danish 2022-01-03 11:25:15 +01:00
3d-gussner 5bce397fab Add Swedish 2022-01-03 11:25:15 +01:00
3d-gussner e02dd42765 Prepare for lot of community languages
The firmware is limited to how many languages can be stored in the xflash.
We will need to compile multiple language groups
2022-01-03 11:25:15 +01:00
Guðni Már Gilbert 63c6373f8d Remove TEMP_STAT_LEDS from firmware
This isn't used by MK3 printers.
It seems to be leftover code from Marlin
2021-12-25 09:41:50 +00:00
DRracer 0be90dc5d1
Merge pull request #3320 from prusa3d/MK3_3.10.1
Merge MK3_3.10.1 into MK3 after release
2021-12-17 14:02:13 +01:00
D.R.racer caca7bb9b8 Version changed (3.10.1 build 4697) 2021-12-16 12:14:02 +01:00
3d-gussner 1c1e69e555 Update FW crash message 2021-12-16 11:23:44 +01:00
3d-gussner 785d94ab3a Add links to RepRap Gcode wiki for new Dcodes D20-D23 2021-12-16 09:32:38 +01:00
Yuri D'Elia 3849f9785a Make cancel_heatup also abort cooldown in M190
This matches the expected behavior, as already implemented in
wait_for_heater().
2021-12-10 01:51:43 +01:00
Yuri D'Elia 320835a1b7 Do not cancel wait-for-temperature loops in disable_heaters()
Partially revert previous change: cancelling a single loop would often
advance the gcode stream to the next wait-for loop if executed at the
beginning of an SD print, implicitly turning off the flag again.

Cancel the loop directly in UnconditionalStop() which stops the command
queue as well in an atomic way, handling this correctly.
2021-12-10 01:46:20 +01:00
Yuri D'Elia 32d8d892f5 Actually call UnconditionalStop() in Stop()->lcd_print_stop()
Remove incorrect check introduced during development.
2021-12-10 01:43:59 +01:00
Yuri D'Elia 83693bf4cc Remove useless assignment in lcd_cooldown
The current filament action will be aborted by lcd_return_to_status()
2021-12-07 19:27:18 +01:00
Yuri D'Elia 78f856c8d6 Do not unconditionally overwrite the status message in check_file()
No function should touch the status message directly without checking
the message severity level first. Replace the strcpy_P with
lcd_setstatuspgm().
2021-12-07 19:27:18 +01:00
Yuri D'Elia 7ff117d0c4 temp_runaway_stop: remove spourious space in error message 2021-12-07 19:27:18 +01:00
Yuri D'Elia 36a7b5ca56 Avoid redundant checks in lcd_setalertstatus* 2021-12-07 19:27:18 +01:00
Yuri D'Elia a3915b57b9 Improve temp_runaway_stop robustness
Remove most of the duplicated code inside temp_runaway_stop(),
making it identical to the other temperature handlers.

Move the lower-level functions required to stop the entirety of the
machine into UnconditionalStop(). Reuse this function inside
lcd_print_stop().

Set the LCD alert message before calling Stop(), as done in other safety
handlers, so that the error is visible while the printer is stopping.

This also avoids other temporary status messages to appear before
the real issue is shown and/or STEALING the first CRITICAL alert
level before we do.
2021-12-07 19:25:34 +01:00
Yuri D'Elia 57abffda1b Update temperature-related error message to use LCD_STATUS_CRITICAL 2021-12-07 11:09:58 +01:00
Yuri D'Elia fb025bba05 Introduce severity levels for alert messages
Use the internal lcd_status_message_level for multiple severity levels
of alert messages.

This is needed to distinguish between non-critical alerts (such as FAN
ERROR) from critical ones (any heater issue). During a failure
scenario, a critical error MUST NOT be overridden by a lower-level one.

As such LCD_STATUS_CRITICAL is currently used for all heater-related
errors that result in a safety full-stop.
2021-12-07 11:06:08 +01:00
DRracer a7dfe4b523
Merge pull request #3305 from gudnimg/sd-card-lcdtimer-fix-gudni-v2
Fix issue when the SD card is inserted and the file menu may sometimes close immediately due to a timeout
2021-11-19 07:23:21 +01:00
Guðni Már Gilbert be79e3791f Fixes #3262
Make sure to call lcd_timeoutToStatus.start() when the SD card is inserted
into the printer after it was removed beforehand.

(cherry picked from commit 6795843f15)
2021-11-18 19:23:21 +00:00
Guðni Már Gilbert 13732f162b Fix build error when TMC2130_SERVICE_CODES_M910_M918 is enabled
(cherry picked from commit 6ed4b79cc6)
2021-11-18 19:19:56 +00:00
Guðni Már Gilbert 6887f844d3
Merge branch 'prusa3d:MK3' into fix-pinda-thermistor-build-fail 2021-11-18 19:15:15 +00:00
Panayiotis-git f8410d8f3c Print temperatures only if filament loading is still active 2021-11-18 11:46:36 +02:00
Guðni Már Gilbert 05e0c1e1d3 Fix build error if PINDA_THERMISTOR is not defined
temp_cal_active variable is not defined in this scope
2021-10-12 21:52:19 +00:00
EV3R4 eff9cd9f21 Typo: M84 docs 2021-09-27 19:34:53 +02:00
Guðni Már Gilbert cf8a16baa1 Remove one call to lcd_timeoutToStatus.start
Saves 8 bytes of Flash memory

This call is redundant and when moving between menus
it gets called multiple times which results in waste
of clock cycles.

lcd_timeoutToStatus.start() is called from menu_lcd_lcdupdate_func()
which is enough.
2021-08-21 14:34:02 +00:00
Guðni Már Gilbert e6a7abf2c1 Change temp_runaway_timer from float to uint32_t
Saves 32 bytes of flash

Also change temp_runaway_error_counter from int to
uint16_t to be specific
2021-08-06 15:08:46 +00:00
Guðni Már Gilbert db1e5a203b Change temp_runaway_status from float to uint8_t and its enum
Saves 90 bytes of flash, and 12 bytes of SRAM
2021-08-06 15:03:35 +00:00
Guðni Már Gilbert b716c208d7 Various optimisation to change int to uint8_t
This commit saves 174 bytes of flash memory
2021-08-03 22:42:01 +00:00
Guðni Már Gilbert 8d7d1698ee Remove unused global variable 'chunkHead'
No change in memory on my end, but it is one less 'int' :)
2021-08-03 21:48:26 +00:00
Guðni Már Gilbert 1946c58d21 1. Remove redundant variable 'inters'
2. 'gh' variable can be 1 byte instead of 2

This saves 26 bytes of flash memory
2021-08-03 21:46:11 +00:00
Guðni Már Gilbert 05ed5b9668 Improve lcd_selftest_screen_step() parameter types
Saves 62 bytes of flash memory
2021-08-03 21:35:28 +00:00
Guðni Már Gilbert a54a133968 Use memset instead of nested for-loop to zero a 2d array
Saves 26 bytes of flash memory and removes two 'int' types
2021-08-02 19:20:51 +00:00
Guðni Már Gilbert 2554d21925 Use uint8_t when using axis enum
Saves 76 bytes of flash memory
2021-08-02 12:20:10 +00:00
DRracer fd6dbba06f
Merge branch 'MK3_3.10.1' into PFW-1271_PF-buildv20 2021-08-02 08:51:51 +02:00
Guðni Már Gilbert 158877e736 Remove one space from Support -> Temperatures menu
Saves 2 bytes of flash memory
2021-08-01 11:20:29 +00:00
Guðni Már Gilbert da2c802440 Add two defines and use LCD_STR_DEGREE with consistency
This saves 12 bytes of flash and 2 bytes of SRAM
2021-08-01 11:10:03 +00:00
Guðni Már Gilbert 6afc87d3c8 Reduce unnecessary LCD CGRAM writes 2021-07-30 23:53:57 +00:00
Guðni Már Gilbert b1972fdcee Fixes https://github.com/prusa3d/Prusa-Firmware/issues/3252 2021-07-28 16:47:47 +00:00
Guðni Már Gilbert 8af9f78822 Optimize farm_mode init in setup()
This saves 28 bytes of flash memory
2021-07-26 16:37:09 +00:00
Guðni Már Gilbert 21226214a7 Remove MAX_SILENT_FEEDRATE
It was last used on MK2 in 3rd July 2017.
I suspect this code was simply forgotten.
2021-07-21 14:06:23 +00:00
Guðni Már Gilbert 25408d14da Remove unused #ifdef MK1BP
MK1BP is never defined anywhere
2021-07-21 06:27:44 +00:00
Guðni Már Gilbert 13477c65c6 Remove two functions EEPROM_read_B() and EEPROM_save_B()
This resolves #3218
2021-07-20 17:04:17 +00:00
Guðni Már Gilbert 400f673fe0 Remove redundant extern variable lcd_encoder from menu.cpp
This extern variable is included from lcd.h
2021-07-20 09:12:14 +02:00
Guðni Már Gilbert d087973e00 Remove redundant extern variable is_usb_printing from tmc2130.cpp
This extern variable is included from Marlin.h
2021-07-20 09:12:14 +02:00
Guðni Már Gilbert 6aee17b4ca lcd_change_fil_state has two extern's in Marlin.h, only one needed. 2021-07-20 09:12:14 +02:00
Guðni Már Gilbert 3cfd706fff Remove useless extern in cmdqueue.cpp 2021-07-20 09:12:14 +02:00
Guðni Már Gilbert 31c8e4bc4c * Remove redundant externs already included with temperature.h
* Add ifdefs in Dcodes.cpp when using extern variables
2021-07-20 09:12:14 +02:00
Guðni Már Gilbert eb9c8c8c20 Improve mc_arc() parameters
- Make the mc_arc() function declaration consistent with the definition
- isclockwise is supposed to be bool type, given how it is used.
2021-07-20 09:03:50 +02:00
Guðni Már Gilbert 538ce06bf0 Remove unused function lcd_choose_color() 2021-07-20 08:55:49 +02:00
Guðni Már Gilbert bbe62b136a Remove unused Sound_Save() function declaration 2021-07-20 08:51:57 +02:00
Yuri D'Elia d04ea859fb Consolidate "Unknown X-Code" to save 16 bytes 2021-07-20 08:19:19 +02:00
Yuri D'Elia 47b1e6ccef Remove spourious trailing whitespace in errors 2021-07-20 08:19:19 +02:00
Yuri D'Elia 1888c783cb Print an error on unknown D-codes
This follows the same convention of M/G codes, so that the user knowns
that the D-code has been either handled or ignored.
2021-07-20 08:19:19 +02:00
Guðni Már Gilbert d853c19a21 Use fabs() instead of abs() when using floats
This saves 514 bytes of flash memory
2021-07-20 08:16:18 +02:00
Yuri D'Elia 31b913cddb Correct the C implementation for MultiU16X8toH16
The comment behind the ASM MultiU16X8toH16 was misleading.
It actually computes ((a<<8)*b)>>16, or (a*b)>>8.

Correct the comment and C reference implementation accordingly.
2021-07-20 08:10:36 +02:00
Guðni Már Gilbert 710852a1f2 Change nrFiles from int16_t to uint16_t 2021-07-20 08:10:07 +02:00
Guðni Már Gilbert 16602f4003 change boolean to bool 2021-07-20 08:03:17 +02:00
3d-gussner 3d871a3aa6 Merge remote-tracking branch 'upstream/MK3' into PFW-1271_PF-buildv20 2021-07-17 19:10:51 +02:00
D.R.racer 4580b8a78c Version changed (3.10.1 build 4587) 2021-07-16 07:37:11 +02:00
Guðni Már Gilbert 153de8e1db Remove redundant lines 2021-07-10 17:01:13 +00:00
Guðni Már Gilbert 47b8462c38 Remove two functions EEPROM_read() and EEPROM_save() 2021-07-02 20:10:47 +00:00
Yuri D'Elia 1279a6cf4b Correctly read FW_VERSION_NR array from progmem
In PR #3093 the progmem array FW_VERSION_NR was introduced to store the
version components, however the code didn't read it properly using the
pgm_read_* functions, making version comparisons fail.

Fix the existing/unused is_provided_version_newer() and reuse it in
show_upgrade_dialog_if_version_newer().

Similarly also read/update correctly the version in the eeprom.
2021-06-28 06:36:26 +02:00
Yuri D'Elia 56e531d40a Improve/fix D23 for M2.5/S printers
- Move D23 into it's own function inside Dcodes
- Correctly include a break in the switch statement
- Show the dumper status (enabled/disabled) after toggling
- Allow to generate an immediate dump via g-code using D23 E for
  symmetry with D20 E
2021-06-25 08:46:55 +02:00
Yuri D'Elia 380e34d481 Include "Dcodes.h" after "Marlin.h" for configuration
This is needed in order to get the function prototypes right according
to the actual enabled configuration.
2021-06-25 08:46:55 +02:00
Voinea Dragos ecce6f865f write_command() no line number handling 2021-06-25 08:12:30 +02:00
Yuri D'Elia 53fcd6fc8f Work-around GCC LTO codegen bug in process_commands()
When building with GCC 4.9.2 (bundled with PF-build-env-1.0.6.*), -Os
and LTO enabled, PID_autotune gets automatically inlined into
process_commands().

Sadly, due to the massive size of process_commands(), it results in
codegen bug doing a partial stack overwrite in process_commands()
itself, manifesting as random behavior depending on the timing of
interrupts and the codepath taken inside the merged function.

Mark the function as noinline and add a note about the affected compiler
version in order to be checked again in the future.
2021-06-24 07:39:28 +02:00
3d-gussner 36f2b5375f Merge remote-tracking branch 'upstream/MK3' into PFW-1271_PF-buildv20
merge latest changes and fix isses
2021-06-24 05:53:43 +02:00
Yuri D'Elia 66ee9a295f Remove useless function EEPROM_read_st 2021-06-22 19:08:20 +02:00
Yuri D'Elia 8d11ad9d2d xfdump: correctly erase all sectors in xfdump_erase 2021-06-22 19:07:49 +02:00
D.R.racer 88074ac6c8 Remove FW version parsing
as it can be done at compile time. Code size dropped by >800 bytes.
2021-06-22 08:49:52 +02:00
DRracer 6188870c2e
Merge pull request #3157 from wavexx/improve_d2
Add extra debugging functions & crash analysis
2021-06-22 07:37:30 +02:00
DRracer f36b9173da
Merge pull request #3191 from wavexx/fix_longpress_isr
Handle Long-Press in the main loop
2021-06-22 07:09:01 +02:00
Yuri D'Elia 79287ffb3d Use uint8_t consistently for the block buffer's index
Instead of using a mixture of int8_t, unsigned char and (incorrectly)
int, use uint8_t consistently for indexing the current block.

This improves the performance of the wait loop in plan_buffer_line,
which currently expands all comparisons to a word for no reason.

This also extends the theoretical limit to 128 entries.
Add some static assertions to ensure BLOCK_BUFFER_SIZE is correct.
2021-06-22 06:59:57 +02:00
Yuri D'Elia f4fcdae630 Fixup the DUMP_MAGIC constant 2021-06-22 00:04:39 +02:00
Yuri D'Elia 934b567e5a Remove "bonus" exclamation points from the crash message 2021-06-21 22:37:28 +02:00
Yuri D'Elia edde002cdc Merge remote-tracking branch 'upstream/MK3' into fix_longpress_isr 2021-06-21 11:51:45 +02:00
3d-gussner 3c649a89d3 Merge remote-tracking branch 'upstream/MK3' into PFW-1271_PF-buildv20 2021-06-21 08:01:24 +02:00
Alex Voinea 30d9faef9d
Minor fixes to SD presence handling (#3139)
* Remove forgotten function protorypes

* Fix code indentation

* Fix double sorting if SD card is inserted during setup()

* Correctly handle SD removal during sorting
2021-06-21 07:30:47 +02:00
Voinea Dragos 0cbc759d8b Second attempt at retrieving the SN from the 32u2 IC 2021-06-21 07:24:41 +02:00
Alex Voinea 6d25345fc4 optiboot_xflash comment about w25x20cl messages
Mention supported ICs
2021-06-21 07:21:40 +02:00
Yuri D'Elia a92c0278fe Use LCD_WIDTH instead of hardcoding 20 2021-06-21 07:21:10 +02:00
metacollin 8a7dd08116 Fixed C++ bug 2021-06-21 07:05:17 +02:00
Yuri D'Elia 09e935d27b Fix two new explicit case fallthru warnings 2021-06-21 06:52:52 +02:00
Yuri D'Elia d727a949dd Silence explicit case-fallthru 2021-06-21 06:52:52 +02:00
Yuri D'Elia c096462aab Clarify statement by adding extra braces 2021-06-21 06:52:52 +02:00
Yuri D'Elia 051f03119b Fix misleading indentation warnings by expanding tabs 2021-06-21 06:52:52 +02:00
Yuri D'Elia f2fe57bfc0 Fix unused static declaration warnings
Guard declarations using the appropriate defines
2021-06-21 06:52:52 +02:00
Jonas Meyer 7bd43b77d7 Remove unnecessary assignment 2021-06-21 06:47:59 +02:00
Yuri D'Elia eafdf6c216 Also move host_keepalive to manage_inactivity()
This avoids the "busy" output interleaving with regular output in very
rare scenarios.

We should focus in finding which calls are not using manage_inactivity()
properly instead of working it around.
2021-06-21 06:46:24 +02:00
Yuri D'Elia 29322d4bf3 Move host_autoreport() to manage_inactivity()
This makes autoreport work more consistently.
2021-06-21 06:46:24 +02:00
Yuri D'Elia 5c8a231ed6 Move autoreporting out of the temperature ISR
Code running in the temperature ISR needs to be fully reentrant, which
is hard to track down.

Move autoreporting to the main processing loop. This can make the
autoreporting slower or pause at times, but removes the reentrant
restriction, which allows us to use printf_P.
2021-06-21 06:46:24 +02:00
Yuri D'Elia 97f66a6a13 Remove ignored/incorrect PROGMEM
This PROGMEM is currently ignored by gcc, but even if it wasn't it
wouldn't be correct since the following code is expecting to read "item"
without fetching the array itself from PROGMEM.
2021-06-21 06:44:19 +02:00
DRracer 5bb8bb2ccb
Merge pull request #3134 from wavexx/fix_partial_redraw2
Redraw "Preheating to load" in full when modified by other actions
2021-06-21 06:42:13 +02:00
Yuri D'Elia 700825ff76 serial_dump: include hex prefix 2021-06-19 13:57:40 +02:00
Yuri D'Elia bff79d290a GETPC: Do not manipulate the 32bit return address
We can do that offline, saving over 30 bytes of instructions.
2021-06-19 13:56:40 +02:00
Yuri D'Elia 72b8f0d1e6 Add some warnings in lcd_buttons_update 2021-06-19 13:46:10 +02:00
Yuri D'Elia 06d91ddcee Handle Long-Press in the main loop
The longpress function is currently called within the temperature ISR,
which is bogus. Calling the longpress function at the wrong moment
can corrupt the menu buffers.

Move the call to the main loop by changing the logic slightly:

- still sample the lcd buttons inside the temperature ISR, which keeps
  scrollong/pressing responsive, but...
- set a flag to indicate that longpress has been triggered instead of
  calling the function directly
- call the function on the next manage_inactivity run

Combined with #3180 this removes _most_ unsafe operations out of the ISR
which can happen during a normal run (max/mintemp warnings are still an
exception).
2021-06-17 20:07:01 +02:00
3d-gussner 56889bae13 Update PF-build.sh to work after @DRracer Remove FW version parsing PR 2021-06-17 19:08:55 +02:00
Yuri D'Elia dd8c6c064c xfdump: simplify stack debugging (sample pc+sp)
Instead of having to guess the PC where the SP was sampled, always take
both. This allows "seamless" stack decoding for both serial and xflash
dumps, since we don't have to guess which function generated the dump.

Make the core functions (doing the sampling) be ``noinline`` as well,
so that they always have valid frame.
2021-06-17 01:29:25 +02:00
Yuri D'Elia 97535ec0c1 Fix last commit 2021-06-15 22:10:08 +02:00
Yuri D'Elia e6d520cf6e Add test code for the stack overflow handler 2021-06-15 18:49:20 +02:00
Yuri D'Elia a614268c94 serial_dump_and_reset: do not call manage_heater with interrupts disabled
Do not call manage_heater() in print_mem() if interrupts are already
disabled. This means we're running inside the crash handler.
2021-06-15 18:44:44 +02:00
Yuri D'Elia d193d0f7ac serial_dump: manipulate WDT just once 2021-06-15 16:21:56 +02:00
Yuri D'Elia 928c7211ad emergency handlers: always save SP _at_ the crash location
Save SP which is closest to the crash location, which simplifies
debugging. For serial_dump, write SP just before the dump.
For xfdump, save SP in the dump header.

This makes xfdump_dump and xfdump_full_dump_and_reset() equivalent for
stack debugging.
2021-06-15 11:47:27 +02:00
Yuri D'Elia 96aad0a475 Remove duplication in crash handlers
It's kind of nice that all handlers eventually came to become the same.
2021-06-14 12:38:23 +02:00
Yuri D'Elia fa0f58d5bc serial_dump: add description about bad_isr 2021-06-14 12:30:24 +02:00
Voinea Dragos 8e667a8acd bad ISR catch 2021-06-14 11:30:38 +03:00
Yuri D'Elia d2041ee2fe Enable debugging features on all variants
- XFlash crash dumper on MK3+ series
- Online crash dumper on MK2.5+ series
- D2/D6 on MK3+ series
- D2 on MK2.5+ series
2021-06-13 22:35:43 +02:00
Yuri D'Elia 7db667ca86 serial_dump_and_reset: turn on print fan while dumping
To avoid scorching the sheet while dumping close to the bed.
2021-06-13 22:28:28 +02:00
Yuri D'Elia ea51d65137 serial_dump_and_reset: do not completely disable WDT
Set it to 8s which is long enough to complete the dump.
2021-06-12 15:39:37 +02:00
Yuri D'Elia 6de98f7b0d Move inclusion closer to the usage point 2021-06-12 15:33:18 +02:00
Yuri D'Elia 050cf72e98 Move stack checking to the temperature ISR
Now that the stack_error function is truly minimal,
we can check for stack errors much more frequently.

Also move away stack_error from ultralcd to Marlin_main.
2021-06-12 15:23:33 +02:00
Yuri D'Elia 01934b89e9 xflash_dump is now always required in all variants 2021-06-12 15:13:32 +02:00
Yuri D'Elia 449510392d Untangle a bit some recursive include mess 2021-06-12 15:09:03 +02:00
Yuri D'Elia e28301f391 Report crash also in MK2.5, fix stack_error abuse
Rename EEPROM_CRASH_ACKNOWLEDGED to EEPROM_FW_CRASH_FLAG.

Use EEPROM_FW_CRASH_FLAG to always set the last crash reason, which
simplifies handling between the online/offline variants.

Make stack_error safe, by setting the flag and restarting immediately,
so that the error can be shown after restart.
2021-06-12 14:41:54 +02:00
Yuri D'Elia bd57e00448 Implement an online crash dumper for MK2.5 boards
When XFLASH is not available, allow users to request _online_ crash
dumps by using D23 (since these require active user cooperation).

Once enabled, instead of just rebooting, dump memory directly to
the serial.

As similarly done with EMERGENCY_DUMP, we have two features that can be
enabled:

EMERGENCY_SERIAL_DUMP: enables dumping on crash after being requested
MENU_SERIAL_DUMP: allow triggering the same manually through the support
menu.
2021-06-12 13:37:20 +02:00
Yuri D'Elia f7dc8dcaef Fix usage of RAMEND
RAMEND is the last valid address, not one-past as I expected it to be...
2021-06-12 13:16:12 +02:00
Yuri D'Elia f18d4757c6 Introduce STACK_GUARD_MARGIN in all variants
Create a gap between the BSS and the stack guard.
Set this gap (STACK_GUARD_MARGIN) to 32 bytes in all variants.

The gap serves two purposes:

- Detect a stack overflow earlier (falsely triggering in overtight
  situations is OK!), so that we can hopefully avoid smashing
  the heap and have a clean view during the dump.

- Reserve spack space itself for the stack dumping machinery,
  which is going to grow the stack even further.

Remove get_stack_guard_test_value() which was unused.
2021-06-12 12:08:53 +02:00
Yuri D'Elia 9663653671 xfdump_erase: remove redundant XFLASH_SPI_ENTER() 2021-06-12 12:05:02 +02:00
Yuri D'Elia 3187b96ca4 xfdump: report to the host that a dump is available
As suggested by @3d-gussner, announce to the host that a dump is
available for retrieval using an action "dump_available".

Any kind of dump is announced (even if manually triggered).

To avoid reading from xflash twice, remove some duplication and return
the crash reason directly in xfdump_check_state().
2021-06-11 19:21:51 +02:00
Yuri D'Elia 31f416fd5e Rename dump_crash_source to dump_crash_reason 2021-06-10 17:35:49 +02:00
Yuri D'Elia c375610668 Move "WDR dump" inside EMERGENGENCY_DUMP 2021-06-10 17:02:41 +02:00
Yuri D'Elia 63f870c089 Enable the "WDR reset" menu item in DEBUG_BUILD only 2021-06-10 16:30:59 +02:00
Yuri D'Elia 0362b6484f xfdump_full_dump_and_reset: set a guaranteed minimum WDT
Just prior to dumping, reset the WDT to a known-safe (and not too long)
interval that guarantees a complete dump.
2021-06-10 16:30:39 +02:00
Voinea Dragos 0a77f2c02d Dump header as well 2021-06-10 11:58:46 +03:00
Voinea Dragos 094c577e9d Fix XFLASH_DUMP print_mem 2021-06-09 14:10:20 +03:00
Voinea Dragos 1e786c7f55 WDR crash initial 2021-06-09 13:59:26 +03:00
Voinea Dragos 8c3d76f85f Fix millis reference 2021-06-09 12:44:28 +03:00
Yuri D'Elia fab04dbc6c D6: remove option for unsupported models 2021-06-08 19:53:37 +02:00
Yuri D'Elia 318ee695c2 xfdump_layout: add some comments 2021-06-08 19:50:43 +02:00
Yuri D'Elia c2e64c8c6e xfdump: fix another off-by-one static size check 2021-06-08 19:08:03 +02:00
Yuri D'Elia 378f239ff0 dcode_code: fix inverted define to print larger types 2021-06-08 18:57:16 +02:00
Yuri D'Elia 56d0848ea9 xfdump: fix size check 2021-06-08 18:43:32 +02:00
Yuri D'Elia 9d3b19b637 xfdump: defensive static checks to ensure dump location always fits 2021-06-08 18:29:55 +02:00
Yuri D'Elia dcfdce87c7 Document new applicable build options in the variant files
Document, but don't enable them.
Leave exiting functionality unchanged for now.
2021-06-08 18:17:56 +02:00
Yuri D'Elia c072fbbf02 Dcodes: fix daddr_t type when only XFLASH_DUMP is enabled 2021-06-08 18:14:49 +02:00
Yuri D'Elia c331c07b16 xfdump: reuse standard definitions for SRAM size/offset 2021-06-08 17:53:06 +02:00
Yuri D'Elia 520f7a2e26 config: add sanity checks for XFLASH_DUMP options 2021-06-08 17:32:14 +02:00
Yuri D'Elia 1a88e339bf xfdump: fix build with XFLASH_DUMP disabled 2021-06-08 17:17:18 +02:00
Yuri D'Elia a6e372e696 Typo 2021-06-08 17:14:22 +02:00
Yuri D'Elia c31109c750 Implement MENU_DUMP: offline memory dump from "Support"
If MENU_DUMP is enabled, a new entry at the end of the "Support" menu is
added that allows to dump memory for offline use.

This allows to trigger a memory dump at any moment during regular usage
(either idling or printing) and to recover the dump later even after a
hardware reset.
2021-06-08 16:56:58 +02:00
Yuri D'Elia c089ac5341 Implement EMERGENCY_DUMP for offline analysis
If EMERGENCY_DUMP is defined, crash and dump using the new xflash dump
functionality instead of just continuing with an error message.

When an emergency crash is stored, the first restart after a crash
displays a message that debug data is available and to contact support
to submit the crash for analysis.
2021-06-08 16:42:43 +02:00
Yuri D'Elia e7f78125d3 Merge remote-tracking branch 'panayiotis/FixEepromAddressDocumentation' into improve_d2 2021-06-08 16:18:09 +02:00
Yuri D'Elia 30402e0404 Dcodes: add D20/D21/D22 to generate/read/clear dumps 2021-06-08 15:34:39 +02:00
Yuri D'Elia 6dfef76346 xfdump: implement dump-to-xflash functionality
Update xflash_layout to include information about the dump, which sits
at the end of xflash.
2021-06-08 15:28:02 +02:00
Yuri D'Elia b398a09a4f xflash: add xflash_multipage_program and documentation
Add a new high-level command to perform multipage writes quickly.
2021-06-08 15:25:16 +02:00
Yuri D'Elia 86e753fe37 xflash: remove some duplication 2021-06-08 15:24:46 +02:00
Yuri D'Elia 5ae8bad0ba Introduce "xflash_layout" to organize XFLASH's content
Update the language code to use the new LANG_OFFSET definition
and remove hard-coded flash sizes.
2021-06-08 15:22:37 +02:00
Yuri D'Elia af636c7f2a Move "xflash" include inside the conditional 2021-06-08 15:18:33 +02:00
Yuri D'Elia 0fcdada579 D6: add documentation 2021-06-07 19:58:18 +02:00
Yuri D'Elia ed9f52dd85 D6: also hide declaration behind conditional 2021-06-07 18:50:45 +02:00
Yuri D'Elia db096557d4 D[236]: remove "busy" messages while dumping, avoid WDT 2021-06-07 16:41:25 +02:00
Yuri D'Elia 12e124324f Remove PROGMEM handling from print_mem until D5 uses dcode_core
Handling PROGMEM also requires a 32bit address type.
2021-06-07 16:41:25 +02:00
Yuri D'Elia f9371146d0 Implement reading XFLASH with D6
This requires expanding the dcode_core address type to 32bit type,
thus enlarges the D2/D3 implementation as a result.

Still allow to save all the original space if D6 is disabled, for now.
2021-06-07 16:41:25 +02:00
Yuri D'Elia 915f5a7692 Unify D2 and D3 handling
Handle reading/writing memory using the same base functions
in order to save space.
2021-06-07 16:41:25 +02:00
Yuri D'Elia 2d25a5705f Fix D2 to read the entire SRAM content
Allow to read up to 0x21ff, which is the last byte of SRAM.  Set default
starting address to 0x200, which is the first true byte.

0x0-200 is mapped to register/io space and could cause issues when read
from bi-directional registers.
2021-06-07 16:37:34 +02:00
Yuri D'Elia 62f496e1d6 Allow D2 to be enabled selectively 2021-06-07 16:37:34 +02:00
D.R.racer 6bb7c0e3d3 Farm workaround M1 message
Farmers want to abuse a bug from the previous firmware releases
- they need to see the filename on the status screen instead of "Wait for user..."
So we won't update the message in farm mode...
2021-05-25 09:45:42 +02:00
Panayiotis-git 3c63ddaafd Fix the eeprom address documentation 2021-05-22 17:09:55 +03:00
D.R.racer 04de9c0c8a Version changed (3.10.0 build 4481) 2021-05-06 13:46:05 +02:00
Yuri D'Elia 1a92f2e19f Merge remote-tracking branch 'upstream/MK3_3.10.0' into fix_partial_redraw2 2021-05-04 10:49:24 +02:00
DRracer eaa6801849
Merge pull request #3136 from leptun/PFW-1225_fix_open_file_from_sd_wrong_file
Fix menu_action_sdfile() check_file(filename) call
2021-04-29 16:34:01 +02:00
DRracer 80e248662c
Merge pull request #3079 from 3d-gussner/PFW-1189
PFW-1189 Pre-release tasks
2021-04-29 16:33:18 +02:00
DRracer 89386036e6
Merge pull request #3137 from leptun/PFW-1239_fix_M23_subroutine_issue
Do not allow M23 to run subroutines
2021-04-29 15:06:33 +02:00
DRracer a3b392d96c
Merge pull request #3130 from DRracer/move-alldata-2-end
Move All Data into last position in Factory Reset menu
2021-04-29 10:08:32 +02:00
Voinea Dragos 8610d0a850 Do not allow M23 to run subroutines 2021-04-29 10:59:21 +03:00
DRracer 7c914ec2d1
Merge pull request #3125 from leptun/PFW-1238_fix_M105_from_SD
Fix M105 from SD
2021-04-29 09:12:05 +02:00
Voinea Dragos 1a70f3369d fix comment 2021-04-29 09:48:25 +03:00
Voinea Dragos d9976ca69c Fix menu_action_sdfile() check_file(filename) call 2021-04-29 09:47:16 +03:00
3d-gussner a9ae8ea731 Remove `SpoolJoin` from translations 2021-04-29 08:15:24 +02:00
3d-gussner 488d9d4b38 Remove "Firmware" from translations
deleted another unused "Firmware" define in language.h
2021-04-28 18:02:36 +02:00
3d-gussner d251f3980a Remove FlashAir from translations 2021-04-28 17:57:39 +02:00
3d-gussner b5ba4041d3 Remove FINDA from translations 2021-04-28 17:36:17 +02:00
3d-gussner 08566d4121 Remove PINDA from translations 2021-04-28 17:33:52 +02:00
3d-gussner 30b383195d Remove copy/paste error 2021-04-28 17:29:32 +02:00
Yuri D'Elia aee04a43e2 Redraw "Preheating to load" in full when modified by other actions
Check for lcd_draw_update to see if the lcd has been altered outside the
function and redraw the screen if full.

This fixes scenarios such as #3129 where the "Card removed" message or
the SD menu is entered from outside the function's control.

This requires checking/resetting bFilamentWaitingFlag carefully to avoid
re-entering this function _twice_ (raise_z_above will run the main
loop until complete).
2021-04-28 17:13:46 +02:00
D.R.racer 5089b2cddb Move All Data into last position in Factory Reset menu 2021-04-28 06:43:54 +02:00
3d-gussner 7a54c3638c Remove web links and `Prusa i3 MKxy OK.` from translations
as these never have been translated or doesn't make sense
to translate web links
2021-04-27 20:36:22 +02:00
3d-gussner 686054b95e Changed `x of 4` and `y of 9` to `x/4` and `y/4`
Added `Iteration` translation
2021-04-27 20:22:28 +02:00
3d-gussner 738a24178a Update #MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=20 r=3 2021-04-27 07:45:36 +02:00
3d-gussner b8ae08fd3d Update `x of 4` and `x of 9` messages so longer text can be used. 2021-04-27 07:18:52 +02:00
3d-gussner 1145b231a9 Define MSG_SELFTEST_FS_LEVEL 2021-04-26 14:30:20 +02:00
3d-gussner af519626aa Define MSG_FS_V_04_OR_NEWER and MSG_FS_V_03_OR_OLDER c=14 2021-04-26 14:21:33 +02:00
3d-gussner b522ef4812 Update MSG_SEVER_SKEW and MSG_SLIGHT_SKEW message to c=14
Changed and tested Support-> "XYZ cal. details" LCD output
2021-04-26 12:39:13 +02:00
3d-gussner 536a8f5f87
Revert that has been commited by mistake 2021-04-26 07:28:03 +02:00
3d-gussner 466de83ae0 Remove white spaces in messags which saves ~62bytes 2021-04-26 07:22:22 +02:00
3d-gussner 29ad021b23 Updated French translation of MSG_MMU_LOAD_FAILED c=20 as @awenelo suggested 2021-04-24 20:50:01 +02:00
3d-gussner 9f77ca31b8 Set MSG_SET_TEMPERATURE chars to c=20
Fix Italian warning shown by `lang-check.py`
2021-04-24 08:19:48 +02:00
Marek Bel aa45091400
Scale extruder motor current linearly with speed. (#2813)
Scale extruder motor current linearly with speed.

49% less heating when running at low speed and standstill, 4% more torque at maximum extrusion rate (15mm^3/s), 15% more torque in high speed movements (un/retractions).

StealthChop mode is used for low speeds (below 900mm/min)
spreadCycle is used above. Transition speed is well above maximum extrusion rate of 15mm^3/s (275mm/min) so mode transition is not expected to be visible on printed surface.

StealthChop is expected to improve printed surface quality (less artifacts).

Warning you can burn extruder motor if it is not the same impedance as original Prusa i3 Extruder stepper motor. There is no current feedback in low speed so lower impedance motor can be burned by over current.

Even there is no direct current feedback, there is no risk for original motor thermal runaway, as motor resistance increases with temperature, current decreases.

Standstill peak phase current is expected to be 500 mA and linearly increase with speed to 970 mA at 900mm/min where spreadCycle constant current regulation takes over and keeps peak current at 805 mA to maximum speed possible.

As motor heating increases with current squared, lowering low speed current from 700mA to 500mA decreases heating 49% in thate mode, where motor spends most of the time.

Enable E-motor cool mode in farm mode only (and experimental menu) - the experimental menu is visible AND the EEPROM_ECOOL variable has a value of the universal answer to all problems of the universe - i.e. two conditions must be met at the start of the FW to enable the E-cool mode. If the user enables the experimental menu, sets the E-cool mode and disables the menu afterwards, on the next start of the FW the E-cool mode will be DISABLED. This is still subject to discussion how much obscure (security through obscurity) we'd like this option to have .

Additional stuff:
* Add serial debug msg to verify if E-cool mode is on
* Avoid access to E-cool mode switch on machines without TMC2130
* Do not allow only M907 E in case of E-cool mode+warn the user on the serial line that the command was skipped

Co-authored-by: D.R.racer <drracer@drracer.eu>
2021-04-23 16:06:28 +02:00
3d-gussner c2cde83d7e Fix MSG_SELFTEST_WIRINGERROR to c=18 2021-04-23 13:29:45 +02:00
3d-gussner 3f51627c02 Fix MSG_NO being too short, no need to be 2021-04-23 13:23:11 +02:00
3d-gussner 013708479f Fix MSG_UNLOAD_FILAMENT length as in MMU a number is added 2021-04-23 13:12:57 +02:00
3d-gussner 032e8a5957 @leptun strip 1st char hack for duplicate `Cancel` 2021-04-23 13:03:59 +02:00
3d-gussner 403b340f19 Added ` EXTENDED_M20` to RepRap Gcode wiki `M115` see https://reprap.org/mediawiki/index.php?title=G-code&type=revision&diff=189034&oldid=189033 2021-04-23 11:02:42 +02:00
Voinea Dragos 635bc442d6 Fix M105 from SD 2021-04-23 11:14:16 +03:00
3d-gussner 28aec049a2 Fix Typo in MSG_FIL_FAILED 2021-04-23 09:41:12 +02:00
3d-gussner ff9185d1bb Readded `>Cancel` as the `>` has some meaning. Sadly the previously 10bytes more free space are gone again 2021-04-23 08:50:50 +02:00
3d-gussner 044c0a0a6a Update "\04Refresh" message as two "abcd" "efgh" in one line cause issues in lang-build scripts 2021-04-23 08:49:22 +02:00
3d-gussner e18d688b64 Fix merge issues 2021-04-22 20:48:26 +02:00
3d-gussner 681bc560c9 Merge remote-tracking branch 'upstream/MK3_3.10.0' into PFW-1189 2021-04-22 20:43:54 +02:00
DRracer 999b93be35
Merge pull request #3123 from prusa3d/MK3_3.10.0
MK3 3.10.0
2021-04-22 12:53:26 +02:00
DRracer 00ce16ee55
Merge pull request #3121 from wavexx/reduce_m600_min_height
Revert/cleanup mininum extruder height during M600
2021-04-22 11:43:18 +02:00
DRracer 1e0fd8af87
Merge pull request #3120 from wavexx/fix_lcd_redraw_autoload
Fix partial redraw during filament autoload
2021-04-22 10:36:40 +02:00
DRracer 98643825dc
Merge pull request #3055 from awenelo/add-satin-sheet
Add satin sheets
2021-04-22 07:13:32 +02:00
Yuri D'Elia daef5428d2 Rework gcode_M600_filament_change_z_shift to make it consistent
gcode_M600_filament_change_z_shift is almost useless, since it performs
what is already been done internally by filament_unload().

However it *does* cause the carriage to raise earlier during unload
compared to making the user wait after "press for unload".

Change it so the calculated Z height matches MIN_Z_FOR_SWAP.
2021-04-21 19:12:26 +02:00
Yuri D'Elia 8d04316497 Revert/cleanup mininum extruder height during M600
This change restores the minimum extruder height for filament purge
during M600 from the current 50mm back to 27mm from FW 3.9.

We do this by introducing a new option for unload_filament() to indicate
that the unload is part of an automatic swap, and in such cases avoid
raising more than absolutely necessary (this will _also_ come in handy
to avoid the extra purge in PR #2318 during M600).

A new define MIN_Z_FOR_SWAP is introduced for this purpose.
MIN_Z_FOR_UNLOAD is still used for manual lcd unload and for M702 and
hasn't been changed.
2021-04-21 19:07:58 +02:00
Yuri D'Elia bc355674d9 Fix partial redraw during filament autoload
If the printer was already being pre-heated but didn't reach the target
temperature yet and a new filament is being inserted, the LCD used to
display a "Preheating to load" message to block the loading until the
extruder is hot.

This message is currently missing, and the ">Cancel" option doesn't
display immediately either, depending on the extruder height.

This PR fixes this behavior, which was broken during an earlier update.

We now force-update LCD updates during the first (and _only_) time the
screen is setup, and push all messages _before_ the carriage is
eventually raised, so that ">Cancel" is shown immediately as well.
2021-04-21 16:56:16 +02:00
Alex Voinea 7d82cab125
Update doxygen 2021-04-20 09:16:56 +03:00
Alex Voinea c4b70b82f3
Document M20 T parameter 2021-04-20 09:13:38 +03:00
Alex Voinea 1c0383c48f
Add capability report for extended M20 2021-04-20 09:03:22 +03:00
D.R.racer 7011014abb Save 16 bytes - pass ls_param by value to functions
... as ls_param is a 1-byte structure it is more conservative to pass it
to functions by value than by a pointer
2021-04-20 06:50:37 +02:00
Voinea Dragos 2129bcf315 M20 T 2021-04-19 14:48:50 +03:00
Voinea Dragos b16e1e5235 Invert size and LFN in M20 L output 2021-04-19 13:54:43 +03:00
Voinea Dragos 6d7d8c7c75 Do not show hidden/system dirs with M20 L 2021-04-19 13:31:30 +03:00
Yuri D'Elia a5e4df390d Sync before/after setting mesh_bed_leveling_flag/homing_flag
mesh_bed_leveling_flag and homing_flag should be set only when the
planner is empty as a consequence of #3100, since any operation executed
*while* the mbl/homing flag is set is considered part of the compound
instruction that generated it (G80, G28, G30, G76).

Failure in doing so can result in instructions just prior being lost,
since they're incorrectly discarded (assumed to be redone).

G1  ; lost ..
G80 ; .. if PP happens here
2021-04-19 06:31:57 +02:00
Yuri D'Elia 23c75da727 Fix Crash/PP recovery position on instructions with comments
PR #2967 altered the way ``sdpos_atomic`` was set, causing issues in the
crashdetect/powerpanic recovery offset if the instruction being
recovered happens to contain a comment.

Previously ``sdpos`` was assumed to be a single byte prior to the last
read character. sdpos+1 would thus position the index to the next
instruction. With gcode-filtering in place, sdpos is left just before
the comment, while the actual read position is at the newline. This
causes to parser to resume in the middle of the comment.

Change the value returned by cardreader::get_sdpos() to always return
the last read position, as everybody expects (!!).

This avoids the +1, and correctly sets the resume position to the next
valid instruction without overhead.
2021-04-19 06:30:37 +02:00
D.R.racer c43688a549 Version changed (3.10.0-RC2 build 4104) 2021-04-16 13:52:36 +02:00
DESKTOP-AFI832L\admin 5a91e1de4d Calibration: fix checking of scan of calibration points
PFW-1223
2021-04-14 06:25:18 +02:00
Voinea Dragos 7356cd0811 EEPROM_JOB_ID 2021-04-09 08:09:51 +02:00
DRracer f9f6284c50
Merge pull request #3100 from wavexx/powerpanic_state_fixes
Fix PowerPanic and Crash Detection during homing and bed leveling
2021-04-07 18:19:50 +02:00
Yuri D'Elia 61faa49cbb Fix buffer overflow in buf
Fix cmd overflow introduced in 186ce0f.

With a precision of %f being .6 and assuming a maximum (theoretical)
acceleration of 99999 we need 47 bytes including terminating byte.

Round it to 48
2021-04-07 15:57:50 +02:00
Alex Voinea d31601dcb8 Use correct mfrid for gd25q20c 2021-04-06 10:16:47 +02:00
Alex Voinea 94c1e65d83 Fix MK2.x builds 2021-04-06 10:16:47 +02:00
Alex Voinea 56948157d0 GD25Q40C xflash support 2021-04-06 10:16:47 +02:00
Alex Voinea 07bf4bbe48 Fix gd25120c rd_uid command 2021-04-06 10:16:47 +02:00
Alex Voinea 9454f9d8ec Rename w25x20cl to xflash 2021-04-06 10:16:47 +02:00
Yuri D'Elia 449d181971 G80: handle power panic
This is handled in the same way crash detection is handled: homing/mbl
invalidates saved_target _and_ current position.

Fixes PP recovery during MBL and homing.
2021-04-06 02:20:00 +02:00
Yuri D'Elia b46a52ffa8 G80: Handle crash detection
At a higher level, crash detection will repeat the last gcode command.

Some commands such as G28 or G80 need to be repeated in full and require
special handling.

In such cases, do not store the saved target coordinate (which is fake
in such cases) and invalidate the saved position.

This fixes the last coordinate of the first G1 move after recovery.

We also avoid moving from the origin when the saved position is
invalidated, which is not strictly necessary, but saves some time.
2021-04-06 02:00:47 +02:00
Yuri D'Elia a5530593fa G80: preserve lcd status and message when aborting
Restore the old status just before returning, so that the subsequent G80
can restore the first (initial) message correctly.
2021-04-06 00:31:56 +02:00
Yuri D'Elia 5923276a86 G80: correctly abort during crash detection
Crash detection is handled at a higher level (which automatically
repeats the current command), however we still need to abort the current
command correctly.

Handle XY crashes by checking the planner status after st_synchronize().
2021-04-06 00:31:29 +02:00
Yuri D'Elia 5da39df968 G80: Use consistent XY axis feedrate 2021-04-06 00:10:33 +02:00
Yuri D'Elia ce2e35d14d Move G80 into it's own function
No actual changes done in the function in this, besides break->return.

In G28, simply call the new function instead of using goto, making the
code more readable.

Also remove the senseless comments in G28 about command queuing (dating
back to when G80 was queued instead of being executed).
2021-04-05 23:35:17 +02:00
Yuri D'Elia d2be40491b PP recovery: clamp initial position to software endstops
As done when initializing the printer from a cold start, we need to
clamp the starting position to software endstops before setting the
planner position since 0,0 is frequently out-of-bounds.

This avoids an useless move during recovery that can cause a crash:

- Initial X is set to be 0
- G1 performed by homing will clamp X>=0, resulting in a positive shift
- If X is already at max X (extruder being parked due to PP), this will
  slam at X+, causing an immediate crash.
2021-04-05 22:11:06 +02:00
Yuri D'Elia 3276320a06 Hide tmc2130_sg_change behind DEBUG_CRASHDET_COUNTERS
tmc2130_sg_change is only used for debugging purposes.
Hide definition and usage behind the required define.
2021-04-05 20:07:03 +02:00
Yuri D'Elia 6a61c26955 Removed unused crashdet_stop_and_save_print2 2021-04-05 20:04:50 +02:00
3d-gussner b74e1d6062 Update RepRap url for `M123` 2021-04-01 19:48:14 +02:00
3d-gussner e12c1dde5c Updated RepRap Wiki and removed the @todos 2021-04-01 19:06:31 +02:00
3d-gussner 3b431bcbc1 Fix output "Y distance from min" by removing ":" so translations can use 20 chars 2021-03-31 08:54:16 +02:00
3d-gussner d864a5cfdb Define #MSG_PRINTER_IP c=18 2021-03-31 08:46:17 +02:00
3d-gussner 9922774fa7 Cleanup some comments ////c= 2021-03-31 08:11:19 +02:00
3d-gussner 8e74cbce58 Remove r=1 and some minor fixes 2021-03-31 08:07:42 +02:00
3d-gussner fb691b44b4 Update #MSG_INFO_SENSORS c=18 2021-03-31 07:51:22 +02:00
3d-gussner 3fb90be46f Define #MSG_SELECT c=18 2021-03-31 07:50:18 +02:00
3d-gussner 9a0e67c1d7 Define #MSG_RENAME c=18 2021-03-31 07:43:48 +02:00
3d-gussner 15919a0f09 Define #MSG_NOZZLE_DIFFERS_CONTINUE c=20 r=5, #MSG_NOZZLE_DIFFERS_CANCELLED c=20 r=9 2021-03-31 07:41:21 +02:00
3d-gussner cdfc40fb62 Define #MSG_MODE_CHANGE_IN_PROGRESS c=20 r=3 2021-03-31 07:38:41 +02:00
3d-gussner c0869efc76 Define #MSG_MK3S_FIRMWARE_ON_MK3 c=20 r=4, #MSG_MK3_FIRMWARE_ON_MK3S c=20 r=4 2021-03-31 07:36:26 +02:00
3d-gussner 268d4020cf Define #MSG_FINDA c=5 and update #MSG_PINDA c=5 2021-03-31 07:32:43 +02:00
3d-gussner c0b8eef6cd Define #MSG_FALSE_TRIGGERING c=20 2021-03-31 07:29:42 +02:00
3d-gussner 1ca443f1f4 Define #MSG_CHECKS c=18 2021-03-31 07:28:18 +02:00
3d-gussner 5e049283be Define #MSG_UNKNOWN c=13 2021-03-31 07:24:41 +02:00
3d-gussner 982153fee1 Define and update #MSG_PRINT_TIME c=19, #MSG_FILAMENT_USED c=19, #MSG_TOTAL_FILAMENT c=19, #MSG_TOTAL_PRINT_TIME c=19 2021-03-31 07:16:36 +02:00
3d-gussner 7a88ce89e4 Update MSG_TEMPERATURE c=18 2021-03-31 07:11:01 +02:00
3d-gussner c0df79d39a Define #MSG_SELECT_TEMP_MATCHES_MATERIAL c=20 r=4 2021-03-31 07:10:03 +02:00
3d-gussner 7268f6a824 Define #MSG_SELECT_FILAMENT c=20 2021-03-31 07:08:09 +02:00
3d-gussner 2e43234d3f Update #MSG_SUPPORT c=18 2021-03-31 07:06:46 +02:00
3d-gussner ba38262109 Update #MSG_STATISTICS c=18 2021-03-31 07:05:28 +02:00
3d-gussner 960ebac02d Update #MSG_SPEED c=15 2021-03-31 07:04:47 +02:00
3d-gussner b52d87e9a5 Define #MSG_Z-LEVELING_ENFORCED c=20 r=4 2021-03-31 07:02:42 +02:00
3d-gussner acbdc2ac8d Define #MSG_RUNOUTS c=7 2021-03-31 06:59:16 +02:00
3d-gussner 09f4850a8a Define #MSG_SLIGHT_SKEW c=13, #MSG_SEVERE_SKEW c=13 2021-03-31 06:53:04 +02:00
3d-gussner 4749dd1750 Define #MSG_CHECK_IR_CONNECTION c=20 r=4 2021-03-31 06:46:43 +02:00
3d-gussner bd8ab39b39 Define #MSG_UNLOAD_FILAMENT_REPEAT c=20 r=4 2021-03-31 06:45:33 +02:00
3d-gussner 5280a89fba Define #MSG_MMU_INSERT_FILAMENT_FIRST_TUBE c=20 r=6 2021-03-31 06:43:21 +02:00
3d-gussner 0d48a32e87 Define #MSG_RESUME_NOZZLE_TEMP c=20 r=4 2021-03-31 06:41:17 +02:00
3d-gussner 4f394c8c5a Update #MSG_TUNE c=18, #MSG_PREHEAT c=18 2021-03-31 06:38:50 +02:00
3d-gussner fbecae1707 Update MSG_PREHEAT c=18 2021-03-31 06:38:06 +02:00
3d-gussner ac810bf03a Define #MSG_REMOVE_SHIPPING_HELPERS c=20 r=3 2021-03-31 06:36:28 +02:00
3d-gussner 00b100bf26 Define #MSG_NOZZLE_FAN c=10, #MSG_PRINT_FAN c=10 2021-03-31 06:30:00 +02:00
3d-gussner baf231b0f1 Update MSG_NO_CARD c=18 2021-03-31 06:23:18 +02:00
3d-gussner 1c09e8411d Define #MSG_PINDA c=6 and remove duplicate saved 8 bytes 2021-03-30 19:30:26 +02:00
3d-gussner 6a266d497b Define #MSG_REMOVE_TEST_PRINT c=20 r=4 2021-03-30 19:19:43 +02:00
3d-gussner 5fcc731be1 Define #MSG_INSERT_FIL c=20 r=6 2021-03-30 19:17:48 +02:00
3d-gussner 243fa68745 Define #MSG_LIN_CORRECTION c=18 2021-03-30 19:16:11 +02:00
3d-gussner 44f7be134d Define #MSG_FS_VERIFIED c=20 r=3 2021-03-30 19:13:31 +02:00
3d-gussner bcdaecb46d Define #MSG_TO_LOAD_FIL c=20, #MSG_TO_UNLOAD_FIL c=20, #MSG_PRESS_KNOB c=20 2021-03-30 19:10:56 +02:00
3d-gussner de9697b913 Define #MSG_PREHEATING_TO_LOAD/UNLOAD/CUT/EJECT c=20 2021-03-30 19:06:46 +02:00
3d-gussner d601355d40 Define #MSG_GCODE_NEWER_FIRMWARE_CONTINUE c=20 r=5, #MSG_GCODE_NEWER_FIRMWARE_CANCELLED c=20 r=8 2021-03-30 19:01:24 +02:00
3d-gussner 669ab0f7f7 Define #MSG_GCODE_DIFF_CONTINUE c=20 r=4, #MSG_GCODE_DIFF_CANCELLED c=20 r=7 2021-03-30 18:58:04 +02:00
3d-gussner e9750a7312 Update #MSG_FIL_FAILD c=20 r=5 2021-03-30 18:52:58 +02:00
3d-gussner 4a5d7bc6b7 Define #MSG_Y_DIST_FROM_MIN c=20 2021-03-30 18:51:04 +02:00
3d-gussner 2abdfeb4c5 Update #MSG_YES c=3 2021-03-30 18:48:14 +02:00
3d-gussner 7f3fe6740b Update #MSG_NO_MOVE c=20 2021-03-30 18:46:56 +02:00
3d-gussner 1a1a1d88a7 Update MSG_MOVE_X/Y/Z c=18 2021-03-30 18:13:49 +02:00
3d-gussner c1f22a5239 Update #MSG_MOVE_AXIS c=18 2021-03-30 18:12:03 +02:00
3d-gussner 99893d5066 Define #MSG_MMU_CONNECTED c=18 2021-03-30 18:11:22 +02:00
3d-gussner 77a7a92a42 Define MSG_MMU_LOAD_FAILED c=20 2021-03-30 18:08:13 +02:00
3d-gussner 4d9dffb042 Define #MSG_MEASURED_SKEW c=13 2021-03-30 18:06:43 +02:00
3d-gussner 1e2dde9a52 Update #MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=20 r=3 2021-03-30 18:02:27 +02:00
3d-gussner afb7c82e26 Update #MSG_LOAD_TO_NOZZLE c=18 2021-03-30 18:00:20 +02:00
3d-gussner 2408bc9f2e Update MSG_LOADING_COLOR c=20 2021-03-30 17:58:51 +02:00
3d-gussner 62ecbb3ae3 Update #MSG_BABYSTEP_Z c=18 2021-03-30 17:57:50 +02:00
3d-gussner 50e69fcca8 Update #MSG_NO c=3 2021-03-30 17:53:58 +02:00
3d-gussner 75c0de741b Update #MSG_AUTO_DEPLETE c=13 2021-03-30 17:52:59 +02:00
3d-gussner ddf47a3cac Update #MSG_NA c=3, #MSG_OFF c=3, #MSG_ON c=3 2021-03-30 17:51:31 +02:00
3d-gussner d1813890a8 Update #MSG_STOPPED c=20 2021-03-30 17:49:02 +02:00
3d-gussner a9ed513979 Update #MSG_STOP_PRINT c=18 2021-03-30 17:48:06 +02:00
3d-gussner 46367c2a33 Update #MSG_STEALTH c=7, #MSG_SILENT c=7, #MSG_NORMAL c=7 2021-03-30 17:46:37 +02:00
3d-gussner 3d848328ed Update #MSG_AUTO_POWER c=10 2021-03-30 17:42:33 +02:00
3d-gussner 8771519880 Update #MSG_HIGH_POWER c=10 2021-03-30 17:41:51 +02:00
3d-gussner afabfa789d Update #MSG_MODE c=6 2021-03-30 17:41:09 +02:00
3d-gussner dc56b74263 Update #MSG_MODE c=9 2021-03-30 17:39:43 +02:00
3d-gussner 2a08a6e441 Update #MSG_SELFTEST_WIRINGERROR c=17 2021-03-30 17:37:50 +02:00
3d-gussner e6ea843e62 Update #MSG_SELFTEST_MOTOR c=18 2021-03-30 17:36:39 +02:00
3d-gussner 35b000faea Update MSG_RESUMING_PRINT c=20 2021-03-30 17:34:36 +02:00
3d-gussner 557486ee0b Update MSG_REFRESH c=18 2021-03-30 17:34:00 +02:00
3d-gussner 54f594238b Update #MSG_NOZZLE c=12 2021-03-30 17:33:15 +02:00
3d-gussner a878056be3 Update MSG_BACK c=18 2021-03-30 17:32:04 +02:00
3d-gussner 610ba9bc45 Update #MSG_CARD_MENU c=18 2021-03-30 17:31:18 +02:00
3d-gussner 5eb14dc433 Update #MSG_MAGNETS_COMP c=13 2021-03-30 17:29:56 +02:00
3d-gussner 12372d6525 Update #MSG_Z_PROBE_NR c=14 2021-03-30 17:28:43 +02:00
3d-gussner 7e2c272839 Update #MSG_MESH c=12 2021-03-30 17:27:02 +02:00
3d-gussner bc8a23a0c6 Update #MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY c=8 2021-03-30 17:25:35 +02:00
3d-gussner 3367d7f8fa Update #MSG_SD_CARD c=8 2021-03-30 17:24:45 +02:00
3d-gussner e8c3ba89dc Update #MSG_MMU_MODE c=8 2021-03-30 17:23:29 +02:00
3d-gussner 532c7438d8 Update #MSG_NOZZLE_DIAMETER c=10, MSG_GCODE c=8 2021-03-30 17:19:00 +02:00
3d-gussner 0a634f7d48 Update #MSG_FIRMWARE c=8 2021-03-30 17:16:31 +02:00
3d-gussner 39b8a35f3a Update #MSG_MODEL c=8 2021-03-30 17:15:48 +02:00
3d-gussner 5b843c3a4d Update #MSG_STRICT c=8 2021-03-30 17:14:49 +02:00
3d-gussner f60ba6de87 Update #MSG_WARN c=8 2021-03-30 17:13:56 +02:00
3d-gussner b465c96327 Update #MSG_NONE c=8 2021-03-30 17:13:09 +02:00
D.R.racer cdcc06f376 SDFile - fix errorneous offset computation
... my fault, I was originally too optimistic about the overflow

Fixes #3077

PFW-1233
2021-03-30 11:33:42 +02:00
DRracer a251dcc14e
Merge pull request #3064 from 3d-gussner/PFW-1222
PFW-1222: Disable M120 M121
2021-03-30 10:09:47 +02:00
DRracer e76b0c40a8
Merge pull request #3066 from espr14/PFW-1223
Calibration: detect biased PINDA and retry calibration PFW-1223
2021-03-30 10:08:16 +02:00
3d-gussner c4f80642b3 Update #MSG_MAIN c=18 2021-03-30 09:52:52 +02:00
3d-gussner 4417deb9ea Update #MSG_SOUND_BLIND c=7, #MSG_SOUND_LOUD c=7, MSG_SOUND_ONCE c=7 2021-03-30 09:50:21 +02:00
3d-gussner e4ed1ffc17 Update #MSG_SOUND c=9 2021-03-30 09:46:20 +02:00
3d-gussner 2ce5d3a840 Update #MSG_RPI_PORT c=13 2021-03-30 09:44:13 +02:00
3d-gussner 2ca8a23e4a Update #MSG_SORT_ALPHA c=8 #MSG_SORT_TIME c=8 2021-03-30 09:42:53 +02:00
3d-gussner c85ebb4aa3 Update #MSG_SORT c=7 2021-03-30 09:40:26 +02:00
3d-gussner 440ec49a36 Update #MSG_SETTINGS c=18 2021-03-30 09:38:33 +02:00
3d-gussner 6900c206cd Define #MSG_SEL_PREHEAT_TEMP c=20 r=6 2021-03-30 09:36:32 +02:00
3d-gussner 12dc48ff1a Update #MSG_BELTTEST c=18 2021-03-30 09:34:41 +02:00
3d-gussner b697117654 Update #MSG_SELFTEST c=18 2021-03-30 09:33:49 +02:00
3d-gussner 9bc702ae0a Update #MSG_SELFTEST_OK c=20 2021-03-30 09:32:27 +02:00
3d-gussner 00fedbb08a Update MSG_LANGUAGE_SELECT c=18 2021-03-30 09:30:04 +02:00
3d-gussner 164226c739 Define #MSG_RIGHT c=10 2021-03-30 09:29:07 +02:00
3d-gussner 2daf1d9114 Define #MSG_LEFT c=10 2021-03-30 09:26:50 +02:00
3d-gussner 169f8983b6 Define #MSG_ADDITIONAL_SHEETS c=20 r=9 2021-03-30 09:23:35 +02:00
3d-gussner a82ca3def4 Update #MSG_WATCH c=18 2021-03-30 09:21:50 +02:00
3d-gussner 0139bb5a5e Update #MSG_CHANGE_SUCCESS c=20 2021-03-30 09:20:57 +02:00
3d-gussner 0e86ab88fd Update #MSG_FILAMENTCHANGE c=18 2021-03-30 09:20:01 +02:00
3d-gussner 9c0300df66 Update #MSG_HEATING c=20 2021-03-30 09:18:11 +02:00
3d-gussner 280a3c4d3a Update #MSG_PRUSA3D_HOWTO c=18 2021-03-30 09:16:14 +02:00
3d-gussner 12bd2f1a09 Update #MSG_PRUSA3D c=18 2021-03-30 09:15:21 +02:00
3d-gussner 4e4fb7a59f Update #MSG_PRUSA3D_FORUM c=18 2021-03-30 09:14:20 +02:00
3d-gussner 10c586b577 Update #MSG_FLOW c=15 2021-03-30 09:13:09 +02:00
3d-gussner db07d55c29 Define #MSG_MMU_FIX_ISSUE c=20 r=4 2021-03-30 09:11:19 +02:00
3d-gussner 7c9891d85e Update #MSG_FSENSOR c=12 2021-03-30 09:09:11 +02:00
3d-gussner 7a99f63ffd Define #MSG_FAIL_STATS c=18 2021-03-30 09:06:59 +02:00
3d-gussner d427563e2b Define #MSG_MMU_FAIL_STATS c=18 2021-03-30 09:05:18 +02:00
3d-gussner 1b4241f031 Update #MSG_ERROR c=10 2021-03-30 09:03:38 +02:00
3d-gussner 1b8ca77b0c Define #MSG_MMU_CUTTING_FIL c=18 2021-03-30 09:01:58 +02:00
3d-gussner b6031c02a8 Update #MSG_DISABLE_STEPPERS c=18 2021-03-30 08:59:27 +02:00
3d-gussner 69b9acdfc1 Define #MSG_CRASH_RESUME c=20 r=3 2021-03-30 08:57:42 +02:00
3d-gussner 411caddc55 Define #MSG_CHOOSE_FIL_1ST_LAYERCAL c=20 r=7 2021-03-30 08:14:46 +02:00
3d-gussner 2d2dc23e81 Define #MSG_CALIBRATING_HOME c=20 2021-03-30 08:12:20 +02:00
3d-gussner c8af50d344 Define #MSG_COPY_SEL_LANG c=20 r=3 2021-03-30 08:09:08 +02:00
3d-gussner 71638b49fc Update #MSG_COOLDOWN c=18 2021-03-30 08:05:54 +02:00
3d-gussner 5f9b66a23a Update #MSG_NOT_COLOR c=19 2021-03-30 08:04:39 +02:00
3d-gussner 02ff05639b Define MSG_CHECKING_FILE c=17 2021-03-30 08:01:26 +02:00
3d-gussner f2298b1a46 Update #MSG_SD_REMOVED c=20 2021-03-30 07:57:42 +02:00
3d-gussner 1e2f5c8323 Update #MSG_MENU_CALIBRATION c=18 2021-03-30 07:55:19 +02:00
3d-gussner 3733c42d38 Update #MSG_HOMEYZ_DONE c=20 2021-03-30 07:54:11 +02:00
3d-gussner 79aa6b198d Update #MSG_HOMEYZ c=18 2021-03-30 07:52:24 +02:00
3d-gussner fa0382fd3e Update #MSG_CALIBRATE_BED c=18 2021-03-30 07:50:54 +02:00
3d-gussner 2985c6bd6b Update #MSG_BED c=13 2021-03-30 07:49:37 +02:00
3d-gussner 7c906dd0b1 Update #MSG_BED_CORRECTION_MENU c=18 2021-03-30 07:44:16 +02:00
3d-gussner 4d464b79f4 Update MSG_BED_HEATING c=20 2021-03-20 17:30:44 +01:00
3d-gussner 3ee23af7b7 Update MSG_BED_DONE c=20 2021-03-20 16:04:52 +01:00
3d-gussner ba0f2b2501 Update MSG_LOOSE_PULLEY c=20 2021-03-20 07:11:41 +01:00
3d-gussner 3fcc81ebdb Update MSG_SELFTEST_ENDSTOP c=16 2021-03-20 07:11:07 +01:00
3d-gussner 17df4e1c8d Update MSG_SELFTEST_ENDSTOPS c=20 2021-03-20 07:10:09 +01:00
3d-gussner 4a6c53daf8 Update MSG_SELFTEST_PLEASECHECK c=20 2021-03-20 07:09:33 +01:00
3d-gussner b3d3feef4d Update MSG_SELFTEST_ERROR c=20 2021-03-20 07:08:48 +01:00
3d-gussner 5d167ce813 Update MSG_SELFTEST_NOTCONNECTED c=20 2021-03-20 07:08:20 +01:00
3d-gussner 625604d704 Update MSG_SELFTEST_HEATERTHERMISTOR c=20 2021-03-20 07:07:14 +01:00
3d-gussner b86ad11b68 Update MSG_SELFTEST_BEDHEATER c=20 2021-03-20 07:06:37 +01:00
3d-gussner b3b062e4ba Update MSG_SELFTEST_SWAPPED c=16 2021-03-20 07:05:47 +01:00
3d-gussner b6684f6114 Update MSG_SELFTEST_AXIS c=16 2021-03-20 07:05:03 +01:00
3d-gussner bc9f6b6ae6 Update MSG_SELFTEST_AXIS_LENGTH c=20 2021-03-20 07:03:47 +01:00
3d-gussner 83cbfda113 Update MSG_AUTO_HOME c=18 2021-03-20 07:02:43 +01:00
3d-gussner fe1b4e50be Update MSG_AMBIENT c=14 2021-03-20 06:59:54 +01:00
3d-gussner 178fe36dc7 Create MSG_CANCEL c=9
Delete ">Cancel"
Samed 10 bytes
Updated MSG_MEASURED_OFFSET c=20
2021-03-20 06:30:26 +01:00
3d-gussner 1c965cd988 Update MSG_MEASURED_OFFSET c=20 2021-03-20 06:18:41 +01:00
3d-gussner 92acac453f Update MSG_MMU_POWER_FAILS c=15 2021-03-20 06:16:11 +01:00
3d-gussner 2a848923ea Update MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=6
as Dutch translation is longer
2021-03-19 18:50:29 +01:00
3d-gussner baabc0bd1e Fix typo "didnt" to "didn't" 2021-03-19 18:49:13 +01:00
3d-gussner b806c017cb Update MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR c=20 r=6
as Polish translation is longer
2021-03-19 18:47:58 +01:00
3d-gussner 542ff58529 Update MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR c=20 r=6
as Polish translation is longer
2021-03-19 18:47:09 +01:00
3d-gussner 147fddd060 Update MSG_CALIBRATE_BED_RESET c=18 2021-03-19 18:41:01 +01:00
3d-gussner 6300211268 Update MSG_PLACE_STEEL_SHEET c=20 r=5
as Italian translation is longer
2021-03-19 18:37:23 +01:00
3d-gussner 79a148bb14 Update #MSG_DEFAULT_SETTINGS_LOADED c=20 r=6
as Italian translation is longer
2021-03-19 18:34:39 +01:00
3d-gussner 9e60953d44 Update "G-code sliced for a newer firmware. Please update the firmware. Print cancelled."
as French translation is longer
2021-03-19 18:14:03 +01:00
3d-gussner a09f2c2f2d Update "G-code sliced for a newer firmware. Continue?"
as French translation is longer
2021-03-19 18:12:16 +01:00
3d-gussner 41022d7d60 Update "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
as French translation is longer
2021-03-19 18:07:04 +01:00
3d-gussner 813aabab56 Update "Select nozzle preheat temperature which matches your material." c=20 r=6
as Spanish translation is longer
2021-03-19 18:03:06 +01:00
3d-gussner d52a7326be Update "Please insert filament into the extruder, then press the knob to load it." c=20 r=6
as German translation is longer
2021-03-19 17:55:03 +01:00
3d-gussner cc29a9485e Update "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets." c=20 r=9
as German translation is longer
2021-03-19 17:52:54 +01:00
3d-gussner 03a13ace5a Update "Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." c=20 r=9
as French translation is longer
2021-03-19 17:47:35 +01:00
3d-gussner 17c015f5c0 Update "Printer nozzle diameter differs from the G-code. Continue?" c=20 r=5 2021-03-19 17:44:07 +01:00
3d-gussner ba9e26f444 Update #MSG_GCODE_DIFF_PRINTER_CANCELLED c=20 r=8 2021-03-19 17:37:24 +01:00
3d-gussner 1bba2255c1 Update MSG_WAITING_TEMP c=20 r=4 2021-03-19 17:34:15 +01:00
3d-gussner bab4994b89 Update #MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=20 r=2 2021-03-19 16:52:24 +01:00
3d-gussner 6a54196862 Update "Now remove the test print from steel sheet." c=20 r=4 2021-03-19 16:42:21 +01:00
3d-gussner 8cbf0b3318 Update "Crash detected. Resume print?" c=20 r=2 2021-03-19 16:38:53 +01:00
3d-gussner 891861d475 Update "G-code sliced for a different level. Continue?" c= r= values 2021-03-19 16:35:53 +01:00
3d-gussner f9a92e2277 Update "Y distance from min" c=20 2021-03-19 16:32:13 +01:00
3d-gussner 1f6834204f Update "Select filament:" c= value 2021-03-19 16:30:04 +01:00
3d-gussner cbe2a4d301 Update MSG_CHECK_IDLER c=20 r=5 2021-03-19 16:22:05 +01:00
3d-gussner 4dc99d970d Update "MMU needs user attention." c= r= values 2021-03-19 16:17:26 +01:00
3d-gussner 0928c3d133 Update "Lin. correction" c=18 2021-03-19 16:14:16 +01:00
3d-gussner ce42f2c2a5 Update MSG_BED_HEATING_SAFETY_DISABLED c=20 r=4 2021-03-19 16:11:42 +01:00
3d-gussner 5f9d6a0401 Update "Fail stats" c=18 2021-03-19 16:08:57 +01:00
3d-gussner 878200ecae Update "Fail stats MMU" c=18 2021-03-19 16:06:54 +01:00
3d-gussner 5cbb5b0e17 Update "Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." c= r= values 2021-03-19 15:53:36 +01:00
3d-gussner c39b22724d Update "G-code sliced for a different level. Please re-slice the model again. Print cancelled." c= r= values 2021-03-19 15:51:10 +01:00
3d-gussner 5a36b49cee Update "Select temperature which matches your material." c= r= values 2021-03-19 15:45:32 +01:00
3d-gussner 41db8eed30 Update "Select nozzle preheat temperature which matches your material." c= r= values 2021-03-19 15:42:17 +01:00
3d-gussner f319dede23 Update "Please insert filament into the first tube of the MMU, then press the knob to load it." c= r= values 2021-03-19 15:39:57 +01:00
3d-gussner 286c1931a5 Update #MSG_WIZARD_LOAD_FILAMENT c=20 r=5 2021-03-19 15:33:13 +01:00
3d-gussner 6a267e5a9a Update "Press the knob to resume nozzle temperature." c= r= values 2021-03-19 15:30:13 +01:00
3d-gussner b001eaec8d Update "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets." c= r= values 2021-03-19 15:24:28 +01:00
3d-gussner 18a58c504d Update #MSG_BED_HEATING_SAFETY_DISABLED c=20 r=3 2021-03-19 15:21:42 +01:00
3d-gussner ee8c9227cf Update #MSG_SELFTEST_FANS c=20 2021-03-19 15:16:23 +01:00
3d-gussner ba73d14511 Update "Fix the issue and then press button on MMU unit." c= r= values 2021-03-19 15:13:56 +01:00
3d-gussner 0c18ddcb10 Update "Choose a filament for the First Layer Calibration and select it in the on-screen menu." c= r= values 2021-03-19 15:10:18 +01:00
3d-gussner 89900a5109 Update "G-code sliced for a newer firmware. Please update the firmware. Print cancelled." c= r= values 2021-03-19 15:07:14 +01:00
3d-gussner 49e8f84916 Update "G-code sliced for a newer firmware. Continue?" c= r= values 2021-03-19 15:02:53 +01:00
3d-gussner fd7aa82dce Update MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND c=20 r=6 2021-03-19 15:00:00 +01:00
3d-gussner 1ed7d8fc4b Update MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR c=20 r=5 2021-03-19 14:42:17 +01:00