Commit Graph

6132 Commits

Author SHA1 Message Date
3d-gussner 0877585bd1 Add M420
Same as G81
2023-09-18 15:45:13 +02:00
D.R.racer 0f1cb4f407 Fixup from review 2023-09-18 10:51:32 +02:00
gudnimg 4134bf4f40 8-bit proposed changes
The status line code is not nice, but we need to work around it
so the status line rendering works correctly

This commit mostly reapplies the code
from 3.13.2

Also fixes compiler warnings
2023-09-18 10:51:32 +02:00
D.R.racer ea01012026 Unify MMU operations' workflow 2023-09-18 10:51:32 +02:00
D.R.racer a02ff0651c Return try-load reporting to serial 2023-09-18 10:51:32 +02:00
D.R.racer 59e49c80f9 Sync MK3<->MK4 MMU2 Tune, Buttons, PowerPanic hooks refactoring 2023-09-18 10:51:32 +02:00
D.R.racer 9b48ab729a Sync MK3<->MK4 MMU2 TryLoadUnloadReporter 2023-09-18 10:51:32 +02:00
D.R.racer 7db7250773 Sync MK3<->MK4 MMU2 mmu2_mk4.cpp formatting 2023-09-18 10:51:32 +02:00
D.R.racer be5523187b Sync MK3<->MK4 MMU2 mmu2_mk4.h 2023-09-18 10:51:32 +02:00
D.R.racer 075858c9fa Sync MK3<->MK4 MMU2 reporting 2023-09-18 10:51:32 +02:00
D.R.racer 5235fe2480 Sync MK3<->MK4 MMU2 marlin macros 2023-09-18 10:51:32 +02:00
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
Guðni Már Gilbert 6187b7eecf optimisation: use disable_heater() in more places
Change in memory:
Flash: -84 bytes
SRAM: 0 bytes
2023-09-16 14:26:09 +00: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
VintagePC d8f7642058 Fix comment 2023-09-09 13:25:00 -04:00
VintagePC 2485c36391 Add dev status handling 2023-09-09 13:19:11 -04:00
VintagePC ab299e36d1 Use commit number as version tweak value 2023-09-07 19:38:07 -04:00
VintagePC 916d02824e Initial round of changes to address some cmake features 2023-09-07 18:46:47 -04: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
Guðni Már Gilbert 03ed675732 PFW-1530 cleanup: remove redundant uint8_t cast 2023-08-14 09:34:55 +02:00
Guðni Már Gilbert 5d9ccc59b7 PFW-1530 fixup 2023-08-14 09:34:55 +02:00
Guðni Már Gilbert f0a48b11f7 PFW-1530 Refactor the menu to be non-blocking
The UI works much smoother now

Saves ~60 bytes of flash
2023-08-14 09:34:55 +02:00
Guðni Már Gilbert efd85110a3 PFW-1530 minor optimisation
Don't inline WriteRegister

Change in memory:
Flash: -12 bytes
SRAM: 0 bytes
2023-08-14 09:34:55 +02:00
Guðni Már Gilbert 1cda696e14 PFW-1530 Add Tune to Selector screen and more
- Rename "Idler" to "Sensitivity"
- Implement ReadRegisterInner() as a way to read register in blocking contexts such as manage_response()
This allows us to show the current EEPROM value on the printer's LCD
2023-08-14 09:34:55 +02:00
Guðni Már Gilbert 9e4fd08031 mmu2: cleanup: use Register enum 2023-08-14 09:34:55 +02:00
Guðni Már Gilbert d0f18b6fbc PFW-1530 Minor optimisation
Change in memory:
Flash: -8 bytes
SRAM: 0 bytes
2023-08-14 09:34:55 +02:00
Guðni Már Gilbert 5f60eaff85 PFW-1530 Initial prototype
Add a 'Tune' option to HOMING_IDLER_FAILED error

This will open a menu which allows
the user to change the stallguard threshold
from the MMU error screen

Change in memory:
Flash: +334 bytes
SRAM: +1 byte
2023-08-14 09:34:55 +02:00
Guðni Már Gilbert d545469e32 Fix and optimise VERBOSE_CHECK_HIT_ENDSTOPS 2023-08-13 13:44:40 +00:00
3d-gussner c708456184
Merge pull request #4161 from gudnimg/simplify-tcodes-code
MMU: Simplify `T?` processing
2023-08-11 14:31:57 +02:00
D.R.racer d2991ce1e0 Increase required MMU FW version to 3.0.1 2023-08-11 11:09:53 +02:00
Alex Voinea ef63b57dfd Remove unimplemented M407 from list of gcodes 2023-08-11 09:02:11 +02:00
3d-gussner 500a6558a5 Rebase, fix and update doxygen 2023-08-11 09:02:11 +02:00
Michael Greene f449b06bb2 reprocess patch so I don't have 1200 lines of whitespace changes to review 2023-08-11 09:02:11 +02:00
VintagePC ea5bcc5eea Implement #2089 2023-08-05 12:19:51 -04:00
Guðni Már Gilbert 503c01aa57 tmc2130: write chopper config and powerdown setting first
I noticed this is how the order is in 3.13.0 and before.
I want to keep it exactly the same.

This somehow saves 2 bytes of flash. Probably compiler magic.

Change in memory:
Flash: -2 bytes
SRAM: 0 bytes
2023-08-05 10:41:21 +02:00
Guðni Már Gilbert 02332018ec tmc2130: Fix bug with vSense bit and current values
If vSense changes at runtime due to Run current
being changed. Then we must always shift the Hold current
correctly. Whether the vSense is changing 1 -> 0 or 0 ->1

Change in memory (with TMC2130_SERVICE_CODES_M910_M918):
Flash: +76 bytes
SRAM: 0 bytes
2023-08-05 10:41:21 +02:00
gudnimg a1a3194985 tmc2130: Fix wrong values report by M913 when Hold > Run
The firmware will ensure that the Hold current can never
exceed the Run current. In this scenario we must update
the global current array so that M913 reflects the register settings.

Added a echo to serial when this truncation happens

Change in memory:
Flash: +54 bytes
SRAM: 0 bytes
2023-08-05 10:41:21 +02:00
Guðni Már Gilbert ec921eb53b MMU: Add enum class for register map
No change in memory
2023-08-05 10:36:00 +02:00
Guðni Már Gilbert 95d8711469 PFW-1531 Fix #4300
No change in memory
2023-08-04 17:02:03 +00:00
3d-gussner b1da06859c
Merge pull request #3494 from wavexx/lcd_temperature_jumping
Jump to PLA temps in LCD temperature settings when starting from zero
2023-08-02 14:21:53 +02:00
3d-gussner 491d4d2a20
Merge pull request #4080 from gudnimg/PFW-1504-v2
PFW-1504 fix conflicting UI issues
2023-08-02 12:59:27 +02:00
3d-gussner 2ab9cbcd83
Merge pull request #923 from cwei/patch-1
Fix upper limit for x
2023-08-02 12:05:38 +02:00
Yuri D'Elia 719db8f537 Optimize menu editing by reducing template duplication
Avoid instantiating multiple copies of menu_item_edit_P/_menu_edit_P:
perform type switching at runtime.
2023-08-01 12:41:38 +02:00
Yuri D'Elia baacc0ec53 TM: Fix TM calibration from the Calibration menu
After dece5d268f, running the thermal
model itself switches the printer to "active", preventing a calibration
run from the LCD to start.

Explicitly allow LcdCommands::ThermalModel in this case.
2023-08-01 11:54:10 +02:00
Yuri D'Elia 92202249d9 Make temperature jumping configurable in the variant file
Use this new feature in the Settings -> Temperature menus.
2023-07-31 16:04:33 +02:00
Yuri D'Elia 5ad21550c7 Jump to PLA temps in LCD settings when starting from zero
Allow the LCD menu update function to preset an initial value during the
first encoder increase from the minimal (usually zero) value.

