Skip to content
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 for PARKING_EXTRUDER homing and solenoid control #20473

Merged

Conversation

zeleps
Copy link
Contributor

@zeleps zeleps commented Dec 15, 2020

Description

PARKING_EXTRUDER feature is -apparently- not widely used and it appears that, through the many changes in the homing operation, the feature broke. As it is evident from the code remnants, the intention was to finish homing with the correct extruder unparked. This does not happen, and also there never was a provision for supporting an X_MAX homing configuration. Also, M380/381 gcodes did not take PARKING_EXTRUDER solenoid configuration into account, thus working in reverse under certain conditions. The proposed solution minimizes the movements necessary to unpark the right extruder after homing, while considering if the homing operation begins with no extruder attached and respecting the differences in homing direction.

Benefits

PARKING_EXTRUDER homing and solenoid control now work as initially intended

Configurations

Only PARKING_EXTRUDER needs to be enabled

Related Issues

None, it seems that this feature is not widely used, but it was broken nonetheless, so a fix was needed.

Integration Testing

  1. Enable and configure PARING_EXTRUDER option.

  2. Perform the following actions and verify results:

  • G28: Carriage homes X towards E0 (active) and grabs it, then completes Z-homing.
  • G28: Carriage homes with E0 attached
  • T1: Carriage parks E0, grabs E1
  • G28: Carriage homes with E1 attached
  • M381: Carriage releases E1 (E1 should be parked manually)
  • T1: Carriage directly grabs E1
  • M381: Carriage releases E1 (E1 should be parked manually)
  • T0: Carriage directly grabs E0
  • T1: Carriage parks E0, grabs E1
  • M381: Carriage releases E1 (E1 should be parked manually)
  • G28: Carriage homes X towards E0, completes Z homing and then grabs E1 directly
  1. Reverse X-Axis homing (can be temporarily done in-place by reversing solenoid pins, endstop pins, USE_XMAX_PLUG, X_HOME_DIR and INVERT_X_DIR)

  2. Perform the following actions and verify results:

  • G28: Carriage homes X towards E1, completes Z-homing, then grabs E0
  • G28: Carriage homes with E0 attached
  • T1: Carriage parks E0, grabs E1
  • G28: Carriage homes with E1 attached
  • M381: Carriage releases E1 (E1 should be parked manually)
  • T1: Carriage directly grabs E1
  • M381: Carriage releases E1 (E1 should be parked manually)
  • T0: Carriage directly grabs E0
  • T1: Carriage parks E0, grabs E1
  • M381: Carriage releases E1 (E1 should be parked manually)
  • G28: Carriage homes X towards E1 and grabs it, completes Z homing with E1 attached

@thinkyhead
Copy link
Member

Thanks for taking the time to work out the issues. It's not always easy to find testers for these interesting features.

@zeleps
Copy link
Contributor Author

zeleps commented Dec 17, 2020

Cheers @thinkyhead, your appraisal means a lot! I've been using Marlin for a couple of years now, this is the first time I took the initiative to contribute, mainly due to building a new printer from the scratch as a past-time project (now with the lockdown and all). I'll try to do it more in the future. Keep up the good work!

@thinkyhead
Copy link
Member

Thanks for the patch! Just had to do some final cleanup, and will merge shortly….

@thinkyhead thinkyhead merged commit 815c636 into MarlinFirmware:bugfix-2.0.x Jan 1, 2021
TheMichalcinOfficial added a commit to TheMichalcinOfficial/Marlin that referenced this pull request Jan 4, 2021
* [cron] Bump distribution date (2020-12-31)

* SPI and pins cleanup

* [cron] Bump distribution date (2021-01-01)

* Prefix SD SPI pins (SCK, MISO, MOSI, SS) (MarlinFirmware#20606)

Co-authored-by: Scott Lahteine <[email protected]>

* Fix PARKING_EXTRUDER homing with solenoid (MarlinFirmware#20473)

* Fix CHAMBER_FAN_MODE 0 build (MarlinFirmware#20621)

* [cron] Bump distribution date (2021-01-02)

* Fix UBL mesh edit delta moves (MarlinFirmware#20620)

Co-authored-by: Scott Lahteine <[email protected]>

* Fix //action prefix (MarlinFirmware#20600)

* Assisted Tramming improvements (MarlinFirmware#20298)

* Check for misplaced configs on build (MarlinFirmware#20599)

Co-authored-by: Scott Lahteine <[email protected]>

* Fix a comment (MarlinFirmware#20629)

* Document, adjust some homing code

* Improved bootscreen animation

* [cron] Bump distribution date (2021-01-03)

* Homing code followup (MarlinFirmware#20632)

Patching a87e519

* Animated boot followup

* Add ALL_AXES manual move for UBL mesh editing

Co-Authored-By: Jason Smith <[email protected]>

MarlinFirmware#20620

* Creality 4.2.10 board (MarlinFirmware#20647)

* Update Italian language (MarlinFirmware#20663)

* [cron] Bump distribution date (2021-01-04)

* Fix thermal error protection, reporting (MarlinFirmware#20655)

* Rename FTDI EVE screen data structs

* Fix SD SPI Speed override, FTDI mesh edit (MarlinFirmware#20657)

Co-authored-by: Scott Lahteine <[email protected]>

* Fix IDEX reboot on travel after G28 X (MarlinFirmware#20654)

* Fix delayed_move_time elapsed test

* Move duplication_e_mask

Co-authored-by: thinkyhead <[email protected]>
Co-authored-by: Scott Lahteine <[email protected]>
Co-authored-by: Victor Oliveira <[email protected]>
Co-authored-by: zeleps <[email protected]>
Co-authored-by: Jason Smith <[email protected]>
Co-authored-by: ellensp <[email protected]>
Co-authored-by: qwewer0 <[email protected]>
Co-authored-by: Giuliano Zaro <[email protected]>
Co-authored-by: Marcio T <[email protected]>
Co-authored-by: InsanityAutomation <[email protected]>
thinkyhead added a commit that referenced this pull request Jan 5, 2021
Followups to #20473 ahead of #20675
tharts pushed a commit to tharts/Marlin that referenced this pull request Jan 6, 2021
tharts pushed a commit to tharts/Marlin that referenced this pull request Jan 6, 2021
dpreed pushed a commit to dpreed/Marlin_2.0.x that referenced this pull request Feb 5, 2021
dpreed pushed a commit to dpreed/Marlin_2.0.x that referenced this pull request Feb 5, 2021
kpishere pushed a commit to kpishere/Marlin that referenced this pull request Feb 19, 2021
kpishere pushed a commit to kpishere/Marlin that referenced this pull request Feb 19, 2021
zillarob pushed a commit to zillarob/Marlin that referenced this pull request Feb 25, 2021
zillarob pushed a commit to zillarob/Marlin that referenced this pull request Feb 25, 2021
W4tel-BiDi pushed a commit to W4tel-BiDi/Marlin that referenced this pull request Apr 5, 2021
W4tel-BiDi pushed a commit to W4tel-BiDi/Marlin that referenced this pull request Apr 5, 2021
thinkyhead pushed a commit to thinkyhead/Marlin that referenced this pull request Apr 29, 2021
thinkyhead added a commit to thinkyhead/Marlin that referenced this pull request Apr 29, 2021
thinkyhead added a commit that referenced this pull request Apr 30, 2021
Followups to #20473 ahead of #20675
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants