Commit Graph

1853 Commits

Author SHA1 Message Date
Guðni Már Gilbert 09d918ce5d PFW-1503 Change BABYSTEP_ALLOWED to babystep_allowed
I initially started with a preprocessor macro
called  BABYSTEP_ALLOWED, but now it is a function.
It more common to use lower case for function names
2023-03-18 11:56:06 +00:00
Guðni Már Gilbert bb614f669d PFW-1503 Add additional check
Add lcd_commands_type == LcdCommands::Layer1Cal
just in case blocks_queued() is 0 for one instant between
lcd_command steps

Change in memory:
Flash: +8 bytes
SRAM: 0 bytes
2023-03-18 11:56:06 +00:00
Guðni Már Gilbert bc2366cd8d PFW-1503 Improve live Z babystep menu handling
Fixes an issue with running first layer calibration twice in a row.

Improvements:
Now the Z baby step menu closes automatically when first layer calibration is done.
No need to wait for a timeout or close the menu manually by setting a variable

If the baby stepping menu is open, and suddenly
the printer enters a state where baby stepping
is not allowed.
The printer will save the last value before closing the menu.

When LcdCommands != Idle, don't dismiss
the Z baby step menu. This saves 20B

Change in memory:
Flash: -130 bytes
SRAM: 0 bytes
2023-03-18 11:56:05 +00:00
3d-gussner e951a106d6 Messages fit to pages 2023-03-14 08:56:46 +01:00
3d-gussner 93598ef00d Change some messages to be max three rows instead of two
Yes|No are now located at the 4th row and so messages can
use three rows. This should allow improvement in some translations.
2023-03-14 08:23:40 +01:00
Guðni Már Gilbert a20a7232a8 Change "Extruder N" to "Filament N"
Change in memory:
Flash: -52 bytes
SRAM: 0 bytes
2023-03-06 10:26:12 +01:00
Guðni Már Gilbert 0b261ad4de remove duplicate function in planner
moves_planned() should be used instead

No change in memory
2023-03-03 21:11:16 +00:00
Guðni Már Gilbert 496b52b819 preheat: sync temperature threshold in M600 and Wizard
* M600 used 1°C threshold, which may increase the waiting time a bit
* Wizard used 3°C

Sync both to use TEMP_HYSTERESIS for consistancy

No change in memory footprint
2023-02-19 13:23:31 +00:00
Guðni Már Gilbert 555e766296 optimisation: only update mm when i > 0
Change in memory:
Flash: -24 bytes
SRAM: 0 bytes
2023-02-18 12:39:44 +01:00
Guðni Már Gilbert e41b6d106d optimisation: use more string from PROGMEM
Change in memory:
Flash: -10 bytes
SRAM: 0 bytes
2023-02-18 12:39:44 +01:00
Guðni Már Gilbert 9f4a7adb9a optimisation: extract common M861 code
Change in memory:
Flash: -128 bytes
SRAM: 0 bytes
2023-02-18 12:39:44 +01:00
3d-gussner 3381bf2f7e
Merge pull request #2201 from vintagepc/2091_2153_sheet_Mcode
Add M850 code for setting sheet label and offsets
2023-02-17 15:12:22 +01:00
Yuri D'Elia eb88b720ac TM: Handle UVDL set/load/report/upgrade
- Expose TEMP_MODEL_fS and TEMP_MODEL_LAG as D and L respectively,
  initializing the default values based on the previous hard-coded
  values.
- Always round L to the effective sample lag to future-proof model
  upgrades or changes (the stored value _is_ the effective value).
- Introduce UV as a new linear term for PTC heaters, defaulting
  to an identity for model backward-compatibility.
2023-02-17 15:01:59 +01:00
vintagepc 235ce62cd3
Update Marlin_main.cpp
Remove more stale code
2023-02-17 08:58:17 -05:00
vintagepc 032d5ebe5b
Update Marlin_main.cpp
Fix use of removed function
2023-02-17 08:31:27 -05:00
vintagepc 20eef890a6
Merge branch 'MK3' into 2091_2153_sheet_Mcode 2023-02-17 08:24:49 -05:00
D.R.racer 9b64d122dc Disable MMU2S by default
On printers without the MMU no error screen should occur and no attempts of communication with the MMU should be performed -> EEPROM_MMU_ENABLED should default to 0.

PFW-1418
2023-02-17 12:53:07 +01:00
Guðni Már Gilbert b63f5433df Don't show Pause/Stop menus while processing T-codes
PFW-1449

Change in memory:
Flash: +18 bytes
SRAM: +1 bytes
2023-02-12 15:58:07 +01:00
Guðni Már Gilbert 8db2fbc97f Improve sound handling for MMU error screen
Change in memory:
Flash: -174 bytes
SRAM: +4 bytes
2023-02-11 15:54:33 +01:00
Yuri D'Elia d403d58b19 TM: Do not emit an "error:" on the serial for recoverable errors
Use "echo:" for thermal model error reporting to avoid octoprint
automatically sending a M112 kill.

Keep using "error:" instead for other thermal errors (MAXTEMP/etc).

This should allow resuming a thermal mode pause with the default
octoprint settings.
2023-02-10 14:24:50 +01:00
Guðni Már Gilbert 99761bdff7 optimisation: re-use adjust_bed_reset()
Move the code into eeprom.cpp since we're only working with EEPROM

Change in memory:
Flash: -42 bytes
SRAM: 0 bytes
2023-02-08 08:01:55 +01:00
Guðni Már Gilbert b28aa6f42a PFW-1471 Rename 'Toolchange count' to 'Material changes'
Added the string to our message so it can be translated

Change in memory:
Flash: -10 bytes
SRAM: 0 bytes
2023-02-06 08:33:40 +01:00
Guðni Már Gilbert d66e2b66c2 Cleanup: use setTargetHotend consistently for one extruder
Main changes:
* setAllTargetHotends() is removed
* setTargetHotendSafe() is removed
* Extruder parameter on setTargetHotend() is dropped

Change in memory:
Flash: -192 bytes
SRAM: 0 bytes
2023-02-01 08:28:23 +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 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
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
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 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
Alex Voinea 0c352ac2d1 Disable M47 if TMC2130 drivers are used
flash: -126B
RAM: 0B
2023-01-17 20:37:27 +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
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
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 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 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
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 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 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 da6e56a17e Simplify altfan override initialization 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 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
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 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
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
Alex Voinea 2b38080c7e
Merge pull request #3833 from leptun/MK3_fix_MK2.5_softReset 2022-12-20 10:02:14 +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
Guðni Már Gilbert 4c32e8b403 PFW-1457 make CHECK_FSENSOR into a function 2022-12-18 12:23:20 +00: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 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
Alex Voinea c5d406d12f Fix interrupts not enabled during setup() 2022-12-16 16:46:08 +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
Alex Voinea d43a7da20d fix watchdog not getting disabled on user app boot 2022-12-16 16:01:29 +01:00
Alex Voinea d80e32fa31 retrigger build 2022-12-16 12:55:30 +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 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 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
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
Alex Voinea 52965bd05d Avoid using global variables
Flash: -68B
RAM: -4B
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
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
D.R.racer 4eaabbf092 Revive MMU stats + LCD screens 2022-11-20 17:27:36 +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
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 8f4ac82273 eeprom_init_default also returns the read/default value 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 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
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
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
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
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 0af7d28074 PFW-1397 Allocate EEPROM memory for toolchange counter 2022-11-08 13:49:40 +01:00
3d-gussner 8543942acb Fix Z-leveling 2022-11-03 06:22:57 +01: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
3d-gussner f2fe9a51ee rename `Extruder fan` to `Hotend fan` 2022-10-17 13:49:18 +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 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
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 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
DRracer f7d4095479
Merge branch 'MK3' into MK3_MMU2_fix1 2022-09-21 15:18:44 +02:00
Alex Voinea 2cdd3ba364 Move strings to progmem 2022-09-21 14:53:54 +02:00
Yuri D'Elia 16d1ef8510
Merge pull request #3560 from leptun/splash_version
Show firmware version on splash screen
2022-09-21 14:47:41 +02:00
3d-gussner 183e21aa0b
Merge pull request #3599 from 3d-gussner/MK3_MMU2_messages
PFW-1339 - Update MMU2 translations
2022-09-21 10:27:01 +02:00
Alex Voinea 6a470791d3 Allow sending uint16_t values to registers 2022-09-19 15:13:37 +02:00
3d-gussner 539cdbfeea Lower MSG_ rows 2022-09-17 08:48:56 +02:00
D.R.racer 2d98cae8bd Fixup MK3_MMU2 branch after rebase onto MK3 2022-09-16 11:08:03 +02:00
Guðni Már Gilbert 715af8fcc2 Rename files to SpoolJoin 2022-09-16 10:23:47 +02:00
Guðni Már Gilbert afc67332c7 PFW-1362 Initial commit 2022-09-16 10:23:47 +02:00
3d-gussner b3ec36228d Update doxygen documentation for M704-M709 2022-09-16 10:23:47 +02:00
D.R.racer 4d3a5433ad Implement read/write registers for M707/M708 2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 04a1a67b05 PFW-1386 Address TODO
We want to move the Z-axis after the XY move is done.

raise_z cannot be used here because it relies
on current_position[] for all axis.

It is actually 10 bytes cheaper to use the previous method
because syncing current_position with lastpos is surprisingly expensive
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert db1b0ea9ac Optimisation: Set lastpos using memcpy directly
Verified the change by running the M600 gcode. All axis move as expected.

Change in memory:
Flash: -64 bytes
SRAM: 0 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert f984072eab Remove unused #define 2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 0c1052b0da Optimisation: mmu_M600_load_filament
Don't render full screen for Loading Filament X
this is already done in load_filament_to_nozzle
so no need to do it twice

Change in memory:
Flash: -54 bytes
SRAM: 0 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert bf9ba3c003 Optimisation: setTargetedHotend serial message
Change in memory:
Flash: -130 bytes
SRAM: 0 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 635ae2bf20 M600: Small optimisation in if statements
Change in memory:
Flash: -4 bytes
SRAM: 0 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert f297131792 M600: lcd_change_fil_state does not need to be global
Refactor lcd_alright() to save flash

Change in memory:
Flash: -98 bytes
SRAM: -1 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 2216ba9fbf M600: Ask for which slot to use when loading
This fixes an issue where the assumed slot to use is unknown and
the printer will hang on loading filament 100.

Another good thing is this is an old user feature request which
we have in our 3.12 milestone.

Change in memory:
Flash: +14 bytes
SRAM: -1 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 3e86bbb93f M600: Don't unload if filament is unknown
Change in memory:
Flash: +8 bytes
SRAM: 0 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 05bf5de518 Fix calibrate_z_auto crashing Z-axis
Steps to reproduce:
1. Run M45 Z after booting the printer up

Change in memory:
Flash: -4 bytes
SRAM: 0 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 03b8a6e464 Use raise_z in more places
Change in memory:
Flash: -474 bytes
SRAM: 0 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 55d2eaf8c0 M706: Only cut filament if the setting is enabled 2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 66994d010d Fix a few cases where rebase overwrote stuff 2022-09-16 10:23:47 +02:00
D.R.racer 37b50477cd Fixup after rebase onto MK3 2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 2616df66af PFW-1386 st_get_position_mm() is more accurate when using endstops (not homed printer)
If the endstops kick in, then st_get_position_mm shows the actual travel distance. current_position[Z-AXIS] does not get updated correctly thus we cannot use it when unhomed.

current_position[Z-AXIS] is later set to Z_MAX_POS,
we cannot use that either to calculate the travel distance
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert f409426bdc PFW-1386 Refactor raise_z
Removed the "plan" parameter.
We were incorrectly returning from the function if the printer was homed,
but plan = false. This would leave current_position with an incorrect value

If the printer is homed => finish the move and return the travel distance

If the printer is not homed => rely on end stop to prevent damage,
return travel distance even if the endstop stopped the move.
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert 4a1479b5bc PFW-1386 Clamp Z-axis when homed 2022-09-16 10:22:39 +02:00
Guðni Már Gilbert fa6e30389a PFW-1386 Add a TODO
When recovering the Z-axis in M600, we'd like the Z move to
happen after the XY move.
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert ff91b4670d PFW-1386 Use same code for Z-lift in M600 as in M701/M702
This reduces flash usage by 128 bytes!
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert 38952f1f33 PFW-1386 Optimisation: st_synchronize is not needed after raise_z_above
Saves 16 bytes of flash
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert 214b6a9220 PFW-1386 M701, M702: Move Z-axis using relative position
* Created a new function raise_z() which will move the Z axis by some
X millimeters. If plan = false, the function will return the
actual travel distance since the move is blocking.
* raise_z_above() is refactored to call raise_z()

Now the M701 and M702 will move the Z-axis relatively, and also
when done, revert the Z axis position when done.
This is a similar behavior as in Marlin 2.
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert 217b537961 PFW-1386 Remove old debug message to save space
Saves 34 bytes of flash
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert bb0bbfb45f PFW-1386 Minor correction to M707 and M708 useage example 2022-09-16 10:22:39 +02:00
Guðni Már Gilbert d78c575399 PFW-1386 Address should accept hexidecimal values
Now these are equal:
M707 A255 C1
M707 A0xFF C1

Both address inputs are interpreted as FF
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert ba7dae5c79 PFW-1386 I don't see a reason for these lines
So I'm removing them
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert 3192a95e78 PFW-1386 Optimise default value assign z_target 2022-09-16 10:22:39 +02:00
Guðni Már Gilbert 20c865c2d4 PFW-1386 Implement 'U' parameter for M702
Similar to 'L' in M701, this does not apply to the MMU
The U parameter controls how much mm the extruder will unload
Default value is 80mm
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert 7e9166976f PFW-1386 Implement 'L' parameter for M701
It is only used when the MMU is disabled. With the MMU we use a defined ramming sequence.

When the MMU is disabled I borrowed the usages from Marlin 2.
The L parameter only defines the length for the "fast" load length.
Default value is 70mm, same as M600
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert 94dd4aec73 PFW-1386 M701 now loads to nozzle with MMU 2022-09-16 10:22:39 +02:00
Guðni Már Gilbert 8462b38446 PFW-1386 Create a common function for M704 to M706
Saves 36 bytes of flash
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 32ec1587b9 PFW-1386 Implement changes to M702 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 9b0d89213b PFW-1386 Raising Z-axis during M701 is now done via Gcode
If the Z-parameter is not issued, then default behavior will raise
the Z-axis by MIN_Z_FOR_LOAD
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 5bb36546b4 PFW-1386 Implement changes to M701 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert fb087fc535 PFW-1386 Add M707 and M708
WriteRegister and ReadRegister function will create new compiler
warnings due to unused parameters, we can ignore it for now.
2022-09-16 10:22:38 +02:00