This is useful to jump to a more sensible initial value when turning on
an heater which is currently disabled. The user is still allowed to
decrease the value after the jump, so there's no functional restriction.
2023-07-31 16:04:16 +02:00
Guðni Már Gilbert a96ee9da62 m600: power panic: unset isPartialBackupAvailable on M600 exit
If no power panic occurred during M600 we should
clear isPartialBackupAvailable to let the power panic
code know to not use the partial backup. We want the
partial backup ONLY when the extruder is parked after a print is saved.

Change in memory:
Flash: +4 bytes
SRAM: 0 bytes
2023-07-27 16:55:08 +00:00
Guðni Már Gilbert 7e025894d1 Echo the result onto serial
Example:
MMU2:1111111111111110011
1 means filament present (solid block)
0 means otherwise (dash)

Change in memory:
Flash: +94 bytes
SRAM: 0 bytes
2023-07-27 16:44:34 +00:00
Guðni Már Gilbert 20c6a448fa PFW-1504 Don't clear Status line on Deinit
Status line code should decide what to render next

Change in memory:
Flash: -12 bytes
SRAM: 0 bytes
2023-07-27 16:44:34 +00:00
Guðni Már Gilbert 940e626f3a Previously we called cleared the LCD, no need to change that
Change in memory:
Flash: -6 bytes
SRAM: 0 bytes
2023-07-27 16:44:34 +00:00
Guðni Már Gilbert 28f6cebfd2 PFW-1504 Cleanup
Only set cursor with lcd_status_message_idx where the variable
is used.

No change in memory
2023-07-27 16:44:34 +00:00
Guðni Már Gilbert 63775dfabb PFW-1504 fix conflicting UI issues
Proposal to fix some of the issues with the initial implementation
it is safer to use the status line code to print the message so
there aren't any conflicts in the LCD cursor position.

Allow inserting a byte into any position in the LCD status message

Also, add a variable to control from which index in the array
should the message start printing. This is very useful for progress
bars and messages which continually update. I think we can save some
memory by applying this to Mesh Bed Leveling later.

Change in memory:
Flash: +106 bytes
SRAM: +1 byte
2023-07-27 16:44:34 +00:00
3d-gussner 320997a1f5
Merge pull request #3859 from wavexx/simplify_variant_names
Simplify variant names
2023-07-27 15:44:58 +02:00
vintagepc a2eafc587a
Merge branch 'MK3' into 2477-redux 2023-07-26 12:34:38 -04:00
3d-gussner 8d66a2864f Simplify REVO variants 2023-07-26 16:46:17 +02:00
Yuri D'Elia cb8f68192a build: Simplify variant names
- Remove nozzle size and heater type
- Also remove board type from MK3/MK3S
2023-07-26 16:40:26 +02:00
3d-gussner ce141a2fa1
Merge pull request #3564 from wavexx/fil_loading_state
Filament loading state fixes
2023-07-26 16:38:29 +02:00
3d-gussner 897d05d268 Fix @wavexx complains 2023-07-26 09:33:16 +02:00
3d-gussner 6feab85252 Rebase update REVO and solve @wavexx comments 2023-07-25 17:24:02 +02:00
3d-gussner 8ae0e1952e Rename `temp_model.h` to `thermal_model.h`
`/temp_model` to `/thermal_model`
`Temperature_model` to `Thermal_model`
minor format in eeprom.h
2023-07-25 17:13:07 +02:00
3d-gussner 940b18e0b2 Format `eeprom.h` doxygen documentation 2023-07-25 17:13:07 +02:00
3d-gussner a6b209d36d Rename `Temperature Model` to `Thermal Model`
`Temperature model` to `Thermal model`
`temperature model` to `thermal model`
2023-07-25 17:13:07 +02:00
3d-gussner 78ed427166 Rename `TempModel` to `ThermalModel` 2023-07-25 17:13:07 +02:00
3d-gussner 600a7a0316 Rename `Temp Model` to `Thermal Model` 2023-07-25 17:13:07 +02:00
3d-gussner 44ae8033eb Rename upper case `TEMP_MODEL` to `THERMAL_MODEL` 2023-07-25 17:13:07 +02:00
3d-gussner dac07d11ba Rename lower case `temp_model` to `thermal_model` 2023-07-25 17:13:07 +02:00
Guðni Már Gilbert 780f2db3d1 fixup 2023-07-25 17:10:44 +02:00
Guðni Már Gilbert c647e4cfa4 fix build 2023-07-25 17:10:44 +02:00
Guðni Már Gilbert f40defd2a9 Rename minsegmenttime --> min_segment_time_us
Also fixed wrong unit in Configuration prinout (M500)
should be us and not ms

