-
-
Notifications
You must be signed in to change notification settings - Fork 19.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix M166 Gradient Mix on delta printers #19285
Conversation
That looks much better, thanks! |
There is always a way to speed things up. There the problem is the expensive back calculation of the Cartesian Z. Currently the mix for a block is set and calculated at the end of |
|
||
SERIAL_ECHOPGM(" ; Current Z"); | ||
#if ENABLED(DELTA) | ||
get_cartesian_from_steppers(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wouldn't this duplicative since mixer.update_mix_from_gradient() calls it?
Isn't this the critical path? (from 2.0.x) Marlin/Marlin/src/module/planner.cpp Lines 2593 to 2599 in 9ade72a
Marlin/Marlin/src/feature/mixing.h Lines 186 to 193 in 92076c6
Marlin/Marlin/src/feature/mixing.cpp Lines 165 to 180 in 92076c6
|
* commit 'bc7720c0cd3917f44200c0b78e1b635e4c7b6797': (483 commits) Minor HAL cleanup [cron] Bump distribution date (2020-09-09) Update HAL/STM32 platform to 8.0 (MarlinFirmware#18496) Make M600 heat up the nozzle. Reset runout on fail. (MarlinFirmware#19298) [cron] Bump distribution date (2020-09-08) TFT is neither "graphical" nor "character" (MarlinFirmware#19297) Sanity-check BABYSTEP_DISPLAY_TOTAL with ColorUI (MarlinFirmware#19284) Fix M166 Gradient Mix for DELTA (MarlinFirmware#19285) Separate Neopixel followup (MarlinFirmware#19287) Clean up LCD conditionals, DWIN Whitespace cleanup Adjust GTR PeripheralPins to avoid timer conflicts (MarlinFirmware#19183) STM32F1 EP with USB_COMPOSITE (MarlinFirmware#19281) Menu items for Separate NeoPixel (MarlinFirmware#19280) [cron] Bump distribution date (2020-09-07) Clarify disabling StallGuard for axes (MarlinFirmware#19263) Touch UI long filenames fixes (MarlinFirmware#19262) Fix Ender 3 V2 (DWIN) buffer overrun (MarlinFirmware#19268) Fix STM32F1 SPI device init, MKS_LCD12864 (MarlinFirmware#19271) Emergency Parser for STM32F1 (MarlinFirmware#19279) ... # Conflicts: # .github/issue_template.md # Marlin/Configuration.h # Marlin/Configuration_adv.h # README.md
* commit 'bc7720c0cd3917f44200c0b78e1b635e4c7b6797': (483 commits) Minor HAL cleanup [cron] Bump distribution date (2020-09-09) Update HAL/STM32 platform to 8.0 (MarlinFirmware#18496) Make M600 heat up the nozzle. Reset runout on fail. (MarlinFirmware#19298) [cron] Bump distribution date (2020-09-08) TFT is neither "graphical" nor "character" (MarlinFirmware#19297) Sanity-check BABYSTEP_DISPLAY_TOTAL with ColorUI (MarlinFirmware#19284) Fix M166 Gradient Mix for DELTA (MarlinFirmware#19285) Separate Neopixel followup (MarlinFirmware#19287) Clean up LCD conditionals, DWIN Whitespace cleanup Adjust GTR PeripheralPins to avoid timer conflicts (MarlinFirmware#19183) STM32F1 EP with USB_COMPOSITE (MarlinFirmware#19281) Menu items for Separate NeoPixel (MarlinFirmware#19280) [cron] Bump distribution date (2020-09-07) Clarify disabling StallGuard for axes (MarlinFirmware#19263) Touch UI long filenames fixes (MarlinFirmware#19262) Fix Ender 3 V2 (DWIN) buffer overrun (MarlinFirmware#19268) Fix STM32F1 SPI device init, MKS_LCD12864 (MarlinFirmware#19271) Emergency Parser for STM32F1 (MarlinFirmware#19279) ... # Conflicts: # .github/issue_template.md # README.md
* 2.0.x: (483 commits) Minor HAL cleanup [cron] Bump distribution date (2020-09-09) Update HAL/STM32 platform to 8.0 (MarlinFirmware#18496) Make M600 heat up the nozzle. Reset runout on fail. (MarlinFirmware#19298) [cron] Bump distribution date (2020-09-08) TFT is neither "graphical" nor "character" (MarlinFirmware#19297) Sanity-check BABYSTEP_DISPLAY_TOTAL with ColorUI (MarlinFirmware#19284) Fix M166 Gradient Mix for DELTA (MarlinFirmware#19285) Separate Neopixel followup (MarlinFirmware#19287) Clean up LCD conditionals, DWIN Whitespace cleanup Adjust GTR PeripheralPins to avoid timer conflicts (MarlinFirmware#19183) STM32F1 EP with USB_COMPOSITE (MarlinFirmware#19281) Menu items for Separate NeoPixel (MarlinFirmware#19280) [cron] Bump distribution date (2020-09-07) Clarify disabling StallGuard for axes (MarlinFirmware#19263) Touch UI long filenames fixes (MarlinFirmware#19262) Fix Ender 3 V2 (DWIN) buffer overrun (MarlinFirmware#19268) Fix STM32F1 SPI device init, MKS_LCD12864 (MarlinFirmware#19271) Emergency Parser for STM32F1 (MarlinFirmware#19279) ... # Conflicts: # Marlin/Configuration.h # platformio.ini
Description
The updates for M166 gradient mix on delta printers use the z tower stepper position instead of the toolhead cartesian z position. This leads to current gradient mix being constantly changing during a single layer as seen here and results in the gradient being rotated and offset.
Example:
I am not sure if the fix I have made is the correct way to do it. I have been running with this patch and it does fix the issue. This likely creates additional cycles with having to call for a forward kinematics update more often, though a delta+mixing setup should already preclude 8-bit controllers.
Benefits
Allows M166 to work as intended on delta printers.
Configurations
RGB_Delta.zip
Related Issues
#18917