Commit Graph

5962 Commits

Author SHA1 Message Date
Guðni Már Gilbert 6ccd12c7e8 power panic: re-use saved_pos
This allows us to restore the position of all axis saved in RAM

If the extruder had been parked to the side for example
due to filament runout. Then the original position (before parking)
should now be restored

Change in memory:
Flash: +40 bytes
SRAM: 0 bytes
2023-07-18 11:29:03 +02:00
Guðni Már Gilbert 97c27525d4 power panic: re-use saved_extruder_relative_mode
Change in memory:
Flash: +8 bytes
SRAM: 0 bytes
2023-07-18 11:29:03 +02:00
Guðni Már Gilbert a2ac513794 power panic: re-use target temps from RAM
If a print has been saved to RAM such as during a filament runout,
do not overwrite these saved values if a sudden
power panic appears.

Additionally, change the saved types to be the same as power panic when saving to RAM:
- Bed target temperature is uint8_t (0 to 255) instead of float
- Extruder target temperature is uint16_t instead of float

Doing this change allows us to re-use the same global variables and
avoid creating local variables during power panic.

Change in memory:
Flash: -246 bytes
SRAM: -5 bytes
2023-07-18 11:29:03 +02:00
Guðni Már Gilbert b65c500f25 power panic: Add comments about conserving power 2023-07-18 11:29:03 +02:00
Guðni Már Gilbert a45e432030 power panic: Re-use code to save feedrate, segment index, and start position
Saves ~80B of Flash
2023-07-18 11:29:03 +02:00
Guðni Már Gilbert 67403603ed power panic: Re-use saving print file state
This also adds the Gcode position into EEPROM
for Octoprint/PrusaLink prints.
Though the recovery part doesn't support that yet.
2023-07-18 11:29:03 +02:00
Guðni Már Gilbert 2902fcaa71 power panic: Add two functions
These functions should be able to be re-used during a power panic

- save_print_file_state
- restore_print_file_state

No functional change at the moment.
2023-07-18 11:29:03 +02:00
Guðni Már Gilbert 526a1dcc63 power panic: Move code into a separate file 2023-07-18 11:29:03 +02:00
Guðni Már Gilbert 065d81ba57 Remove redundant st_synchronize
It's taken care of by the tool_change function

Change in memory:
Flash: -4 bytes
SRAM: 0 bytes
2023-07-14 15:06:38 +00:00
Guðni Már Gilbert 64c7202986 Simplify processing T? Tcode
tool_change calls load_filament_to_nozzle if it
sees T?, we should utilise this.

Change in memory:
Flash: -60 bytes
SRAM: 0 bytes
2023-07-14 15:06:38 +00:00
Guðni Már Gilbert 5295bfa040 Remove dead macro timer02_set_pwm0
It looks like it was removed here
https://github.com/prusa3d/Prusa-Firmware/pull/1979
4 years ago

No change in memory
2023-07-14 14:28:14 +02:00
Guðni Már Gilbert b6572066f4 optimisation: compare uint16_t against uint16_t
We're assigning step_rate with the 16-bit value of final_rate
I would expect the comparison to be 16-bit also then.

Change in memory:
Flash: -32 bytes
SRAM: 0 bytes
2023-07-13 11:11:45 +02:00
RoboMagus 2d461572dd Fix command parameters offset 2023-07-13 11:05:29 +02:00
RoboMagus 4450dbe4dd Update serial echo macro to print from PGM 2023-07-13 11:05:29 +02:00
RoboMagus d9e6dd4efe Update usage comment 2023-07-13 11:05:29 +02:00
RoboMagus 5baa74a425 Add M118 Gcode support 2023-07-13 11:05:29 +02:00
3d-gussner 7f95c54305 Move `Language update` to first row 2023-07-13 10:08:09 +02:00
Guðni Már Gilbert 6784c6919b cleanup: remove TMC2130 ifdef in lcd_selfcheck_axis
This function is no longer included in the firmware
when using TMC2130

Also removed commented code
2023-07-13 10:06:21 +02:00
Guðni Már Gilbert 70ae3353ce MMU: Disable E-motor after Try-load-unload
The filament is never in the nozzle at this point so there
should be no oozing.

When a single material MMU print, I can hear audible noise
from the motor after executing Tx code. After some timeout
(while the heaters still heating up) I can hear the firmware
disable the E-motor. But we can safely disable it immediately
after the try-load-unload sequence.

Change in memory:
Flash: +4 bytes
SRAM: 0 bytes
2023-07-13 10:04:20 +02:00
Guðni Már Gilbert 06c42bf85f MMU: Remove a call to Enable_E0
The planner enables the E-motor automatically
No need to do it manually

Change in memory:
Flash: -2 bytes
SRAM: 0 bytes
2023-07-13 10:04:20 +02:00
Guðni Már Gilbert 4abdb0225d PFW-1527 FILAMENT_EJECTED should not increment fail statistic
Change in memory:
Flash: +8 bytes
SRAM: 0 bytes
2023-07-13 10:01:27 +02:00
Guðni Már Gilbert 434386e6cc Log event when planner is aborted
It may be useful to see if any moves are lost

Change in memory:
Flash: +32 bytes
SRAM: 0 bytes
2023-07-13 10:00:16 +02:00
Guðni Már Gilbert f13d657c7e Remove Marlin.h include in backlight.h
Also removed it from sound.cpp, only include what is really required
2023-07-13 09:57:52 +02:00
Guðni Már Gilbert 749360db0f Remove mesh bed leveling include 2023-07-13 09:57:52 +02:00
Guðni Már Gilbert 34ef9665cd Remove two ultralcd includes 2023-07-13 09:57:52 +02:00
Guðni Már Gilbert 9cc9af14bd Remove unnecessary la10compat include 2023-07-13 09:57:52 +02:00
Guðni Már Gilbert b0ff5f45f3 Cleanup language.h includes
Remove a few redundant language.h includes

Also remove language.h include from cmdqueue.h to prevent including language.h unnecessarily

Fix missing message.h includes in a few files
2023-07-13 09:57:52 +02:00
Guðni Már Gilbert ee074eb548 Remove eeprom.h include in SpoolJoin header 2023-07-13 09:57:52 +02:00
Guðni Már Gilbert 37a73e91c6 Remove MMU2 include in stepper.cpp
Nothing is used from the MMU class in this file
2023-07-13 09:57:52 +02:00
Alex Voinea e91ee4a5db Change uint8_t* cast to long* 2023-07-13 09:54:33 +02:00
Alex Voinea 8149853fc9 Optimize `st_set_position()` for speed and size
flash: -186
SRAM: 0
time: x0.45
2023-07-13 09:54:33 +02:00
Guðni Már Gilbert ef4efc22c3 PFW-1528 Intercept register 0x14
This commit syncs the 8-bit firmware with the 32-bit

Change in memory:
Flash: +56 bytes
SRAM: 0 bytes
2023-07-13 08:00:11 +02:00
3d-gussner 079e4c9112
Merge pull request #4254 from 3d-gussner/MK3_UPDATE_DOXYGEN_PO
Update doxygen and po files
2023-06-29 10:38:12 +02:00
3d-gussner 9421785190 Update doxygen and po files 2023-06-29 08:23:13 +02:00
3d-gussner 3ddd691f44 Update REVO HF 60W to MMU3 2023-06-28 17:15:14 +02:00
3d-gussner b872b59bd9
Merge pull request #4246 from 3d-gussner/MK3_REVO_HF_60W
Add REVO High Flow 60W variant
2023-06-28 09:14:45 +02:00
3d-gussner 10e2357cc5 Change MMU2 to MMU3 2023-06-27 11:41:09 +02:00
3d-gussner 136ef9696d Do not check MMU version with `M862.3` for MK3|MK3S 2023-06-27 11:41:09 +02:00
3d-gussner 5f9cece2da Update REVO TM warning a error values 2023-06-26 10:32:13 +02:00
3d-gussner b5bd9ebc63
MK3 sync Prusa-Error-Codes (#4238)
* Sync PEC `FINDA_DIDNT_GO_OFF` to `FINDA_FILAMENT_STUCK`

* Sync PEC `FSENSOR_DIDNT_GO_OFF` to `FSENSOR_FILAMENT_STUCK`

* Sync PEC `PULLEY_STALLED` to `PULLEY_CANNOT_MOVE`

* Sync PEC `SELECTOR_CANNOT_MOVE` update text

* Sync PEC `IDLER_CANNOT_MOVE` update text

* Sync PEC `PULLEY_WARNING_TMC_TOO_HOT` to `WARNING_TMC_PULLEY_TOO_HOT`

* Snyc PEC `RestartMMU` to `ResetMMU`
Also related text

* Sync PEC `SELECTOR_WARNING_TMC_TOO_HOT` to `WARNING_TMC_SELECTOR_TOO_HOT`

* Sync PEC `IDLER_WARNING_TMC_TOO_HOT` to `WARNING_TMC_IDLER_TOO_HOT`

* Sync PEC `PULLEY_TMC_OVERHEAT_ERROR` to `TMC_PULLEY_OVERHEAT_ERROR`

* Sync PEC `SELECTOR_TMC_OVERHEAT_ERROR` to `TMC_SELECTOR_OVERHEAT_ERROR`

* Sync PEC `IDLER_TMC_OVERHEAT_ERROR` to `TMC_IDLER_OVERHEAT_ERROR`

* Sync PEC `PULLEY_TMC_DRIVER_ERROR` to `TMC_PULLEY_DRIVER_ERROR`
Also releated text

* Sync PEC `SELECTOR_TMC_DRIVER_ERROR` to `TMC_SELECTOR_DRIVER_ERROR`
Also related text

* Sync PEC `IDLER_TMC_DRIVER_ERROR` to `TMC_IDLER_DRIVER_ERROR`
Also related text

* Sync PEC `PULLEY_TMC_DRIVER_RESET` to `TMC_PULLEY_DRIVER_RESET`

* Sync PEC `SELECTOR_TMC_DRIVER_RESET` to `TMC_SELECTOR_DRIVER_RESET`

* Sync PEC `IDLER_TMC_DRIVER_RESET` to `TMC_IDLER_DRIVER_RESET`

* Sync PEC `PULLEY_TMC_UNDERVOLTAGE_ERROR` to `TMC_PULLEY_UNDERVOLTAGE_ERROR`

* Sync PEC `SELECTOR_TMC_UNDERVOLTAGE_ERROR` to `TMC_SELECTOR_UNDERVOLTAGE_ERROR`

* Sync PEC `IDLER_TMC_UNDERVOLTAGE_ERROR` to `TMC_IDLER_UNDERVOLTAGE_ERROR`

* Sync PEC `PULLEY_TMC_DRIVER_SHORTED` to `TMC_PULLEY_DRIVER_SHORTED`
Also related text

* Sync PEC `SELECTOR_TMC_DRIVER_SHORTED` to `TMC_SELECTOR_DRIVER_SHORTED`
Also related text

* Sync PEC `IDLER_TMC_DRIVER_SHORTED` to `TMC_IDLER_DRIVER_SHORTED`
Also related text

* Sync PEC `PULLEY_SELFTEST_FAILED` to `MMU_PULLEY_SELFTEST_FAILED`
Also related text

* Sync PEC `SELECTOR_SELFTEST_FAILED` to `MMU_SELECTOR_SELFTEST_FAILED`
Also releated text

* Sync PEC `IDLER_SELFTEST_FAILED` to `MMU_IDLER_SELFTEST_FAILED`
Also related text

* Sync PEC fix MMU_MMU
Update MMU MCU UNDERPOWER

* Sync PEC `FIL_ALREADY_LOADED` to `FILAMENT_ALREADY_LOADED`
Also related text

* Add Prusa Error Codes check script

* Remove `:` at FINDA and FSENSOR as it is in other tiles

* Sync
FSENSOR_DIDNT_TRIGGER
MSG_DESC_SELECTOR_CANNOT_MOVE
MSG_DESC_IDLER_CANNOT_MOVE
MSG_DESC_FW_UPDATE_NEEDED
FILAMENT_ALREADY_LOADED

* Add MMU UNKOWN_ERROR PEC
2023-06-21 07:34:17 +02:00
3d-gussner a2308aea8b Update E3DREVO High Flow 60W 2023-06-15 15:26:12 +02:00
3d-gussner bf8fd7ed90 Add max_overshoot_pi_autotune value
Prepare for REVO 60W
2023-06-07 12:50:56 +02:00
Guðni Már Gilbert 02859a37c8 optimisation: use CHECK_ALL_HEATERS in more places
Change in memory:
Flash: -162 bytes
SRAM: 0 bytes
2023-05-31 20:39:38 +00:00
3d-gussner b0a72f42f1
Fix build nr. 2023-05-30 15:54:53 +02:00
3d-gussner 3da1ae1344 Change new hotend variants 2023-05-29 10:22:17 +02:00
3d-gussner 8078c8eff2 Fix format and bump up build number 2023-05-26 11:06:39 +02:00
3d-gussner cea2a07045 Bump up build number 2023-05-26 08:17:02 +02:00
3d-gussner 56dd8f09e7 Fix too long message `MSG_BABYSTEPPING_Z`from c=15 to c=13
Had to remove `:` and update NL translation to fit
2023-05-26 08:17:02 +02:00
3d-gussner 6ce2026ab7 Rename README in variants folder 2023-05-26 07:36:39 +02:00
3d-gussner 02f7c7efc0 Add README_variants 2023-05-26 07:34:06 +02:00
3d-gussner 38d801a4c5 Add E3D REVO variant
Thanks to E3D and the community providing data
2023-05-25 09:46:16 +02:00
3d-gussner 3c678122f6
Merge pull request #4222 from 3d-gussner/PFW1520-pofiles
PFW-1520: Add new message `Preload to MMU` to po files
2023-05-24 06:57:48 +02:00
3d-gussner 135247c3b7
Merge pull request #4214 from 3d-gussner/MK3_Fix_MMU_IRsensor
Fix IRsensor with MMU
2023-05-24 06:57:05 +02:00
3d-gussner 9b4c8e9c9d Thanks to @gudnimg 2023-05-23 10:39:05 +02:00
3d-gussner f43451f80b Update `MSG_EJECT_FILAMENT` and `MSG_CUT_FILAMENT` to `c=16`
Had to shorten SK translation
2023-05-23 09:50:27 +02:00
3d-gussner a37bcbfd8c Fix `Load filament` to c=16 2023-05-23 09:45:07 +02:00
3d-gussner d4beab95d5
Merge pull request #4208 from gudnimg/load_to_nozzle_fix
MMU: Fix 0°C target temperature when loading to nozzle
2023-05-23 08:54:26 +02:00
Guðni Már Gilbert 7dc370a7e1 Move ISR7 code to fancheck.cpp 2023-05-23 07:43:40 +02:00
Guðni Már Gilbert 963bd508a4 Fix MK25 compiler warning
warning: 't_fan_rising_edge' defined but not used [-Wunused-variable]
2023-05-23 07:43:40 +02:00
Guðni Már Gilbert 467158eb49 MMU: Fix 0°C target temperature when loading to nozzle
bFilamentAction variable is never reset, even after
disabling the heaters.

Steps to reproduce:
1. Boot-up printer
2. Select Load to Nozzle.
3. Select PLA (215°C) target
4. Select Filament 1
5. Wait for load to be successful
6. Go to Preheat submenu and select Cooldown (last menu item)
7. Observe target temperature on the status screen is now 0°C
8. Select Load to Nozzle again.
9. Select Filament 2.
* Expected behavior target temperature IS NOT 0°C
* Actual behavior target temperature IS 0°C

Change in memory:
Flash: -26 bytes
SRAM: 0 bytes
2023-05-22 22:00:00 +00:00
Guðni Már Gilbert 02676fc888 Limit scope of is_mmu_error_monitor_active
Move the variable to mmu2_reporting

Change in memory:
Flash: -6 bytes
SRAM: 0 bytes
2023-05-22 08:04:22 +02:00
Guðni Már Gilbert 1f9fc4ef3f MMU: add UnloadInner and CutFilamentInner
Sync with the 32-bit side.
The ReportingRAII does not handle recursion.

Fixes an issue with the multiple calls to
BeginReport() and EndReport()

Change in memory:
Flash: +14 bytes
SRAM: 0 bytes
2023-05-22 08:00:42 +02:00
Guðni Már Gilbert 9d5453a41e PFW-1520 Rename Load Filament menu to Preload to MMU
Change in memory:
Flash: +18 bytes
SRAM: 0 bytes
2023-05-22 07:53:26 +02:00
Guðni Már Gilbert 2391698419 errorCode should reflect the state of the MMU
If the protocol reports and error and give errorCode
a value. When the error is resolved, errorCode is not reset to OK.

If the MMU is not in an error state I would expect errorCode to reflect that.

This fixes MMUCurrentErrorCode()

Change in memory:
Flash: +12 bytes
SRAM: 0 bytes
2023-05-22 07:53:12 +02:00
3d-gussner d20dc8256a
Merge pull request #4204 from gudnimg/ReportingRAII-opt
optimisation: always inline `ReportingRAII`
2023-05-19 19:44:41 +02:00
3d-gussner 91a23e27e1 Fix IRsensor with MMU
saves 38bytes
2023-05-19 13:35:28 +02:00
Guðni Már Gilbert 90322a7181 optimisation: always inline ReportingRAII
Tested on MK3S+ using the LCD.

Change in memory:
Flash: -80 bytes
SRAM: 0 bytes
2023-05-13 18:07:13 +00:00
Alex Voinea 0612a38885
Fix stepper inactivity timeout 2023-05-13 08:18:39 +02:00
3d-gussner 162f8b4cc8
Merge pull request #4180 from gudnimg/menu_draw_P-fix
Fix regression in `menu_draw_P`
2023-05-10 07:30:02 +02:00
3d-gussner 0c453b53cd
Merge pull request #4193 from gudnimg/unload-sequence-improvements
Fix unload sequence for users without MMU
2023-05-10 07:29:16 +02:00
Guðni Már Gilbert 3c79e77220 Create define for two hardcoded values 2023-05-08 19:50:51 +00:00
Guðni Már Gilbert e24c2200f1 Set FILAMENTCHANGE_FINALRETRACT instead of hardcoded 0 2023-05-08 19:33:42 +00:00
3d-gussner 8d1abf772d
Merge pull request #4192 from gudnimg/PFW-1506
PFW-1506 Load to nozzle: Fix too short purge distance
2023-05-08 13:14:47 +02:00
Guðni Már Gilbert d781dae35b Combine two moves since they have the same feedrate
Change in memory:
Flash: -60 bytes
SRAM: 0 bytes
2023-05-06 15:24:54 +00:00
Guðni Már Gilbert 71180ac284 Cleanup M600 init
Instead of removing FILAMENTCHANGE_FINALRETRACT
just set it to 0

No change in memory
2023-05-06 15:24:54 +00:00
Guðni Már Gilbert 8556336185 Fix unload sequence for users without MMU
Restores 3.12 sequence which was working well before.

M600 "L" parameter now works like M702 "U" parameter.

Removed a lot of the unused parameters which were copied
from Marlin 2.

Change in memory:
Flash: +96 bytes
2023-05-06 15:24:54 +00:00
VintagePC e336e2ad08 Fix merge conflict/resync 2023-05-06 11:22:31 -04:00
Guðni Már Gilbert dd9df36375 Load to nozzle: Fix too short purge distance
PFW-1506

Change in memory:
Flash: +8 bytes
SRAM: 0 bytes
2023-05-06 13:19:57 +00:00
Guðni Már Gilbert 462535ef7f Restore 3.12 live Z-adjust menu behavior
Code size increases  a bit but keep in mind the PR
that broke the behavior "saved" 182 bytes:
https://github.com/prusa3d/Prusa-Firmware/pull/4063
So I think this code size increase is OK

Change in memory:
Flash: +84 bytes
SRAM: 0 bytes
2023-05-06 12:08:06 +00:00
Alex Voinea 1d87789641 Always allow Live Adjust Z in Settings 2023-05-05 19:19:11 +00:00
Guðni Már Gilbert 570b360413 Fix menu_draw_P for negative values
The new code did not take into account the minus sign.

The template for menu_draw_P is removed since there is no benefit in
uint8_t version of this function since the value
is converted to two bytes anyway by lcd_printf_P.

Change in memory:
Flash: -92 bytes
SRAM: 0 bytes
2023-05-05 17:24:14 +00:00
3d-gussner bf6c0919e1
Merge pull request #4166 from gudnimg/gudnimg-patch-1
M701/M702: Set default Z value to 0
2023-05-05 12:38:37 +02:00
3d-gussner 12d9070c03
Merge pull request #4181 from gudnimg/status-screen-feedrate
optimisation: only check feedrate if knob is rotated
2023-05-05 12:37:46 +02:00
3d-gussner fd2184801f
Merge pull request #4168 from gudnimg/next_feedrate_remove
Cleanup: Remove `next_feedrate` from global scope
2023-05-05 12:36:04 +02:00
3d-gussner 427e88a406
Merge pull request #4175 from gudnimg/remove-LoadFilament
cleanup: Remove unused `LcdCommands` state `LoadFilament`
2023-05-05 12:34:49 +02:00
3d-gussner bdd958fe5e
Merge pull request #4157 from leptun/menu_optimizations
Menu optimizations
2023-05-05 11:51:12 +02:00
3d-gussner 649f08f69f
Merge pull request #4178 from gudnimg/m600-dead-code
M600: remove dead code
2023-05-05 11:50:01 +02:00
3d-gussner e3a57c9947
Merge pull request #4169 from 3d-gussner/MK3_TMcal_mid
Move nozzle to center during Thermal model cal.
2023-05-05 11:48:41 +02:00
Guðni Már Gilbert fc15f5a6ef Select correct MMU slot in lcd_wizard_load
Change in memory:
Flash: +8 bytes
SRAM: 0 bytes
2023-05-02 22:38:54 +00:00
Guðni Már Gilbert 9cf1f7871e Minor fix to M701 when MMU slot is out of range
If MMU slot is outside of range, then we rather the printer
not do anything. Currently it would accidentally assume
the MMU is disabled. This may have undesireable results.

No change in memory
2023-05-02 22:32:18 +00:00
Guðni Már Gilbert 5b75886a55 Fix regression where feedrate can overflow on status screen
If the remaining print time is more than 10.9 hours at 100%
then increasing the feedrate multiplier
to 101% or more will yield an unrealistic time due to overflow occuring.

Change in memory:
Flash +2 bytes
SRAM: 0 bytes
2023-05-01 12:48:21 +00:00
Guðni Már Gilbert b3f52f95c7 optimisation: only check feedrate if knob is rotated
Guard the feedmultiply code with
lcd_encoder.

if lcd_encoder = 0, then there is no need to check if
feedmultiply should be updated.

Also set lcd_encoder to zero in one line to consume the rotation event.

Change in memory:
Flash: -40 bytes
SRAM: 0 bytes
2023-04-30 23:31:16 +00:00
Guðni Már Gilbert 92e5747469 M600: remove dead code
The if statement doesn't do anything useful
so I propose it be removed before 3.13 release

Change in memory:
Flash: -30 bytes
SRAM: 0 bytes
2023-04-29 23:43:27 +00:00
Guðni Már Gilbert 26369ac540 Restore old M701/M702 behavior
If the new Z parameter is not given,
assume that the old Z-lift behavior is desired.

Change in memory:
Flash: -28 bytes
SRAM: 0 bytes
2023-04-29 16:22:28 +00:00
Guðni Már Gilbert 0b34c6a695 cleanup: Remove unused LcdCommands state
This may help the compiler generate smaller code

Change in memory:
Flash: -2 bytes
SRAM: 0 bytes
2023-04-29 10:24:04 +00:00
Guðni Már Gilbert d7127c44f1
Merge branch 'prusa3d:MK3' into gudnimg-patch-1 2023-04-28 19:10:56 +00:00
3d-gussner e11555392e Save some bytes.
Thanks to @leptun
2023-04-26 09:18:47 +02:00
3d-gussner 686f92b243 Move nozzle to center during Thermal model cal. 2023-04-25 20:41:17 +02:00
Guðni Már Gilbert 228250f050 Cleanup: Remove next_feedrate from global scope
No change in memory
2023-04-24 21:33:07 +00:00
Alex Voinea a354aad762
Merge pull request #4167 from leptun/lcd_encoder_improvements
Lcd encoder improvements
2023-04-24 15:58:54 +02:00
Alex Voinea e662ef276e
Deduplicate temperature settings
Flash: -52B
SRAM: 0B
2023-04-24 11:56:53 +02:00
Alex Voinea c83646743f
Deduplicate MMU settings
Flash: -58B
SRAM: 0B
2023-04-24 11:56:53 +02:00
Alex Voinea 4a2a89cb74
Remove stupid comments from older bad code 2023-04-24 11:56:53 +02:00
Alex Voinea 67f0fe0fce
Remove AUTOTEMP menu items
They are commented out and broken anyway
2023-04-24 11:56:53 +02:00
Alex Voinea c339711025
Make the encrot table balanced
It won't change much. It is not possible to determine in which direction the encoder spun when two steps are made, so just use + or - 2.
2023-04-24 11:56:25 +02:00
Alex Voinea 32e68c33b4
lcd encoder: use lookup table
Also handle the scenario where the encoder moves two steps in a single lcd_buttons_update cycle.

Flash: -46B
SRAM: 0B
2023-04-24 11:56:13 +02:00
Alex Voinea ea101f49d4
`lcd_buttons` is actually `lcd_click_trigger`
Flash: -4B
SRAM: 0B
2023-04-24 11:56:04 +02:00
Alex Voinea dd16cf4525
Remove Binary.h include 2023-04-24 11:52:25 +02:00
Guðni Már Gilbert 78614f5670
M701/M702: Set default Z value to 0
Set default Z value to 0 to maintain backwards compatibility with older gcodes.
2023-04-24 09:09:43 +00:00
Alex Voinea 17e085040c
Add missing line to custom character
Shouldn't make a difference since the array is already defined as 8B long, but I just found it weird and surprising when I noticed only 7 lines were defined
2023-04-24 10:44:48 +02:00
Alex Voinea 548ed0eb31
Convert <binary.h> to native binary literals 2023-04-24 10:42:09 +02:00
Guðni Már Gilbert 5b7266fdf1
Don't render message when printer is idle
Guard the lcd_display_message_fullscreen_P call by blocks_queued(). If there are no planned moves, there is no need to render this message, it creates a weird LCD draw noticable by the user.

Change in memory:
Flash: +10 bytes
SRAM: 0 bytes
2023-04-23 12:25:10 +02:00
Guðni Már Gilbert 9de2cbfe8e
Fix an issue with crash_mode_switch toggling
Proposed changes
2023-04-23 12:25:10 +02:00
Alex Voinea 9272545deb
Dead code cleanup 2023-04-23 12:25:10 +02:00
Alex Voinea 02a0f6a35a
Correctly utilize the menu stack in the Mode select message
Flash: -34B
SRAM: 0B
2023-04-23 12:25:10 +02:00
Alex Voinea 6390b3b69b
Remove duplicate separator string
Flash: -14B
SRAM: 0B
2023-04-23 12:25:10 +02:00
Guðni Már Gilbert 62991c8e67 Fix issue where Tx gcode doesnt reset custom_message_type
We need to call BeginReport and EndReport
otherwise the SD filename is not shown when printing

This only affects single material MMU gcodes

Change in memory:
Flash: -4 bytes
SRAM: 0 bytes
2023-04-23 09:52:11 +00:00
Alex Voinea 5778e39687
Resync `lcd_encoder_diff` when clicking
Flash: +4B
SRAM: 0B
2023-04-23 10:07:52 +02:00
Alex Voinea c037e6dfba
Use atomic block for accessing lcd_encoder_diff
There was still the possibility of lcd_encoder_diff being updated from the ISR while the new enc_diff was being computed.

Flash: +8B
SRAM: 0B
2023-04-23 09:58:56 +02:00
Alex Voinea 1f181a949a
Fix `lcd_encoder_diff` getting out of sync with the knob hard steps
Flash: +18B
SRAM: 0B
2023-04-23 09:48:09 +02:00
Alex Voinea ee8b95b556
Merge pull request #4158 from gudnimg/remove-dead-code-gudni-e1e2
Cleanup: remove unused extruder macros
2023-04-23 09:26:26 +02:00
Alex Voinea 9662bb11d4
Merge pull request #4144 from gudnimg/double-feedback-bugs
Double feedback bugs
2023-04-23 09:14:01 +02:00
Guðni Már Gilbert 3509791943 Drop sound feedback in lcd_v2_calibration
Drop the sound feedback in lcd_v2_calibration
when switching to lcd_generic_preheat_menu

If a single filament setup (no MMU) has filament loaded, it will jump
immediately to lcd_generic_preheat_menu
this created double feedback.

Let's just drop the feedback since the transition
between menus is very fast.

Change in memory:
Flash: -8 bytes
2023-04-22 15:28:27 +00:00
Guðni Már Gilbert b15beb25cc Remove INVERT_E1_DIR and INVERT_E2_DIR from config
I think these should be removed from the configuration files
as these definitions don't do anything.
2023-04-22 15:15:21 +00:00
Guðni Már Gilbert 0cf0d40a2e Remove checkAllHotends() 2023-04-22 15:15:21 +00:00
Guðni Már Gilbert c7f0ee13be Missed these macros disable_e1/2 2023-04-22 15:15:21 +00:00
Guðni Már Gilbert 25522d3d68 Remove unused Autofan extruder configs 2023-04-22 15:15:21 +00:00
Guðni Már Gilbert c14332bfb2 Combine two ifdefs 2023-04-22 15:15:21 +00:00
Guðni Már Gilbert 327b5b230b Remove soft_pwm_1 and soft_pwm_2 2023-04-22 15:15:21 +00:00
Guðni Már Gilbert fcabcd2804 Remove TEMP_SENSOR_1 and TEMP_SENSOR_2
Hopefully I didn't miss anything
2023-04-22 15:15:21 +00:00
Guðni Már Gilbert f539b40611 Remove more EXTRUDERS > 1 code 2023-04-22 15:15:21 +00:00
Guðni Már Gilbert 4935191335 Cleanup remove unused macros
enable_e1
enable_e2
disable_e1
disable_e2

The firmware doesn't support multiple extruders

No change in memory
2023-04-22 15:15:21 +00:00
Guðni Már Gilbert 7889d54cfd
Merge pull request #4160 from gudnimg/cleanup-tcode-description
Rewrite the Tcodes description
2023-04-22 14:43:33 +00:00
Guðni Már Gilbert 76a76de7ea Rewrite the Tcodes description
The old description had typos and was a bit confusing for new users

The new text is a suggestion from David Buzek at Prusa Research
2023-04-22 14:27:01 +00:00
Guðni Már Gilbert 51da6065c8
Merge pull request #4159 from gudnimg/cleanup-gudni-comments
Remove random `//-//` comments
2023-04-22 13:53:13 +00:00
Guðni Már Gilbert b8f8348e77
Fix double feedback in Z-offset menu 2023-04-22 15:53:06 +02:00
Guðni Már Gilbert b6e228d5a5
Fix double feedback in First Layer Calibration
For MMU users: This happens when the user
selects a filament to load from 1 to 5

For non-MMU: this happens when clicking
the knob within 2 seconds.

Additionally fixed the code indendation
it was a mix of spaces and tabs
2023-04-22 15:53:06 +02:00
Guðni Már Gilbert ccabf1fa31 Remove random //-// comments 2023-04-22 13:39:08 +00:00
Alex Voinea e516d8a0c4
Merge pull request #4156 from leptun/lcd_status_screen_block
Fix `M0` click not consumed
2023-04-22 15:01:16 +02:00
Guðni Már Gilbert 4ce3fa53a1 Optimise M0/M1 code size
Replace two bool variables with one.

It's not obvious but (!hasP && !hasS) is equal to
!(hasP || hasS)

Note: expiration_time_set = hasP || hasS
Truth table:
|--------------------------------------------------|
| hasP| hasS| (!hasP && !hasS)|  !(hasP || hasS) |
|------|-----|--------------------|-----------------|
|   0    |  0   |               1            |            1           |
|   0    |  1   |               0            |            0           |
|   1    |  0   |               0            |            0           |
|   1    |  1   |               0            |            0           |
|--------------------------------------------------|

Change in memory:
Flash: -36 bytes
SRAM: 0 bytes
2023-04-21 17:42:55 +00:00
3d-gussner 360f234b98
Merge pull request #4146 from gudnimg/fan-check-opt
Reduce code size in fan check selftest
2023-04-21 14:24:04 +02:00
Alex Voinea 91b913e997
Fix `M0` click not consumed
Fix the need to click the knob twice to dismiss `M0`.

Flash: -54B
SRAM: -2B
2023-04-21 12:59:40 +02:00
Guðni Már Gilbert 2ad916a2c3 Fix manual fan check menu
lcd_encoder was not being updated
we need to call manage_inactivity

Tested on MK3S+

Change in memory:
Flash: +6 bytes
SRAM: 0 bytes
2023-04-19 15:41:36 +00:00
Guðni Már Gilbert 18c389543b Fix lcd_update() FW crashes
Change in memory:
Flash: +10 bytes
SRAM: 0 bytes
2023-04-19 15:41:36 +00:00
3d-gussner 20e73e3c4f
Merge pull request #4067 from scottmudge/MK3_3.12-meatpack-pr
Add support for g-code compression/packing over serial connection (MeatPack)
2023-04-19 09:20:07 +02:00
Alex Voinea 2dcaae80d5
Merge pull request #4027 from gudnimg/minor-optimisation-gudni
Many minor optimisations for 3.13/3.14
2023-04-17 21:27:48 +02:00
Alex Voinea ea97ca7920
Use `EXTRUDERS` instead of hardcoded value in string 2023-04-17 21:12:59 +02:00
Alex Voinea b67063f14a
Remove empty lines 2023-04-17 21:10:20 +02:00
Guðni Már Gilbert 43d41ddd2b cleanup: static variables in Marlin_main.cpp 2023-04-16 23:23:31 +00:00
Guðni Már Gilbert 4b54cd1f30 Remove unused LoadingToNozzleRAII
The variable is not used anywhere.

Change in memory:
Flash: -14 bytes
SRAM: -1 byte
2023-04-16 17:23:28 +00:00
Guðni Már Gilbert 01df65882f cleanup: remove commented code 2023-04-16 15:25:43 +00:00
Alex Voinea f6135f2ed1 Enable Analog IR sensor again 2023-04-16 13:58:18 +00:00
Guðni Már Gilbert f5b9d2ac2e cleanup: Remove unused Developer define 2023-04-16 13:13:16 +00:00
Guðni Már Gilbert 2ed4a75894 cleanup: remove unused settings 2023-04-16 13:13:16 +00:00
Guðni Már Gilbert 559e1bb21a Remove unused MMU configs
- MMU_IDLER_SENSOR_ATTEMPTS_NR
- MMU_REQUIRED_FW_BUILDNR

These are no longer used
2023-04-16 13:13:16 +00:00
Guðni Már Gilbert ea095543b3 Fix a typo in PSU_Delta define
It's case sensitive: "PSU_delta" --> "PSU_Delta"
2023-04-15 18:44:23 +00:00
Guðni Már Gilbert 9b6e1babcb many more lcd_putc_at optimisations
Changes in
lcd_implementation_drawmenu_sdfile
and
lcd_implementation_drawmenu_sddirectory
seem to save the most.

Change in memory:
Flash: -72 bytes
SRAM: 0 bytes
2023-04-15 13:45:10 +00:00
Guðni Már Gilbert dea7f2b26c Resolve PR review
Initialise EEPROM_CHECK_MODE always
But if farm mode is detected, update the Check mode to Strict

Initialise EEPROM_NOZZLE_DIAMETER on farm mode.
When opening the menus this value is set automatically to
_Diameter_400 anyway so this should be fine.

No change in memory on Multilang build
2023-04-15 13:45:10 +00:00
Guðni Már Gilbert 9f66eceb29 optimisation: belt test new values
use lcd_print instead of lcd_printf_P
to print the number only

Tested on MK3S+

Change in memory:
Flash: -34 bytes
SRAM: 0 bytes
2023-04-15 13:45:10 +00:00
Guðni Már Gilbert 87e40f1cee optimisation: lcd_putc_at in belt test
Change in memory:
Flash: -4 bytes
SRAM: 0 bytes
2023-04-15 13:45:10 +00:00
Guðni Már Gilbert 583c46a63f Simplify two fan_check_error checks
There are only 3 possible values. No need to check for two of them
to rule of the last value. Instead simply check for the last value only.

Change in memory:
Flash: -16 bytes
SRAM: 0 bytes
2023-04-15 13:45:10 +00:00
Guðni Már Gilbert b67c359129 Move fan_state to fancheck.cpp and make it static
No change in memory
2023-04-15 13:45:10 +00:00
Guðni Már Gilbert ebdcfbec50 cleanup: tmc2130: make variables static where applicable
No change in memory
2023-04-15 13:45:10 +00:00
Guðni Már Gilbert 7c23d8b00c cleanup: make cancel_heatup static in Marlin_main 2023-04-15 13:45:10 +00:00
Alex Voinea d148c08991 Remove dead code from get_coordinates() 2023-04-15 13:45:10 +00:00
Alex Voinea c7de1b1416 optimize get_coordinates() axis mask 2023-04-15 13:45:10 +00:00
Alex Voinea ea7b395852 Remove useless parantheses
Found these a few months ago when I was trying some other optimization. Don't want to make a PR just for this, so I'll just slide it here in this existing PR.
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert d175dba669 optimisation: use expired_cont is specific places
!variable.running() || variable.expired()
is equal to
variable.expired_cont()

The latter required less flash memory

Change in memory:
Flash: -28 bytes
SRAM: 0 bytes
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert 00ffab8f62 optimisation: combine if statements in Sensors menu
FINDA status is always 0 or 1

Change in memory:
Flash: -28 bytes
SRAM: 0 bytes
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert 7ff514621c cleanup: remove unused global variable 2023-04-15 13:45:09 +00:00
Guðni Már Gilbert 69b4696114 use lcd_puts_P instead of lcd_printf_P
Change in memory:
Flash: -8 bytes
SRAM: 0 bytes
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert 66bb9bcfe4 optimisation: lcd_temp_cal_show_result
result is boolean so always update the EEPROM

Change in memory:
Flash: -20 bytes
SRAM: 0 bytes
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert bd796a2cb3 optimisation: more lcd_putc_at
Change in memory:
Flash: -18 bytes
SRAM: 0 bytes
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert 70dadc4202 M115: Extruder count is always 1
Change in memory:
Flash: -8 bytes
SRAM: 0 bytes
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert 62cbc829f6 optimisation: use new eeprom methods in check_printer_version()
Change in memory:
Flash: -48 bytes
SRAM: 0 bytes
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert cd8a22d6b3 optimisation: utils: don't initialise global variables
They will be set by fCheckModeInit() by reading from EEPROM

Change in memory:
Flash: -2 bytes
SRAM: -1 byte
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert 7a8dfdae53 optimisation: use new EEPROM init method for fCheckModeInit
Change in memory:
Flash: -90 bytes
SRAM: 0 bytes
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert 6aafbe69a8 cleanup: remove unused function declaration 2023-04-15 13:45:09 +00:00
Guðni Már Gilbert 6e02a082e2 cleanup: make heating_status_counter static
Change in memory:
Flash: 0 bytes
SRAM: 0 bytes
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert ab934f8ba5 optimisation: make clock_interval static and 1 byte
Change in memory:
Flash: -16 bytes
SRAM: -1 byte
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert 66e629ba74 cleanup: remove unused variable FSensorStateMenu 2023-04-15 13:45:09 +00:00
Guðni Már Gilbert 3cd97a5e8f optimsation: draw cursor and set position with one function
Change in memory:
Flash: -4 bytes
SRAM: 0 bytes
2023-04-15 13:45:08 +00:00
Guðni Már Gilbert 2120d17912 optimisation: simplify T-code response for single material
Extruder is always 0

Change in memory:
Flash: -12 bytes
SRAM: 0 bytes
2023-04-15 13:45:08 +00:00
Guðni Már Gilbert 420f745bed optimisation: mmu: combine if statements
Change in memory:
Flash: -6 bytes
SRAM: 0 bytes
2023-04-15 13:45:08 +00:00
Guðni Már Gilbert 4d90ecbcc4 cleanup: remove ctype include
We don't use any function from this header

No change in code size
2023-04-15 13:45:08 +00:00
Guðni Már Gilbert 3dda8b5c00 optimise fan check selftest code
Tested on MK3S+

Change in memory:
Flash: -174 bytes
SRAM: 0 bytes
2023-04-15 11:11:16 +00:00
Guðni Már Gilbert d6c81dab62 Fix manual fan check menu
lcd_encoder was not being updated
we need to call manage_inactivity

Tested on MK3S+

Change in memory:
Flash: +6 bytes
SRAM: 0 bytes
2023-04-15 10:59:58 +00:00
Guðni Már Gilbert 95acdba5fa Fix lcd_update() FW crashes
Change in memory:
Flash: +10 bytes
SRAM: 0 bytes
2023-04-14 21:31:12 +00:00
Guðni Már Gilbert f34c1ffeac
Fix an issue where visualisation is overwritten by SD file name
We should let EndReport set the custom message type state to Status
This will ensure the SD file name is shown correctly AFTER we've shown
the visualisation

Currently the visualisation is cut off in the middle by ReportProgressHook

Change in memory:
Flash: -6 bytes
SRAM: 0 bytes
2023-04-14 09:32:41 +02:00
Guðni Már Gilbert 4b3dc65598
Don't always set MSG_WELCOME at end of toolchange
This should only be set when NOT printing

Change in memory:
Flash: +8 bytes
SRAM: 0 bytes
2023-04-14 09:32:41 +02:00
Alex Voinea 41b8279805
Fix eeprom table addresses 2023-04-13 11:34:18 +02:00
Alex Voinea af4a3f3328
Reorder eeprom reads
Saves 4B of flash
2023-04-13 11:15:17 +02:00
Alex Voinea f333d36e47
Use a different location as a kill message pending flag
The old implementation would fail if the message was in progmem at address 0xffff or 0x0000 (both unlikely). It would also fail if the eeprom was initialized to some other random value, which could have been dangerous when displayed as a full screen message.
2023-04-13 10:57:00 +02:00
Alex Voinea 4b65d49512
Move kill check earlier during startup 2023-04-13 10:57:00 +02:00
Alex Voinea 2aca89d6dc
Update eeprom documentation 2023-04-13 10:57:00 +02:00
Alex Voinea f388d8abb6
postponed kill() message with softReset 2023-04-13 10:57:00 +02:00
Alex Voinea 82343184e7
Merge pull request #4036 from gudnimg/optimise-mmu-silent-mode
optimisation: MMU silent mode toggling & init
2023-04-13 10:54:21 +02:00
Alex Voinea 193bce7f20
Merge pull request #4037 from gudnimg/optimisation-tmc2130-stuff
Optimisation: Disable M351 when using TMC2130 and code related to it
2023-04-13 10:54:08 +02:00
Scott Mudge 3cd125c566
MeatPack gcode compression support 2023-04-13 10:50:15 +02:00
3d-gussner 3b9d1b8980
Merge pull request #4138 from gudnimg/menu-fixes-gudni
Fix broken editing menu
2023-04-13 10:16:19 +02:00
Alex Voinea e4bedf0523
Merge pull request #4133 from gudnimg/xyzcal-opt
Reduce XYZ cal code size
2023-04-12 21:35:58 +02:00
Alex Voinea 6c6f98fb03
Merge pull request #4134 from gudnimg/tmc2130_home_exit-opt
tmc2130: simplify parsing axis mask
2023-04-12 21:35:46 +02:00
Alex Voinea c16e7733e9
Merge pull request #4141 from gudnimg/double-feedback-xyz-cal-menu
menu: Fix an issue with feedback double triggering in XYZ cal menu on knob click
2023-04-12 21:29:24 +02:00
Guðni Már Gilbert 225999b79d Remove redundant colon characters
The Edit menu already applies a colon to the label string
no need to render it twice.

Change in memory:
Flash: -4 bytes
SRAM: 0 bytes
2023-04-12 17:37:57 +00:00
Guðni Már Gilbert b91941f354 Fix broken editing menu
- currentValue must be initialised when entering the menu
- Consume lcd_encoder value when editing an item

Change in memory:
Flash: +40 bytes
SRAM: 0 bytes
2023-04-12 17:37:56 +00:00
Guðni Már Gilbert 53e3193252 Fix bug with uint8_t not shown correctly on LCD
Change in memory:
Flash: +8 bytes
SRAM: 0 bytes
2023-04-12 17:37:23 +00:00
Guðni Már Gilbert 2fc810289a Fix an issue with feedback double triggering in XYZ cal menu
The feedback is produced due to the user clicking the knob

the menu_goto call should therefore not trigger additional feedback when
switching between menus.

No change in memory
2023-04-12 16:46:33 +00:00
Alex Voinea d688f6ec6f
Menu item code: optimize return 2023-04-10 15:29:58 +02:00
Guðni Már Gilbert b735c3d040
optimisation: extract common code into SETTINGS_FANS_CHECK
Implement it as a function instead of preprocessor macro
this allows us to control inlining

Change in memory:
Flash: -34 bytes
SRAM: 0 bytes
2023-04-10 13:24:39 +02:00
Alex Voinea 9a1eb7b239
Prevent rendering of the remaining menu items if the menu is clicked
Also prevent clicking
2023-04-10 13:02:22 +02:00
Alex Voinea d3d201730e
Do not return early if the menu item is clicked
Just let the menu draw till the end even if an item is clicked. The worst this can do is waste some clock cycles

flash: -1222B
ram: 0B
2023-04-10 13:02:22 +02:00
Alex Voinea bfdef3af9f
Fix menu items optimizations when extracting to functions.
Properly increment menu_item when the menu item is clicked so that you don't get multiple menu items clicked if in view (when the menu code is deduplicated to functions)
2023-04-10 13:02:22 +02:00
Alex Voinea 339c080b19
tmc2130: optimize mask when iterating over axes
Change in memory:
Flash: -28 bytes
SRAM: 0 bytes
2023-04-09 17:49:28 +02:00
Guðni Már Gilbert c4b4cbfc7b Make the function static 2023-04-09 13:40:10 +00:00
Alex Voinea afd4f1d5bc
Iterate over axis bits 2023-04-09 15:17:01 +02:00
Guðni Már Gilbert 4e31bb94ef tmc2130: simplify parsing axis mask
There is no need to check if every axis bit with each for-loop
iteration. We just need to check if a given axit bit is set.

Change in memory:
Flash: -6 bytes
SRAM: 0 bytes
2023-04-09 13:12:22 +00:00
Guðni Már Gilbert e70344dc94 Reduce XYZ cal code size
Change in memory:
Flash: -120 bytes
SRAM: 0 bytes
2023-04-09 12:23:42 +00:00
Guðni Már Gilbert 902780a929
Disable M351 when using TMC2130 and code related to it
Change in memory (MK3S+ multilang build)
Flash: -250 bytes
SRAM: 0 bytes
2023-04-07 21:07:26 +02:00
Alex Voinea 449e83c7ff
Fix filament autoloading 2023-04-07 10:36:44 +02:00
Alex Voinea 2a3e4cac75
Fix toggle menu items rendering 2023-04-07 09:35:31 +02:00
Alex Voinea 49096f14c3
SD menu do not consume click in _scrolling state 2023-04-07 09:11:49 +02:00
Alex Voinea 10ba758bf7
Fix menu encoder rotation 2023-04-06 21:35:30 +02:00
Alex Voinea 373fab883d Fix fsensor runout conditions
And also reorder autoload and runout conditions
2023-04-06 10:37:29 +02:00
D.R.racer dfe6ea6470 Fixup after rebase 2023-04-06 07:44:16 +02:00
D.R.racer c16db4e607 Remove lcd_encoder clamp check
as proposed by @leptun
2023-04-06 07:44:16 +02:00
Guðni Már Gilbert 6d2a66c1e8 match menu_goto's encoder type to lcd_encoder type
Change in memory:
Flash: -20 bytes
SRAM: 0 bytes
2023-04-06 07:44:16 +02:00
Guðni Már Gilbert 4ca7f8ce2d cleanup: drop lcd_encoder in _menu_edit_P
Taken from PR 3985 by adding currentValue infrastructure

Change in memory:
Flash: 0 bytes
SRAM: 0 bytes
2023-04-06 07:44:16 +02:00
Guðni Már Gilbert 062ea1cf25 optimisation: make lcd_encoder two bytes (int16_t)
lcd_encoder was int32_t (4 bytes) because of the menu code
when editing through the menus, the menus only accept
int16_t so it doesnt make sense to use int32_t.

Change in memory:
Flash: -892 bytes
SRAM: -2 bytes
2023-04-06 07:44:16 +02:00
Guðni Már Gilbert c754c8dd5f Remove menu code in favor of simplicity
This change needs to be approved of course due to it affecting UI

The affect UI is only one menu
lcd_settings_linearity_correction_menu

I doubt many users are using this menu except very advanced users.

I propose we delete the variant of menu_draw_P which was used for
uint8_t but renders them as floats.
Instead treat
uint8_t same as int16_t i.e. just render integers.

Keeping it simple :) Solve our fanSpeed problem.

Change in memory:
Flash: -140 bytes
SRAM: -2 bytes
2023-04-06 06:05:59 +02:00
Guðni Már Gilbert 876ea6c228 Change block buffer fan speed to one byte
It's only assigned to variables which are uint8_t

Change in memory:
Flash: -10 bytes
SRAM: -16 bytes
2023-04-06 06:05:59 +02:00
Guðni Már Gilbert 2ced00f21c Convert fanSpeed and saved_fan_speed to uint8_t
These variables only range from 0 to 255

For the menus we currently need to convert fanSpeed to int16_t.

Change in memory:
Flash: -160 bytes
SRAM: -2 bytes
2023-04-06 06:05:59 +02:00
Guðni Már Gilbert 76a8c80ef0 Fix issue with size being wrong at runtime
Change in memory:
Flash: +40 bytes
SRAM: 0 bytes
2023-04-05 17:52:48 +02:00
Guðni Már Gilbert 7ad137e570 Add preheat_cmd into PROGMEM
Change in memory:
Flash: -30 bytes
SRAM: 0 bytes
2023-04-05 17:52:48 +02:00
Guðni Már Gilbert 5ef00fb78a Reduce code size in first layer calibration
Pull out common enqueuing loop into one function

Change in memory:
Flash: -70 bytes
SRAM: 0 bytes
2023-04-05 17:52:48 +02:00
Guðni Már Gilbert 5b04812017 Eliminate subtraction in print time statistic
Change in memory:
Flash: -20 bytes
SRAM: 0 bytes
2023-04-05 11:16:54 +02:00
Guðni Már Gilbert ee39cb4e90 remove one global variable 2023-04-05 11:16:54 +02:00
Guðni Már Gilbert 768319f1e7 optimisation: cleanup print statistics
Change in memory:
Flash: -104 bytes
SRAM: 0 bytes
2023-04-05 11:16:54 +02:00
Guðni Már Gilbert b9717b03e7 Make bFilament variables static and move to top of file 2023-04-05 11:16:14 +02:00
Guðni Már Gilbert 68d902c4e1 Take FilamentAction as parameter
Change in memory:
Flash: -28 bytes
SRAM: 0 bytes
2023-04-05 11:16:14 +02:00
Guðni Már Gilbert 210bbe9764 Remove dead code 2023-04-05 11:16:14 +02:00
Guðni Már Gilbert 301b2e4384 Optimisation: Move filAutoLoad to ultralcd
We can reuse preheat_or_continue() function

Change in memory:
Flash: -22 bytes
SRAM: 0 bytes
2023-04-05 11:16:14 +02:00
Alex Voinea 1b9379b328 PSU_DELTA alternative 2023-04-05 11:12:17 +02:00
Guðni Már Gilbert ffc34edf4c Pull in changes from PR 4080
Additionally make lcd_encoder_bits static
since it's not used outside the ISR context
2023-04-05 10:30:59 +02:00
Guðni Már Gilbert a7e9ccfb57 Major refactoring
Fixes all the issues I've found so far.

Roughly 60B of flash saved. Need to double check that later.
2023-04-05 10:30:59 +02:00
Guðni Már Gilbert d89e6de040 Update lcd_encoder in lcd_update
This fixes the spurious feedback when rotating the knob
because lcd_update is called much often than the interval
at which the lcd rendering is updated

Change in memory
Flash: -88 bytes
SRAM: -9 bytes
2023-04-05 10:30:59 +02:00
Guðni Már Gilbert 67c206ea5c Remove menu_back_if_clicked_fb
Since feedback is always produced on knob click
we can use menu_back_if_clicked instead

Change in memory:
Flash: -18 bytes
SRAM: 0 bytes
2023-04-05 10:30:59 +02:00
Guðni Már Gilbert 0cac7612db optimisation: Always make sound when knob is clicked or rotated
This commit adds the ability for firmware to make sounds when the
knob is clicked or rotated, when LCD updates are disabled.

The improvement here is the sound is being made with one line of code
whether or not LCD updates are enabled or disabled.

Change in memory:
Flash: -24 bytes
SRAM: 0 bytes
2023-04-05 10:30:59 +02:00
Guðni Már Gilbert 7de725f840 G80: Change 'correction' data type to int8_t
Valid values range from -100 to 100. Storing this value as four bytes
(int32_t) is not efficient.

Instead we can store G80 user input temporarily as int32_t and check
if the value is within the allowed range. If it is, then we convert the
int32_t (4 bytes) to int8_t (1 byte).

Change in memory:
Flash: -78 bytes
SRAM: 0 bytes
2023-04-05 10:13:27 +02:00
Guðni Már Gilbert 956efde822 G80: Re-implement optimisation from user espr14
Original Pull Request:
https://github.com/prusa3d/Prusa-Firmware/pull/3061

Change in memory:
Flash: -292 bytes
SRAM: 0 bytes
2023-04-05 10:13:27 +02:00
D.R.racer 7f921b4071 Limit some of the float formatting to fit 30 bytes buffer in enquecommandf_P 2023-04-05 09:10:39 +02:00
Guðni Már Gilbert b9ce7637df Rename enquecommandf() into enquecommandf_P() 2023-04-05 09:10:39 +02:00
Guðni Már Gilbert 7e119f733f Implement variant of enquecommand which accepts format string
This eliminates many local buffers

Change in memory:
Flash: -450 bytes
SRAM: 0 bytes
2023-04-05 09:10:39 +02:00
Guðni Már Gilbert 687c14808a optimisation: MMU silent mode toggling & init
Change in memory:
Flash: -16 bytes
SRAM: -2 bytes
2023-04-04 17:07:55 +00:00
3d-gussner 4cf46893fc Revert "Fix a few ambiguous overloaded calls"
This reverts commit b7c42e83cf.
2023-04-04 16:12:41 +02:00
Guðni Már Gilbert 46852e9941 M862: determine decimal through math rather than checking for null byte/pointer.
This way doesn't add any more flash memory.
Calculating the string length or checking for a null byte
will end up increasing flash consumption overall.
2023-04-04 15:22:21 +02:00
Guðni Már Gilbert 478627b6bc Simplify parsing M862
This gets rid of float conversion.
We just need to check the 6th character when M862 is detected. This
character gives us the digit after the dot.

Change in memory:
Flash: -20 bytes
SRAM: 0 bytes
2023-04-04 15:22:21 +02:00
Guðni Már Gilbert b9fecab239 Reduce calls to __divsf3 when calculating feedrate
For non-time critical code it is more effcient to call a function
rather inlining each division operation.

Change in memory:
Flash: -122 bytes
SRAM: 0 bytes
2023-04-04 15:16:56 +02:00
Guðni Már Gilbert 65750b9a4c accel is uint32_t, drop float in comparsion
Change in memory:
Flash: -24 bytes
SRAM: 0 bytes
2023-04-04 15:11:29 +02:00
Guðni Már Gilbert c0e21563e7 planner: optimise acceleration limits
Rename acceleration_st to acceleration_steps_per_s2 to be same as Marlin 2

Store the accelerator in local variable accel
while we are performing the limit checks.

When limit checks are done we can assign
the block it's acceleration. Especially
block->acceleration_steps_per_s2 is now only written to once, instead of direcly in the limit checks.

Change in memory:
Flash: -118 bytes
SRAM: 0 bytes
2023-04-04 15:11:29 +02:00
3d-gussner a1234b3670
Merge pull request #4122 from leptun/mmu2_fix_ptfe_check_distance
Fix MMU2_CHECK_FILAMENT_PRESENCE_EXTRUSION_LENGTH for MMU2
2023-04-04 15:04:58 +02:00
Guðni Már Gilbert b7c42e83cf Fix a few ambiguous overloaded calls
Noticed this when exploring another optimisation

By specification exactly which overloaded function to use
we save some memory

Seems to have something to do with doing arithmetic in the function argument

Change in memory:
Flash: -156 bytes
SRAM: 0 bytes
2023-04-04 15:03:48 +02:00
3d-gussner 3b049a1b91
Merge pull request #4111 from gudnimg/E-cool-gudni
Fix clicking noise during Toolchange when E-cool mode is enabled
2023-04-04 15:03:37 +02:00
3d-gussner eb3421f0f2
Merge pull request #4021 from gudnimg/cleanup_crashdet_detected
cleanup: remove unnecessary LCD update in `crashdet_detected()`
2023-04-04 14:58:30 +02:00
3d-gussner 91ad87b5a7
Merge pull request #4096 from gudnimg/msg-btn-more-translation
Remove `MSG_BTN_MORE` from translation list
2023-04-04 14:57:30 +02:00
Guðni Már Gilbert 3e4592b7fd Don't duplicate silent mode menu
Create a common function for the menu

