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

Support [extruder] sections without a stepper #5294

Merged
merged 3 commits into from
Mar 4, 2022

Conversation

KevinOConnor
Copy link
Collaborator

This PR makes it possible to define an extruder config section without an extruder stepper motor. This may be useful for dual hotend systems that share a single stepper motor.

A bit unrelated, but I'm also added a commit here that removes the default for the "extruder" parameter of [extruder_stepper] config sections. With the recent extruder changes, I suspect that the default of synchronizing all extruder_stepper motors to the "extruder" motion queue is confusing. So, after this PR, users will be required to specify the "extruder" parameter of [extruder_stepper] config sections (either by setting it to something like extruder: extruder to set the default motion queue or set it as extruder: to not set a default motion queue at startup).

@DrumClock - fyi.

-Kevin

@DrumClock
Copy link

Hi @KevinOConnor
I try it and I get the following results:
pressure_advance and pressure_advance_smooth_time parameters
cannot be specified without a stepper definition.

Option 'pressure_advance' is not valid in section 'extruder1'
Option 'pressure_advance_smooth_time' is not valid in section 'extruder1'

It should be like this ?

Maybe I would leave it in the hotend definition and then assign it to
the sync stepper using SET_PRESSURE_ADVANCE EXTRUDER.

The point is that if the second hotend needed different parameters, they would have to be stored in variables and then used.
This way they would be define in the configuration and it would probably be clearer.
(just my idea, I don't know how it is further connected with FW)

Everything else works as needed.
The change is made by the SET_HOTEND macro

Test configuration: printer.cfg.txt

@KevinOConnor
Copy link
Collaborator Author

Yes - today pressure advance is associated with the stepper and not the extruder motion queue. So, if there is no stepper associated with extruder1 then it is not possible to assign a pressure advance value to it.

I know this can be confusing, but the alternatives don't seem much better.

Thanks.
-Kevin

@DrumClock
Copy link

Ok, this can be solved by a variable in the macro.

Is there anything else I need to test?

-Petr

This may be useful for dual hotend printers that have only one
stepper.

Signed-off-by: Kevin O'Connor <[email protected]>
@KevinOConnor KevinOConnor force-pushed the work-extruder-20220221 branch from fd9682e to 994f80c Compare March 4, 2022 18:38
With recent changes, the extruder_stepper may be used for new
purposes, and synchronizing to the "extruder" motion queue at startup
may become a confusing default.

Signed-off-by: Kevin O'Connor <[email protected]>
Check that a SET_PRESSURE_ADVANCE without an explicit EXTRUDER
parameter isn't done after the user disables or reassociates the
extruder stepper motor (via SYNC_EXTRUDER_MOTION).  Otherwise, it
could lead to very confusing results.

Signed-off-by: Kevin O'Connor <[email protected]>
@KevinOConnor KevinOConnor force-pushed the work-extruder-20220221 branch from 994f80c to fe2974b Compare March 4, 2022 18:39
@KevinOConnor KevinOConnor merged commit fe2974b into master Mar 4, 2022
@KevinOConnor KevinOConnor deleted the work-extruder-20220221 branch March 4, 2022 18:40
@github-actions github-actions bot locked and limited conversation to collaborators Mar 5, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants