installing Trianglelab filament sensor FB



  • Hello I'm having some issues trying to get a filament runout sensor working on my duet 2 wifi with RR3.2. I've added the following line into my config.g as it should be a 2=simple sensor (low signal when filament present) but as soon as my start.g finishes running I get a pop up on the DWC that the print has paused because of no filament.

    M591 D0 P2 C"e0_stop" S1 						   ; filament monitor connected to E0 endstop
    

    So I then tried a P1 But that trips the filament sensor before the Start.g even runs or at least at the very same time.

    M591 D0 P1 C"e0_stop" S1 						   ; filament monitor connected to E0 endstop
    

    I'm pretty sure the wiring is correct and when I tested the switch with a piece of filament I see that the E0 stop light on the board is funcitoning when I add or remove filament. When the filament is in the switch the E0 light is illuminated, when I remove the filament it is off. I have also tried the C"e0stop" as well as C"e0_stop" as I have seen documentation for both but there is not change in functionality.

    Here is my Config.g

    ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.10 on Sun Dec 20 2020 17:43:31 GMT-0600 (Central Standard Time)
    
    ; General preferences
    G90                                                ; send absolute coordinates...
    M83                                                ; ...but relative extruder moves
    M550 P"Ender 5 Pro"                                ; set printer name
    
    ; Network
    M552 S1                                            ; enable network
    M586 P0 S1                                         ; enable HTTP
    M586 P1 S0                                         ; disable FTP
    M586 P2 S0                                         ; disable Telnet
    
    ; Drives
    M569 P0 S0                                         ; physical drive 0 goes backwards
    M569 P1 S0                                         ; physical drive 1 goes backwards
    M569 P2 S1                                         ; physical drive 2 goes forwards
    M569 P3 S1                                         ; physical drive 3 goes forwards
    M584 X0 Y1 Z2 E3                                   ; set drive mapping
    M350 X32 Y32 Z32 E32 I1                            ; configure microstepping with interpolation
    M92 X160.00 Y160.00 Z1600.00 E276.00               ; set steps per mm
    M566 X900.00 Y900.00 Z300.00 E400.00               ; set maximum instantaneous speed changes (mm/min)
    M203 X6000.00 Y6000.00 Z1200.00 E1200.00           ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z50.00 E250.00                ; set accelerations (mm/s^2)
    M906 X500 Y800 Z1000 E800 I30                      ; set motor currents (mA) and motor idle factor in per cent
    M84 S30                                            ; Set idle timeout
    
    ; Axis Limits
    M208 X-110 Y-110 Z-8 S1                            ; set axis minima
    M208 X110 Y110 Z506 S0                             ; set axis maxima
    
    ; Endstops
    M574 X2 S1 P"xstop"                                ; configure active-high endstop for high end on X via pin xstop
    M574 Y2 S1 P"ystop"                                ; configure active-high endstop for high end on Y via pin ystop
    M574 Z2 S3											; configure motor stall for Z max
    M915 Z S2 F1 H200 R0								; configure stall detection
    
    ; Z-Probe
    M950 S0 C"exp.heater3"                             ; create servo pin 0 for BLTouch
    M558 P9 C"^zprobe.in" H5 F300 T9000                ; set Z probe type to bltouch and the dive height + speeds
    G31 P500 X-42.5 Y-8.00 Z2.5                       ; set Z probe trigger value, offset and trigger height
    M557 X-105:65 Y-105:65 S34                         ; define mesh grid
    
    ; Filament sensor
    M591 D0 P1 C"e0_stop" S1 						   ; filament monitor connected to E0 endstop
    
    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4138     ; configure sensor 0 as thermistor on pin bedtemp
    M950 H0 C"bedheat" T0                              ; create bed heater output on bedheat and map it to sensor 0
    M307 H0 B0 S1.00                                   ; disable bang-bang mode for the bed heater and set PWM limit
    M140 H0                                            ; map heated bed to heater 0
    M143 H0 S120                                       ; set temperature limit for heater 0 to 120C
    M308 S1 P"e0temp" Y"thermistor" T100000 B4138      ; configure sensor 1 as thermistor on pin e0temp
    M950 H1 C"e0heat" T1                               ; create nozzle heater output on e0heat and map it to sensor 1
    M307 H1 B0 S1.00                                   ; disable bang-bang mode for heater  and set PWM limit
    M143 H1 S280                                       ; set temperature limit for heater 1 to 280C
    
    ;Virtual Heaters
    M308 S4 Y"mcu-temp" A"MCU"				           ; create mcu temperature
    M308 S5 Y"drivers" A"Stepper driver"			   ; create driver temperature
    
    ; Fans
    M950 F0 C"fan0" Q50                              ; create fan 0 on pin fan0 and set its frequency Board cooling fan
    M106 P0 L50 T30:45 H4:5                                ; set fan 0 value. Thermostatic control is turned on proportional to the mcu temp
    M950 F1 C"fan1" Q500                               ; create fan 1 on pin fan1 and set its frequency Part cooling fan
    M106 P1 S0 H-1                                     ; set fan 1 value. Thermostatic control is turned off
    M950 F2 C"fan2" Q500                               ; create fan 2 on pin fan2 and set its frequency Heat break fan
    M106 P2 S0 H1 T45                                  ; set fan 2 value. Thermostatic control is turned on
    
    ; Tools
    M563 P0 D0 H1 F1                                   ; define tool 0
    G10 P0 X0 Y0 Z0                                    ; set tool 0 axis offsets
    G10 P0 R0 S0                                       ; set initial tool 0 active and standby temperatures to 0C
    
    ; Custom settings are not defined
    
    ; Miscellaneous
    M572 D0 S0.05										; Set pressure advance
    M501                                               ; load saved parameters from non-volatile memory
    M911 S23 R24 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
    T0                                                 ; select first tool
    
    
    


  • If it's like the two I bought there is a 4.7K resistor inside (a tiny surface mount device) that pulls the signal low.

    This is too large a value for the Duet. The "low" state is too high for the Duet's input to be read as a low.

    Connect a 1K resistor from the signal to ground.

    I did mine inside on the back of one of the connectors but you could do it a number of others ways.

    If you have the tools you could remove the existing surface mount resistor and replace it with a 1K device.

    There are two connectors on the sensor. If you had the matching connector you could put the 1K resistor on the connector and attach it to the sensor.

    Good luck.

    Frederick



  • Oddly, I changed the port to use the E1stop and also moved the D0 to the end of the line and it works properly now.

    So is there an issue with the board, or is there a resistor issue as stated by @fcwilt .

    M591 P2 C"e1stop" S1 D0 						   ; filament monitor connected to E0 endstop
    


  • Yeah there must be an issue with the board I have because connected to e1stop, the filament sensor works fine. What the heck.



  • E0_STOP and E1_STOP do have a different set of doodads connected to them, so that might make the difference.

    Untitled.png



  • @baird1fa said in installing Trianglelab filament sensor FB:

    Oddly, I changed the port to use the E1stop and also moved the D0 to the end of the line and it works properly now.

    So is there an issue with the board, or is there a resistor issue as stated by @fcwilt .

    M591 P2 C"e1stop" S1 D0 						   ; filament monitor connected to E0 endstop
    

    It's possible that your units have a different resistor than mine - I thought 4.7K was rather large.

    If you have a way to measure resistor values you can measure from the signal pin to the ground pin - first disconnect it from your Duet.

    Mine is connected to e1stop as well and it did not work reliably until I added the 1K resistor.

    Frederick



  • @alankilian But The LED beside the stepper motor jack lights up for either of the E0 or the E1 stops, so even if they are different internally, both still seem to recognize the signal at least via the hardware. it is very strange I think. Thanks though.



  • @baird1fa said in installing Trianglelab filament sensor FB:

    @alankilian But The LED beside the stepper motor jack lights up for either of the E0 or the E1 stops, so even if they are different internally, both still seem to recognize the signal at least via the hardware. it is very strange I think. Thanks though.

    Mine did too but I noticed that it was not as brightly lit as other LEDs.

    I measured the voltage levels for "on" and "off" states and found they did not meet the required logic levels for "on" and "off".

    The LED is directly affected by the voltage on the input and it can be lit even with voltages that do not meet logic requirements.

    Frederick



  • @fcwilt That is good to know. I will grab a meter and check that voltage level of that switch.


Log in to reply