Commit Graph

6148 Commits

Author SHA1 Message Date
Guðni Már Gilbert 4922bcd7b1
Merge pull request #4408 from gudnimg/PR2390
PFW-1097 M600: Fix filament change behavior when print is paused
2023-11-16 07:37:42 +00:00
Guðni Már Gilbert 400722ec67
Merge pull request #4461 from gudnimg/lcd-opt-message
optimisation: simplify two LCD messages
2023-11-16 07:37:09 +00:00
D.R.racer 38104063d4 M702: fix documentation link 2023-11-15 09:14:44 +01:00
3d-gussner e74abb102a
Merge pull request #4494 from gudnimg/issue3122
Fix #3122
2023-11-12 17:42:10 +01:00
gudnimg 842d029f7e Replace unused EEPROM entry names with placeholders
_EEPROM_FREE_NRx_ make it a bit more clear this entry is free.
2023-11-12 16:21:34 +00:00
Guðni Már Gilbert 1e6460c344
Merge pull request #4479 from gudnimg/PFW-1523-2
PFW-1523 Add the `S` parameter to `M79`
2023-11-12 16:19:31 +00:00
gudnimg 077aa0a2b8 Minor wording changes 2023-11-12 16:09:15 +00:00
gudnimg 1fc1998874 EEPROM: Formatting cleanup
Mark unused bytes consistently

Add "Power Panic" into the Feature column for relevant bytes

Change "MMU2/s" to "MMU"
2023-11-12 14:39:52 +00:00
gudnimg ddbadf4874 Fix #3122
If the feedrate multiplier is changed while the print is paused
update the saved feedrate multiplier in RAM
2023-11-12 12:38:05 +00:00
gudnimg 4e6b649865 PFW-1523 Only overwrite name if not SD printing 2023-11-11 16:56:14 +00:00
gudnimg af465da9e2 Add a comment 2023-11-11 16:53:56 +00:00
gudnimg 45880c252b Fix filament change behavior when print is paused
Reimplementing PR 2390
https://github.com/prusa3d/Prusa-Firmware/pull/2390
from @wavexx
2023-11-11 16:51:35 +00:00
3d-gussner 342d8e92ab Update doxygen M709 2023-11-11 12:20:58 +01:00
3d-gussner 0016b77827 Updated MMU serial status message
- Shown during bootup
- Shown on LCD menue MMU [ON|OFF]
- Shown using `M709`
- Shown when `Disable`d with MMU ERROR FW UPDATE NEEDED
2023-11-11 12:18:34 +01:00
3d-gussner e3392a763a Update doxygen for M709 2023-11-11 12:18:34 +01:00
3d-gussner b11c0024d1 Update requested changes 2023-11-11 12:18:34 +01:00
3d-gussner 69cb7add26 Add en- and disable MMU to M709
Add X42 to erase the MMU eeprom
2023-11-11 12:18:34 +01:00
gudnimg bcc7a16e1c PFW-1523 Trim trailing whitespace in util.h 2023-11-07 07:27:26 +00:00
gudnimg 890bfab946 PFW-1523 Update M79 description 2023-11-07 07:27:21 +00:00
gudnimg dc280b0d9e power panic: support any valid DOS 8.3 extension
When a SD file is selected to print
save the DOS 8.3 extension into EEPROM.

After a power outage, the correct file extension is then
selected instead of always assuming it's ".gco"

This allows users to recover ".g" files.

Change in memory:
Flash: +104 bytes
SRAM: 0 bytes
2023-11-05 16:46:54 +00:00
gudnimg 4c52d92d16 power panic: read whole directory name block from EEPROM
There is no need to read one byte at a time. We can simply
read the whole block in one go. This saves some flash memory.

Change in memory:
Flash: -18 bytes
SRAM: 0 bytes
2023-11-05 16:46:54 +00:00
gudnimg 21d0130626 power panic: simplify recovering SD filename
We can just read the whole EEPROM block since short filenames
are always null terminated. strcat_P will then apply the file extension
at the correct position.

Change in memory:
Flash: -24 bytes
SRAM: 0 bytes
2023-11-05 16:46:54 +00:00
Guðni Már Gilbert dec5e2c1b4 Refactor menu_action_sdfile 2023-11-05 16:46:54 +00:00
Guðni Már Gilbert 82cece95aa power panic: read EEPROM_FILENAME until \0 is seen
Also removed debug logs
2023-11-05 16:46:14 +00:00
Guðni Már Gilbert 977792961c power panic: only send M23 for SD prints
If the saved printing type was USB, then EEPROM_FILENAME
does not contain anything. The firmware should also
not be trying to open a file on a SD card which is maybe
not even mounted.

Change in memory:
Flash: +12 bytes
SRAM: 0 bytes
2023-11-05 16:46:13 +00:00
gudnimg 469f002179 optimisation: simplify two LCD messages
There is no need to restrict how often the message is rendered.
It was being restricted to render every 1 second. We don't do
this for most of the static menus. So I propose this 1 second period
be removed.

Tested on MK3S+

Change in memory:
Flash: -168 bytes
SRAM: -8 bytes
2023-11-05 12:57:28 +00:00
gudnimg ed376009aa PFW-1523 Force inline unquoted_string constructor
Saves 36 bytes of flash
2023-11-04 20:57:31 +00:00
gudnimg 20a2216623 PFW-1523 Implement S parameter for M79
Change in memory:
Flash: +112 bytes
SRAM: +3 bytes
2023-11-04 20:38:50 +00:00
gudnimg cdb559040c PFW-1523 Refactor parsing quoted strings
My plan is to re-use this function in M79
in a later commit. The firmware doesn't
have a dedicated parser like Marlin 2.1
so this is my attempt to not duplicate the parsing of a quoted string in G-codes

Change in memory (MK3S+ Multilang):
Flash: -50 bytes
SRAM: 0 bytes
2023-11-04 17:45:14 +00:00
3d-gussner fca93b00e9
Merge pull request #4471 from gudnimg/issue-4470
MMU: Set PAUSED_FOR_USER state on MMU error screen
2023-10-31 08:36:53 +01:00
3d-gussner 3ffe7bf406
Merge pull request #4460 from gudnimg/PFW-1523
PFW-1523 Add a new timer for Prusa Link
2023-10-30 11:23:46 +01:00
gudnimg 8fcfdf31c4 PFW-1523 Implement M79 timer for PrusaLink
The idea is to have the host ping the printer periodically with a M79 to
enable certain features/UI. Using the usb_timer is not a good solution
for this as it depends on seeing a 'G' character

The LCD code, or whatever code is implementing the new functionality
will need to include host.h and check whether M79_timer_get_status()
returns 0 (timer not running) or 1 (timer is running).

I created a new file for the code host.cpp which we can use to expand
host related functionality and not clutter Marlin_main.cpp further.

Change in memory:
Flash: +104 bytes
SRAM: +5 bytes
2023-10-29 16:33:45 +00:00
gudnimg 645b11e643 Fix regression in MMU enable menu
Fixes a regression introduced in https://github.com/prusa3d/Prusa-Firmware/pull/4454
2023-10-29 16:17:03 +00:00
gudnimg 287e340117 MMU: Set PAUSED_FOR_USER state on MMU error screen
Setting this state notifies PrusaLink/PrusaConnect
that the printer is waiting for user input (attention).

Change in memory:
Flash: +12 bytes
SRAM: 0 bytes
2023-10-28 19:31:32 +00:00
Guðni Már Gilbert 3b10c6130e
Merge pull request #4466 from gudnimg/eeprom-optimisations
Optimise EEPROM access in a few places by reading/writing larger blocks
2023-10-27 21:12:13 +00:00
Guðni Már Gilbert 3297429ca7 TM: Optimise EEPROM read and writes 2023-10-25 17:37:04 +00:00
Guðni Már Gilbert e207945154 MBL: optimise EEPROM read/writes 2023-10-25 17:36:15 +00:00
Guðni Már Gilbert 82e0124cb4 mmu: remove isErrorScreenRunning()
No change in memory
2023-10-19 18:32:42 +00:00
Guðni Már Gilbert d56f2bc57e mmu: remove obsolete EEPROM comments 2023-10-19 18:32:42 +00:00
Guðni Már Gilbert 62b90fde28 mmu: remove ResetOnExit
No change in memory
2023-10-19 18:32:42 +00:00
Guðni Már Gilbert 7b9e707709 mmu: add ResetCommunicationTimeoutAttempts
Adding __attribute__((noinline)) saves 14 bytes of flash

Change in memory:
Flash: +34 bytes
SRAM: 0 bytes
2023-10-19 18:32:42 +00:00
Guðni Már Gilbert ef33db9a71 mmu: add DisableMMUInSettings
power_on should not be modifying
EEPROM_MMU_ENABLED. The code is never
executed unless it's already been set.

Only disable EEPROM_MMU_ENABLED through Buttons::DisableMMU

Change in memory:
Flash: -18 bytes
SRAM: 0 bytes
2023-10-19 18:32:42 +00:00
Guðni Már Gilbert cd3372dc92 mmu: formatting 2023-10-19 18:32:41 +00:00
Guðni Már Gilbert 12a3051c50 mmu: Add CheckErrorScreenUserInput
Due to differences in 8-bit FW I had to implement two new get functions

* GetCommandInProgress
* GetLastErrorCode
2023-10-19 18:32:41 +00:00
Alex Voinea 1528294450 Update enabled diacritics 2023-10-19 13:07:49 +02:00
3d-gussner 1f1743d7ad Not needed anymore thanks to @vintagepc 2023-10-18 18:02:56 +02:00
3d-gussner fe9a8cf8ac Fix PF-build.sh with new cmake
Same as MK3_3.13.2 branch
2023-10-17 15:36:54 +02:00
Guðni Már Gilbert baba1e78c7 use uint16_t when writing to Timer/Counter4
Using uint16_t instead of uint32_t reduces code size
and probably is quicker to execute

OCR4C register is 2 bytes on ATmega2560
It's 1 byte on ATmega32u4 and ATmega16u4

Change in memory:
Flash: -80 bytes
SRAM: 0 bytes
2023-10-15 16:50:43 +00:00
gudnimg 20a434dbac PFW-1542 Reset status line message on EFCE_OK
If the error is really resolved, I'd prefer to see

"Prusa i3 MK3S OK" instead of "Err:HOTEND FAN ERROR"
2023-10-15 12:26:44 +00:00
gudnimg 466e562360 PFW-1542 Don't allow starting SD print if there is a fan error
Apply same conditions as on "Resume print" feature.
Starting a SD print should not be possible if there is an active hardware error
2023-10-15 12:17:36 +00:00
3d-gussner 63b628d722
Merge pull request #4396 from 3d-gussner/MK3_PFW-1538_M420
PFW-1538: Add M420
2023-10-13 14:27:34 +02:00
Guðni Már Gilbert f6737d2fca optimisation: make dda_isteps_t an array
This way we can loop through it with a for-loop
and save some code size
2023-10-07 22:18:01 +00:00
Guðni Már Gilbert 415c0c79d1 Fix FW_COMMIT_HASH compiler warning
On my end, the default length for the abbreviated commit hash is 9 characters.
This won't fit into uint32_t (4 bytes).

Instead change FW_COMMIT_HASH into a string
and create preprocessor symbol for the string length
such that it's known at compile time.

If the string should be longer or shorter
then only FW_COMMIT_HASH_LENGTH needs to be configured on the CMake side
2023-10-07 21:01:28 +00:00
3d-gussner 23503624d0
Merge pull request #4407 from gudnimg/minor-opt-temp-gudni
optimisation: make `alert_automaton_mintemp` constructor `constexpr`
2023-10-06 09:05:24 +02:00
3d-gussner 2027a54873
Merge pull request #4420 from gudnimg/PFW-1543
PFW-1543 Save print type in EEPROM
2023-10-06 09:04:30 +02:00
3d-gussner 9aca81dc7c
Merge pull request #4381 from vintagepc/misc-cmake-fixes
Refine CMake version handling based on tags
2023-10-05 16:00:55 +02:00
Guðni Már Gilbert b89c62bd50 PFW-1543 Replace ffh 255 with ^ 2023-10-04 20:57:05 +00:00
3d-gussner 8b9b63c35b
Merge pull request #4418 from gudnimg/PFW-1542-v2
PFW-1542 Handle fan error sooner when waiting for heating to complete
2023-10-03 10:16:49 +02:00
Alex Voinea 9606c4f00b Add font unpacking documentation 2023-10-03 08:19:48 +02:00
Alex Voinea d53ba0eba2 Fix wrong character sent when potentially unused slot is replaced 2023-10-03 08:19:48 +02:00
Alex Voinea 7e88e49b4e Fix tilde in message 2023-10-03 08:19:48 +02:00
Alex Voinea 32cee8b529 Move custom character type to lcd.cpp 2023-10-03 08:19:48 +02:00
Alex Voinea c2c01a9a86 Use beta symbol as fallback of `ß` 2023-10-03 08:19:48 +02:00
Alex Voinea 3e15a24be7 Fix sheet rename resetting characters to blank 2023-10-03 08:19:48 +02:00
Alex Voinea 8a39f53e26 Prevent out of bounds custom character font data 2023-10-03 08:19:48 +02:00
Alex Voinea 9dbbb12a13 Fix frame start for non-menu screens 2023-10-03 08:19:48 +02:00
Alex Voinea 8e25e1b164 Allow all diacritics in the sheet name 2023-10-03 08:19:48 +02:00
Alex Voinea d5074129f5 Fix MMU error message character 2023-10-03 08:19:48 +02:00
Alex Voinea 6703640c56 Optimize `lcd_print_custom()` 2023-10-03 08:19:48 +02:00
Alex Voinea fcaa9c8de6 Update `ăĂñ` 2023-10-03 08:19:48 +02:00
Alex Voinea 9ee71b2942 Update `ø` 2023-10-03 08:19:48 +02:00
Alex Voinea dd32f7be3c bootapp cleanup 2023-10-03 08:19:48 +02:00
Alex Voinea 5466bfb500 Cleanup uartout declaration 2023-10-03 08:19:48 +02:00
Alex Voinea 90dbaa8c51 Update `đûůű` 2023-10-03 08:19:48 +02:00
Alex Voinea 927b27615e Update `ď` 2023-10-03 08:19:48 +02:00
Alex Voinea 3817893199 Implement the rest of the diacritics 2023-10-03 08:19:48 +02:00
Alex Voinea 5ea2b881d5 Yet another workaround for the language update 2023-10-03 08:19:48 +02:00
Alex Voinea 3305227bbc Implement all a-based diacritics 2023-10-03 08:19:48 +02:00
Alex Voinea 6707570c6c Update diacritic alignment 2023-10-03 08:19:48 +02:00
Alex Voinea c0875f37f2 Implement 'á' 2023-10-03 08:19:48 +02:00
Alex Voinea a267d80fe2 Fix legacy build 2023-10-03 08:19:48 +02:00
Alex Voinea 10e6087d6b Update language scripts to use the font 2023-10-03 08:19:48 +02:00
Alex Voinea 09c85796a6 No need to mask the CGRAM data before sending 2023-10-03 08:19:48 +02:00
Alex Voinea 245a2852ac Font table compression 2023-10-03 08:19:48 +02:00
Alex Voinea 1c637f8082 Fix "🔃Refresh" translation 2023-10-03 08:19:48 +02:00
Alex Voinea 1c260f94a0 Expand list of custom characters 2023-10-03 08:19:48 +02:00
Alex Voinea 6d5e645c1f Regen font table and include ID in comment 2023-10-03 08:19:48 +02:00
Alex Voinea c1ec8d97e6 Remove TR font 2023-10-03 08:19:48 +02:00
Alex Voinea 81103602f0 Change μ to µ
stupid unicode...
2023-10-03 08:19:48 +02:00
Alex Voinea 6367172177 Change ↡ to 2023-10-03 08:19:48 +02:00
Alex Voinea 4957544fcf Change 🗘 to 🔃 2023-10-03 08:19:48 +02:00
Alex Voinea c514774a54 Generate the font from Prusa.lcd 2023-10-03 08:19:48 +02:00
Alex Voinea 8e18c83d51 Update debug messages 2023-10-03 08:19:48 +02:00
Alex Voinea 4736a1624f First working implementation
Fix cherry-pick conflict
2023-10-03 08:19:48 +02:00
Alex Voinea e9f74b2678 Remove unnecessary lcd_home() calls 2023-10-03 08:19:48 +02:00
Alex Voinea 580b27e394 Use lcd_home() wherever possible
Fix cherry-pick conflict
2023-10-03 08:19:48 +02:00
Alex Voinea c7f9a46c86 Cleanup around invalidating the custom characters 2023-10-03 08:19:48 +02:00
Alex Voinea 60494b20e8 lcd_print_custom(): limit searching to lcd_custom_index 2023-10-03 08:19:48 +02:00
Alex Voinea 7e0ab44d09 Refactor the lcd_print_custom() method 2023-10-03 08:19:48 +02:00
Alex Voinea 90222747f2 lcd_set_cursor_column() also updates lcd_ddram_address 2023-10-03 08:19:48 +02:00
3d-gussner f392fae996 Fix cherry-pick conflict 2 2023-10-03 08:19:48 +02:00
Alex Voinea 100a8e3b33 Dynamic characters initial
Fix more hardcoded characters

Finally optimize the lcd printf with custom characters

FontGen.py script

Add arguments and action

Fix build

Fix conflicts
2023-10-03 08:19:48 +02:00
gudnimg 3eaca29b0b PFW-1543 Move printing types into enum
Also add power panic namespace
2023-10-01 12:57:25 +00:00
gudnimg fcd61a378d power panic: save print type in EEPROM
The printer should know whether it is recovering a SD print
or a USB print

PFW-1543
2023-10-01 12:44:49 +00:00
gudnimg 0139cf6dde MMU: Fix printing uint8_t value onto serial
uint8_t values don't print correctly. Cast to 2-byte integer is required.
2023-09-30 14:06:38 +00:00
gudnimg e621d3445e PFW-1542 Handle fan error sooner when waiting for heating to complete
While waiting for the nozzle to reach a certain temperature, a fan error
should disable the hotend heater. If printing, it will simply pause the print.

Previously the printer would wait for the nozzle to heat up before pausing the print
and turning off the hotend heater.

We rely on LcdCommands::LongPause and must return to the top level loop to process it.
Waiting in the while loop e.g. in M190 does not make sense.
2023-09-30 14:01:09 +00:00
gudnimg ae494b04de optimisation: make constructor constexpr
Minor optimisation I found. It doesn't save much but this change
should be harmless :)

Change in memory:
Flash: -30 bytes
SRAM: 0 bytes
2023-09-24 11:41:18 +00:00
VintagePC 52de576e0a change where FW_VERSION_FULL is defined so it's less messy 2023-09-23 13:10:04 -04:00
gudnimg 016db6a6e8 Hide menus more consistently when the printer is busy
lcd_calibration_menu: Remove redundant if (!isPrintPaused). The menu
is never called unless this condition is true.

eeprom_switch_to_next_sheet: Don't show this menu if the printer
is busy doing work!

Do not allow these menus to run while a print is paused or
when we're recovering a print:

- Preload to MMU
- Load to Nozzle
- Unload filament
- Eject from MMU
- Cut filament
- Autoload filament
- Settings
- Calibration
2023-09-23 15:42:03 +00:00
gudnimg 06d34b4398 Fix an issue where print can't be stopped under specific circumstances
There is a bug where if the printer is recovering a print, it run a
blocking loop to restore the extruder and bed temperatures.
But if a Fan error is triggered in this loop, then the user can't
abort the print via LCD.

If the fan error resolves on its own the 'Resume print' menu will
appear in a few seconds. But if not, then the user can't resume the print
(which is normal). But with the bug above the user can't abort the print either!

The problem is essentially isPrintPaused variable is cleared too early.
We should wait until the print is completely restored first.

Steps to reproduce:
1. Start a print
2. Pause the print
3. Wait for extruder temperature to fall at lest 180°C
4. Click 'Resume' print
5. While heating, stop the hotend fan and wait for a few seconds until an error is raised
6. Observe issue => 'Stop print' menu item is gone!

PFW-1542
2023-09-23 14:18:52 +00:00
VintagePC 949539dfc9 Merge remote-tracking branch 'upstream/MK3' into vintagepc/more-cmake-fixes 2023-09-22 16:42:06 -04:00
3d-gussner f8c64de505
Merge pull request #4390 from sarusani/mbl_mag_comp
MBL: Add magnet compensation parameter
2023-09-22 14:57:09 +02:00
Guðni Már Gilbert e323490659 optimisation: Remove unused Z offset
Frees up some SRAM

Change in memory:
Flash: 0 bytes
SRAM: -4 bytes
2023-09-19 23:37:38 +00:00
3d-gussner 1996f977e1
Merge branch 'MK3' into mbl_mag_comp 2023-09-18 15:55:42 +02:00
3d-gussner 8bd71b7bf0
Merge pull request #4391 from sarusani/mbl_default_to_eeprom
MBL: Default to EEPROM values
2023-09-18 15:52:38 +02:00
3d-gussner 039202f34b Fix typo 2023-09-18 15:48:36 +02:00
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