Marlin icon indicating copy to clipboard operation
Marlin copied to clipboard

Runout sensor swapping

Open studiodyne opened this issue 2 years ago • 5 comments
trafficstars

Invert Sensors of a dual extruder machine

Why: To avoid to unload filament of a long 1meter bowden machine , and to load it ! Now , just push the filament on the other extruder , select ' Sensor inversion' , and start print. The filament runout sensor is functionnal !

  • Add M412 I 0/1 to enable disable
  • Add report

AMAZING !!!!!!!!!!!!!!!!!!!!!!!!!!

Ths

studiodyne avatar Sep 05 '23 21:09 studiodyne

Is there a cause why the check is NUM_RUNOUT_SENSORS == 2 and not NUM_RUNOUT_SENSORS > 1? I could not test it anyway.

trivalik avatar Jan 08 '24 12:01 trivalik

@studiodyne — Please clarify why "inverting" a sensor's behavior is needed, rather than simply disabling the sensor when it should be ignored. What kind of machine are you describing? Does it have a Y splitter in the Bowden tube? Where are the filament sensors located?

While "inverting" the sensor may "work" it is neither logical nor intuitive for the common user. It would be better to expand M412 to be able to enable/disable individual sensors rather than "invert" them when they are meant to be ignored.

thinkyhead avatar Jan 10 '24 23:01 thinkyhead

After taking a moment to convert your concept into a proper feature, I get the idea why swapping (not "inverting") the sensor identities (or sensor indexes) in this manner works for that kind of situation. However, on the downside it obfuscates the true values of the sensors for things like LCD_ENDSTOP_TEST, and upon a filament runout it seems like it would report the wrong extruder index ran out. And what occurs if you pull the filament out of the inactive extruder during printing?

We should aim to implement this feature so that it maintains the true state of the assigned sensor pins, while also reporting the correct extruder index in the event of a filament runout.

thinkyhead avatar Jan 11 '24 00:01 thinkyhead

So you mean #23899

InsanityAutomation avatar Jan 11 '24 03:01 InsanityAutomation

Hello, thank you for keeping your attention on this PR. This option is easier to understand if you imagine a large printer, where the filament tubes approach one meter. Let's imagine a nozzle on the left of 0.8 and the one on the right of 0.4. You want to print with 0.4 but the red filament is already installed on the left. You must unload one meter on the left, unload one meter on the right, and reload one meter on the right with red. This option will delight users of huge machines. Concerning the code, and knowing this community, I preferred to send a primitive code, especially to make this PR a starting point, rather than a definitive code. And above all, this option, which is very easy with two extruders, becomes embarrassing with three, four, or more. Because 'swapping' becomes a complex matrix to put on the LCD...

The main thing was to retain attention, then you can adapt it according to your vision or your preferences. I love this feature, I use it very often, and I'm willing to bet that all owners of dual extruder machines will love it too, it's practical!

Thanks


My machine is a TRONXY 500mm. I threw everything in the trash except the chassis and installed a RUMBA32. I created a 'switching nozzle dual servo', completely buildable at home. A DIY project, which I will soon put online, for the moment I am testing it for endurance. It's the same system as the lulzbolt double servo, except that my system, anyone can do it at home, with a quality of repeatability equivalent to an industrial project! But for a much smaller price. Soon online !

studiodyne avatar Jan 14 '24 20:01 studiodyne