Commit Graph

5916 Commits

Author SHA1 Message Date
D.R.racer b4b0bba11c Sync MK3<->MK4 MMU2 marlin interface 2023-09-18 10:51:32 +02:00
D.R.racer eb7a73e748 Sync MK3<->MK4 MMU2 log 2023-09-18 10:51:32 +02:00
D.R.racer fd9f4ffb9e Sync MK3<->MK4 MMU2 progress converter 2023-09-18 10:51:32 +02:00
D.R.racer ec4740fe53 Clean-up ProgressCodes and ErrorCodes parameters throughout the code 2023-09-18 10:51:32 +02:00
D.R.racer 717281cd87 Sync MK3<->MK4 MMU2 crc 2023-09-18 10:51:32 +02:00
D.R.racer f235976f26 Sync MK3<->MK4 MMU2 protocol logic 2023-09-18 10:51:32 +02:00
sarusani 84d353793d Fix typos 2023-09-16 12:38:14 +02:00
sarusani e4a10e5fab Move code_seen back into if statement
Same memory usage, but prettier to look at. :)
2023-09-15 14:11:27 +02:00
sarusani 56a79f88ef Optimise memory usage 2023-09-15 14:11:27 +02:00
sarusani 2951bc8af0 Default to eeprom values
Use eeprom values if provided parameters are out of bounds.
2023-09-15 14:11:27 +02:00
3d-gussner 9e794a47a4
Merge pull request #4386 from 3d-gussner/MK3_mbl_print_area_translations
🚧  Add new MBL message for #4183 and translation
2023-09-15 09:00:38 +02:00
sarusani 21c57a1222 Add parameter for magnet compensation
allow to enable/disable magnet compensation when 7x7 is in use.
2023-09-14 21:02:56 +02:00
sarusani 2863c9bc01 Cleanup: whitespace in nProbeRetryCount var 2023-09-14 09:43:26 +02:00
3d-gussner 5f605012eb
Merge pull request #4388 from prusa3d/vintagepc/tmc-mode-query
Add Q parameter to M91[4/5]
2023-09-14 09:13:55 +02:00
VintagePC 70d83fe4ee Add Q parameter to query current mode. 2023-09-13 16:52:11 -04:00
sarusani a9c8bb7dbf Code cleanup: rename params 2023-09-13 18:31:45 +02:00
sarusani d3bb6e5ca5 Rename MBL repeat param 2023-09-13 17:37:39 +02:00
3d-gussner ca27841d67 Add new MBL message for #4183 and translate these messages 2023-09-13 11:14:16 +02:00
sarusani dc129e0934 Remove obsolete mesh definitions
Clean up mesh definitions that where made obsolete by #4183
2023-09-13 10:49:52 +02:00
3d-gussner 2e70697fa7
Merge pull request #4183 from leptun/mbl_print_area
MBL print area
2023-09-13 10:28:08 +02:00
3d-gussner 0aa380b931
Merge pull request #4206 from gudnimg/sd-card-menu-opt
optimisation: `menu_item == menu_line` is always true in `menu_item_sddir()` and `menu_item_sdfile()`
2023-09-13 07:49:43 +02:00
3d-gussner 73118dd4e2
Merge pull request #2474 from vintagepc/#2161-tune-x-y-rehome
Add X-Y home to tune menu if print is paused
2023-09-13 07:49:23 +02:00
3d-gussner f5d48cd029
Merge pull request #4342 from gudnimg/optimsation_timer_class
optimisation: Timer constructor can be `constexpr`
2023-09-13 07:48:43 +02:00
vintagepc b7daac3b70 Direct home instead of G28 2023-09-12 18:41:14 -04:00
vintagepc b75e3b5233 facepalm commit
... I somehow managed to lose a bracket. DERP.
2023-09-12 18:33:27 -04:00
vintagepc ebc6663210 Add auto-home to tune menu 2023-09-12 18:33:27 -04:00
Guðni Már Gilbert ff6fd8cf4b Allow statistiscs menu while running 1st Layer cal
There is no problem with opening the menu during first layer
calibration. Removing this condition simplifies the code a little bit.

Change in memory:
Flash: -8 bytes
SRAM: 0 bytes
2023-09-12 20:26:43 +02:00
3d-gussner 74f724b228
Merge pull request #4174 from gudnimg/check_all_heaters
optimisation: use `CHECK_ALL_HEATERS` in more places
2023-09-12 16:31:45 +02:00
3d-gussner 019126778d
Merge pull request #1790 from jiri-jirus/MK3
y-axis self-test hack cleanup
2023-09-12 16:31:34 +02:00
3d-gussner 5050fd768b
Merge pull request #4150 from gudnimg/psu-delta-typo
Fix a typo in `PSU_Delta` define
2023-09-12 16:28:32 +02:00
3d-gussner f5259ee611
Merge pull request #4316 from gudnimg/fix-VERBOSE_CHECK_HIT_ENDSTOPS
Fix and optimise VERBOSE_CHECK_HIT_ENDSTOPS
2023-09-12 10:55:25 +02:00
3d-gussner ffbb720d34
Merge pull request #4365 from gudnimg/sync-with-32-bit
Explicitly use `Buttons` namespace
2023-09-12 10:53:21 +02:00
3d-gussner c84985ec3e
Merge pull request #4328 from dawidpieper/m850_addselection
M850 add possibility to set sheet as active
2023-09-11 13:02:04 +02:00
Yuri D'Elia 334bfe4d29 build: Set all version data based on git tags
Drop the ALPHA/BETA/custom version handling. Set the version string and
firmware date based on the current tree description which has all the
required details.

Allow to override the repository information via cmake.

Use a truncated commit hash to set the internal commit number for
compatibility.

Rebase and fix issues
2023-09-04 08:35:15 -04:00
gudnimg e0269d6f6a Explicitly using Buttons namespace
This change sync the code a little bit with the 32-bit FW

No change in memory
2023-09-03 12:41:39 +00:00
3d-gussner 77a4b99f5e Fix Calibration menu shown during resuming 2023-09-01 16:18:57 +02:00
3d-gussner 4c53163068
Merge pull request #4357 from DRracer/z-stall-xyz-workaround
Force-move-Z after searching for XY calibration points
2023-08-31 08:21:43 +02:00
D.R.racer abdfe07f3f Force-move-Z after searching for XY calibration points
Bogus StallGuard readings may prevent the Z from moving at this spot which will result in other nasty behaviour.
2023-08-31 07:48:28 +02:00
Yuri D'Elia 2bfd56cd30 lang/mmu: Translate MMU menu strings within caller
This fixes the undefined _T(label) reference, at the expense of a few
extra bytes.

I would argue this is worth the cost for the ability to check
translation references for the future. The warning happens because
`lang-check` cannot check a reference which is not _directly_ a catalog
entry.

