MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.22k stars 19.22k forks source link

[BUG] SKR 1.4 Filament Runout Sensor on Pins 1.26 & 1.25 don't work when printing. M600 is not executed. #19453

Closed kkberg closed 4 years ago

kkberg commented 4 years ago

Bug Description

Both runout sensors are configured to pins 1.26 and 1.25 M119 shows correct working behavoir when Filament is in or out status changes between open and triggered correctly. M600 isn't executed.

My Configurations

Config.zip

Steps to Reproduce

  1. try sensors with M119 when filament is in and out
  2. start a print
  3. simulate an empty filament spool

Expected behavior: I would expect running of M600 which is configured

Actual behavior: No reaction on missing filament M412 is activated

Additional Information

There is no sensorless homing and no diag pins

kkberg commented 4 years ago

@rhapsodyv tried M125 instead of M600 but also same behavior. I mad a little video but only have to hands to manage :). https://youtu.be/bRG2cztqjiA

rhapsodyv commented 4 years ago

@kkberg do you have two sensor? Both aren't working?

kkberg commented 4 years ago

@kkberg do you have two sensor? Both aren't working? @rhapsodyv Yes, but now I test with only one sensor to make it easier.

rhapsodyv commented 4 years ago

Lets do a test. In the file Marlin/src/feature/runout.h line 44, uncomment it:

//#define FILAMENT_RUNOUT_SENSOR_DEBUG

Run a test and past here the serial output.

kkberg commented 4 years ago

Lets do a test. In the file Marlin/src/feature/runout.h line 44, uncomment it:

//#define FILAMENT_RUNOUT_SENSOR_DEBUG

Run a test and past here the serial output.

I'm just compiling

Trenchi commented 4 years ago

@kkberg Hab ich mir schon fast gedacht, frag mich nicht warum :-)

i found something out.

if #define MIXING_EXTRUDER is enabled then the runout sensors do not work.

if I disabled #define MIXING_EXTRUDER then the sensors work again.

should it be that way?

kkberg commented 4 years ago

I tried several times, but no output when sensor ist triggered. Seems that runout.h is not touched. M119 shows right status!

kkberg commented 4 years ago

@kkberg Hab ich mir schon fast gedacht, frag mich nicht warum :-)

i found something out.

if #define MIXING_EXTRUDER is enabled then the runout sensors do not work.

if I disabled #define MIXING_EXTRUDER then the sensors work again.

should it be that way? @Trenchi Bist Du eventuell in unserer FB-Gruppe https://www.facebook.com/groups/364846444121852/requests/?hoist_pending_member_ids_suggested_order=100003731024132&notif_id=1600955952536028&notif_t=group_r2j für SKR Boards

Trenchi commented 4 years ago

@kkberg Nee leider nicht, ich bin nicht so aktiv bei Facebook....ich hab meinen Account seit 5 Jahren nicht mehr geupdatet ^^

kkberg commented 4 years ago

@kkberg Nee leider nicht, ich bin nicht so aktiv bei Facebook....ich hab meinen Account seit 5 Jahren nicht mehr geupdatet ^^

@Trenchi hätte ja sein können.

rhapsodyv commented 4 years ago

I tried several times, but no output when sensor ist triggered. Seems that runout.h is not touched. M119 shows right status!

Last test: can you disable multiple sensors and multiple extruders? Doing a test with only one?

kkberg commented 4 years ago

Just working on it ....

kkberg commented 4 years ago

No change, no output on host.

rhapsodyv commented 4 years ago

No change, no output on host.

