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

SINGLENOZZLE: not extruding #4139

Closed
Edie47 opened this issue Jun 24, 2016 · 20 comments
Closed

SINGLENOZZLE: not extruding #4139

Edie47 opened this issue Jun 24, 2016 · 20 comments

Comments

@Edie47
Copy link

Edie47 commented Jun 24, 2016

Hi, when I uncomment SINGLENOZZLE and set EXTRUDERS to 2 my printer is not extruding. Returning EXTRUDERS to 1 and commenting SINGLENOZZLE extrusion works. This is my fork of RCBugFix branch https://github.com/Edie47/Marlin/tree/RCBugFix. I just copied the recent RCBugFix branch and merged it with DyzeDesign High-Temperature-Thermistor-Support branch. I needed the 500C thermistor support.

Is there any simple way to solve it?

@thinkyhead
Copy link
Member

I'll take a look at that shortly. Thanks for testing SINGLENOZZLE as it is a very new addition.

@Edie47
Copy link
Author

Edie47 commented Jun 24, 2016

Sorry, for the false bug report. I already solved the problem. I had to set DISABLE_INACTIVE_EXTRUDER to false. My extruder has a single nozzle and a single stepper motor, with a servo mechanism that switches between filaments (extruders). So the stepper was always deactivated.

@Edie47 Edie47 closed this as completed Jun 24, 2016
@thinkyhead
Copy link
Member

I already solved the problem

Thank you for the update!

single nozzle and a single stepper motor, with a servo mechanism that switches between filaments

I see! I have something better coming along for that type of extruder. See #3994

@Edie47
Copy link
Author

Edie47 commented Jun 25, 2016

Thank you for your recommendation. Is it not intended just for extruders with two nozzles? I found that commit but I also found in SanityCheck.h that SWITCHING_EXTRUDER and SINGLENOZZLE are incompatibile.

I think it is like:
SINGLENOZZLE = 1 NOZZLE and 2+ STEPPER MOTORS
SWITCHING_EXTRUDER = 2 NOZZLES and 1 STEPPER MOTOR

My option is 1 NOZZLE and 1 STEPPER MOTOR, therefore I chosed SINGLENOZZLE as it is easier to implement servo switching mechanism than one nozzle in SWITCHING_EXTRUDER.
This is the extruder I am using: http://www.thingiverse.com/thing:1643906

@thinkyhead
Copy link
Member

thinkyhead commented Jun 25, 2016

SWITCHING_EXTRUDER = 2 NOZZLES and 1 STEPPER MOTOR

Nope.

SWITCHING_EXTRUDER is specifically for an extruder that has:

  • A single nozzle
  • A single stepper that reverses its direction
  • A servo that switches the side of the stepper used to drive the filament.

It handles switching the servo and it handles reversing the stepper's direction. The SINGLENOZZLE feature doesn't know anything about servos, reversing the stepper direction, or that "both extruders" share a single stepper motor.

This is the extruder I am using

Exactly the kind of extruder I am targeting with SWITCHING_EXTRUDER.

@Edie47
Copy link
Author

Edie47 commented Jun 26, 2016

Then I missunderstood it from that thread.
Great, thank you. I try it.

Now I am using SINGLENOZZLE with DISABLE_INACTIVE_EXTRUDER false and INVERT_E1_DIR true. I also putted few rows of code to Marlin_main.cpp for servo switching and it is working fine. :-) Pins of E0 and E1 I defined the same.

@thinkyhead
Copy link
Member

@Edie47 From my knowledge of Marlin stepper handling, I can see that those changes will work, but of course they are unsupported, and there will be some harmless side-effects, such as the E stepper motor pins being set twice in operations that deal with all the steppers at once, such as initializing, enabling, disabling, etc.

If you peek at the code changes for the switching extruder, you will see that surprisingly little needed to be changed to make it work. Mainly it separates the number of E steppers from the number of extruders, (which we needed to do anyways) so Marlin knows there is really only one E stepper. Among other things, this allows Marlin to assign the next unused E plug to some other function, such as a Dual Z axis or Dual X axis.

@Edie47
Copy link
Author

Edie47 commented Jul 8, 2016

@thinkyhead Hi, I tested the SWITCHING_EXTRUDER feature from #4163 for my extruder (single stepper and single nozzle) and it looks like it is not intended for this type of an extruder with a single nozzle.

  1. The display is showing two nozzles (two temperatures).
  2. For the T1 the MINTEMP error is triggered.
  3. At each tool change, some Z-hop occurs what is actually not required.
  4. I am missing a feature that allows to define a delay after the switch (for example 700ms) and then detaches the servo. ...the servo might wobble during print when it is active. This might lead to problems during print.

