BTT Smart Filament Sensor on Custom Marlin FW
Apologies if i am posting in the wrong forum for this.
I am currently running 8x Ender 3's on Marlin 2.0.bugfix with runout detection enabled for the BTT Smart Filament Sensor. The runout detection runs perfectly when printing from an SD Card but not when I am running a job from Repetier Server (Pro). I understand that the runout detection only works when marlin is aware of a job running which, i understand is not the case when Repetier is sending the instructions directly to the printer bypassing Marlin.
My question is this, is it possible to set up some 'listening' code to detect when the filament runout detection is triggered and then respond to that action mimicking the pause-->park nozzle-->retract filament process?
Looking at 'G-Codes' under printer settings, it seems like 'Response to Event' is exactly what I'm looking for, but I am very new to this and any guidance or pointing me to some documentation would be greatly appreciated.
Thanks for your time
J
I am currently running 8x Ender 3's on Marlin 2.0.bugfix with runout detection enabled for the BTT Smart Filament Sensor. The runout detection runs perfectly when printing from an SD Card but not when I am running a job from Repetier Server (Pro). I understand that the runout detection only works when marlin is aware of a job running which, i understand is not the case when Repetier is sending the instructions directly to the printer bypassing Marlin.
My question is this, is it possible to set up some 'listening' code to detect when the filament runout detection is triggered and then respond to that action mimicking the pause-->park nozzle-->retract filament process?
Looking at 'G-Codes' under printer settings, it seems like 'Response to Event' is exactly what I'm looking for, but I am very new to this and any guidance or pointing me to some documentation would be greatly appreciated.
Thanks for your time
J
Comments
@outOfFilament
and it would show the filament change dialog when the expression is found in printer output.
I know marlin has compile options to send messages to host as well. Just this is often disabled or configured to be handled firmware intern and intern is not when printing externally as you already figured out also we set the marlin print timer on start.
I've looked, and the PRINTJOB_TIMER_AUTOSTART is enabled. But that hasn't solved it.
I'll have a bit of a hunt around to see if I can figure out how to get marlin to send messages to host.
Thanks
so also the M75 condition is met.
Please keep me informed when you find a solution and especially if there is a unknown message.
Known tests for marlin responses we know are catched with this from Marlin.xml in firmwares folder:
Just to confirm the usage, did you include that in the slicer software precursory code or is that placed in the "Run Before Job" event dependency?
Thanks
J
I have an update, but it's not all good news, maybe you could help me figure this out because I'm clearly doing something wrong...
I can get the filament sensor to trigger through jobs sent from Repetier Server using the M75 code but it seems to be triggering at the very start of the print. Below is a list of things i've tried so far.
-Confirmed the HIGH/LOW state of the sensor with M119, when filament is present, the response is "open"
-inserted "M75" into the 'run before job' event dependency (triggers at the start of the print"
-inserted "M75" into the slicers (Cura) precursory G-code at the beginning (before setting E0 and Bed temperatures)
-inserted "M75" in to the slicers precursory G-Code at the end (after G28).
All three attempts have resulted in the sensor triggering at the start of the print when filament is present.
I would love to hear your thoughts on this.
Thanks
J
As simple test remove filament or bypass sensor and see if it does not stop any more. Then during print insert filament and if it stops the signal is just the wrong way around and needs to be inverted.