D.R.racer
0555376502
Refactor mmu2.cpp and related interfaces
...
The general idea is to keep platform specific implementation away from the MMU state machines as much as we can.
That would enable unit testing the top level MMU state machine and integration into other project as well (if needed).
2023-01-31 09:35:22 +01:00
Yuri D'Elia
e39f2d132e
TM: Check for PC parameters more carefully
2023-01-27 14:57:59 +01:00
3d-gussner
216b935488
Minor typo
2023-01-26 12:20:43 +01:00
3d-gussner
05cd50e2ef
Update M214 description with link to RepRap wiki
2023-01-26 12:20:43 +01:00
Guðni Már Gilbert
da63d73585
optimisation: don't print floats with lcd_print()
...
Change in memory:
Flash: -442 bytes
SRAM: 0 bytes
2023-01-25 18:21:22 +00:00
Guðni Már Gilbert
a5f7f1d735
optimisation: change index from uint32_t to uint8_t
...
Change in memory:
Flash: -152 bytes
SRAM: 0 bytes
2023-01-25 18:21:22 +00:00
Guðni Már Gilbert
8c4cd11ae0
Cleanup: remove code_value_float()
...
The function adds a bit of overhead compared to code_value()
I suspect this function is a relic of the past.
Change in memory:
Flash: -82 bytes
SRAM: 0 bytes
2023-01-25 16:51:10 +00:00
Guðni Már Gilbert
17e6f1b75e
optimisation: remove conv2str.cpp
...
Change in memory:
Flash: -288 bytes
SRAM: -8 bytes
2023-01-25 06:28:00 +00:00
Guðni Már Gilbert
79a10868fe
cleanup: FILWIDTH_PIN doesn't exist
...
raw_filwidth_value variable is never used
2023-01-24 19:41:45 +00:00
3d-gussner
7b163cf464
Merge pull request #3936 from wavexx/tm_cal_htemp
...
TM: Do not restrict autotune temperature
2023-01-24 14:20:55 +01:00
3d-gussner
fab4165f4a
Merge pull request #3920 from wavexx/selftest_ok_alert
...
wizard: Do no set "Self test OK" as an alert message
2023-01-24 14:16:44 +01:00
3d-gussner
1f54dfd0b2
Merge pull request #3941 from wavexx/tm_wizard_nowarn
...
wizard: Disable TM warnings during calibration
2023-01-24 14:15:04 +01:00
Alex Voinea
53fb4c3e3f
Move altfan eeprom initialization to extruder_altfan_detect()
...
flash: -16B
RAM: 0B
2023-01-23 19:47:03 +00:00
Guðni Már Gilbert
7245c76094
Fix an issue where Altfan Override setting in EEPROM is not respected at boot-up
2023-01-23 19:47:03 +00:00
Yuri D'Elia
c9f3a4cfce
wizard: Disable TM warnings during calibration
...
During calibration model warnings are possible/normal. This is
apparently leading some into thinking the hotend might be faulty
and abort the calibration with a hard reset.
Disable warnings/beeps during calibration.
Rely on the error threshold only.
2023-01-23 16:52:27 +01:00
Yuri D'Elia
679208b29e
TM: Do not restrict autotune temperature
...
Fix a wrong type that prevents running TM autotune at temps >127
2023-01-20 19:18:19 +01:00
Guðni Már Gilbert
39f9979655
optimisation: Combine if statement in M600
...
Change in memory:
Flash: -52 bytes
SRAM: 0 bytes
2023-01-18 09:44:27 +01:00
D.R.racer
6298722f9a
Disable E-motor before the MMU starts doing something
...
It may seem counterintuitive to disable the E-motor, but it gets enabled in the planner whenever the E-motor is to move.
The idea behind disbling the E-motor when it won't be needed for some time is to save power and lower the heat of the motor.
Therefore it is especially important to disable the motor before the printer pauses a print due to some MMU error screen.
2023-01-18 09:42:57 +01:00
Alex Voinea
0c352ac2d1
Disable M47 if TMC2130 drivers are used
...
flash: -126B
RAM: 0B
2023-01-17 20:37:27 +01:00
Guðni Már Gilbert
d83c0f6c40
Fix an issue with indexing PROGMEM pointer
...
Using array index 'pointer[index]' doesn't work properly.
Instead using "pointer + index" works fine.
No change in memory footprint
2023-01-16 12:36:57 +01:00
Guðni Már Gilbert
9416310f7e
optimisation: move row_offsets into PROGMEM
...
Change in memory:
Flash: -42 bytes
SRAM: -4 bytes
2023-01-16 12:36:57 +01:00
Guðni Már Gilbert
eeb5f3d50c
optimisation: refactor menu_draw_P()
...
Add a way to only change the LCD column
Change in memory:
Flash: -90 bytes
SRAM: 0 bytes
2023-01-16 12:36:57 +01:00
Guðni Már Gilbert
730bb3708e
Fix an issue with menu_draw_item_puts_P
...
Change in memory:
Flash: +16 bytes
SRAM: 0 bytes
2023-01-16 12:36:57 +01:00
Guðni Már Gilbert
4f4153175c
Refactor menu_draw_toggle_puts_P
...
The refactoring drops the local buffer lineStr
Change in memory:
Flash: -106 bytes
SRAM: 0 bytes
2023-01-16 12:36:57 +01:00
Guðni Már Gilbert
cc08b938b7
Optimisations: implement lcd_print_pad_P()
...
Used lcd_print_pad_P is some obvious places. We can probably use
this function in more places to further save flash memory
Change in memory:
Flash: -268 bytes
SRAM: 0 bytes
2023-01-16 12:36:57 +01:00
Yuri D'Elia
16a89b9215
wizard: Return to status after calibration
2023-01-16 11:38:56 +01:00
D.R.racer
472f84e46a
Avoid FullScreenMsg "Eject/Cut Filament" when called inside a toolchange
...
CutFilament and EjectFilament got a flag: enable/disable FullScreenMsg
2023-01-16 09:25:04 +01:00
D.R.racer
48ce22d41f
Fix blank LCD while err. Load to Extr. Failed
...
Because this error is not an MMU error but a printer one, the existing infrastructure has been bent to support such a scenario.
During testing it turned out, that some machines fail to draw the error screen due to previous internal states.
This PR resets the internal states so that the conditions for drawing the error screen are met.
2023-01-16 09:25:04 +01:00
Yuri D'Elia
4f177f0b38
TM: Fan measuring state reset unification
...
Add resetFanCheck() to reset the fan measuring state as it's needed in
several places and save some flash space.
2023-01-16 08:43:36 +01:00
Yuri D'Elia
7529652dca
TM: Restore extruder autofan state when stopping/resuming
...
During thermal errors all fans are set to full speed.
When the print is resumed or stopped *and* the thermal error is gone,
also restore the autofan state.
Fixes #3893
2023-01-16 08:43:36 +01:00
Yuri D'Elia
204df90d6d
TM: Set the cal status bit when running `M310 A` directly
...
Running `M310 A` should set the TM calibration bit status if the
autotune procedure was successful.
Partially addresses #3891 and #3890 , since running `M310 A F0` should
*still* count as valid calibration data and is not something that can be
replicated by using the LCD (which enforces self-test).
2023-01-16 07:32:57 +01:00
Yuri D'Elia
12f5bd3648
wizard: Do not complain about missing calibration if model is disabled
...
This fixes #3891 without having to set the calibration bit, meaning
that if the model is later re-enabled without a real calibration, a
prompt is shown as expected.
2023-01-16 07:31:33 +01:00
3d-gussner
2d34535977
Move Z to top during Nozzle change
2023-01-16 07:27:53 +01:00
D.R.racer
58bed7e388
MMU: Make sound after the hotend reaches temp, not while waiting
2023-01-16 07:19:11 +01:00
Guðni Már Gilbert
5582114628
optimisation: re-use delay_keep_alive() in a few places
...
Change in memory:
Flash: -52 bytes
SRAM: 0 bytes
2023-01-15 19:21:55 +01:00
Yuri D'Elia
9e0e0f5942
wizard: Do no set "Self test OK" as an alert message
...
Alert messages are intended to persist above "info" messages, thus
preventing further calibration status updates to be shown (such as
thermal model calibration).
Just set the message as a regular status message.
Fixes #3892
2023-01-15 18:25:15 +01:00
Guðni Már Gilbert
d3aa40a575
Fix blank LCD issue
2023-01-14 13:51:10 +01:00
Guðni Már Gilbert
76d1f28c14
optimisation: serialecho_temperatures should print a constant extruder number
...
Change in memory:
Flash: -18 bytes
SRAM: 0 bytes
2023-01-14 11:22:03 +00:00
Guðni Már Gilbert
62fc19b361
optimisation: combine a few serial logs since extruder is now constant
2023-01-14 11:22:03 +00:00
Guðni Már Gilbert
858e80e806
optimisation: M109 doesn't have a T parameter.
...
In 8-bit firmware the tool is always 0.
Change in memory:
Flash: -146 bytes
SRAM: 0 bytes
2023-01-14 11:22:03 +00:00
Guðni Már Gilbert
ff49c6a0bf
optimisation: M104 doesn't have a T parameter
...
Change in memory:
Flash: -120 bytes
SRAM: 0 bytes
2023-01-14 11:22:03 +00:00
Guðni Már Gilbert
44660f668a
optimisation: M105 doesn't have a T parameter
...
Remove parameter from gcode_M105() extruder is always 0.
Change in memory:
Flash: -64 bytes
SRAM: 0 bytes
2023-01-14 11:22:03 +00:00
Guðni Már Gilbert
fa0a522b7d
optimisation: re-use serialecho_temperatures()
...
Change in memory:
Flash: -82 bytes
SRAM: 0 bytes
2023-01-10 07:22:35 +01:00
Guðni Már Gilbert
f1cd388370
Shorter code
2023-01-06 19:33:32 +01:00
Guðni Már Gilbert
8c79bab503
optimisation: there is only one extruder when planning a line
...
Change in memory:
Flash: -50 bytes
SRAM: -3 bytes
2023-01-06 19:33:32 +01:00
Guðni Már Gilbert
534c2e2664
Cleanup: Remove M218
...
It was only enabled when multiple extruders are enabled
The firmware doesn't support it
and even if the M218 gcode could be used, the code does not compile
2023-01-06 19:30:05 +01:00
Yuri D'Elia
96a7383f19
Merge pull request #3869 from wavexx/m300_s0
...
Make M300 S0 pause like Marlin
2023-01-02 19:23:58 +01:00
3d-gussner
ba3ee0b4c6
Fix few values
2023-01-02 15:11:01 +01:00
3d-gussner
20634a3852
Update calibration status v2 documentation
2023-01-02 15:11:01 +01:00
D.R.racer
3d9dd08c16
Change MMU error links to a new url
...
PFW-1473
2023-01-02 12:43:08 +01:00
Yuri D'Elia
7a6d588d97
TM: Mark more internal functions as static
2023-01-02 10:52:07 +01:00
Yuri D'Elia
50209815ea
TM: Also clear the status flags when disabling the model
...
Disabling the model during a warn/error condition will also stop
updating the warning/error flag, keeping the printer in an error state.
Clear all flags as well when changing model settings.
2023-01-02 10:52:07 +01:00
Yuri D'Elia
543b333007
Remove extra delay after critical sound
...
This delay doesn't exist for the tone generator, so remove it from the
pure version as well.
2022-12-31 01:13:45 +01:00
Yuri D'Elia
e45adb4cee
Make M300 S0 pause like Marlin
...
Follow Marlin's behavior and simply insert a delay for the requested
duration when using M300 S0.
When S is not specified, use the default tone instead.
Fixes #3856
2022-12-31 01:13:45 +01:00
Guðni Már Gilbert
9cbf0a28cc
Fix an issue on multilang builds where first two charactes are not rendered ( #3781 )
2022-12-30 15:18:48 +01:00
D.R.racer
85d27e6e5e
Address 3 different start scenarios 1st lay cal + MMU
...
This PR tries to address the 3 different startup scenarios for 1st layer calibration with the MMU:
- 1st lay cal started with correct filament already loaded in the nozzle - we should continue, but skip the first 58mm (first 2 g-codes in the hard coded sequence) of purge line extrusion
- 1st lay cal started with other filament already loaded in the nozzle - we should unload and then issue a toolchange with no extra unload
- 1st lay cal started without loaded filament - we should just do a toolchange with no extra unload
PFW-1457
2022-12-30 15:04:45 +01:00
D.R.racer
52a3beb931
Cut & Eject: avoid preheat if no filament loaded
...
and add fullscreen messages for Cut & Eject (messages intentionally reused to save space)
2022-12-30 14:23:44 +01:00
D.R.racer
43f3865d7c
Tune UI CutFilament & EjectFilament
2022-12-30 14:23:44 +01:00
D.R.racer
ec1d12d929
Introduce FILAMENT_EJECTED + tune Eject operation + inc. MMU ver. 2.1.6
2022-12-30 14:23:44 +01:00
D.R.racer
58ff0efb30
Silence nodiscard attribute at one spot
...
... where it is really irrelevant
2022-12-30 14:23:44 +01:00
D.R.racer
ce7ab1d73c
Fixup: build MK25/MK3 (non-S)
2022-12-30 14:23:44 +01:00
D.R.racer
ebbf2378ed
Update MMU error texts
...
as per https://github.com/prusa3d/Prusa-Error-Codes/pull/71
2022-12-30 14:23:44 +01:00
D.R.racer
5e103cc24e
Fixup: restoring temp. while Load2ExtrFailed
2022-12-30 14:23:44 +01:00
D.R.racer
d4f0f363cd
Fixes from tests
...
- introduce Cut Filament
- limit retries try-unload
- fix waiting in "Load to extruder failed" error screen
- add LOAD_TO_EXTRUDER_FAILED error definition
2022-12-30 14:23:44 +01:00
D.R.racer
a30ea1c5ab
Rename error: Load to Extruder Failed
...
as per request from the Content team
2022-12-30 14:23:44 +01:00
D.R.racer
0a3517e8b2
Show an error screen when try-unload fails to push filament into nozzle
...
This is a prototype implementation of having the ability to show an MMU error screen even for printer's errors (during an MMU operation).
Also, the retry count of unloads after failed load the extruder tube is now limited to ~3 attempts.
Technically, since this very error is not an MMU's one (MMU is just fine at this stage) but a printer's one I tried to hack the existing error-reporting infrastructure to handle such a case.
The original idea of this approach was suggested by @vintagePC
2022-12-30 14:23:44 +01:00
D.R.racer
b2b7990cfc
Allow tweaking try-unload feedrates
...
It looks like MMU2_VERIFY_LOAD_TO_NOZZLE_FEED_RATE can get much higher that the original 20mm/s.
50mm/s is the default now, can be tweaked further.
2022-12-30 14:23:44 +01:00
Yuri D'Elia
c5d2aedfe4
wizard: Ask about the sheet before doing Z calibration
...
Ask to install the sheet immediately after removing the test print.
This makes further messages less confusing.
2022-12-30 14:14:01 +01:00
Yuri D'Elia
66071c0b5b
wizard: Resume the wizard for missing calibrations during upgrades
...
Instead of checking for explicit versions, resume the wizard if some
(new) wizard is missing.
This handles both the old SELFTEST check, the new thermal model
and any future check in the same fashion.
2022-12-30 14:14:01 +01:00
Yuri D'Elia
2a1511f7b1
Read version data from progmem in eeprom_fw_version_older_than
2022-12-30 14:14:01 +01:00
Yuri D'Elia
dd99b1ab32
wizard: Disable temperature model during hotend testing
...
This avoids confusing error messages if the hotend is defective and
caught by selftest itself.
Rearrange Stopped state checks (saves 2 bytes)
2022-12-30 14:14:01 +01:00
Yuri D'Elia
8fa0a22b8d
wizard: Allow partial resuming after reset
...
Update the eeprom FW version as soon as migration is complete, to avoid
resetting the CALIBRATION_V2 variable at each reset.
Do not implicitly reset the calibration steps for WizState::Run: do this
only for the menu action.
2022-12-30 14:14:01 +01:00
Yuri D'Elia
414972c876
Unbreak build with !PINDA_THERMISTOR
2022-12-30 14:14:01 +01:00
Yuri D'Elia
7828788e5c
Handle CALIBRATION_STATUS_TEMP_MODEL
2022-12-30 14:14:01 +01:00
Yuri D'Elia
2a13ce4c62
Handle CALIBRATION_STATUS_SELFTEST
2022-12-30 14:14:01 +01:00
Yuri D'Elia
b8c1f34e31
Handle CALIBRATION_STATUS_{Z,XYZ}
2022-12-30 14:14:01 +01:00
Yuri D'Elia
b41ece175b
Handle CALIBRATION_STATUS_LIVE_ADJUST
2022-12-30 14:14:01 +01:00
Yuri D'Elia
5ec627c12c
wizard: Rewrite the fw upgrade check logic
...
- Handle the conversion from the V1 calibration status to the V2 bitmap
for all past FW versions.
- Allow to run the wizard in "Restore" mode (for example during upgrade
or service prep) to complete any missing steps.
- Fix service prep to use the above feature by clearing the appropriate
calibration bits.
- Remove exceptions for FW 3.2.0.4 which can now be handled cleanly.
2022-12-30 14:14:01 +01:00
Yuri D'Elia
22c0e15047
wizard: Rewrite the wizard handling loop
...
Simplify status tracking:
- S::Restore to continue to the next logical wizard item
- S::Finish for a successful failure
- S::Failed to exit while showing a failure
2022-12-30 14:14:01 +01:00
Yuri D'Elia
a712546269
wizard: Remove unused wizard stages
...
Remove PreheatPla/IsPla, as we currently always explicitly ask for the
material type.
2022-12-30 14:14:01 +01:00
Yuri D'Elia
da6e56a17e
Simplify altfan override initialization
2022-12-30 14:14:01 +01:00
Yuri D'Elia
9a018230ce
Replace calibration state with a new calibration bitmap
...
- Move calibration status/declarations to util.h
- Allows to query the status of each step independently without assuming
any order
- Allows to extend the calibration with new steps transparently
2022-12-30 14:14:01 +01:00
Yuri D'Elia
2552fee4c7
eeprom: Fix EEPROM_HEAT_BED_ON_LOAD_FILAMENT debug offset in docs
2022-12-30 14:14:01 +01:00
Yuri D'Elia
0e2c2d9eea
Simplify FW eeprom version checks
...
- Generalize force_selftest_if_fw_version() so we can check when upgrading
between arbitrary FW versions.
- Do not call update_current_firmware_version_to_eeprom() prematurely
when forcing self-test (if a reset happens before self-test completes,
the check would be incorrectly skipped on the next run).
2022-12-30 14:14:01 +01:00
Yuri D'Elia
74609009ca
Fix M117 string offset
2022-12-30 14:06:48 +01:00
Yuri D'Elia
9105573ac9
Handle/strip leading whitespace in gcode stream
2022-12-30 14:06:48 +01:00
Yuri D'Elia
a4d427adf2
De-specialize M0/M1/M117
...
Since we no longer scan for the first command these exceptions can be
removed.
2022-12-30 14:06:48 +01:00
Yuri D'Elia
bb1e438f00
Do not scan for GMTD commands
...
Expect these to be always at the start of the line.
2022-12-30 14:06:48 +01:00
Yuri D'Elia
f46be49f7d
Tighten parsing of M0/M1/M117/PRUSA
...
Expect these to be always at the start of the command (which is now
stripped of the extra line number), reducing the number of corner cases
due to these not following the g-code spec.
2022-12-30 14:06:48 +01:00
Yuri D'Elia
7c896a87a4
Remove '*' (checksum) handling in process_commands
...
The checksum is already removed from the command queue so there's no
need to reprocess it in the main loop.
2022-12-30 14:06:48 +01:00
Yuri D'Elia
6651f5ce8b
Strip the line number from the command queue
...
This increases the number of commands that can be queued and at the same
time it avoids a considerable amount of rescanning in a critical path.
2022-12-30 14:06:48 +01:00
Guðni Már Gilbert
797513d3c5
Remove T parameter from M221
...
Fixes #3852
2022-12-30 13:07:56 +01:00
Guðni Már Gilbert
4219beed71
Remove initial cursor setting
...
The cursor position is controlled by
the for-loop
Change in memory:
Flash: -8 bytes
SRAM: 0 bytes
2022-12-30 12:57:07 +01:00
Guðni Már Gilbert
1186b36bfa
Remove whitespace at start of new row
2022-12-30 12:57:07 +01:00
Guðni Már Gilbert
7529eaec44
Remove duplicate code
...
msg_next is NULL, then the end of the message has been reached.
Change in memory:
Flash: -24 bytes
SRAM: 0 bytes
2022-12-30 12:57:07 +01:00
Guðni Már Gilbert
5037d1edbc
delay_keep_alive calls manage_heater and manage_inactivity
...
No need to call them again, the for-loop is very quick
Change in memory:
Flash: -10 bytes
SRAM: 0 bytes
2022-12-30 12:57:07 +01:00
Guðni Már Gilbert
1a9b7d79e6
Don't handle whitespace in a special way
...
Instead of reading and checking if a character is a whitespace
just print it out onto the LCD. This makes the code a bit less
complex. Whether there is a whitespace character, we always end
up reading from program space, so I doubt this has much performance
impact.
Change in memory:
Flash: -38 bytes
SRAM: 0 bytes
2022-12-30 12:57:07 +01:00
Alex Voinea
7925df6aa0
Default check action is continuing
2022-12-30 12:49:57 +01:00
Alex Voinea
96707aadcb
Fix timeout making UI freeze
2022-12-30 12:49:57 +01:00
Guðni Már Gilbert
92cf8da45e
Remove unused defines
2022-12-30 12:49:57 +01:00
Guðni Már Gilbert
df65212449
Add yes-no choice to M862 warning
...
Fixes #3421
Change in memory:
Flash: -98 bytes
SRAM: 0 bytes
2022-12-30 12:49:57 +01:00
Guðni Már Gilbert
cc3d36c78f
Replace labs with fabs
...
Both degHotend and degTargetHotend return a float
In this case it is better to use fabs()
Change in memory:
Flash: -14 bytes
SRAM: 0 bytes
2022-12-29 08:54:50 +01:00
Guðni Már Gilbert
03511a5a7c
Remove redundant ultralcd includes in Marlin_main
...
This also removes two definitions
- ULTRALCD
- LCD_USE_I2C_BUZZER
Neither of them are defined anywhere
2022-12-27 12:03:56 +00:00
Guðni Már Gilbert
9757502abc
Remove pins_arduino.h include
...
This header is already included with Arduino.h which
is included in Marlin.h header.
2022-12-27 12:03:14 +00:00
Guðni Már Gilbert
72857c902c
drop conv2str dependency in Marlin_main
2022-12-27 11:59:22 +00:00
Alex Voinea
fea608c8c4
A few more meassuring typos
2022-12-22 12:54:42 +01:00
Yuri D'Elia
b3790f4094
Typo: meassure -> measure
2022-12-22 12:54:42 +01:00
Yuri D'Elia
52941b1111
Rename xyzcal_meassure_center back to xyzcal_meassure_enter
...
Keep the enter/leave pairs
2022-12-22 12:54:42 +01:00
Yuri D'Elia
515a625180
Typo: hysterezis -> hysteresis
2022-12-22 12:54:42 +01:00
Alex Voinea
8414c272bf
Merge pull request #3787 from gudnimg/PFW-1439
...
PFW-1448 Fix underextrusion + compensate load to nozzle extruder sequence for Extra Loading Distance
2022-12-22 11:07:28 +01:00
3d-gussner
9ca7760c2e
Merge pull request #3830 from 3d-gussner/MK3_XYZ_cal_fix
...
MK3: XYZ cal change message and add LCD ouput
2022-12-20 14:16:49 +01:00
3d-gussner
0bcb4ab59d
Merge pull request #3822 from wavexx/tm_partial_lock
...
MK3: TM: Prevent lockout on invalid model values
2022-12-20 14:13:56 +01:00
3d-gussner
7fef570d1b
Change xyz cal message `up to 24 min.` instead `approx. 12 min.`
2022-12-20 10:30:53 +01:00
Guðni Már Gilbert
355b670cd4
Remove SWSPI which is not used/implemented
2022-12-20 10:10:45 +01:00
Alex Voinea
2b38080c7e
Merge pull request #3833 from leptun/MK3_fix_MK2.5_softReset
2022-12-20 10:02:14 +01:00
3d-gussner
ea6450f072
Add LCD output during xyz calibration
2022-12-20 08:36:19 +01:00
3d-gussner
65f5b9e53d
Merge pull request #3818 from wavexx/tm_default_state
...
TM: Provide full defaults for model data and enable it by default
2022-12-20 07:08:25 +01:00
Alex Voinea
62ea78d46e
Handle configurable distance past gears
2022-12-19 23:49:12 +01:00
Alex Voinea
70356b71df
Handle filament sensor position that is not 0
2022-12-19 23:41:43 +01:00
Guðni Már Gilbert
c72ae8a2f3
PFW-1439 Remove parameters from execute_load_to_nozzle_sequence
2022-12-19 21:12:12 +00:00
Guðni Már Gilbert
6ee5f08505
PFW-1439 Compensate load to nozzle extruder sequence for Extra Loading Distance
...
The Extra Loading Distance is configurable by the user.
We need to compensate the hardcoded sequence
such that it does not extrude too much or
too little. Currently the firmware
extrudes too little.
2022-12-19 21:12:11 +00:00
Alex Voinea
97ddcc66bb
Merge pull request #3839 from leptun/MMU2_split_variant_config
...
MMU2 split variant config
2022-12-19 20:31:01 +01:00
Yuri D'Elia
c0f96e062b
TM: Force initialization after reset
2022-12-19 18:08:01 +01:00
Alex Voinea
ba0f051f72
Revert accidental removal of check
2022-12-18 15:55:48 +01:00
Guðni Már Gilbert
4c32e8b403
PFW-1457 make CHECK_FSENSOR into a function
2022-12-18 12:23:20 +00:00
Alex Voinea
5c1c6d9f3b
Adjust MMU2 specific distances
2022-12-18 10:30:43 +01:00
Alex Voinea
8623d9ff55
Split the mmu2 config into MMU2 and MMU2S
2022-12-18 09:58:20 +01:00
Guðni Már Gilbert
fee68b0f0d
PFW-1457 Do not unload at start of First Layer Cal
...
Fixes issue where First Layer Cal. triggers an unload before any
filament is loaded
The purpose of this if() statement is to handle the case where
a user or developer is sending T-codes to the printer directly
via Serial. Such as when one first sends T0 and then T4.
And unload must be triggered in-between, we can do this automatically
if FINDA detect filament.
Change in memory:
Flash: -10 bytes
SRAM: 0 bytes
2022-12-18 05:51:21 +00:00
Yuri D'Elia
dba3428ef2
Improve MSG_ACK_ERROR message
2022-12-17 20:25:47 +01:00
Yuri D'Elia
80c7790e87
Also prevent longpress when Stopped
2022-12-17 17:30:44 +01:00
Yuri D'Elia
271523ad45
TM: Disallow preheat/filament actions when stopped
...
Require acknowledgement first
2022-12-17 17:00:33 +01:00
Yuri D'Elia
f8290f25cd
TM: Allow to resume without a running print
...
If there is no running print, and the printer is Stopped, add a new
"Acknowledge error" menu entry to unlock the printer.
This simply calls lcd_print_stop(), which is identical in behavior to a
thermal error with a running print.
2022-12-17 16:48:39 +01:00
Yuri D'Elia
0972ef70d0
Use menu_set_block() in ThermalStop()
...
Set a menu block for fatal thermal errors instead of abusing
lcd_return_to_status() to kick the user out of the menus.
This now allows a thermal model error to be recoverable through menu
access.
2022-12-17 16:42:22 +01:00
Yuri D'Elia
8d719efa79
Do not show/call LCD status updates when unchanged
...
This mostly prevents useless serial noise
2022-12-17 16:35:26 +01:00
Yuri D'Elia
365f845c99
TM: correctly mark repeated anomalies
2022-12-17 16:33:42 +01:00
Yuri D'Elia
6e2f016655
TM: Clear the Stopped state when stopping the current print
...
We allow resuming from the LCD via start print and resume print,
it makes sense to clear the error on stop too.
For this reason distinguish whether the action is performed
automatically or manually (ie: interactively).
The error is only cleared when the command is run interactively.
2022-12-17 16:11:31 +01:00
Yuri D'Elia
119dc10b8f
Rename print_stop() to lcd_print_stop_finish() for clarity
2022-12-17 16:03:03 +01:00
Alex Voinea
c5d406d12f
Fix interrupts not enabled during setup()
2022-12-16 16:46:08 +01:00
Guðni Már Gilbert
eb8ec9f8b9
If an old firmware is detected, make sure the protocol is actually stopped
...
The printer shouldn't continue endlessly asking for a version if an old MMU is detected.
Also if the protocol is supposed to be turned off, it
shouldn't be sending S0 queries.
2022-12-16 16:23:19 +01:00
Yuri D'Elia
9f3f0baa47
mmu: Use strncpy when possible
...
Since tmp is always null-terminated we can save some time compared to a
memcpy call.
2022-12-16 16:21:59 +01:00
Yuri D'Elia
b3b9778341
mmu: Silence repeated S0 requests
...
Update "S0" CRC on replies so that the message is properly silenced.
2022-12-16 16:21:59 +01:00
Yuri D'Elia
78cf51274f
mmu: Embed the newline in MMU2_ECHO_MSG/MMU2_ERROR_MSG
...
This allows to redefine both macros to silence debugging messages, since
we can't redefine the base SERIAL_ECHO.
2022-12-16 16:21:59 +01:00
Yuri D'Elia
5f2f6dde13
array<>::size should return constexpr expression
...
This allows to size buffers at compile time (matches c++11 behavior).
2022-12-16 16:21:59 +01:00
Guðni Már Gilbert
2e7c237a17
Cleanup: remove automatic parameter from unload_filament()
...
In M600 and M702, the Z-lift is taken care of outside this function
so it makes no sense to have a Z-lift within unload_filament()
Only exception to this is in the wizard, there I moved the Z-lift to
happen before we start heating the nozzle.
Change in memory:
Flash: -12 bytes
SRAM: 0 bytes
2022-12-16 16:20:09 +01:00
3d-gussner
090c72367d
Minor Fix for PR2235
...
Shorten message to c=12 as some translation of `Yes/No` are 4 chars long
2022-12-16 16:10:15 +01:00
Alex Voinea
d43a7da20d
fix watchdog not getting disabled on user app boot
2022-12-16 16:01:29 +01:00
3d-gussner
74545e2133
Fix `µ` character shown on translations
2022-12-16 15:59:37 +01:00
Yuri D'Elia
c05ac535be
TM: reset fan measuring state when changing speed
...
Ensure that fan checks are reset and use the new speed at each step of
the calibration.
This also gives extra time to the fan to ramp-up from a cold start,
when a fancheck could previously start right *after* the speed change.
Should fix #3791
2022-12-16 15:30:30 +01:00
Alex Voinea
d80e32fa31
retrigger build
2022-12-16 12:55:30 +01:00
Alex Voinea
3f6089f2c1
More documentation for pins file
2022-12-16 12:29:59 +01:00
Alex Voinea
e8c8945650
Disable the watchdog early in the program
2022-12-16 12:25:44 +01:00
Alex Voinea
451f601697
Fix MK2.5 softReset()
2022-12-16 12:10:47 +01:00
Yuri D'Elia
001876a807
Parenthesize IS_SD_PRINTING defensively
2022-12-15 08:13:38 +01:00
Yuri D'Elia
3066fd1db3
Replace two expressions with cmd_head
2022-12-15 08:13:02 +01:00
Yuri D'Elia
a588a5f695
Allow M310 to bypass the Stopped state for recovery
...
Since M310 cannot change the heaters, allowing M310 S0 (and changing
parameters) allows to recover a usb-controlled printer which has been
locked-out due to bad model settings.
2022-12-14 13:47:11 +01:00
Yuri D'Elia
c7865a83f2
Keep a pointer past the line number in cmdqueue
...
This allows to skip line numbers transparently and perform faster
checks on the actual command to process.
2022-12-14 13:47:11 +01:00
Yuri D'Elia
5c4ec5dd4f
TM: Do not lockout the menus on thermal errors
...
This prevents the ability to run gcode from the SD card.
In a thermal error with faulty values, and without serial access, this
is the only way to process an M310 instruction and recover.
2022-12-13 18:38:26 +01:00
Yuri D'Elia
36575a4f83
Restore the previous model state when performing a nozzle change
...
Do not force-enable the model if it was previously disabled.
2022-12-12 20:17:56 +01:00
Yuri D'Elia
c5ec77a1ce
wizard: Allow finishing the calibration through menus
...
If the wizard is interrupted during model calibration, allow the
menu to mark "temperature model" calibration as complete.
2022-12-12 18:25:17 +01:00
Yuri D'Elia
0c042440ee
eeprom: Document new calibration state
2022-12-12 18:25:17 +01:00
Yuri D'Elia
118b39da39
wizard: Rework the thermal model calibration logic
...
- Correctly sequence the enqueued commands in order to check for the
real calibration result.
- Perform autocalibration with self-check enabled.
- Only save/continue the wizard if autocalibration succeeds.
2022-12-12 18:25:07 +01:00
Yuri D'Elia
38d893589f
selftest: Handle thermal errors in lcd_selfcheck_check_heater
...
- Simplify lcd_selfcheck_check_heater loop
- Check for/abort on Stopped (indicating a thermal failure).
2022-12-12 18:24:58 +01:00
Yuri D'Elia
4e7c830661
Remove M999 remnants
...
This was already removed in fc10ca3146
but got reinstated by mistake in the mmu2 merge.
Also remove another incorrect Stopped usage.
2022-12-12 17:52:48 +01:00
Yuri D'Elia
249be543fc
TM: Restore all original values if autotune fails
...
- Ensures repeated autotune attempts with self-check can't succeed due
to different starting conditions.
- Allows for a simpler workflow during selftest and wizard if autotune
fails.
2022-12-12 17:52:48 +01:00
Yuri D'Elia
2051809e2f
TM: Store only the last autotune result state
...
- Remove tm::valid and temp_model_valid as it's a duplicate of the
calibrated() state.
- Add temp_model_autotune_result() for future use.
2022-12-12 17:52:48 +01:00
Yuri D'Elia
324e501b18
TM: Set default resistance levels for MK3/MK3S
...
Provide average calibrated values for all fan levels for MK3/MK3S
variants and enable the model by default.
This ensures the calibration step is not skipped unless explicitly
disabled.
Force-clear fan values during autotune to restore the previous
calibration behavior, as fan resistance levels can be too big and
prevent the autotune-with-selfcheck to fail.
2022-12-12 17:52:48 +01:00
Yuri D'Elia
877c0bd35c
Fix potential buffer overflow in LCD messages
2022-12-12 17:52:48 +01:00
Yuri D'Elia
e2f1bfe506
TM: Remove unnecessary display comments
...
Favor code readability
2022-12-12 17:52:48 +01:00
Yuri D'Elia
4d87f65b68
Merge pull request #3443 from gudnimg/m109-turn-off-fan
...
Turn off print fan while resuming print from RAM
2022-12-12 15:20:20 +01:00
Yuri D'Elia
d84e497007
Merge pull request #3805 from 3d-gussner/MK3_Fix_M862.4_strict
...
MK3: Fix `M862.4` with [strict] mode
2022-12-12 12:38:15 +01:00
Guðni Már Gilbert
613ea290f5
Add a comment
2022-12-10 10:04:17 +00:00
Guðni Már Gilbert
9ed46df97f
Don't show full screen message meant for single color setup
...
load_filament_to_nozzle will show a more precise full screen message when an MMU is used.
2022-12-10 10:00:58 +00:00
Guðni Már Gilbert
70451b6bd3
Turn off print fan while restoring print from RAM
2022-12-10 09:53:43 +00:00
3d-gussner
40cc6dcb6d
Merge pull request #3783 from leptun/enable_PRUSA_SN_all_variants
...
Allow "PRUSA SN" to print the SN in eeprom on all variants
2022-12-09 14:51:57 +01:00
Guðni Már Gilbert
1e39012953
Merge pull request #3793 from gudnimg/PFW-1453
...
PFW-1453 Stop Print: Don't unload if FINDA is not triggered
2022-12-09 12:54:16 +00:00
Yuri D'Elia
68c5cdce1c
Merge pull request #3780 from gudnimg/stop-print-optimisations
...
optimisation: Improve Stop Print menu
2022-12-08 19:41:52 +01:00
3d-gussner
92f2281b1a
Merge pull request #2335 from Panayiotis-git/MK3_NoBedHeating_onLoadUnload
...
@Panayiotis-git Thanks a lot!
Finally after 3 years 21 days your PR gets merged 🦕
2022-12-08 18:45:12 +01:00
Yuri D'Elia
0cedb92ac6
Simplify firmware/gcode version comparisons
2022-12-07 18:59:29 +01:00
3d-gussner
96e4881da5
Merge pull request #3794 from gudnimg/fix-m862-q
...
Fix undefined pointer in `M862.2 Q` and `M862.3 Q`
2022-12-07 13:04:45 +01:00
3d-gussner
6f5a67491c
Fix `M862.4` with [strict] mode
...
Max 8 falvor versions
2022-12-06 13:18:52 +01:00
3d-gussner
1c9a3a6b25
Add Nozzle change menu to FARM mode under Settings
2022-12-05 18:22:18 +01:00
Guðni Már Gilbert
a8fe71df8c
PFW-1453 Stop Print: Don't unload if FINDA is not triggered
2022-12-05 16:45:57 +01:00
Alex Voinea
52965bd05d
Avoid using global variables
...
Flash: -68B
RAM: -4B
2022-12-05 16:43:51 +01:00
Guðni Már Gilbert
4c27d057b8
Don't inline fSetMmuMode
...
Saves 8 bytes of flash
2022-12-05 16:43:51 +01:00
Guðni Már Gilbert
074b62361f
Fix #3788
...
fSetMmuMode needs to be called
in order for the commands to work:
M862.2 Q
M862.3 Q
2022-12-05 16:43:51 +01:00
Panayiotis-git
c75c81ce4f
Do not heat the bed, on load/unload
...
If during a paused print, the preheat is canceled, keep the bed target temperature
Display bed temperatures only if bed is also heated
Remove not needed variables nTargetOld and nTargetBedOld from the mFilamentItem function
Define new Setting "HeatBedOnLoad" [Yes/No]
2022-12-04 19:26:34 +02:00
Guðni Már Gilbert
fb530ce543
PFW-1454 Send button to MMU on MMU SELFTEST FAILED screen
...
Fixes an issue where the button on the MMU error screen doesn't do anything
when MMU SELFTEST FAILED is rendered
2022-12-04 11:04:00 +00:00
Guðni Már Gilbert
6d62fb0d65
Merge pull request #3784 from DRracer/opt01
...
Optimize rendering MMU Error sensor line
2022-12-02 17:12:05 +00:00
Jakub Dolezal
3e976e04ca
Merge pull request #3777 from 3d-gussner/PFW-1431
...
PFW-1431: Add "PA Preheat"
2022-12-02 13:34:18 +01:00
3d-gussner
54ef2a6c28
Merge pull request #3769 from 3d-gussner/MK3_Temp_model_cal_wizard
...
PFW-1434: MK3 Temp model calibration during wizard
2022-11-30 15:33:38 +01:00
3d-gussner
1bbcdb0c0d
Merge pull request #3774 from 3d-gussner/MK3_Nozzle_change
...
PFW-1435 Nozzle change menu
2022-11-30 15:32:18 +01:00
3d-gussner
0a6388cc56
Update internal translations
...
Fix G28 W
2022-11-30 15:01:24 +01:00
Alex Voinea
500131d51d
fullscreen message: use \n to force the next word on the next line
...
Useful for printing short URLs since those contain punctuation characters, which get treated at the end of a word under usual circumstances
2022-11-30 10:17:28 +01:00
3d-gussner
8f44d1102c
Add PA preheat menu
2022-11-30 06:42:32 +01:00
Guðni Már Gilbert
23613c7eb1
optimisation: Stop print menu
...
There is no need to manually track the cursor position.
We can use the menu API:
MENU_BEGIN()
...
// menu items in between here
...
MENU_END()
Change in memory:
Flash: -116 bytes
SRAM: 0 bytes
2022-11-26 10:18:47 +00:00
D.R.racer
a666c0f6f4
Optimize rendering MMU Error sensor line
...
CPUFLASH: -32B
2022-11-25 13:30:53 +01:00
Alex Voinea
83c9e946e4
Fix recursion
2022-11-24 16:15:51 +01:00
3d-gussner
4f3c188017
Update internal translations
...
Fix typo
2022-11-24 10:53:04 +01:00
D.R.racer
fea1520dfb
Fix & optimize FW version parsing and checking
...
PFW-1433
2022-11-23 13:34:13 +01:00
3d-gussner
32673e1681
Nozzle change menu
2022-11-23 11:39:26 +01:00
3d-gussner
2cd42f8433
Fix typo
...
Add Norwegian translations thanks to @OS-kar
2022-11-22 08:26:20 +01:00
Guðni Már Gilbert
c8157919b1
PFW-1440 Fix issue where cooldown timer is not set after a faile retry
2022-11-21 12:54:53 +01:00
Guðni Már Gilbert
37ac33bc32
Fix compiler warning
2022-11-21 12:54:53 +01:00
D.R.racer
fe6e3ca2b1
Unload first before retrying
...
Should free the filament if accidentally held by the fsensor.
2022-11-20 19:23:07 +01:00
D.R.racer
5639620041
Avoid watchdog while doing VerifyFilamentEnteredPTFE
2022-11-20 17:27:36 +01:00
D.R.racer
84d9eee61d
Resume hotend temperature if parked + MMU restarted
...
PFW-1355
2022-11-20 17:27:36 +01:00
Guðni Már Gilbert
01c1f4a8dd
Load test: Monitor unload as well
2022-11-20 17:27:36 +01:00
Guðni Már Gilbert
5c8ea4c90a
fixup
2022-11-20 17:27:36 +01:00
Guðni Már Gilbert
327f0edb17
VerifyFilamentEnteredPTFE must take into account the Extra Loading Distance
2022-11-20 17:27:36 +01:00
Guðni Már Gilbert
c9d9ba0b1a
Add a bracket around subtraction, just in case
2022-11-20 17:27:36 +01:00
Guðni Már Gilbert
ef51b5778d
Fix VerifyFilamentEnteredPTFE
...
Test should push filament first and then retract.
2022-11-20 17:27:36 +01:00
D.R.racer
aaebaf163f
Cleanup MSG_MMU_POWER_FAILS
2022-11-20 17:27:36 +01:00
D.R.racer
a17153f877
Make TMC mask more readable
2022-11-20 17:27:36 +01:00
Guðni Már Gilbert
f1ed2fc5c7
Fix issue where tool_change_extruder is not reset after retry
2022-11-20 17:27:36 +01:00
D.R.racer
541cd3ae94
Remove debug messages of Interrupted state
2022-11-20 17:27:36 +01:00
Guðni Már Gilbert
46f4f2658d
PFW-1432 Reduce LOC
...
If verification test fails, increment load fail statistic
2022-11-20 17:27:36 +01:00
Guðni Már Gilbert
03235c8aab
PFW-1432 restore toolchange load testing
2022-11-20 17:27:36 +01:00
D.R.racer
adb24cd410
Increment errors in ReportError
2022-11-20 17:27:36 +01:00
D.R.racer
4eaabbf092
Revive MMU stats + LCD screens
2022-11-20 17:27:36 +01:00
D.R.racer
fe11b7a247
Tune Interrupted state based on unit tests
...
Now finally the printer can restart ToolChange if MMU restarted.
2022-11-20 17:27:36 +01:00
D.R.racer
ffbd95b482
Unify naming convention (index->slot)
...
in all top level MMU-related functions
2022-11-20 17:27:36 +01:00
D.R.racer
e414413b2e
Refactor ToolChange+LoadToNozzle
...
Add basic infrastructure for handling of repeated commands until they finish correctly.
2022-11-20 17:27:36 +01:00
D.R.racer
10a9e0f0a0
Recover from MMU restart while performing a command
...
PFW-1427
2022-11-20 17:27:36 +01:00
Guðni Már Gilbert
603faddd25
Fix bug where toolchange counter is not rendered
2022-11-20 15:42:29 +00:00
Guðni Már Gilbert
5dc539cda5
fixup
2022-11-20 13:12:01 +01:00
Guðni Már Gilbert
62810c5a7c
optimisation: lcdui_print_extruder
...
Simplify the rendering to cover more scenarios:
"[nr.]>?"
"?>?"
Both of these indicate there is a bug in the firmware.
Currently these are not handled and result in the status screen being corrupted.
This is because we are trying to write a 3 digit number
where there is not space on the LCD for it.
Change in memory:
Flash: -52 bytes
SRAM: 0 bytes
2022-11-20 13:12:01 +01:00
3d-gussner
281a217549
Update Temp Model messages
...
Deepl translate cs,de,es,fr,it,nl,pl
2022-11-20 10:49:46 +01:00
3d-gussner
f2f54da5b0
Unhack selftest hack during wizard
2022-11-20 10:48:49 +01:00
Guðni Már Gilbert
d592586d94
cleanup: remove dead code lcd_adjust_z()
...
It's only used when MESH_BED_LEVELING is not defined. According to
the configuration files, all printers supported use MESH_BED_LEVELING.
So I think we are safe in removing this dead code.
2022-11-19 22:19:48 +00:00
Guðni Már Gilbert
411d1da3c8
Merge pull request #3763 from gudnimg/optimisation-float-conversions
...
optimisation: TCodes accepts `uint8_t` not `float`
2022-11-18 19:52:22 +00:00
Alex Voinea
58775b8b55
Change unsigned long to uint32_t
2022-11-18 14:50:07 +01:00
Alex Voinea
bda134a01e
Save a bit of RAM from CS
...
Do not store EEPROM_VERSION in ram
flash: -6
RAM: -2
2022-11-18 14:50:07 +01:00
Alex Voinea
ef83fefce1
More optimization
2022-11-18 14:50:07 +01:00
Alex Voinea
8f4ac82273
eeprom_init_default also returns the read/default value
2022-11-18 14:50:07 +01:00
Alex Voinea
b317786110
More configuration store savings
...
flash: -94B
RAM: 0B
2022-11-18 14:50:07 +01:00
Alex Voinea
b551bdae76
Some more CS improvements
...
flash: -2B
RAM: 0B
2022-11-18 14:50:07 +01:00
Alex Voinea
5305dbd299
Sheet name initialization improvements
...
The code looks better, but it takes a bit more flash. I prefer it like this
flash: +20B
ram: 0B
2022-11-18 14:50:07 +01:00
Alex Voinea
bba5385a61
Move string to progmem
...
flash: -84B
RAM: -4B
2022-11-18 14:50:07 +01:00
Alex Voinea
6edc71d0ae
Remove deprecated configs
2022-11-18 14:50:07 +01:00
Alex Voinea
dcc48c0052
Remove eeprom _int8t functions
...
flash: -48B
RAM: -4B
2022-11-18 14:50:07 +01:00
Alex Voinea
af60cd7d79
Optimize EEPROM_writeData and EEPROM_readData
...
flash: -162B
RAM: -4B
2022-11-18 14:50:07 +01:00
Alex Voinea
771f833a44
Implement eeprom dword functions
2022-11-18 14:50:07 +01:00
Alex Voinea
ca943cceec
Split the increment function into increment and add
...
No size difference since the compiler did a good job optimizing the inc argument (always 1 before).
2022-11-18 14:50:07 +01:00
D.R.racer
455c29e78b
Optimize EEPROM usage/functions
2022-11-18 14:50:07 +01:00
D.R.racer
414d3f1c12
Display Welcome message after MMU progress report ends
...
Should make the status line look cleaner when the printer is not printing.
2022-11-18 14:09:48 +01:00
Guðni Már Gilbert
c86c961d4e
M600: Fix bug where fan is not turned off
...
The firmware saves the current fanspeed before parking,
and the fanspeed is restored after unparking. The problem is the fan
was never actually paused.
Fixes #3670
2022-11-18 11:18:29 +01:00
Alex Voinea
b147fcee77
XYZ calibration fixes
2022-11-18 00:18:42 +01:00
Alex Voinea
384a6d1989
Fix wizard serial messages
2022-11-17 23:03:03 +01:00
3d-gussner
30ec4e8b53
Inital Temp Model cal wizard
2022-11-17 15:19:35 +01:00
Guðni Már Gilbert
2096accc5f
Remove unused gcode level check code
...
This code was introduced with v3.8.0 but was always disabled.
I propose the code be removed since it has not been enabled
for 3 years since its introduction.
2022-11-17 08:05:27 +01:00