In the board definition, I could assign same pins for both T0 and T1 heater and thermistor to solve issue 2, but then issues 1 and 3 remain. Issue 4 is simple to implement in code.

For this reason, I prefer SINGLENOZZLE with hard coded servo switching mechanism. It works and it is much simpler.

@thinkyhead
Copy link
Member

thinkyhead commented Jul 9, 2016

it looks like it is not intended for this type of an extruder with a single nozzle

@Edie47 Correct. It is for a dual-nozzle extruder with one stepper motor.
For example, see https://www.thingiverse.com/thing:651723

@schimmi70
Copy link

why SINGLENOZZLE and SWITCHING_EXTRUDER can't be combinared ??
It makes sence ... or not ?

@thinkyhead
Copy link
Member

why SINGLENOZZLE and SWITCHING_EXTRUDER can't be combinared ??

SINGLENOZZLE is specifically for the case where multiple steppers feed into a single nozzle. The SWITCHING_EXTRUDER is for the specific case where the extruder has only a single stepper plus a servo for performing the switch.

@schimmi70
Copy link

schimmi70 commented Feb 27, 2017

OK, I know this, but we need SINGLENOZZLE_SWITCHING_EXTRUDER for up to 2 Servors / 2 Stepmotors (4 Extruder) and single nozzle So boards with only 2 extruder motor driver can support 4 filaments at same time... look here for 2 Filaments: http://www.thingiverse.com/thing:1643906 or http://www.thingiverse.com/thing:1888865

Both are SINGLENOZZLE SWITCHING_EXTRUDER and combinared both extruder-typs.

@thinkyhead
Copy link
Member

I see. That will be a SWITCHING_EXTRUDER (which is another type of "single nozzle") but allow E_STEPPERS to be set to 2 (or more) and allow specifying second (third, etc.) servo. Support for this kind of setup will require some rewriting of the core stepper-indirection code, and some re-write of tool-changing code to allow a tool-setting of "2", for example, to specify the 1st position of the 2nd extruder motor, rather than the 3rd extruder motor. It's not a trivial project, but I'm sure it's doable.

@Tahutipai
Copy link

Just seeking clarification:
Is SWITCHING_EXTRUDER for a dual nozzle (servo-alternated), or a single nozzle?

Above is stated (15/June): "SWITCHING_EXTRUDER is specifically for an extruder that has: A single nozzle".
but then (8/July):. It is for a dual-nozzle extruder with one stepper motor.
but then (28/Feb/2017): That will be a SWITCHING_EXTRUDER (which is another type of "single nozzle")

Is there some subtlety in distinction I am missing?


I am seeking how to enable dual nozzles (servo actuated) #5921 , dual steppers - i.e exactly as with SWITCHING_EXTRUDER but without the "alternating-single-stepper" code introduced in #3994. Any advice appreciated.

@thinkyhead
Copy link
Member

Is there some subtlety in distinction I am missing?

Sorry for my conflicting statements. It's been a while since I worked on this code. Apparently "switching extruders" do require two nozzles. That said, if one exists which only has a single nozzle it can be made to work by setting the hotend offsets to zero and tweaking the code to only heat one nozzle.

@thinkyhead
Copy link
Member

thinkyhead commented Mar 1, 2017

I am seeking how to enable dual nozzles (servo actuated) #5921 , dual steppers

Is the servo simply to raise and lower the nozzles when swapped?

Dual nozzles with dual steppers is essentially just EXTRUDERS 2. The only addition is you need to set the servo position on tool-switch. You can just do that in GCode currently by using M280.

@Tahutipai
Copy link

Tahutipai commented Mar 1, 2017

Yes, though only the second nozzle moves. The first nozzle is fixed in position. The second nozzle simply slides vertically, to either above or below the first nozzle. Prevents head->print job collisions, minimal moving parts.

@schimmi70
Copy link

schimmi70 commented Mar 16, 2017

If you want, i open a branch SINGLENOZZLE_SWITCHING_EXTRUDER.
I have a working version for 1 Hotend and 2 switching extruder build from RC8 ...
Where where can i open a new branch ?

@thinkyhead
Copy link
Member

Where … can i open a new branch?

In your own fork.

@github-actions
Copy link

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions bot locked and limited conversation to collaborators Mar 29, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants