Commit Graph

5540 Commits

Author SHA1 Message Date
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
D.R.racer 6059398004 Introduce MMU Error: INSPECT_FINDA (FINDA_FLICKERS) 2022-11-17 07:58:11 +01:00
Alex Voinea 29882b625b Remove LcdCommands::FarmModeConfirm 2022-11-17 05:46:33 +01:00
Guðni Már Gilbert e11ef11a64 PFW-1425 Rename "Load to Extruder" to "Loading Test" 2022-11-16 06:00:15 +01:00
Guðni Már Gilbert 7b43f322de PFW-1425 Move Reset MMU setting 2022-11-15 17:32:27 +01:00
Guðni Már Gilbert b4920d7fa8 PFW-1425 use mmu2.Enabled instead of EEPROM read 2022-11-15 17:32:27 +01:00
Guðni Már Gilbert 3f4ac254ab PFW-1425 Move MMU settings under a common if statement
We only need to check if the MMU is enabled once,
no need to do it in every submenu.
This way we save little bit of flash memory.

Change in memory:
Flash: -24 bytes
SRAM: 0 bytes
2022-11-15 17:32:27 +01:00
Guðni Már Gilbert 8f3f071fd4 PFW-1425 Move Load to Extruder menu to Settings menu
No change in memory footprint
2022-11-15 17:32:27 +01:00
Guðni Már Gilbert 5239f1c176 cleanup: remove old extern for mmu_print_saved 2022-11-15 09:44:02 +01:00
Guðni Már Gilbert 4f58812478 optimise lcd_sdcard_menu with lcd_print_pad
Change in memory:
Flash: -46 bytes
SRAM: 0 bytes
2022-11-13 09:29:37 +01:00
Guðni Már Gilbert 184e19dd60 further optimise lcdui_print_status_line
We can use lcd_print_pad to determine
whether the end of the file name was reached

lcd_print_pad now returns the last character pointed to.
If the end of the string was reached, it will be the null delimeter which
evaluates to "false" in an if statment (same as NULL).
Else "true" means the end of the string was not reached.

Change in memory:
Flash: -42 bytes
SRAM: 0 bytes
2022-11-13 09:29:37 +01:00
Guðni Már Gilbert 0af7ef0201 optimisation: reduce code size in showing file name being printed
Change in memory:
Flash: -52 bytes
SRAM: 0 bytes
2022-11-13 09:29:37 +01:00
Alex Voinea a2bbc4f585
Merge pull request #3745 from leptun/MK2.5_XYZ_Cal_fixes
MK2.5 XYZ calibration fixes
2022-11-12 21:48:16 +01:00
Guðni Már Gilbert 006fe110cc Don't raise MMU error screen until retry is done
Change in memory:
Flash: +8 bytes
SRAM: 0 bytes
2022-11-12 18:47:10 +01:00
VintagePC 68bd7f9b19 Fix excessive flash usage. 2022-11-12 18:47:10 +01:00
VintagePC ecef69012a Fix PFW-1364 & possible comms timeout during reheat 2022-11-12 18:47:10 +01:00
Guðni Már Gilbert 509813f60b optimsation: TCodes accepts uint8_t not float
Change in memory:
Flash: -20 bytes
SRAM: 0 bytes
2022-11-12 16:50:45 +00:00
Alex Voinea 661b3a83ff MK2.5: fix swapped yes/no messaged for Z manual alignment 2022-11-10 22:20:46 +01:00
Alex Voinea 1cdc2e712b MK2.5: unblock planner after plan_abort_hard() 2022-11-10 22:20:01 +01:00
3d-gussner fd832f9ccf
Merge pull request #3737 from gudnimg/fix-longpress-inactivity-timeout
Fix long-press LCD inactivity timeout
2022-11-08 14:10:57 +01:00
Guðni Már Gilbert 76a164e651 fixup 2022-11-08 13:49:40 +01:00
Guðni Már Gilbert 08460bd403 PFW-1397 Drop ON_MENU_ENTER
Using _menu_data_t turns out to save *just* a little bit more flash. So for now just use it.
2022-11-08 13:49:40 +01:00
Guðni Már Gilbert 390f69a82f PFW-1397 Fix: ON_MENU_ENTER was always run 2022-11-08 13:49:40 +01:00
Guðni Már Gilbert 59a452ac27 PFW-1397 minor comment tweaks 2022-11-08 13:49:40 +01:00
Guðni Már Gilbert f160f5594d PFW-1397 cleanup statistics menu
Change in memory:
Flash: -18 bytes
SRAM: -1 byte
2022-11-08 13:49:40 +01:00
Guðni Már Gilbert 82bd9db1d6 PFW-1397 Implement ON_MENU_ENTER to simplify code
ON_MENU_ENTER runs code within the brackets only once
after a new menu is entered.