We could introduce a method to suppress this warning (either a new macro
or some ///IGNORE comment), but that would mean that the additional
translation check is completely bypassed, defeating the purpose.
2023-08-30 18:54:57 +02:00
3d-gussner 47775e158b Reuse messages 2023-08-21 19:00:22 +02:00
3d-gussner 0bbec5626c Update and fix translations 2023-08-21 16:28:36 +02:00
Guðni Már Gilbert 5bf9bf7507 optimisation: reduce code size in MMU filament menus
Change in memory:
Flash: -156 bytes
SRAM: 0 bytes
2023-08-21 07:29:43 +02:00
Guðni Már Gilbert 1881c5f086 Fix filament actions not cleared properly
We can't clear eFilamentAction in every case in mFilamentItem()

mFilamentItem() can trigger a call to M701 and M702 e.g. for Autoloading
and eFilamentAction must be cleared by the gcode to prevent
the user from triggering another Autoload (which will crashe the FW)

The same applies to submenus. Now the MMU submenus clear eFilamentAction
only when the action is done.

For MMU Unload Filament item, eFilamentAction is only cleared after
the unload_filament() call is done running. This fixes an issue where
the menu item can be selected again while the first unload is still
running.
2023-08-21 07:29:43 +02:00
sarusani c4c26050d3 Fix screen update after PFW-1531 2023-08-21 06:36:25 +02:00
sarusani 6c0f80e680 Add static_assert check for TEMP_HYSTERESIS 2023-08-21 06:35:32 +02:00
sarusani 0d097d5a62 Fix TEMP_HYSTERESIS calculation 2023-08-21 06:35:32 +02:00
Guðni Már Gilbert 7c7d6b1671 Fix issue with Tune item appearing on MMU FW UPDATE screen 2023-08-21 06:33:14 +02:00
Guðni Már Gilbert a89e06a54e optimisation: Timer constructor can be constexpr
Change in memory:
Flash: -206 bytes
SRAM: -16 bytes
2023-08-20 19:39:38 +00:00
Guðni Már Gilbert cabc44194a optimisation: menu_item == menu_line is always true
The if statement is checked in lcd_sdcard_menu()

so checking it again these functions is
redundant since it's always going to be true.

Tested on MK3S+

Change in memory:
Flash: -22 bytes
SRAM: 0 bytes
2023-08-20 08:19:01 +00:00
Guðni Már Gilbert 60534738d3 PFW-1522 Don't increment failure statistic on filament change 2023-08-18 14:27:39 +02:00
Guðni Már Gilbert e6f05e7856 PFW-1522 Fix firmware getting stuck on ejecting
If slot is unknown, the printer will always get a rejected command
error from the MMU.

Change in memory:
Flash: +4 bytes
SRAM: 0 bytes
2023-08-18 14:27:39 +02:00
Guðni Már Gilbert c7360055ae PFW-1522 Make Load the default button choice
No change in memory
2023-08-18 14:27:39 +02:00
Guðni Már Gilbert 814169a213 PFW-1522 Update screen description
Change in memory:
Flash: +32 bytes
SRAM: 0 bytes
2023-08-18 14:27:39 +02:00
Guðni Már Gilbert fc18f4c5d7 PFW-1522 Implement filament change screen
Change in memory:
Flash: +116 bytes
SRAM: +1 byte
2023-08-18 14:27:39 +02:00
Alex Voinea ede4cc5d30
Update error messages 2023-08-17 08:02:47 +02:00
Alex Voinea 45823e7336
Make the G80 Z threshold tighter 2023-08-17 08:02:47 +02:00
Alex Voinea f5f09f147c
Add a limit to how many times G80 can fail
Flash: +80
SRAM: +1
2023-08-17 07:53:39 +02:00
Alex Voinea 7740a81edb
Do not store a global mbl_z_probe_nr
flash: -6
sram: 0? (somehow)
2023-08-17 07:53:39 +02:00
Alex Voinea a984b2e609
G80 `O` parameter
a
2023-08-17 07:53:39 +02:00
Alex Voinea a15f536ff4
Combine BED_X/Y() and mbl::get_x/y()
flash: -112
2023-08-17 07:52:55 +02:00
Alex Voinea aba0450615
mbl.get_z() optimizations
Those constrains on t and s were useless.

flash: -294
2023-08-17 07:52:55 +02:00
Alex Voinea dd1bde74dc
Fix Z calibration points 2023-08-17 07:52:55 +02:00
Alex Voinea 42c27cabde
Remove unused code 2023-08-17 07:52:55 +02:00
Guðni Már Gilbert a9d0cc5e56
optimisation: Move divison into constexpr
Change in memory:
Flash: -12 bytes
SRAM: 0 bytes
2023-08-17 07:52:55 +02:00
Guðni Már Gilbert 6b12be42d9
optimisation: Make BED_X and BED_Y into functions
Previously these preprocessor macros were always being inlined.
By making these into a function we can control the inlining
more directly.

The number of points on the mesh is also now constant. This means
'n' can now be float at compile time. This removes one uint8_t to float
conversion.

Change in memory:
Flash: -208 bytes
SRAM: 0 bytes
2023-08-17 07:52:55 +02:00
Alex Voinea 3ccf2d60c0
Make bed correction matrix const 2023-08-17 07:52:55 +02:00
Alex Voinea be3465cf18
optimize lambda expression capture
flash: -10
2023-08-17 07:52:55 +02:00
Alex Voinea 2d0b96fe6a
Bed correction code optimization
flash: -44
2023-08-17 07:52:55 +02:00
Alex Voinea 5b8c65e342
Minor magnet elimination optimization
flash: -4B
2023-08-17 07:52:55 +02:00
Alex Voinea 67945579de
G80 minor optimization 2023-08-17 07:52:55 +02:00
Alex Voinea a5c20a1c6e
Do not plan a Z move if no move is actually performed 2023-08-17 07:52:55 +02:00
Alex Voinea de98551691
Extract hardcoded value 2023-08-17 07:52:55 +02:00
Alex Voinea 40db9c9258
Fix eeprom mesh offset 2023-08-17 07:52:55 +02:00
Alex Voinea a7d3dd720b
Fix eeprom mesh interpolation 2023-08-17 07:52:55 +02:00
Alex Voinea 36d8de0727
G80 general fixes
Use interpolated eeprom mesh for skewed Z detection
Use the interpolated eeprom mesh for raising Z for the next point
Fix LCD countdown during MBL
2023-08-17 07:52:55 +02:00
Alex Voinea b234560b22
MBL print function optimization 2023-08-17 07:52:55 +02:00
Alex Voinea f94bc72235
Optimize G80 bed correction argument parsing 2023-08-17 07:52:55 +02:00
Alex Voinea 90c21425c6
Optimize is_bed_z_jitter_data_valid() 2023-08-17 07:52:55 +02:00
Alex Voinea 6c97907507
A bit more cleanup 2023-08-17 07:52:55 +02:00
Alex Voinea 6af5f5e2a2
Some code cleanup around homing_feedrate 2023-08-17 07:52:55 +02:00
Alex Voinea 83879fd10c
Cleanup magnet compensation code 2023-08-17 07:52:55 +02:00
Alex Voinea 46710c4b4e
G80 code cleanup 2023-08-17 07:52:55 +02:00
Alex Voinea 07b9447ee1
Fix correction nMeasPoints 2023-08-17 07:51:15 +02:00
Alex Voinea fbfc6bf4a5
MBL remove MBL_BILINEAR 2023-08-17 07:51:15 +02:00
Alex Voinea 8edfff39e4
MBL code cleanup 2023-08-17 07:51:15 +02:00
Alex Voinea a4ef72b1fc
Use mesh from eeprom during print area MBL 2023-08-17 07:51:15 +02:00
Alex Voinea 7b9f2086f4
MBL print area initial implementation 2023-08-17 07:51:15 +02:00
Alex Voinea 11e1806e0c
Gcode documentation 2023-08-17 07:51:15 +02:00
Guðni Már Gilbert c4f48a6606 MMU: Disable FINDA runout during Homing and MBL
If for some reason a user added a extrusion move in the firmware. Prevent FINDA runout
from triggering.

Change in memory:
Flash: +16 bytes
SRAM: 0 bytes
2023-08-17 07:43:59 +02:00
Guðni Már Gilbert 61ec6b8ae7 G80: Don't unretract unless retracting first
temp_compensation_start() is only called when
PINDA_THERMISTOR is not defined.
Additionally make sure the retraction or unretraction cannot happen
twice in case MBL fails.

For MK3S users with MMU this extrusion move could
cause a FINDA runout event.

Change in memory:
Flash: -130 bytes
SRAM: 0 bytes
2023-08-17 07:43:59 +02:00
dawidpieper 14306e59c8 Try immediate EEPROM writes for flash size optimization 2023-08-16 20:36:24 +02:00
dawidpieper 1dada5ba81 Revert optimizations of bIsActive 2023-08-16 20:18:16 +02:00
dawidpieper 91cb01b12f Code optimization 2023-08-16 20:08:53 +02:00
dawidpieper b2f6b77cf3 Add separators between blocks 2023-08-16 19:46:57 +02:00
dawidpieper 58014156a0 Fix code formatting 2023-08-16 19:18:33 +02:00
Guðni Már Gilbert 0e469c054f Fix disappearing menu items when Filament Action completes
An example is when Unloading filament with MMU.

After the unload completes successfully, some menu items disappeared.
Because mFilamentBack() was not called

Change in memory:
Flash: -56 bytes
SRAM: 0 bytes
2023-08-16 08:22:03 +02:00
Guðni Már Gilbert 1bf33bd1aa Fix a bug where Load filament menu disappears
Kudos to @3d-gussner for finding the issue

Steps to reproduce:
1. reset printer
2. select Load filament
3. go back to main
4. LCD menu is very limited
5. To get all menus back select 6. Preheat
7. back to main

This commit is my proposed fix.

When eFilamentAction is equal to
FilamentAction::Load we must reset it to FilamentAction::None
when the Back button in Load Filament is selected

Change in memory:
Flash: -26 bytes
SRAM: 0 bytes
2023-08-16 08:22:03 +02:00
dawidpieper 11d8c157f6 M850 add possibility to set sheet as active 2023-08-15 22:19:55 +02:00
Guðni Már Gilbert 3766aadd99 PFW-1530 rename isErrorScreenSleeping to TuneMenuEntered 2023-08-14 09:34:55 +02:00
Guðni Már Gilbert 92b3a2443e PFW-1530 Remove typedef keyword 2023-08-14 09:34:55 +02:00