E3D Roto Filament Runout Issue
-
I have an IDEX running two E3D Rotos with toolboards. I have the Roto sensors that are the simple switch type connected to IO_1 (Image included). I have them configured in tfree0.g, tfree1.g, tpost0.g, and tpost1.g. I get an error that there is no filament present when I start a print. However, when I manually put filament in it, the light goes off and when I remove it the little red light goes on. Based on earlier posts and replies on similar issues, I have it wired correctly but I'm including a picture to be sure. M122 gives me no filament in either case. It may be worth mentioning that it printed perfectly fine until I configured the filament runout sensors. What am I missing?
; Configuration file for RepRapFirmware on Duet 3 Mini 5+ WiFi ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.5.4 on Sat Aug 10 2024 17:00:36 GMT-0400 (Eastern Daylight Time) ; General G90 ; absolute coordinates M83 ; relative extruder moves M550 P"M3ID V2" ; set hostname ; Accessories M575 P1 S0 B57600 ; configure PanelDue support ; Network M552 S1 ; configure WiFi adapter M586 P0 S1 ; configure HTTP ; Wait a moment for the CAN expansion boards to become available G4 S2 ; Accelerometers M955 P121.0 I20 ; configure accelerometer on board #121 M955 P122.0 I20 ; configure accelerometer on board #122 ; Smart Drivers M569 P0.1 S0 D2 ; driver 0.1 goes backwards (X axis) M569 P0.2 S1 D2 ; driver 0.2 goes forwards (Y axis) M569 P0.3 S0 D2 ; driver 0.3 goes backwards (Z axis) M569 P0.4 S0 D2 ; driver 0.4 goes forwards (U axis) M569 P121.0 S1 D2 ; driver 121.0 goes forwards (extruder 0) M569 P122.0 S1 D2 ; driver 122.0 goes forwards (extruder 1) ; Motor Idle Current Reduction M906 I30 ; set motor current idle factor M84 S30 ; set motor current idle timeout ; Axes M584 X0.1 Y0.2 Z0.3 U0.4 ; set axis mapping M350 X16 Y16 Z16 U16 I1 ; configure 16X microstepping with interpolation M906 X1750 Y1750 Z800 U1750 ; set axis driver currents M92 X80 Y88 Z1010 U80 ; configure steps per mm M208 X-7:203 Y-9:250 Z0:200 U28:258 ; set minimum and maximum axis limits M205 X12 Y12 Z0.2 U12 ; set maximum instantaneous speed changes (mm/min)(JERK) M203 X6000 Y6000 Z600 U6000 ; set maximum speeds (mm/min) M201 X800 Y800 Z20 U800 ; set accelerations (mm/s^2) ; Extruders M584 E121.0:122.0 ; set extruder mapping M350 E16:16 I1 ; configure microstepping with interpolation M906 E450:450 ; set extruder driver currents M92 E2676:2682 ; configure steps per mm M566 E150:150 ; set maximum instantaneous speed changes (mm/min) M203 E3600:3600 ; set maximum speeds (mm/min) M201 E3000:3000 ; set accelerations (mm/s^2) M205 E2.5 ; E max jerk (mm/s^2) M207 S0.5 F2400 ; set retraction for T0 and T1 M572 D0:1 S0.035 ; set pressure advance for T0 and T1 ; Kinematics M669 K0 ; configure Cartesian kinematics ; BLtouch M558 K0 P9 C"121.io0.in" H5 F120 T6000 ; configure BLTouch probe via slot #0 G31 P500 X0 Y24 Z4.14 ; set Z probe trigger value, offset and trigger height. If you have to move the nozzle closer to the bed, increase the G31 Z value by the amount of baby stepping used. If you have to move the nozzle farther away from the bed, decrease the G31 Z value by the amount of baby stepping used. M950 S0 C"121.io0.out" ; create servo #0 for BLtouch ; Scanning Z probe M558 K1 P11 C"121.i2c.ldc1612" F36000 T36000 M308 A"SZP coil" S10 Y"thermistor" P"121.temp2" ; thermistor on coil G31 K1 Z1.8 Y-38 ; define probe 1 offsets and trigger height M558.2 K1 S16 R134218 ; set drive current and reading offset ; Endstops M574 X1 P"io1.in" S1 ; configure X axis low end endstop M574 Y1 P"io2.in" S1 ; configure Y axis low end endstop M574 Z2 S1 P"io3.in" ; configure Z axis high end endstop M574 U2 P"io4.in" S1 ; configure U axis high end endstop ; Mesh Bed Compensation M557 X19:188 Y15:210 S40:40 ; define grid for mesh bed compensation M376 H10 ; taper off bed compensation over 10mm ; Sensors M308 S0 P"temp0" Y"thermistor" A"Heated Bed" T100000 B4725 C7.06e-8 ; configure sensor #0 M308 S1 P"121.temp1" Y"thermistor" A"Nozzle" T100000 B4725 C7.06e-8 ; configure sensor #1 M308 S2 P"122.temp0" Y"thermistor" A"Nozzle" T100000 B4725 C7.06e-8 ; configure sensor #2 ; Heaters M950 H0 C"out2" T0 ; create heater #0 (Bed) M143 H0 P0 T0 C0 S120 A0 ; configure heater monitor #0 for heater #0 (Bed) M307 H0 R0.167 K0.222:0.000 D26.05 E1.35 S1.00 B0 ; configure model of heater #0 (Bed) M950 H1 C"121.out0" T1 ; create heater #1 (T0) M143 H1 P0 T1 C0 S300 A0 ; configure heater monitor #0 for heater #1 (T0) M307 H1 R4.287 K0.528:0.232 D2.33 E1.35 S1.00 B0 V24.1 ; configure model of heater #1 (T0) M950 H2 C"122.out0" T2 ; create heater #2 (T1) M143 H2 P0 T1 C0 S300 A0 ; configure heater monitor #0 for heater #2 (T1) M307 H2 R4.334 K0.514:0.239 D2.21 E1.35 S1.00 B0 V24.0 ; configure model of heater #2 (T1) ; Heated beds M140 P0 H0 ; configure heated bed #0 ; Fans M950 F0 C"121.out2" ; create fan #0 T0 Heat Sink Fan M106 P0 C"T0 Heatsink Fan" S0 B0.1 H1 T45 ; configure fan #0 T0 Heat Sink Fan M950 F1 C"121.out1" ; create fan #1 T0 Part Cooling fan M106 P1 C"T0 Part Cooling Fan" S0 L25 X255 B0.1 ; configure fan #1 T0 Part Cooling Fan M950 F2 C"122.out2" ; create fan #2 T1 Heat Sink Fan M106 P2 C"T1 Heatsink Fan" S0 B0.1 H2 T45 ; configure fan #2 T1 Heat Sink Fan M950 F3 C"122.out1" ; create fan #3 T1 Part Cooling Fan M106 P3 C"T1 Part Cooling Fan" S0 L25 X255 B0.1 ; configure fan #3 T1 Part Cooling Fan ; Tools M563 P0 D0 H1 F1 ; create tool #0 T0 M568 P0 R0 S0 ; set initial tool #0 active and standby temperatures to 0C G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C M563 P1 D1 H2 F3 ; create tool #1 T1 M568 P1 R0 S0 ; set initial tool #1 active and standby temperatures to 0C G10 P1 X0 Y0 Z-.04 ; set tool 1 axis offsets G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C ; Miscellaneous T0 ; select first tool ;M950 J2 C"121.io2.in" ; configure the action button on T0 ;M950 J2 C"122.io2.in" ; configure the action button on T1 M593 P"ZVDDD" F50.6 ; set input shaper for X/U axis
M122 === Diagnostics === RepRapFirmware for Duet 3 Mini 5+ version 3.5.4 (2024-11-24 10:44:24) running on Duet 3 Mini5plus WiFi (standalone mode) Board ID: ZBVGS-QP6KL-K65J0-409N0-NK02Z-HT6JA Used output buffers: 13 of 40 (35 max) === RTOS === Static ram: 103496 Dynamic ram: 123516 of which 0 recycled Never used RAM 14736, free system stack 192 words Tasks: NETWORK(2,nWait 7,17.0%,215) LASER(5,nWait 7,0.0%,269) HEAT(3,nWait 6,0.0%,352) Move(4,nWait 6,0.0%,241) CanReceiv(6,nWait 1,0.1%,798) CanSender(5,nWait 7,0.0%,336) CanClock(7,delaying,0.0%,348) TMC(4,nWait 6,0.8%,101) MAIN(1,running,81.2%,665) IDLE(0,ready,0.0%,29) AIN(4,delaying,0.8%,255), total 100.0% Owned mutexes: === Platform === Last reset 00:02:42 ago, cause: power up Last software reset at 2024-12-19 22:16, reason: User, Gcodes spinning, available RAM 11148, slot 1 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00000000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 Aux0 errors 0,0,0 MCU revision 3, ADC conversions started 122487, completed 122485, timed out 0, errs 0 MCU temperature: min 27.0, current 27.0, max 27.4 Supply voltage: min 24.2, current 24.3, max 24.3, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0 Events: 0 queued, 0 completed Driver 0: standstill, SG min 0, read errors 0, write errors 0, ifcnt 10, reads 3346, writes 0, timeouts 0, DMA errors 0, CC errors 0 Driver 1: standstill, SG min 0, read errors 0, write errors 0, ifcnt 13, reads 3347, writes 0, timeouts 0, DMA errors 0, CC errors 0 Driver 2: standstill, SG min 0, read errors 0, write errors 0, ifcnt 13, reads 3347, writes 0, timeouts 0, DMA errors 0, CC errors 0 Driver 3: standstill, SG min 0, read errors 0, write errors 0, ifcnt 13, reads 3346, writes 0, timeouts 0, DMA errors 0, CC errors 0 Driver 4: standstill, SG min 0, read errors 0, write errors 0, ifcnt 13, reads 3346, writes 0, timeouts 0, DMA errors 0, CC errors 0 Driver 5: not present Driver 6: not present Date/time: 2024-12-21 23:27:17 Cache data hit count 314375956 Slowest loop: 9.31ms; fastest: 0.16ms === Storage === Free file entries: 20 SD card 0 detected, interface speed: 22.5MBytes/sec SD card longest read time 0.4ms, write time 0.0ms, max retries 0 === Move === DMs created 83, segments created 0, maxWait 0ms, bed compensation in use: none, height map offset 0.000, max steps late 0, min interval 0, bad calcs 0, ebfmin 0.00, ebfmax 0.00 no step interrupt scheduled Moves shaped first try 0, on retry 0, too short 0, wrong shape 0, maybepossible 0 === DDARing 0 === Scheduled moves 1, completed 1, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === DDARing 1 === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 Heater 1 is on, I-accum = 0.0 === GCodes === Movement locks held by null, null HTTP is idle in state(s) 0 Telnet is idle in state(s) 0 File is idle in state(s) 0 USB is idle in state(s) 0 Aux is idle in state(s) 0 Trigger is idle in state(s) 0 Queue is idle in state(s) 0 LCD is idle in state(s) 0 SBC is idle in state(s) 0 Daemon is idle in state(s) 0 Aux2 is idle in state(s) 0 Autopause is idle in state(s) 0 File2 is idle in state(s) 0 Queue2 is idle in state(s) 0 Q0 segments left 0, axes/extruders owned 0x0000803 Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === Filament sensors === check 0 clear 0 Extruder 0 sensor: no filament === CAN === Messages queued 572, received 2583, lost 0, errs 0, boc 0 Longest wait 0ms for reply type 0, peak Tx sync delay 6, free buffers 26 (min 26), ts 318/318/0 Tx timeouts 0,0,0,0,0,0 === Network === Slowest loop: 20.97ms; fastest: 0.07ms Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) HTTP sessions: 1 of 8 === WiFi === Interface state: active Module is connected to access point Failed messages: pending 0, notrdy 0, noresp 0 Firmware version 2.2.0 MAC address e8:68:e7:e1:4e:33 Module reset reason: Power up, Vcc 3.35, flash size 2097152, free heap 39032 WiFi IP address 192.168.1.163 Signal strength -45dBm, channel 2, mode 802.11n, reconnections 0 Clock register 00002002 Socket states: 0 0 0 0 0 0 0 0
; tfree0.g ; called when tool 0 is freed ; ; generated by RepRapFirmware Configuration Tool v3.5.4 on Sat Aug 10 2024 17:00:41 GMT-0400 (Eastern Daylight Time) M591 D0 P1 C"121.io1.in" S0 ; configure/disable filament monitor (simple switch) for E0 M83 ; relative extruder movement G1 E-3 F3600 ; retract 3mm M106 S0 ; turn off the print cooling fan G91 ; relative axis movement G1 Z3 F500 ; up 3mm G90 ; absolute axis movement G1 H3 X0 F6000 ; park the X carriage at zero
; tpost0.g ; called after tool 0 has been selected ; ; generated by RepRapFirmware Configuration Tool v3.5.4 on Sat Aug 10 2024 17:00:41 GMT-0400 (Eastern Daylight Time) M591 D0 P1 C"121.io1.in" S1 ; configure/enable filament monitor (simple switch) for E0 M106 R2 ; restore print cooling fan speed M116 P0 ; wait for tool 0 heaters to reach operating temperature M83 ; relative extruder movement G1 E2 F3600 ; extrude 2mm
-
@SonnyD1 why are you configuring them in the tool change files? Why not just have them configured all the time in config.g?
-
@jay_s_uk Because then I will have to have filament in the T1 all the time wether I am using it or not. @Phaedrux suggested this method when I built another IDEX some time ago in this post https://forum.duet3d.com/topic/32174/filament-runout-sensor?_=1734881028599. I could have the T0 in the config.g and the T1 in the tool change files but it doesn't matter really. That said, my other IDEX works perfectly utilizing this method. Any idea as to what the solution to this issue could be?