For the tool change menu, this allows us to display the data and
read from EEPROM only once.
2022-11-08 13:49:40 +01:00
Guðni Már Gilbert a896dfd4e0 PFW-1397 To reserve EEPROM write cycles, only update toolchange counter when a print finishes or is stopped 2022-11-08 13:49:40 +01:00
Guðni Már Gilbert 3120bf0aa2 PFW-1397 Implement new function increment_tool_change_counter()
Reduces flash consumption by 44 bytes
2022-11-08 13:49:40 +01:00
Guðni Már Gilbert fcfb868167 PFW-1397 Add a temporary menu item to show the statistic
The location of the menu has not been decided. Currently I placed it where convenient.
2022-11-08 13:49:40 +01:00
Guðni Már Gilbert 5a60a85467 PFW-1397 Increment toolchange statistic 2022-11-08 13:49:40 +01:00
Guðni Már Gilbert 0af7d28074 PFW-1397 Allocate EEPROM memory for toolchange counter 2022-11-08 13:49:40 +01:00
Guðni Már Gilbert 7fe22e8f79 Fix long-press LCD inactivity timeout
Fixes #3715

When a long-press is triggered, the LCD inactivity timer
needs to be restarted. This is done with lcd_timeoutToStatus.start()

This also fixes situations where a long-press is triggered, and the timer
times out immediately (because it was not reset properly)

Change in memory:
Flash: +8 bytes
SRAM: 0 bytes
2022-11-06 13:43:14 +00:00
3d-gussner 853adbf411 Bump up build number
+1 for commit
+1 for merge
2022-11-04 11:16:07 +01:00
3d-gussner 7c009cadb8 Bump up Revision to ALPHA1 6051
Temporary fix for MSG_BTN_MORE
pre-release pot and po update
2022-11-04 10:21:39 +01:00
DRracer 7b20f8c6f3
Merge pull request #3717 from 3d-gussner/MK3_Temp_Model_menu
Add Menu `Calibration -> Temp. model cal`
2022-11-03 12:12:55 +01:00
3d-gussner 1e0909d50c Disable `Error:` messages for MMU2 errors 2022-11-03 12:09:03 +01:00
3d-gussner 8543942acb Fix Z-leveling 2022-11-03 06:22:57 +01:00
3d-gussner fd6da0e766 Fix typo
Add lcd_setatatus_serial to output lcd status message and serial at the same time
2022-11-02 10:09:32 +01:00
Guðni Már Gilbert 7bc7f21fa5 mmu: move RetryIfPossible outside the error screen
This fixes issue where 'retryAttempts=3' may be spammed in the logs

Change in memory:
Flash: 0 bytes
SRAM: 0 bytes
2022-11-01 06:22:39 +01:00
3d-gussner 2ac2cd2255 Fix MK25/S builds 2022-10-26 14:27:22 +02:00
3d-gussner 072b3f8300 Temp Model cal. menu 2022-10-26 13:34:27 +02:00
3d-gussner f4a2c1c794 Update translations
Fix button msg
Update Dutch `F. jam detect`
2022-10-25 10:29:35 +02:00
Guðni Már Gilbert 45c72d48ed optimisation: use failstats_reset_print in factory_reset_stats
Change in memory:
Flash: -56 bytes
SRAM: 0 bytes
2022-10-23 09:58:56 +00:00
Alex Voinea edc5d013dd
Merge pull request #3698 from leptun/farm_presort_cache
Farm mode: cache filenames in the presort function
2022-10-21 15:43:49 +02:00
3d-gussner b792d47350
Merge pull request #3694 from 3d-gussner/MK3_Hotend_fan
PFW-1415: Rename `Extruder fan` to `Hotend fan`
2022-10-19 08:47:15 +02:00
Alex Voinea b485992c9e If in farm mode, force the sorting direction to be reversed
So in an ideal scenario, the newest file is first. This of course breaks as soon as a file is deleted/renamed/moved, but it should at least be fixed now compared to before where the direction could be influenced by a disabled setting
2022-10-18 17:29:31 +02:00
Alex Voinea 798f215f88 Refactor SD menu settings 2022-10-18 17:24:35 +02:00
3d-gussner eaaf1d6872 Rename Sheets
- `Satin 1` to `Satin  `
- `Satin 2` to `NylonPA`
2022-10-18 10:20:01 +02:00
Alex Voinea e18bfce597 Farm mode: cache filenames in the presort function 2022-10-17 20:17:28 +02:00
3d-gussner e83728f72c Change fan RPM display to 5 digits
All credits to @ WarrenSchultz for initial PR https://github.com/prusa3d/Prusa-Firmware/pull/3656
2022-10-17 15:41:05 +02:00
3d-gussner f2fe9a51ee rename `Extruder fan` to `Hotend fan` 2022-10-17 13:49:18 +02:00
Guðni Már Gilbert 2682b64a09 Optimisation: Reduce code size in rendering SD file names and folders
Change in memory:
Flash: -88 bytes
SRAM: 0 bytes
2022-10-12 20:19:21 +00:00
D.R.racer 2c695f14be Increase required MMU version to 2.1.4.x 2022-10-12 07:45:13 +02:00
D.R.racer 6eab0dda59 Add parentheses - be more explicit in error codes' masking and comparison 2022-10-11 15:51:01 +02:00
D.R.racer 0aeb74e5b1 Intercept M708 A0xb: set ExtraLoadDistance on the printer side too 2022-10-11 15:51:01 +02:00
D.R.racer b0466ae20f Add infrastructure for MMU parametrization after comm start
For now, only the Extra loading distance is being sent, but the infrastructure can be easily extended for other registers as well.
2022-10-11 15:51:01 +02:00
D.R.racer c7e4c9ce99 Allow backwards compatibility with legacy MMU g-codes
This piece just changes the default extra load length on the MK3 side.
The same needs to be done on the MMU side but:
- the MMU exposes its register for this (so we can change the extra load distance by writing into the register via G-code)
- the printer shall probably set this value on its own after line up of MMU communication
2022-10-11 15:51:01 +02:00
D.R.racer 013ce588a5 Support reading/polling multiple registers
In Idle and Command mode it is now possible to specify a list of registers which shall be periodically read from the MMU.
To keep the code and RAM size down registers are intentionally separated into 8bit and 16bit sets.
Adding a register into the set is just a matter of parametrization, there is no need to change the state machines anymore.
2022-10-11 15:51:01 +02:00
D.R.racer ebb79351a7 Add preliminary support for MMU_SELFTEST_FAILED error messages 2022-10-11 15:51:01 +02:00
3d-gussner d5ca47d1a6
Merge pull request #3646 from gudnimg/fix-mmu-buttons-v2
PFW-1403 Fix issue where physical MMU buttons do not dismiss error screen
2022-10-11 13:42:39 +02:00
Guðni Már Gilbert 8882d8f2c8 Only move XY when position is known
I had a crash when producing an error screen and printer was unhomed.
Extruder was located at the far right side, and immediately crashed when attempting to park.
2022-10-11 07:16:52 +02:00
Guðni Már Gilbert 9f3361577e
Merge pull request #3643 from gudnimg/PFW-1358
PFW-1358 More button utilizes text and an empty character on the right
2022-10-10 18:02:22 +00:00
Guðni Már Gilbert 98cfc37017
Merge pull request #3674 from gudnimg/mmu-first-lay-cal-purge-line
MMU: Sync first layer purge line with PrusaSlicer generated output
2022-10-10 17:59:18 +00:00
Guðni Már Gilbert 213f0e8c71 PFW-1358 Update second_col description
Value is no longer hardcoded
2022-10-10 17:48:56 +00:00
Alex Voinea eb43d712df Enable MISO pullup during SD CMD0
Fix typo
2022-10-10 09:43:50 +02:00
Guðni Már Gilbert ccf0c0a09f
Merge pull request #3675 from gudnimg/pad-mmu-status-messages
Fix issue where MMU status messages are not padded
2022-10-09 10:49:55 +00:00
Guðni Már Gilbert 1c6345a85b Fix issue where MMU status messages were not padded
Also combined common cases to reduce code size
2022-10-09 10:37:33 +00:00
Guðni Már Gilbert 76dc51d2f0 Sync first layer purge line with PrusaSlicer generated output
If you generate a multicolor gcode file with PrusaSlicer, the purge
line gcode will look like this.