This saves a lot of memory and 50 lines of code!

Change in memory:
Flash: -110 bytes
SRAM: 0 bytes
2023-04-04 14:47:45 +02:00
Alex Voinea ebf8b16df5
Fix MMU2_CHECK_FILAMENT_PRESENCE_EXTRUSION_LENGTH for MMU2 2023-04-02 11:35:17 +02:00
Guðni Már Gilbert 5be4504fea Re-use G28 W string in PROGMEM
Change in memory:
Flash: -12 bytes
SRAM: 0 bytes
2023-03-27 18:14:28 +00:00
Guðni Már Gilbert 138654e207 Add comment
Note we cannot use too long extrusions
2023-03-26 09:16:07 +00:00
Guðni Már Gilbert 4342217159 Add comment about planner_aborted = false 2023-03-26 09:00:34 +00:00
Guðni Már Gilbert 6bdc3c5cfb Improve MMU toolchange when E-cool mode is enabled
Currently we are queuing many small 2 mm E-moves until the filament
sensor triggers. We do this because we never abort any queued moves,
so making small 2 mm moves ensures we do not move the E-motor more than
2 mm past the filament sensor.

Unfortunately, when E-cool mode is enabled, the E-motor will create
audible clicking sounds (similar one hears during jam or a loose grub
screw). A workaround for this is to queue one or more very long moves.
Where very long is something of the order of hundreds of millimeters. I
have it set to 350 mm but it's just a random constant really. Keep in
mind the firmware will block too large E-moves, if I recall correctly
it was anything above > 450 mm (see PREVENT_LENGTHY_EXTRUDE)

In order to use very long moves, we must somehow stop the E-motor from
moving once the filament sensor triggers. In other words, throw away
what's left of the current E-motor move. For this simple purpose we can
use planner_abort_hard() but we must set planner_aborted to false
afterwards because the code architecture does not allow the main loop()
to run until the Toolchange command is done processing.

Change in memory:
Flash: +18 bytes
SRAM: 0 bytes
2023-03-26 08:57:59 +00:00
3d-gussner 6dbf35f6e6
Merge pull request #4062 from gudnimg/cleanup_move_planned
remove duplicate function in planner
2023-03-24 14:06:19 +01:00
3d-gussner 34ec1ff190
Merge pull request #4098 from gudnimg/PFW-1515
PFW-1515 Fix an issue with Thermal Anomaly message
2023-03-24 14:04:21 +01:00
3d-gussner 6959b372ec
Merge pull request #4063 from gudnimg/PFW-1503
PFW-1503 Improve live Z babystep menu handling
2023-03-24 14:01:15 +01:00
3d-gussner b9103a113c
Merge pull request #4102 from 3d-gussner/MK3_fix_Hbed_MMULoadingTest
Fix HBed on Load for MMU Loading test
2023-03-24 13:59:58 +01:00
3d-gussner 4feacfe822
Merge pull request #4093 from gudnimg/Restore-default-M701-M702-Z-lift
Restore previous Z-lift in M701/M702 + other PROGMEM optimisations
2023-03-24 13:59:47 +01:00
3d-gussner 7e0bf88431 Use `G28 W` only 2023-03-22 12:30:16 +01:00
3d-gussner 5536873eca Fix HBed on Load for MMU Loading test 2023-03-22 09:50:59 +01:00
Guðni Már Gilbert c5fc1168ed PFW-1515 Fix an issue with Thermal Anomaly message
Issue introduced with PFW-1504

Change in memory:
Flash: +40 bytes
SRAM: 0 bytes
2023-03-20 20:35:49 +00:00
Guðni Már Gilbert 178c1f4aa6 Header cleanup 2023-03-20 13:57:20 +00:00
Guðni Már Gilbert e2b58d8724 Don't translate the more button 2023-03-19 16:50:42 +00:00
Guðni Már Gilbert 5643d16c01 cleanup: remove redundant lcd_update in cashdet_detected
There is no need to repeat:
lcd_update_enable(true);
lcd_update(2);

Also lcd_clear() is redundant because lcd_update(2) will clear the LCD

Change in memory:
Flash: -16 bytes
SRAM: 0 bytes
2023-03-18 19:52:08 +00:00
Guðni Már Gilbert bc27b71729 Pull one common G1 gcode into PROGMEM
Change in memory:
Flash: -32 bytes
SRAM: 0 bytes
2023-03-18 17:37:27 +00:00
Guðni Már Gilbert f296b3f826 G21 is not implemented, don't queue it
It's just a single 'break', will likely not be implemented

Change in memory:
Flash: -6 bytes
SRAM: 0 bytes
2023-03-18 17:23:01 +00:00
Guðni Már Gilbert 6edd8b0719 Add M220 into PROGMEM
Change in memory:
Flash: -10 bytes
SRAM: 0 bytes
2023-03-18 17:09:43 +00:00
Guðni Már Gilbert 00515a975d Add M107 into PROGMEM
Change in memory:
Flash: -4 bytes
SRAM: 0 bytes
2023-03-18 17:05:35 +00:00
Guðni Már Gilbert 5ade1716bf Add M500 into PROGMEM
Change in memory:
Flash: -6 bytes
SRAM: 0 bytes
2023-03-18 17:01:59 +00:00
Guðni Már Gilbert 733bc874fb Move G28W0 to messages
No change in memory
2023-03-18 16:48:30 +00:00
Guðni Már Gilbert 466a6a8fc3 Add M600 into PROGMEM
Change in memory:
Flash: -10 bytes
SRAM: 0 bytes
2023-03-18 16:33:13 +00:00
Guðni Már Gilbert 129cc18cbf Add M23 %s into PROGMEM
Change in memory:
Flash: -14 bytes
SRAM: 0 bytes
2023-03-18 16:18:05 +00:00
Guðni Már Gilbert 7c0ead7bc2 Add M24 into PROGMEM
Change in memory:
Flash: -8 bytes
SRAM: 0 bytes
2023-03-18 16:15:10 +00:00
Guðni Már Gilbert 5f8fc64a32 Restore previous Z-lift in M701/M702
Previously when the firmware called M701/M702 manually
there was no Z lift. But after we added support for the Z
parameter we set the default to 50mm.

Change strings "M701" to "M701 Z0" and "M702" to "M702 Z0"
to restore the previous behavior from before 3.13.

Also pulled the gcodes into PROGMEM in message.cpp
along with M83 and M84 to save memory.

Change in memory:
Flash: -34 bytes
SRAM: 0 bytes
2023-03-18 15:34:47 +00:00
Guðni Már Gilbert 942021cb2b PFW-1503 Fix an issue where the menu is dismissed in First layer calibraiton
When the extruder lifts up after completing the Purge line,
 the baby stepping is not allowed for a short time. This dismisses
 the menu. We don't want this behavior, so only apply the Z-axis requirement
 when printing.

 Change in memory:
 Flash: +8 bytes
 SRAM: 0 bytes
2023-03-18 12:47:40 +00:00
Guðni Már Gilbert e40d8ebbcc Implement printJobOngoing()
This makes the if statments a little bit more readable

Change in memory:
Flash: -88 bytes
SRAM: 0 bytes
2023-03-18 12:18:43 +00:00
Guðni Már Gilbert 561d8599d2 PFW-1503 drop {} for consistency 2023-03-18 11:56:06 +00:00
Guðni Már Gilbert 59314a41c1 PFW-1503 only allow babystepping on the first couple of layers
Change in memory:
Flash: +28 bytes
SRAM: 0 bytes
2023-03-18 11:56:06 +00:00
Guðni Már Gilbert 09d918ce5d PFW-1503 Change BABYSTEP_ALLOWED to babystep_allowed
I initially started with a preprocessor macro
called  BABYSTEP_ALLOWED, but now it is a function.
It more common to use lower case for function names
2023-03-18 11:56:06 +00:00
Guðni Már Gilbert bb614f669d PFW-1503 Add additional check
Add lcd_commands_type == LcdCommands::Layer1Cal
just in case blocks_queued() is 0 for one instant between
lcd_command steps

Change in memory:
Flash: +8 bytes
SRAM: 0 bytes
2023-03-18 11:56:06 +00:00
Guðni Már Gilbert bc2366cd8d PFW-1503 Improve live Z babystep menu handling
Fixes an issue with running first layer calibration twice in a row.

Improvements:
Now the Z baby step menu closes automatically when first layer calibration is done.
No need to wait for a timeout or close the menu manually by setting a variable

If the baby stepping menu is open, and suddenly
the printer enters a state where baby stepping
is not allowed.
The printer will save the last value before closing the menu.

When LcdCommands != Idle, don't dismiss
the Z baby step menu. This saves 20B