:-(

try putting this in your config file:

#define FILAMENT_RUNOUT_THRESHOLD 1
rhapsodyv commented 4 years ago

or even:

#define FILAMENT_RUNOUT_THRESHOLD 0
kkberg commented 4 years ago

Still no change, no host output but M119 is showing correct status. Used both versions for threshold.

thisiskeithb commented 4 years ago

If you manually send M600, does a filament change occur?

kkberg commented 4 years ago

If you manually send M600, does a filament change occur?

Yes it did, I tried it already

rhapsodyv commented 4 years ago

Did you try sending or putting M412 S1 in your gcode file?

rhapsodyv commented 4 years ago

What is the output of only M412 ?

kkberg commented 4 years ago

Did you try sending or putting M412 S1 in your gcode file?

Yes and I have a special gcode file for test print where I put it in. Also M412 is permantly enabled by #define FIL_RUNOUT_ENABLED_DEFAULT true

kkberg commented 4 years ago

What is the output of only M412 ?

it says that runout ist switched on

rhapsodyv commented 4 years ago

Did you cut the right diag pin? :-p hahahah I'm running out of ideas

kkberg commented 4 years ago

Did you cut the right diag pin? :-p hahahah I'm running out of ideas

yes, there are no diag pins in my TMC2130. But why shows M119 the right status?

rhapsodyv commented 4 years ago

What more can we try?

Maybe try M43 W P126 I and M43 W P125 I, to check if it change state accordingly ...

kkberg commented 4 years ago

It shows: m43

What do I have to change in config that M43 works? I'm just confused.

thisiskeithb commented 4 years ago

What do I have to change in config that M43 works? I'm just confused.

Enable PINS_DEBUGGING and run M43 W P126 I & M43 W P125 I again.

thisiskeithb commented 4 years ago

okay, just compiling again

There's no need to comment each step. Just comment after you've run the commands to keep down notifications/this thread length 🙂

kkberg commented 4 years ago

image

rhapsodyv commented 4 years ago

Now you need to test the sensor, and check the output to see if behave accordingly

kkberg commented 4 years ago

Not able to print because controller hangs after starting print file

rhapsodyv commented 4 years ago

M43 W is not intended to use while printing. You call it, and test the sensor, to check if the output react for changes in the sensor.

kkberg commented 4 years ago

okay, misunderstood. I tested it and send my screenshot and after that you wrote that I should test. Debug shows that the pin is triggered but no action is taken. Switches work, but Marlin does not trigger M600.

image

rhapsodyv commented 4 years ago

So, it reacts? All time? You put filament in and out, and every time it generates an output accordingly?

kkberg commented 4 years ago

So, it reacts? All time? You put filament in and out, and every time it generates an output accordingly?

Yes it does. image

kkberg commented 4 years ago

you can see the different valus with M43 only too. image

image

rhapsodyv commented 4 years ago

@kkberg can you test this pre build firmware?

firmware.bin.zip

kkberg commented 4 years ago

@kkberg can you test this pre build firmware?

firmware.bin.zip

I will do but not before monday, sorry for that. Thank you very much for your help. Have a nice weekend.

kkberg commented 4 years ago

I was able to test this morning and it still doesn't work.

kkberg commented 4 years ago

Any ideas or progress on the issue? :) Only want to know if someone is still working on it.

rhapsodyv commented 4 years ago

firmware.bin.zip

One more test... I need that you start a print with this firmware, and open the serial to check the messages... and test the sensor... it will output a lot of data.

kkberg commented 4 years ago

Thank you for the test version. I flashed it, but no success. I did several times trigger the sensor and also checke with M119. M119 showed right status. I include a part of the out. Runouttest.txt

rhapsodyv commented 4 years ago

Well.. now we have a hot clue... that log says you don't have an active printing!!

TFilamentMonitor::run(): e: 1, !filament_ran_out: 1, printingIsActive: 0, did_pause_print: 0
kkberg commented 4 years ago

I was printing active a gcode file which wouzld take round about 5h. :)

rhapsodyv commented 4 years ago

Are printing using onboard SD or TFT?

kkberg commented 4 years ago

Print over usb

rhapsodyv commented 4 years ago

Print over usb

more details please. Octo print?

rhapsodyv commented 4 years ago

What gcode are you using to print? can you share it?

And if you can, do one more test enabling print counter:

#define PRINTCOUNTER
kkberg commented 4 years ago

Using Simplify3D for printing. Printing over SD from LCD it shows print:1 and directly performing an filament change. Triggering a filament runout manully with the sensor nothing happens. new report included. where you can see that printing over usb doesn't have print status, only from SD. Runouttest.txt

kkberg commented 4 years ago

This is the gcode I use, but temp I set from LCD. drawer2-update.gcode.txt