Also used %lu format for uint32_t instead of %.2f
2023-07-25 17:10:44 +02:00
Guðni Már Gilbert 842dcc6560 Remove MAX_E_STEPS_PER_UNIT and MIN_E_STEPS_PER_UNIT
These constants are not used anywhere so there is no need to rename them
I propose they be removed as cleanup
2023-07-25 17:10:44 +02:00
Guðni Már Gilbert ec896df62a Remove commented DEFAULT_AXIS_STEPS_PER_UNIT
They serve no function at this point
2023-07-25 17:10:44 +02:00
Guðni Már Gilbert 6c95d340c1 Remove dead code axis_travel_steps_per_sqr_second 2023-07-25 17:10:44 +02:00
Guðni Már Gilbert a8c75090b2 Change unsigned long to uint32_t 2023-07-25 17:10:44 +02:00
Guðni Már Gilbert 8689a28776 Rename max_acceleration_units_per_sq_second to max_acceleration_mm_per_s2 2023-07-25 17:10:44 +02:00
Guðni Már Gilbert 21faa52aab Rename axis_steps_per_unit to axis_steps_per_mm 2023-07-25 17:10:44 +02:00
Guðni Már Gilbert ff1cd2bfb2 dcodes: fix build when DEBUG_DCODES is enabled 2023-07-25 15:02:49 +00:00
Guðni Már Gilbert 5b8813bf18 tmc2130: fix octoprint error 2023-07-25 15:02:49 +00:00
Guðni Már Gilbert fa6aae60db optimisation: use SERIAL_PROTOCOLLN
Change in memory:
Flash: -12 bytes
SRAM: 0 bytes
2023-07-25 15:02:49 +00:00
Guðni Már Gilbert 9d15a4e63b optimisation: reduce code size in M916, M917, M918
Change in memory:
Flash: -148 bytes
SRAM: 0 bytes
2023-07-25 15:02:49 +00:00
Guðni Már Gilbert c090868fa2 optimisation: reduce code size in M907
Change in memory:
Flash: -4 bytes
SRAM: 0 bytes
2023-07-25 15:02:49 +00:00
Guðni Már Gilbert 53c8bfa928 cleanup: remove unused variable
No change in memory
2023-07-25 15:02:49 +00:00
Guðni Már Gilbert 7029af05fa optimisation: reduce code size in pid_extruder()
Author: leptun

Change in memory:
Flash: -14 bytes
SRAM: 0 bytes
2023-07-25 15:02:49 +00:00
Guðni Már Gilbert 6623d45af9 optimisation: Tighter LCD timing
Author: leptun

Change in memory:
Flash: -14 bytes
SRAM: 0 bytes
2023-07-25 15:02:49 +00:00
Guðni Már Gilbert 5288d615f8 optimisation: lcd avoid streams
Author: leptun