This reduces clicking sounds from the extruder, filament extrusion is reduced by 6mm.
2022-10-09 10:03:54 +00:00
Guðni Már Gilbert d483531606 PFW-1358 update c values 2022-10-08 09:40:43 +00:00
Guðni Már Gilbert 00ccdcd467 PFW-1358 change MSG_BTN_MORE from I1 to N1 2022-10-08 09:25:06 +00:00
Guðni Már Gilbert d6e0f47739 PFW-1403 Rename ReportErrorSource to ErrorSource for shorter code 2022-10-08 08:51:32 +00:00
Guðni Már Gilbert 33690b927a PFW-1403 Fix issue where physical MMU buttons do not dismiss error screen 2022-10-08 08:51:32 +00:00
Guðni Már Gilbert 8f0de44d84 PFW-1358 Move 'More' button to the corner of the screen
Make 'More' button position consistent with 3-button screen.
2022-10-08 08:50:40 +00:00
Guðni Már Gilbert 7264391c5f PFW-1358 Fix and optimise button choice positions 2022-10-08 08:50:40 +00:00
Guðni Már Gilbert 9046fb3d44 PFW-1358 Adjust positions of button choices 2022-10-08 08:50:39 +00:00
Guðni Már Gilbert 06427087c0 PFW-1358 Change "More" button to single character 2022-10-08 08:50:39 +00:00
Tomáš Jozífek 233174cf86 Fill the doc for the EEPROM value at 0x0DA1 - active_sheet 2022-10-07 11:59:57 +02:00
3d-gussner 2067cddc46
Merge pull request #3631 from 3d-gussner/MK3_fix_eeprom_documentation_part1
MK3 fix eeprom doxygen documentation
2022-10-06 15:29:15 +02:00
Alex Voinea 629fc9d0f1
Merge pull request #3638 from wavexx/tm_cal_click
TM: Consume LCD click after calibration
2022-10-06 14:29:40 +02:00
3d-gussner bab83704a1 Fix Typo 0X0 to 0x0 2022-10-06 13:23:16 +02:00
Yuri D'Elia bfaed2768c
Merge pull request #3652 from wavexx/cmake_build_v2
cmake build improvements v2
2022-10-05 14:20:28 +02:00
Yuri D'Elia d867da201f cmake: Define FW_VARIANT instead of copying Configuration_prusa 2022-10-05 01:26:30 +02:00
Yuri D'Elia 1d3ee1caba build: Add Configuration_var.h as a configuration wrapper
Instead of including Configuration_prusa.h directly, include
Configuration_var which then includes the proper variant file though a
preprocessor macro.

