Filament load macro whith sensor
-
; Filament Sensor
M591 D0 P2 C"io8.out" S0 0 ; Filament Sensor an E0, Endstop IO8, Mode P1 Signal high when Filament in, S1: Pause on error -
![alt text]( image url)
Made a plan, sorry i just have PowerPoint here
So how can i read the property of the filament sensor?
Is there any source/manual how to speak the printers language?
-
Potentially use
https://duet3d.dozuki.com/Wiki/Gcode#Section_M581_Configure_external_trigger
However this looks like an opportunity to use the Gcode meta commands, have you looked at this:
https://duet3d.dozuki.com/Wiki/GCode_Meta_Commands -
@T3P3Tony
Yes. Thanks. Thats what i'm searching for... Meta Commands...Nice. Now i need the name/how to check filament sensor state...
But i'm a step further now...
Thanks
-
@toddel and for that you can look at the Object Model
https://duet3d.dozuki.com/Wiki/Object_Model_of_RepRapFirmwareI believe that OM documentation is yet to catch up with the very latest firmware build (which you should use for this) however use M409 to see the OM as a JSON stucture
https://duet3d.dozuki.com/Wiki/Gcode#Section_M409_Query_object_model -
When i try:
M409 K"sensors.filamentMonitors" F"filamentPresent"
-> {"key":"sensors.filamentMonitors","flags":"filamentPresent","result":[{"filamentPresent":true}]}
When i try:
echo !sensors.filamentMonitors[0].filamentPresent
-> false
Hmm what's wrong?
-
echo sensors.filamentMonitors[0].filamentPresent works โ๏ธโ๏ธ
-
Got it running!
if sensors.filamentMonitors[0].filamentPresent = true
M291 P"Es ist noch Filament geladen. Mรถchten Sie es entladen?" R"Filament noch geladen!" S3
;call unload.g
if sensors.filamentMonitors[0].filamentPresent = false
M291 P"Extruder wird zum laden aufgeheizt" R"Extruder wird aufgeheizt" S2
M109 S220 ;Wait for extruder
while true
M291 P"Filament einlegen..." R"Filament einlegen" S1
if sensors.filamentMonitors[0].filamentPresent = true
G1 E10 F100
G1 E100 F300
breakIs there a way to ask the user after G1 E100 "Color OK?" with anwer options Yes(break), No(another G1 E100) and Abort(break)?
Then its finished...
-
@toddel I made a similar macro set that may interest you.
https://forum.duet3d.com/topic/17566/single-macro-for-filament-handling/15 -
I am having issues with this macro while using the Duet3D laser filament sensor.
; Filament is currently loaded
if sensors.filamentMonitors[0].filamentPresent = true
M702 ; Unload filament as previously configuredDoes the laser sensor only detect movement and is unable to detect filament presence when it is stationary? In the console when I enter:
echo sensors.filamentMonitors[0].filamentPresent
I get "null"
m591 d0 Duet3D laser filament monitor v2 on pin e0stop, enabled, allow 15% to 110%, check every 3.0mm, version 2, quality 223, brightness 255, shutter 86, no calibration data
-
@mitch I think your question should be in its own thread so it gets the proper attention.
-
I have been searching around the forum tonight leading me to several "indirect filament sensor" threads. I believe the answer to my question above is yes. The sensor detects movement and not presence.
The laser filament sensor does have an input for a micro switch but most of the mods do not use it. I must just have an unusual use case in wanting to take advantage of the static state of knowing if filament is loaded. I was using this information to automate startup and printing.