Change in memory:
Flash: -124 bytes
SRAM: 0 bytes
2023-07-25 15:02:49 +00:00
Yuri D'Elia 3485c20464 Improve FilamentAction comments 2023-07-25 14:30:20 +00:00
Yuri D'Elia 074b5d380f Consistently replace loading_flag with eFilamentAction
Remove loading_flag and check for eFilamentAction instead which already
flags both load/unload (in addition to mmu actions).

Correctly transition from AutoLoad to Load as soon as the operation
cannot be cancelled anymore as opposed to resetting it.
2023-07-25 14:30:20 +00:00
Yuri D'Elia 05b536947b Refuse to start a SD print until filament loading is complete
Do not blidnly clear the loading_flag, check for it!

Just disallowing the SD menu while loading is being performed is not
sufficient, since the menu can be entered also by inserting card while
loading is taking place.

This is also nicer in behavior, as we allow to navigate the SD card
while loading.
2023-07-25 14:28:46 +00:00
Yuri D'Elia e3fd6a4902 Do not allow filament actions while an existing one is taking place 2023-07-25 14:28:45 +00:00
Yuri D'Elia 170dddfd71 Set/clear loading_flag also during unload 2023-07-25 14:28:13 +00:00
Yuri D'Elia dece5d268f Consider any lcd_custom_command to be "ACTIVE"
All custom commands are transitory and eventually switch back to Idle
state by themselves.

It doesn't make any sense to explicitly check for Layer1Cal: any
non-idle state is active by design.

Fix this check in the main menu. This is probably incomplete (Layer1Cal
is incorrectly used in several other places).
2023-07-25 14:27:00 +00:00
Guðni Már Gilbert 5d880919f8 Align comment 2023-07-25 09:00:47 +02:00
Guðni Már Gilbert d5f4f6700d Optimise the acceleration limit checks
Kudos goes to Marlin FW

Change in memory:
Flash: -314 bytes
SRAM: 0 bytes
2023-07-25 09:00:47 +02:00
Guðni Már Gilbert 1984091c10 Rename axis_steps_per_sqr_second to max_acceleration_steps_per_s2 2023-07-25 09:00:47 +02:00
Guðni Már Gilbert c067318427 cleanup language menu
Change in memory:
Flash: -50 bytes
SRAM: 0 bytes
2023-07-25 08:58:52 +02:00
Guðni Már Gilbert 0ab10a9df6 tmc2130: chopconf: add comments to structure 2023-07-25 08:56:43 +02:00
Guðni Már Gilbert ed13d008d9 tmc2130: minor code cleanup
Using tmc2130_wr() instead makes the code a bit more
aligned and easier to read IMO

No change in memory
2023-07-25 08:56:43 +02:00
Guðni Már Gilbert 3819f7a473 tmc2130: Refactor code for setting/changing currents
- Always re-calculate the Vsense flag when the currents are changed
- Make sure Hold current is not larger than Run current
- Added SetCurrents() function from MMU FW
- Added MotorCurrents structure from MMU FW
- Various code size optimisations e.g. in power panic

Change in memory:
Flash: -10 bytes
SRAM: +4 bytes
2023-07-25 08:56:43 +02:00
Guðni Már Gilbert a87faba2bd tmc2130: pull TMC2130_CNSTOFF_E outside tmc2130_setup_chopper
We can probably improve tmc2130_chopper_config further by adding
a constructor.

No change in memory
2023-07-25 08:56:43 +02:00
Guðni Már Gilbert 664d4e2bbe tmc2130: chopconf: Add constructor to ChopConfU
Removed redundant initialisations which the constructor now takes care of

Change in memory:
Flash: +8 bytes
SRAM: 0 bytes
2023-07-25 08:56:43 +02:00
Guðni Már Gilbert bb8ebbb5e3 tmc2130: chopconf: simplify intpol config
Pull the preprocessor code outside tmc2130_setup_chopper

No change in memory
2023-07-25 08:56:43 +02:00
Guðni Már Gilbert 2d2ab6e889 tmc2130: chopconf: simplify dedge code
move dedge preprocessing out of tmc2130_setup_chopper

We can use default_dedge_bit to initialise
the dedge bit in the chopconf constuctor later

No change in memory
2023-07-25 08:56:43 +02:00
Guðni Már Gilbert 3842a5c98c optimisation: correctly reset registers in tmc2130_home_exit
Previously Z-axis would not be reset to
TMC2130_GCONF_DYNAMIC_SGSENS
in tmc2130_home_exit() when
TMC2130_STEALTH_Z is defined

Pulled configuration code into one common function
this ensures the registers are set correctly like in tmc2130_init()

Change in memory:
Flash: -206 bytes
SRAM: 0 bytes
2023-07-25 08:56:43 +02:00
Guðni Már Gilbert 60f1c2095f optimise tmc2130_setup_chopper further
Reduce code duplication

Change in memory:
Flash: -50 bytes
SRAM: 0 bytes
2023-07-25 08:56:43 +02:00
Guðni Már Gilbert ae1a7898dc optimisation: use union in for TMC2130 PWMCONF
Simplify writing the value to PWMCONF by
gathering all the bits into one dword.

Change in memory:
Flash: -128 bytes
SRAM: 0 bytes
2023-07-25 08:56:43 +02:00
Guðni Már Gilbert 06100e366c optimisation: use union in tmc2130_setup_chopper
An idea from the MMU FW

Change in memory:
Flash: -278 bytes
SRAM: 0 bytes
2023-07-25 08:56:43 +02:00
Guðni Már Gilbert 6aff3c761b XYZCal: reduce code size in go_manhattan
The variable always takes a value of subtraction
between two int16_t values. It will also fit into int16_t

Change in memory:
Flash: -50 bytes:
SRAM: 0 bytes
2023-07-24 08:15:03 +02:00
Guðni Már Gilbert 5cfdceb184 Remove redundant lcd_draw_update assignment
When scrolling through menu items, the rotation event on the knob
takes care of updating the LCD by setting lcd_draw_update.
The menu code doesn't need to do it as well.

Change in memory:
Flash: -6 bytes
SRAM: 0 bytes
2023-07-24 08:13:36 +02:00
Guðni Már Gilbert 57d780ccf9 PFW-1519 Hide Preload to MMU menu item if filament is detected
This is by far the simplest solution to prevent the user from sending
a Load command to the MMU when the FINDA or Filament sensor
is detecting a filament. This may even happen if the sensors are poorly positioned.

Either way a Load in this scenario will make the MMU seem to hang as the
state machine will reject the command.

We could add a full screen message to let the use know
but it would require some memory resources.

For now, just hide the menu item.

Change in memory:
Flash: +16 bytes
SRAM: 0 bytes
2023-07-24 08:05:50 +02:00
Addio d4733664a8
Fixed printer_smodel_check for MK3/S and possible older MMU machines (#4265)
Fixed printer_smodel_check for non MMU machines
Commit 136ef96 broke the compatibility check for MK3S without MMU.

May have fixed bug for older MMU machines.
Only comparing up to the length of the value from the g-code, would return equal on older MMU machines trying to run g-code sliced without the MMU.
Unfortunately if that is a feature, it will cause the different printer warning.
2023-07-21 16:02:32 +02:00
D.R.racer 43c823987c MMU version 3.0.0
PFW-1529
2023-07-20 12:44:29 +02:00
D.R.racer ffb6a2ae0c Generalize description of MMU MCU power errors
as requested in Prusa-Error-Codes PR#97

There will be more separate sources of MCU power errors in the future and reporting each of them separately doesn't make much sense
- especially when the only thing a user can do about it is to check the connectors.

So based on this, the error title has changed a bit (we are not using the full text description in 8bit FW)

Also, update perform the related changes in PO files + add (machine generated) translations.
2023-07-20 12:32:30 +02:00
Guðni Már Gilbert 03e7ff1983 power panic: optimise incrementing EEPROM statistics
Change in memory:
Flash: -26 bytes
SRAM: 0 bytes
2023-07-18 11:29:03 +02:00
Guðni Már Gilbert 2cd5ab2349 power panic: add readable flags and optimise ISR(INT4_vect)
Add more readable names for the EEPROM_UVLO values

Change in memory:
Flash: -14 bytes
SRAM: 0 bytes
2023-07-18 11:29:03 +02:00
Guðni Már Gilbert 4dc5d97ca9 power panic: remove unused EEPROM_UVLO_Z_MICROSTEPS
It isn't very helpful IMO to have unused code during power panic
it just complicates things.

Change in memory:
Flash: -32 bytes
SRAM: 0 bytes
2023-07-18 11:29:03 +02:00
Guðni Már Gilbert d5125c6b1e power panic: refactor log output on recovery
Use M114 to print coordinates for all axis. We save
a lot of memory by reusing the M114 code

Change in memory:
Flash: -184 bytes
SRAM: 0 bytes
2023-07-18 11:29:03 +02:00
Guðni Már Gilbert 005f9f0d24 power panic: Fix an error in saved position
planner_abort_hard() calls planner_reset_position() which
will set current_position vector to the machine position.
We want to save this position when there is no position already saved
(i.e. when there is no partial back-up or a saved print in RAM)

When a power outage comes, the printer is in the middle of a gcode move.
And at the moment a gcode is executed by the planner, the planner will update
current_position vector to the final destination vector. This means current_position
vector is invalidated during a power outage and so we must check what the
actual machine position is instead and save it.

This was working correctly before, this commit only fixes the regression
in my pull request.

Change in memory:
Flash: -2 bytes
SRAM: 0 bytes
2023-07-18 11:29:03 +02:00
Guðni Már Gilbert 5ee7ba84e3 fix build 2023-07-18 11:29:03 +02:00
Guðni Már Gilbert fa843a4a9b power panic: implement partial back up in RAM
A partial backup is needed in scenarios where the extruder may be
parked after a print is saved. For example during a blocking wait for the user in M600
Or during a MMU error screen.

A sudden power panic at this point would previously save the parked position
into EEPROM. When the print is recovered it would print in mid air.
2023-07-18 11:29:03 +02:00
Guðni Már Gilbert 10ed195531 power panic: use saved position consistently
1) current_position[Z_AXIS] is not always correct. saved_pos[Z_AXIS]
    should always represent the correct resume position for the Z-axis
2) Use the saved position to fetch the Z-offset value from
    the mesh bed leveling grid. In case the extruder is parked during
    power panic, the previous code may extract the wrong mesh
    bed leveling offset (due to extruder being located at different
    X and Y axis coordinates)
2023-07-18 11:29:03 +02:00
Guðni Már Gilbert 392c46c7ad power panic: pull INT4 string into PROGMEM
Change in memory:
Flash: -4 bytes
SRAM 0 bytes
2023-07-18 11:29:03 +02:00
Guðni Már Gilbert 6d902d6437 power panic: store saved_fan_speed in EEPROM
fanSpeed may have an outdated value
2023-07-18 11:29:03 +02:00
Guðni Már Gilbert 44bedcd941 power panic: cleanup: remove commented code 2023-07-18 11:29:03 +02:00
Guðni Már Gilbert 62a3d179f0 optimisation: read/write EEPROM_UVLO_SAVED_START_POSITION block
I verified via printf that sizeof(saved_start_position) = 16 (i.e. 4 float values)
We simply want to write 16 bytes to address
EEPROM_UVLO_SAVED_START_POSITION

Change in memory:
Flash: -160 bytes
SRAM: 0 bytes
2023-07-18 11:29:03 +02:00
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