This allows to keep the existing build system intact, but also redefine
at compile time the final header without having to make copies on the
file system.
2022-10-05 01:26:26 +02:00
Yuri D'Elia 2ae376d633 build: Size optimization
Explicitly force-noinline xyzcal_scan_pixels_32x32_Zhop to match the
previous LTO build behavior.
2022-10-04 12:13:09 +02:00
Yuri D'Elia 5ed6bd7f8b cleanup: Fix more spourious missing return warnings
Rewrite to use a temporary and get rid of the warning.
The generated asm is *unchanged*.
2022-10-03 21:54:08 +02:00
3d-gussner 992845198d
Merge pull request #3648 from wavexx/more_cleanups
cleanup: Expand tabs to fixup suspicious indentation warnings
2022-10-03 11:53:42 +02:00
Yuri D'Elia 4cc6695195 cleanup: Expand tabs to fixup suspicious indentation warnings 2022-10-02 20:42:36 +02:00
Yuri D'Elia a8e85bd146 cmake: Work-around gcc 7 not supporting SOURCE_DATE_EPOCH 2022-10-02 20:32:32 +02:00
Yuri D'Elia 1d520f9165 cmake: Make builds fully reproducible by default
- Work-around SOURCE flags being reset for each project when setting the
  random-seed property by calling a support function.
- Likewise, set correct flags for reproducibility when creating archives.
- Strip source prefix paths from debug info

This should set the EPOCH using the last git commit date when available,
but it's not currently implemented. Just set the EPOCH to be 0 for now.
2022-10-02 20:32:32 +02:00
vintagepc d8c9c4450f
Merge pull request #3641 from vintagepc/build-with-cmake
Build the firmware with cmake
2022-10-02 13:05:32 -04:00
Yuri D'Elia c7b6b9a99b cleanup: Suppress unused argument warnings 2022-09-30 15:08:11 +02:00
VintagePC c522330433 Merge remote-tracking branch 'upstream/MK3' into build-with-cmake 2022-09-30 09:04:35 -04:00
Yuri D'Elia 49f96213a4 Also consume longpress in lcd_consume_click() 2022-09-30 14:29:37 +02:00
Yuri D'Elia b95d508574 cleanup: Remove implicit fallthrough in CRC validation 2022-09-30 12:55:47 +02:00
Yuri D'Elia 71be6b19d4 cleanup: Remove return value from MMU2Serial::write()
Removes a missing return warning.

Looks like we don't handle overflow at the moment and in all surrounding
code, so let's remove the return value for now.
2022-09-30 12:55:47 +02:00
Yuri D'Elia 6cfe000ac9 cleanup: Reorder members to match initialization order 2022-09-30 12:55:47 +02:00
Yuri D'Elia 398a4bf403 cleanup: Do not return const values from functions
This generates a warning under -Wextra, since in most cases a const
value doesn't prevent buggy code (as copies are allowed) while
preventing some optimizations (such as move operations) to take place.
2022-09-30 12:55:47 +02:00
Yuri D'Elia d6af13dfc1 cleanup: Supress missing return warnings
Rewrite the function with a temporary to avoid the spourious no-return
warning.

The generated code is *unchanged*.
2022-09-30 12:31:07 +02:00
Yuri D'Elia 31ea48246a TM: Consume LCD click after calibration
Consume any pending LCD click after the temperature model calibration.
Since we're already in the status menu, the usual consume action is not
done automatically here.
2022-09-30 12:24:54 +02:00
3d-gussner 74e15ac233 Rename EN_ONLY to EN_FARM
remove DEBUG/DEVEL/ALPHA/BETA lcd warning
2022-09-29 16:39:02 +02:00
3d-gussner 346dfbdbb3 Fix MSG_SPOOL_JOIN 2022-09-29 10:54:46 +02:00
3d-gussner c7b500af1e BETA firmware message only in English
Rephrase BETA firmware message to fit on two screens
ALPHA message same as DEVEL
Fix ALPHA DEVEL message
2022-09-29 10:48:16 +02:00
3d-gussner 1a8f18318c Add Temp Model eeprom documentation 2022-09-28 18:15:23 +02:00