Change in memory:
Flash: -130 bytes
SRAM: 0 bytes
2023-03-18 11:56:05 +00:00
Guðni Már Gilbert 5c010a3aaa PFW-1509 Fix an issue with unload when nozzle is cold
Change in memory:
Flash: -2 bytes
SRAM: 0 bytes
2023-03-18 10:43:23 +00:00
3d-gussner c3235386a1 Bump up commit number 2023-03-15 07:52:01 +01:00
3d-gussner 8b49d241d2 revert BTN_MORE non-translated 2023-03-15 07:03:41 +01:00
3d-gussner 00309f42c3 Bump up fw version
6508 from t3.13.0-BETA1
+50 commits
+1 for this commit
+1 for merge
2023-03-14 15:18:13 +01:00
D.R.racer 3fe2f25c9f Disable reading MMU register 0x21
It has proven to be too unreliable and may confuse end users.
2023-03-14 15:12:50 +01:00
3d-gussner 68b4a8a6cb Last minute changes need a revert of the fw bump up 2023-03-14 11:22:43 +01:00
3d-gussner e87e1630e2 Bump up version
t3.13.0-BETA1 commit nr 6508
+46 commits between
+1 commit for this PR
+1 commit for the merge
=6556
2023-03-14 09:09:38 +01:00
3d-gussner e951a106d6 Messages fit to pages 2023-03-14 08:56:46 +01:00
3d-gussner 8604c93ccc Shorten messages as users will contact support anyway 2023-03-14 08:32:16 +01:00
3d-gussner 616cf61583 Revert 2023-03-14 08:31:21 +01:00
3d-gussner 22e70faa71 Remove `MMU2` and `MMU unit` messages
Saves 26byte of flash
Saves -368 byte in trasnlations
2023-03-14 08:30:15 +01:00
3d-gussner 7676df88a4 Rename forgotten `MMU2` message to `MMU` 2023-03-14 08:30:03 +01:00
3d-gussner 235c4ae943 Do not `MSG_BTN_MORE` translate 2023-03-14 08:26:39 +01:00
3d-gussner 9721a87ef2 Raname `MMU2` message to `MMU` as everywhere 2023-03-14 08:24:50 +01:00
3d-gussner 03778226ca Remove `Select Extruder:` message
Post fix PR4064 for update.po*.py scripts
2023-03-14 08:24:12 +01:00
3d-gussner 93598ef00d Change some messages to be max three rows instead of two
Yes|No are now located at the 4th row and so messages can
use three rows. This should allow improvement in some translations.
2023-03-14 08:23:40 +01:00
Guðni Már Gilbert ebf94c572f PFW-1504 Minor optimisation
Change in memory:
Flash: -4 bytes
SRAM: 0 bytes
2023-03-13 06:47:08 +01:00
Guðni Már Gilbert 42878341af PFW-1504 More correct solution to the pixel count issue
The fact that the relationship between
machine position and pixel index is not linear
means we cannot simply rely on comparing
the previous position to the next machine position. i.e derivative of E_AXIS
Because around the max amplitude of the triangle wave
the slope will suddenly change sign and will create a deadzone
which has width 2*mm_per_pixel.
For MMU2S this is ~10mm (or two pixels).

Instead we should split the moves.
And only plan the 2nd move once we're
at the top of the triangle wave. That way we don't really care about the position delta.

Now we just calculate the current y(x)
position relative to current position and divide by mm_per_pixel.
If there is a delta measured with unit 'pixel' then that means
 its time to render the next pixel.

 This solution seems to work well so far on my end.

 Change in memory:
 Flash: +2 bytes
 SRAM: 0 bytes
2023-03-13 06:47:08 +01:00
Guðni Már Gilbert b5e323e67c PFW-1504 rename length_step_mm to mm_per_pixel
Its more descriptive
2023-03-13 06:47:08 +01:00
Guðni Már Gilbert 9865d4a38a PFW-1504 Add precision error
This fixes an issue where sometimes
not all 20 pixels are rendered.

It is better to render 1 too many pixels (sometimes), rather than rendering too few.

Change in memory:
Flash: +18 bytes
SRAM: 0 bytes
2023-03-13 06:47:08 +01:00
Guðni Már Gilbert f2157c6f1d Fixup
We're always setting the cursor position when rendering now

Saves 8 bytes of flash
2023-03-13 06:47:08 +01:00
Guðni Már Gilbert c518bfdb73 PFW-1504 Set cursor position each time to be safe
Change in memory:
Flash: +18 bytes
SRAM: 0 bytes
2023-03-13 06:47:08 +01:00
Guðni Már Gilbert 59e1ac0396 PFW-1504 implement stepper_get_machine_position_E_mm()
This function should be used when reading the current machine
position while a move is ongoing

No change in memory
2023-03-13 06:47:08 +01:00
Guðni Már Gilbert 690d83a94a fixup 2023-03-13 06:47:08 +01:00
Guðni Már Gilbert 9145c8f59f PFW-1504 too much?
I'm not happy with the current solution, I think we can improve it
by using the fact that this is a triangle wave. Need to think about it.
2023-03-13 06:47:08 +01:00
Guðni Már Gilbert 73c76579af PFW-1504 Add init for progress bar
In case we are running a retry, the firmware
should clear the old rendering before
starting on a new one

Change in memory:
Flash: +6 bytes
SRAM: 0 bytes
2023-03-13 06:47:08 +01:00
Guðni Már Gilbert 51f1aa14a5 PFW-1504 Update last position as quickly as possible
0.1mm extrusion may happen while updating the LCD

No change in memory
2023-03-13 06:47:08 +01:00
Guðni Már Gilbert bbfc4b9f78 PFW-1504 initial commit
Change in memory:
Flash: +162 bytes
SRAM: 0 bytes
2023-03-13 06:47:08 +01:00
3d-gussner 04d440a9c8
Fix AutoLoad filament menu not shown when FSensor is [Off] (#4072)
Fix AutoLoad filament menu not shown when FSensor if [Off]
2023-03-10 14:23:56 +01:00
3d-gussner ba41b2bb0b Fix M706 lcd message stuck 2023-03-09 07:00:40 +01:00
DRracer e787111922
Add MMU error code: MCU_UNDERVOLTAGE_VCC (#4069)
+ read bandgap voltage periodically
+ correct wording of ERR_ELECTRICAL_MCU_UNDERVOLTAGE_VCC (as requested in Prusa-Error-Codes PR#81)
2023-03-08 15:42:25 +01:00
Guðni Már Gilbert a20a7232a8 Change "Extruder N" to "Filament N"
Change in memory:
Flash: -52 bytes
SRAM: 0 bytes
2023-03-06 10:26:12 +01:00
Guðni Már Gilbert 0b261ad4de remove duplicate function in planner
moves_planned() should be used instead

No change in memory
2023-03-03 21:11:16 +00:00
3d-gussner 03280c48d5
Merge pull request #4059 from gudnimg/planner-opt-subtraction
planner: calculate step difference once
2023-03-03 14:42:47 +01:00
3d-gussner 474d489c39
Merge pull request #4033 from gudnimg/improve-preheat-target
preheat: improve target temperature threshold
2023-03-03 14:41:58 +01:00
D.R.racer bc818636b0 Increase MMU FW version to 2.1.8
in relation to MMU-218
2023-03-02 19:58:00 +01:00
Guðni Már Gilbert d487254806 planner: calculate step difference once
Change in memory:
Flash:-158 bytes
SRAM: 0 bytes
2023-03-01 22:28:08 +00:00
vintagepc 13f7ba81ff Cleanup, share more M914/5/FORCE code 2023-02-25 15:49:15 -05:00
vintagepc 7214584723 Fixed conflict with force_z, added P flags 2023-02-25 15:24:59 -05:00
vintagepc 487c7d63e1 Partial 2023-02-25 15:02:26 -05:00
vintagepc 6dfbdd3735 Enable M914/5, Show in settings if overloaded 2023-02-25 14:49:40 -05:00
3d-gussner 051054b0db Bump up FW version and build number 2023-02-24 16:42:36 +01:00
D.R.racer 303a67cd6f Introduce MMU EEPROM reset feature
This new feature requires MMU FW v 2.1.7 (which brings some more small changes)
2023-02-24 15:26:07 +01:00
3d-gussner 31bfbb4ed0
Merge pull request #4023 from DRracer/rename-eject-mmu
PFW-1497 Change Eject filament -> Eject from MMU
2023-02-23 10:48:35 +01:00
3d-gussner afc866e756
Merge pull request #4010 from gudnimg/improve-backlight-control
backlight: always allow backlight to dim/wake
2023-02-21 10:00:03 +01:00
Guðni Már Gilbert 8a926fad10 backlight: set rotation flag when certain amount of pulses are detected
We don't want to trigger a backlight wakeup randomly, for example
due to background noise.
2023-02-20 18:26:43 +00:00
3d-gussner 36c6b323c4 Set `Is filament loaded? Yes|No` default to `No` without a timeout. 2023-02-20 16:31:23 +01:00
3d-gussner 791b9b4d39
Merge pull request #4028 from DRracer/pr3322-updated
Merge duplicate strings in cmdqueue.cpp
2023-02-20 13:51:09 +01:00
Guðni Már Gilbert 496b52b819 preheat: sync temperature threshold in M600 and Wizard
* M600 used 1°C threshold, which may increase the waiting time a bit
* Wizard used 3°C

Sync both to use TEMP_HYSTERESIS for consistancy

No change in memory footprint
2023-02-19 13:23:31 +00:00
Guðni Már Gilbert 6ad126ef0b optimisation: preheat menu always uses integers for target temperature
Let's drop the float comparison since it not needed

Change in memory:
Flash : -16 bytes
SRAM: 0 bytes
2023-02-19 13:21:30 +00:00
Guðni Már Gilbert 319fec47f0 preheat: improve target temperature threshold
Use 5°C threshold to be consistant with other parts
of the firmware.

Relying on 95% of the target temperature creates
a dependency on the temperature:

PLA: Target = 215°C, threshold = 10.75°C
PETG: Target = 230°C, threshold = 11.5°C
ABS: Target = 255°C, threshold  = 12.75°C
ASA: Target =260°C, threshold = 13.0°C
PC: Target = 275°C, threshold  = 13.75°C

My proposal is we instead use a constant
TEMP_HYSTERESIS = 5, which is consistent with
M109, and behavior when restoring print from RAM
and some of the MMU code (like unload function)

Change in memory:
Flash: +2 bytes
SRAM: 0 bytes
2023-02-19 12:59:58 +00:00
Guðni Már Gilbert db878c9996 backlight: always allow backlight to dim/wake
This commit adds the ability for the firmware to dim and wake the
backlight when LCD updates are disabled. Such as in the MMU error screen
or when rendering full screen messages which typically
disable the LCD updates to prevent the status screen from rendering.

Fixes #2777

Change in memory:
Flash: -26 bytes
SRAM: +1 byte
2023-02-18 17:08:35 +00:00