Skip to content

[FR] Smart Runout Sensor compatibility with Mixing Extruder #23693

Description

@mjfsch

Did you test the latest bugfix-2.0.x code?

Yes, and the problem still exists.

Bug Description

I have tested this with the latest bugfix (7/02/2022)

I have a modified Geeetech A20M, the board has been replaced with a BTT Octopus Pro, and the filament sensors have been replaced with BTT smart sensors.

I have the board connected to a BTT TFT and Octoprint. the BTT Smart sensors are connected to the main board, and i have host actions enabled.

This is a dual extruder single hotend "mixing" printer

If i print just using the first extruder the smart sensor correctly triggers when needed and goes through the correct filament change procedure.

However if i print using the second extruder, the sensor triggers when there is no runout or blockage.
The strange behaviour however is that it reports that the issue is with the first extruder not the second, and starts to unload the first extruder.

I think the issue is that the count down of remaining length is been applied to the wrong extruder count.

To test this out, i have enabled FILAMENT_RUNOUT_SENSOR_DEBUG
This reports
Recv: Motion detected: 0
Recv: Remaining mm: 7.0000, 7.0000

i have some gcode loaded that starts a print on T0, and i can see the first count reduce as expected.
Recv: Motion detected: 1
Recv: Remaining mm: 6.6518, 7.0000

The gcode then changes over to use T1,
Before changing colour, the gcode runs through a purge routene, while this is going i get the report
Recv: Motion detected: 0
Recv: Remaining mm: 7.0000, 7.0000

Following this and the print resuming the count continues to reduce on the first counter
Recv: Motion detected: 1
Recv: Remaining mm: 4.5341, 7.0000

Interestingly when this debug mode is enabled the printer crashes when the count hits 0, however with this mode not enabled, it triggers M600 against T0 rather than T1, as far as i can tell however this line should ensure it triggers for the correct extruder
#define FILAMENT_RUNOUT_SCRIPT "M600 T%c"

I have also tested this with
#define FILAMENT_RUNOUT_SCRIPT "M600 T%t"
as suggested by a previous bug report, this fails with the unknown extruder message.

I have tested the second run out sensor using M43 and monitoring the pin, so im happy enough that the sensor is working and the wiring is ok.

Unless my assumption is wrong that the debug line is reporting the status of both sensors, i can only guess that the issue is around the count down not following the active tool.

Bug Timeline

No response

Expected behavior

I would expect the remaining distance count sensor associated with the extruder to count down

Actual behavior

The remaining distance count always reduces against the count associated with T0 regardless of the active tool

Steps to Reproduce

No response

Version of Marlin Firmware

Bugfix 07/02/2022

Printer model

GeeeTech A20M Modifled

Electronics

BTT Octopus Pro + BTT Smart Sensors (x2) + BTT TFT35

Add-ons

Octoprint

Bed Leveling

ABL Bilinear mesh

Your Slicer

Cura

Host Software

OctoPrint

Additional information & file uploads

Configuration.zip

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions