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.28k stars 19.24k forks source link

[BUG] Marlin 2.0 filament runout sensor error #14337

Closed wonderland134 closed 5 years ago

wonderland134 commented 5 years ago

Description

I downloaded marlin 2.0.x ver. about one week ago. And I upload it with filament runout sensor function. I check filament runout sensor will be fine via pronterface. I send the m119 command and I check open - triggered sign well. But in the print something, filament runout script, m600 is occured when the printing started. Eventhough, filament loaded into extruder.

I will upload my configuration.h and configuration_adv.h files below. config.zip

rly demonstrate the issue.

anupchavda1 commented 4 years ago

I too am having this issue on 2.0.4.4 As above, M119 is detecting correctly the filament sensor state, So too does the "Change Filament" process, as if i try to bypass the sensor, i get an option to deactivate the sensor. when i dont bypass the sensor, this menu does not appear when changing filament. However when printing from SD card (i'm eliminating the USB for now, and i trigger the Sensor, printer continues with no issue. Checked the code and i have the #define FILAMENT_RUNOUT_SCRIPT "M600"

TheDungBeetle commented 4 years ago

I have the same problem:

All the above checks out good and as expected, however Marlin fails to run my FILAMENT_RUNOUT_SCRIPT

My FILAMENT_RUNOUT_SCRIPT is set to "#define FILAMENT_RUNOUT_SCRIPT "M118 A1 action:paused". But that shouldn't matter as it never gets run.

anupchavda1 commented 4 years ago

How do we go about reopening this issue? It’s obviously a software issue. Someone has even traced it back to which commit it got broken in. Marlin just doesn’t seem to trigger the action.

creatron commented 4 years ago

I re-flashed my system with 1.1.9.. works fine, must be software..

andreslopez93 commented 4 years ago

Is this problem solved? I can't get the filament sensors to work, for a printer with mix and vtool, if M600 T0 is placed in the scrip, it works well for printers of an extruder, but not for mix printers

cskozlowski commented 4 years ago

I have an SKR 1.4T with Mk3s IR sensor (Marlin 2.0.5.3 build):

M119 with no filament: 'open' status (this is a good thing) M119 with filament: 'TRIGGERED status (this is a good thing) M412 S1: filament sensor enabled so, it appears that the filament sensor state is being read correctly; however, it does not cause Marlin to go and execute M600 (which I have defined in config.h as #define FILAMENT_RUNOUT_SCRIPT "M600")

define FIL_RUNOUT_INVERTING true (I haven't messed with this ... yet)

So, my sensor works properly but the script is not getting executed ... that is a problem.

andreslopez93 commented 4 years ago

The same thing happens to me, but with the original board of my Geeetech A10M printer. If you send the command via pronterface "M600", it will return that the tool "T" is missing, then in the scrip put like this:

define FILAMENT_RUNOUT_SCRIPT "M600 T0"

then it works, but for printers with more than 1 extruder like mine it cannot be placed in the "T0" script since it will never change the second extruder.

check this, it may be a partial solution for you.

wat3000 commented 4 years ago

same problem

andreslopez93 commented 4 years ago

well finally the 2 filament sensors work in my A10M, I have changed the code of the files runout.h and runout.cpp

I leave the files here to help with the topic. replace directly from the base of the Marlin and its sensors work.

note: 1_My printer is a Geeetech A10M with color mixer, and virtual tools activated, and you need to replace the 2 files to run the 2 sensors

2_If your printer fails to activate the filament sensor and it is 1 extruder only, my recommendation is to use the #define FILAMENT_RUNOUT_SCRIPT "M600 T0" directly

runout.h + runout.cpp.zip

wat3000 commented 4 years ago

@andreslopez93 @cskozlowski Hi, I try #define FILAMENT_RUNOUT_SCRIPT "M600 T0" but ist not working for me on Ender 3. Wenn ich make: Confiiguration/ Filament sensor on= stops immediately the print. Wenn i change to off: doesn't work. M119 with no filament: 'open' status (this is a good thing) M119 with filament: 'TRIGGERED status (this is a good thing) my sensor works properly but the script is not getting executed ... that is a problem for me too

I changed runout.h and runout.cpp but no working

andreslopez93 commented 4 years ago

Try sending the command m600 from pronterface, and see what returns to you, then send m600 t0 and see what returns you.

also share your config.h and adv

wat3000 commented 4 years ago

It Works on ender 3 with SRK Mini V 1.2!!! but only with the latest Marlin Version (see below) @andreslopez93

Load the Last Marlin for SRK Mini here: https://github.com/bigtreetech/BIGTREETECH-SKR-mini-E3

Change in SRC/PINS/stm32f1/pins_BTT_SKR_MINI_E3.h

define FIL_RUNOUT_PIN PC15 // "E0-STOP"

to

define FIL_RUNOUT_PIN PC12 // "E0-STOP"

in configuration.h:

define FILAMENT_RUNOUT_SCRIPT "M600 T0" // thanks-gracias to andreslopez93!

define FILAMENT_RUNOUT_DISTANCE_MM 25

enjoy

andreslopez93 commented 4 years ago

Perfect!

wat3000 commented 4 years ago

that ist my firmware for ender 3 with BL Touch and Filament sensor with SRK mini V1.2

Try at your OWN RISK!!!!!!!

firmware.bin.zip

kreuzhofer commented 4 years ago

Using Marlin 2.0.5.3 release.

On the Ender 3 I have the filament sensor connected to PIN 27. That PIN is also used by the Speaker. I get douzends of alternating "FILAMENT ON" AND "FILAMENT OFF" lines in Pronterface once I pull the filament out. (You will see these outputs only if you add #define FILAMENT_RUNOUT_SENSOR_DEBUG to your Configuration.h).

I read a comment above that going into the printer configuration menu and turning off and on the filament runout followed by a store settings triggered the filament runout. That is caused by the fact that store settings also sends a beep to the speaker and that triggers PIN27 by definition on the Ender 3.

I tried to #undef BEEPER_PIN, which should have solved it but didn't. I think I am close to the reason.

Will try bugfix branch to see if this resolves it.

thinkyhead commented 4 years ago

On the Ender 3 I have the filament sensor connected to PIN 27

And there are zero other free pins on the board?

InsanityAutomation commented 4 years ago

Correct, an ender 3 melzi has absolutely zero spare pins without stealing something... Pin 27 from the buzzer is the most common to steal.

thinkyhead commented 4 years ago

I believe that TH3D makes a break-out board to work around the limitation.

InsanityAutomation commented 4 years ago

Pin 27 is the one it breaks out

kreuzhofer commented 4 years ago

Yes, PIN27 is available at the display adapter, which is also the buzzer. Usually undeffing the beeper_pin foxes that but seems not working in 2.0.5.3 anymore.

The Creality boards also have another pin that can be soldered in, PIN29 but a lot of people use pin27 for bltouch and PIN29 for filament runout.

I would like to use PIN27 as this is the easiest way.

Holen Sie sich Outlook für Androidhttps://aka.ms/ghei36


From: InsanityAutomation notifications@github.com Sent: Saturday, June 27, 2020 1:30:05 AM To: MarlinFirmware/Marlin Marlin@noreply.github.com Cc: Daniel Kreuzhofer daniel@kreuzhofer.de; Comment comment@noreply.github.com Subject: Re: [MarlinFirmware/Marlin] [BUG] Marlin 2.0 filament runout sensor error (#14337)

Pin 27 is the one it breaks out

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/MarlinFirmware/Marlin/issues/14337#issuecomment-650449234, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AANORC2VFWLFRUBVDKPVIR3RYUVP3ANCNFSM4HZUULMA.

creatron commented 4 years ago

If you do not already use the 3Pin connector on the board you populate it and use 'analogue 2' as input, just use it as discrete. Creality use these pins to 'Fix' the analogue temperature problem on some boards, so they solder a cap on 5V and ground on the connector pins. This give you one extra input pin.

On Sat, Jun 27, 2020 at 1:22 AM Scott Lahteine notifications@github.com wrote:

I believe that TH3D makes a break-out board to work around the limitation.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/MarlinFirmware/Marlin/issues/14337#issuecomment-650447244, or unsubscribe https://github.com/notifications/unsubscribe-auth/AD6CXSTT5E7FTYTMXQEYQLLRYUUUFANCNFSM4HZUULMA .

-- Gerrie de Jager

(Quite people have the loudest minds. Whether you think you can or you think you can't -- your'ed right. Don't confuse having less with being less, having more with being more. Who you are is far more important than what you have. Ask busy people, others are 'busy')

Cell 072 198 1678

www.creatron.co.za http://www.creatron.co.za

This e-mail, its contents and any file attachments transmitted with it are intended solely for the addressee(s) and may contain confidential proprietary information. Access by any other party without the express written permission of the sender is unauthorised. If you have received this e-mail in error you may not copy, distribute or use the contents, attachments or information in any way. Please destroy it and contact the sender.

kreuzhofer commented 4 years ago

Yes, that's PIN29. However, it should be possible to disable the use of the beeper in Marlin, shouldn't it be? Why is the beeper pin still firing when for example store settings is triggered from the menu although I did #undef BEEPER_PIN?

Holen Sie sich Outlook für Androidhttps://aka.ms/ghei36


From: creatron notifications@github.com Sent: Saturday, June 27, 2020 5:51:32 PM To: MarlinFirmware/Marlin Marlin@noreply.github.com Cc: Daniel Kreuzhofer daniel@kreuzhofer.de; Comment comment@noreply.github.com Subject: Re: [MarlinFirmware/Marlin] [BUG] Marlin 2.0 filament runout sensor error (#14337)

If you do not already use the 3Pin connector on the board you populate it and use 'analogue 2' as input, just use it as discrete. Creality use these pins to 'Fix' the analogue temperature problem on some boards, so they solder a cap on 5V and ground on the connector pins. This give you one extra input pin.

On Sat, Jun 27, 2020 at 1:22 AM Scott Lahteine notifications@github.com wrote:

I believe that TH3D makes a break-out board to work around the limitation.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/MarlinFirmware/Marlin/issues/14337#issuecomment-650447244, or unsubscribe https://github.com/notifications/unsubscribe-auth/AD6CXSTT5E7FTYTMXQEYQLLRYUUUFANCNFSM4HZUULMA .

-- Gerrie de Jager

(Quite people have the loudest minds. Whether you think you can or you think you can't -- your'ed right. Don't confuse having less with being less, having more with being more. Who you are is far more important than what you have. Ask busy people, others are 'busy')

Cell 072 198 1678

www.creatron.co.za http://www.creatron.co.za

This e-mail, its contents and any file attachments transmitted with it are intended solely for the addressee(s) and may contain confidential proprietary information. Access by any other party without the express written permission of the sender is unauthorised. If you have received this e-mail in error you may not copy, distribute or use the contents, attachments or information in any way. Please destroy it and contact the sender.

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/MarlinFirmware/Marlin/issues/14337#issuecomment-650577787, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AANORC6YXI5YG3U7F4DFPITRYYIQJANCNFSM4HZUULMA.

fixoid commented 4 years ago

Hello, feature also not work for me on Marlin 2.0 if #define FILAMENT_RUNOUT_DISTANCE_MM enabled.

with commented #define FILAMENT_RUNOUT_DISTANCE_MM feature works fine.

kreuzhofer commented 4 years ago

I can confirm it’s fixed in the bugfix branch

thinkyhead commented 4 years ago

I did #undef BEEPER_PIN

If you add that line to the end of pins/pins.h it will have the desired effect. Preemptively defining BEEPER_PIN as -1 in the configurations should also prevent it being defined with another value.

github-actions[bot] commented 4 years ago

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.