Commit Graph

7114 Commits

Author SHA1 Message Date
3d-gussner 4cf46893fc Revert "Fix a few ambiguous overloaded calls"
This reverts commit b7c42e83cf.
2023-04-04 16:12:41 +02:00
Guðni Már Gilbert 46852e9941 M862: determine decimal through math rather than checking for null byte/pointer.
This way doesn't add any more flash memory.
Calculating the string length or checking for a null byte
will end up increasing flash consumption overall.
2023-04-04 15:22:21 +02:00
Guðni Már Gilbert 478627b6bc Simplify parsing M862
This gets rid of float conversion.
We just need to check the 6th character when M862 is detected. This
character gives us the digit after the dot.

Change in memory:
Flash: -20 bytes
SRAM: 0 bytes
2023-04-04 15:22:21 +02:00
Guðni Már Gilbert b9fecab239 Reduce calls to __divsf3 when calculating feedrate
For non-time critical code it is more effcient to call a function
rather inlining each division operation.

Change in memory:
Flash: -122 bytes
SRAM: 0 bytes
2023-04-04 15:16:56 +02:00
Guðni Már Gilbert 65750b9a4c accel is uint32_t, drop float in comparsion
Change in memory:
Flash: -24 bytes
SRAM: 0 bytes
2023-04-04 15:11:29 +02:00
Guðni Már Gilbert c0e21563e7 planner: optimise acceleration limits
Rename acceleration_st to acceleration_steps_per_s2 to be same as Marlin 2

Store the accelerator in local variable accel
while we are performing the limit checks.

When limit checks are done we can assign
the block it's acceleration. Especially
block->acceleration_steps_per_s2 is now only written to once, instead of direcly in the limit checks.

Change in memory:
Flash: -118 bytes
SRAM: 0 bytes
2023-04-04 15:11:29 +02:00
3d-gussner a1234b3670
Merge pull request #4122 from leptun/mmu2_fix_ptfe_check_distance
Fix MMU2_CHECK_FILAMENT_PRESENCE_EXTRUSION_LENGTH for MMU2
2023-04-04 15:04:58 +02:00
Guðni Már Gilbert b7c42e83cf Fix a few ambiguous overloaded calls
Noticed this when exploring another optimisation

By specification exactly which overloaded function to use
we save some memory

Seems to have something to do with doing arithmetic in the function argument

Change in memory:
Flash: -156 bytes
SRAM: 0 bytes
2023-04-04 15:03:48 +02:00
3d-gussner 3b049a1b91
Merge pull request #4111 from gudnimg/E-cool-gudni
Fix clicking noise during Toolchange when E-cool mode is enabled
2023-04-04 15:03:37 +02:00
3d-gussner eb3421f0f2
Merge pull request #4021 from gudnimg/cleanup_crashdet_detected
cleanup: remove unnecessary LCD update in `crashdet_detected()`
2023-04-04 14:58:30 +02:00
3d-gussner 91ad87b5a7
Merge pull request #4096 from gudnimg/msg-btn-more-translation
Remove `MSG_BTN_MORE` from translation list
2023-04-04 14:57:30 +02:00
Guðni Már Gilbert 3e4592b7fd Don't duplicate silent mode menu
Create a common function for the menu

This saves a lot of memory and 50 lines of code!

Change in memory:
Flash: -110 bytes
SRAM: 0 bytes
2023-04-04 14:47:45 +02:00
Alex Voinea ebf8b16df5
Fix MMU2_CHECK_FILAMENT_PRESENCE_EXTRUSION_LENGTH for MMU2 2023-04-02 11:35:17 +02:00
3d-gussner 26f547bb47
Merge pull request #4113 from gudnimg/G28W-opt
Re-use `G28 W` string from PROGMEM
2023-03-29 08:31:15 +02:00
Guðni Már Gilbert 5be4504fea Re-use G28 W string in PROGMEM
Change in memory:
Flash: -12 bytes
SRAM: 0 bytes
2023-03-27 18:14:28 +00:00
Guðni Már Gilbert 138654e207 Add comment
Note we cannot use too long extrusions
2023-03-26 09:16:07 +00:00
Guðni Már Gilbert 4342217159 Add comment about planner_aborted = false 2023-03-26 09:00:34 +00:00
Guðni Már Gilbert 6bdc3c5cfb Improve MMU toolchange when E-cool mode is enabled
Currently we are queuing many small 2 mm E-moves until the filament
sensor triggers. We do this because we never abort any queued moves,
so making small 2 mm moves ensures we do not move the E-motor more than
2 mm past the filament sensor.

Unfortunately, when E-cool mode is enabled, the E-motor will create
audible clicking sounds (similar one hears during jam or a loose grub
screw). A workaround for this is to queue one or more very long moves.
Where very long is something of the order of hundreds of millimeters. I
have it set to 350 mm but it's just a random constant really. Keep in
mind the firmware will block too large E-moves, if I recall correctly
it was anything above > 450 mm (see PREVENT_LENGTHY_EXTRUDE)

In order to use very long moves, we must somehow stop the E-motor from
moving once the filament sensor triggers. In other words, throw away
what's left of the current E-motor move. For this simple purpose we can
use planner_abort_hard() but we must set planner_aborted to false
afterwards because the code architecture does not allow the main loop()
to run until the Toolchange command is done processing.

Change in memory:
Flash: +18 bytes
SRAM: 0 bytes
2023-03-26 08:57:59 +00:00
3d-gussner 6dbf35f6e6
Merge pull request #4062 from gudnimg/cleanup_move_planned
remove duplicate function in planner
2023-03-24 14:06:19 +01:00
3d-gussner 34ec1ff190
Merge pull request #4098 from gudnimg/PFW-1515
PFW-1515 Fix an issue with Thermal Anomaly message
2023-03-24 14:04:21 +01:00
3d-gussner 6959b372ec
Merge pull request #4063 from gudnimg/PFW-1503
PFW-1503 Improve live Z babystep menu handling
2023-03-24 14:01:15 +01:00
3d-gussner 7bbd561f00
Merge pull request #4104 from 3d-gussner/MK3130RC1_Hungarian
Update Hungarian translation.
2023-03-24 14:00:20 +01:00
3d-gussner b9103a113c
Merge pull request #4102 from 3d-gussner/MK3_fix_Hbed_MMULoadingTest
Fix HBed on Load for MMU Loading test
2023-03-24 13:59:58 +01:00
3d-gussner 4feacfe822
Merge pull request #4093 from gudnimg/Restore-default-M701-M702-Z-lift
Restore previous Z-lift in M701/M702 + other PROGMEM optimisations
2023-03-24 13:59:47 +01:00
3d-gussner fd0e4ee605
Merge pull request #4090 from gudnimg/PFW-1509
PFW-1509 Fix an issue with unload when nozzle is cold
2023-03-24 13:59:35 +01:00
3d-gussner 86ae64ea59 Update Hungarian translation. Credits to @AttilaSVK 2023-03-22 18:03:18 +01:00
3d-gussner 7e0bf88431 Use `G28 W` only 2023-03-22 12:30:16 +01:00
3d-gussner 5536873eca Fix HBed on Load for MMU Loading test 2023-03-22 09:50:59 +01:00
Guðni Már Gilbert c5fc1168ed PFW-1515 Fix an issue with Thermal Anomaly message
Issue introduced with PFW-1504

Change in memory:
Flash: +40 bytes
SRAM: 0 bytes
2023-03-20 20:35:49 +00:00
Guðni Már Gilbert 178c1f4aa6 Header cleanup 2023-03-20 13:57:20 +00:00
Guðni Már Gilbert 0dbae6b609 Remove MSG_BTN_MORE from translation files 2023-03-19 16:52:40 +00:00
Guðni Már Gilbert e2b58d8724 Don't translate the more button 2023-03-19 16:50:42 +00:00
Guðni Már Gilbert 5643d16c01 cleanup: remove redundant lcd_update in cashdet_detected
There is no need to repeat:
lcd_update_enable(true);
lcd_update(2);

Also lcd_clear() is redundant because lcd_update(2) will clear the LCD

Change in memory:
Flash: -16 bytes
SRAM: 0 bytes
2023-03-18 19:52:08 +00:00
Guðni Már Gilbert bc27b71729 Pull one common G1 gcode into PROGMEM
Change in memory:
Flash: -32 bytes
SRAM: 0 bytes
2023-03-18 17:37:27 +00:00
Guðni Már Gilbert f296b3f826 G21 is not implemented, don't queue it
It's just a single 'break', will likely not be implemented

Change in memory:
Flash: -6 bytes
SRAM: 0 bytes
2023-03-18 17:23:01 +00:00
Guðni Már Gilbert 6edd8b0719 Add M220 into PROGMEM
Change in memory:
Flash: -10 bytes
SRAM: 0 bytes
2023-03-18 17:09:43 +00:00
Guðni Már Gilbert 00515a975d Add M107 into PROGMEM
Change in memory:
Flash: -4 bytes
SRAM: 0 bytes
2023-03-18 17:05:35 +00:00
Guðni Már Gilbert 5ade1716bf Add M500 into PROGMEM
Change in memory:
Flash: -6 bytes
SRAM: 0 bytes
2023-03-18 17:01:59 +00:00
Guðni Már Gilbert 733bc874fb Move G28W0 to messages
No change in memory
2023-03-18 16:48:30 +00:00
Guðni Már Gilbert 466a6a8fc3 Add M600 into PROGMEM
Change in memory:
Flash: -10 bytes
SRAM: 0 bytes
2023-03-18 16:33:13 +00:00
Guðni Már Gilbert 129cc18cbf Add M23 %s into PROGMEM
Change in memory:
Flash: -14 bytes
SRAM: 0 bytes
2023-03-18 16:18:05 +00:00
Guðni Már Gilbert 7c0ead7bc2 Add M24 into PROGMEM
Change in memory:
Flash: -8 bytes
SRAM: 0 bytes
2023-03-18 16:15:10 +00:00
Guðni Már Gilbert 5f8fc64a32 Restore previous Z-lift in M701/M702
Previously when the firmware called M701/M702 manually
there was no Z lift. But after we added support for the Z
parameter we set the default to 50mm.

Change strings "M701" to "M701 Z0" and "M702" to "M702 Z0"
to restore the previous behavior from before 3.13.

Also pulled the gcodes into PROGMEM in message.cpp
along with M83 and M84 to save memory.

Change in memory:
Flash: -34 bytes
SRAM: 0 bytes
2023-03-18 15:34:47 +00:00
Guðni Már Gilbert 942021cb2b PFW-1503 Fix an issue where the menu is dismissed in First layer calibraiton
When the extruder lifts up after completing the Purge line,
 the baby stepping is not allowed for a short time. This dismisses
 the menu. We don't want this behavior, so only apply the Z-axis requirement
 when printing.

 Change in memory:
 Flash: +8 bytes
 SRAM: 0 bytes
2023-03-18 12:47:40 +00:00
Guðni Már Gilbert e40d8ebbcc Implement printJobOngoing()
This makes the if statments a little bit more readable

Change in memory:
Flash: -88 bytes
SRAM: 0 bytes
2023-03-18 12:18:43 +00:00
Guðni Már Gilbert 561d8599d2 PFW-1503 drop {} for consistency 2023-03-18 11:56:06 +00:00
Guðni Már Gilbert 59314a41c1 PFW-1503 only allow babystepping on the first couple of layers
Change in memory:
Flash: +28 bytes
SRAM: 0 bytes
2023-03-18 11:56:06 +00:00
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