Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    6HC+1LC where connect filament sensor?

    Scheduled Pinned Locked Moved
    Duet Hardware and wiring
    7
    18
    637
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Reineundefined
      Reine
      last edited by

      After reading the documentation I'm confused -- with my combination, do I have to connect the filament sensor to the 1LC (where my extruder is connecter)?

      I do not want to add weight on the toolhead so was planning on having the filament sensor on the frame instead, connected to the 6HC. Surely this must be possible?

      I have both the Duet and Dyze sensor if it makes a differens.

      jay_s_ukundefined 1 Reply Last reply Reply Quote 0
      • jay_s_ukundefined
        jay_s_uk @Reine
        last edited by

        @Reine at the moment its not possible to add a filament sensor on another board other than where the extruder is (although it has been requested by myself and others). You could run a separate wire from the filament sensor to the 1LC to get it to work but sort of defeats the purpose of CAN-FD.

        Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

        Reineundefined 1 Reply Last reply Reply Quote 1
        • Reineundefined
          Reine @jay_s_uk
          last edited by

          @jay_s_uk that's an interesting design choice. I don't know what the bandwidth is on the can interface, maybe there some limits there?

          However for a simple binary switch, that only senses filament or no filament I can't see the need for having it on the same board as the extruder.

          Too bad it's not possible at the moment and as you say, another wire defeats the purpose of CAN-FD.

          Nurgelrotundefined 1 Reply Last reply Reply Quote 0
          • Nurgelrotundefined
            Nurgelrot @Reine
            last edited by

            @Reine If you're only detecting the presence of filament you are supposed be able to wire a simple switch type monitor (1&2) to any board. Not positive if it was really implemented in 3.4+ or not. But I remember seeing some traffic on the subject.

            jay_s_ukundefined 1 Reply Last reply Reply Quote 0
            • jay_s_ukundefined
              jay_s_uk @Nurgelrot
              last edited by

              @Nurgelrot not possible currently

              m591 d0 p1 c"e0stop"
              Error: M591: Filament monitor port must be connected to same CAN board as extruder driver
              

              https://docs.duet3d.com/en/User_manual/RepRapFirmware/CAN_limitations#permanent-limitations

              Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

              Nurgelrotundefined 1 Reply Last reply Reply Quote 0
              • Nurgelrotundefined
                Nurgelrot @jay_s_uk
                last edited by Nurgelrot

                @jay_s_uk Thank for checking I could have sworn that they added an exception for the the simple switches. Might be able to reproduce the same functionality with a trigger? M581.

                Or do what I do and mount the filament monitor to the frame and run the wire down with the boden tube. Sucks but its the best I could come up with.

                jay_s_ukundefined dc42undefined 2 Replies Last reply Reply Quote 1
                • jay_s_ukundefined
                  jay_s_uk @Nurgelrot
                  last edited by

                  @Nurgelrot M581 should work although segmentation M669 S1 T1 may also have to be used

                  Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

                  1 Reply Last reply Reply Quote 0
                  • dc42undefined
                    dc42 administrators @Nurgelrot
                    last edited by

                    @Nurgelrot said in 6HC+1LC where connect filament sensor?:

                    Thank for checking I could have sworn that they added an exception for the the simple switches.

                    This is planned but not yet implemented.

                    Duet WiFi hardware designer and firmware engineer
                    Please do not ask me for Duet support via PM or email, use the forum
                    http://www.escher3d.com, https://miscsolutions.wordpress.com

                    Reineundefined 1 Reply Last reply Reply Quote 2
                    • Reineundefined
                      Reine @dc42
                      last edited by

                      @dc42 any idea when this will be implemented?

                      dc42undefined 1 Reply Last reply Reply Quote 0
                      • dc42undefined
                        dc42 administrators @Reine
                        last edited by

                        @Reine it's already implemented in the 3.5 source code, but untested.

                        Duet WiFi hardware designer and firmware engineer
                        Please do not ask me for Duet support via PM or email, use the forum
                        http://www.escher3d.com, https://miscsolutions.wordpress.com

                        zambz2016undefined 1 Reply Last reply Reply Quote 1
                        • zambz2016undefined
                          zambz2016 @dc42
                          last edited by

                          @dc42 said in 6HC+1LC where connect filament sensor?:

                          but untested.

                          Can I use it already, or it needs to be tested and then released?

                          jay_s_ukundefined 1 Reply Last reply Reply Quote 0
                          • jay_s_ukundefined
                            jay_s_uk @zambz2016
                            last edited by

                            @zambz2016 simple switches were implemented in the 3.5.1 release

                            Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

                            Christopheundefined 1 Reply Last reply Reply Quote 0
                            • Christopheundefined
                              Christophe @jay_s_uk
                              last edited by Christophe

                              @jay_s_uk Sorry for picking up on this thread again, but I'm on the 3.5.1 release testing this
                              I have this in my config.g, for a filament sensor connected to the Duet 3 (5 Mini+)

                              M591 D0 S1 P2 C"^io1.in"
                              

                              The extruder (and all other stuff for the toolhead) is on a 1LC Expansion Board
                              When I enter:

                              M591 D0
                              

                              I get this result:

                              Simple filament sensor on pin 121.io1.in, enabled when printing from SD card, output high when no filament, filament present: no
                              

                              It still seems like it wants to use 121.io1.in instead of the Duet board io1.in, or am I missing something?

                              Phaedruxundefined 1 Reply Last reply Reply Quote 0
                              • Phaedruxundefined
                                Phaedrux Moderator @Christophe
                                last edited by

                                @Christophe said in 6HC+1LC where connect filament sensor?:

                                It still seems like it wants to use 121.io1.in instead of the Duet board io1.in, or am I missing something?

                                Check your config to see if you've defined it elsewhere already.

                                Z-Bot CoreXY Build | Thingiverse Profile

                                Christopheundefined 2 Replies Last reply Reply Quote 0
                                • Christopheundefined
                                  Christophe @Phaedrux
                                  last edited by

                                  @Phaedrux I've double checked my config but I only define the filament sensor on one place

                                  config.g

                                  ; General preferences
                                  G4 S2											; wait for CAN
                                  G90                                     		; send absolute coordinates...
                                  M83                                     		; ...but relative extruder moves
                                  M669 K1                                 		; coreXY
                                  G21 	                                  		; set units to millimeters
                                  
                                  M98 P"network.g"								; configure network settings
                                  
                                  ; Drives
                                  M569 P0.0 S1 D2                         		; physical drive 0.0 goes forwards, no stealthchop, spreadcycle for extruder
                                  M569 P0.1 S1 D3                         		; physical drive 0.1 goes forwards
                                  M569 P0.2 S1 D3                         		; physical drive 0.2 goes forwards
                                  M569 P0.3 S0 D3                        		 	; physical drive 0.3 goes forwards
                                  M569 P0.4 S0 D3                        		 	; physical drive 0.4 goes forwards
                                  M569 P121.0 S1 D3                         		; physical drive 0.5 goes forwards
                                  M584 X0.4 Y0.3 Z0.0:0.1:0.2 E121.0        		; set drive mapping
                                  M350 X16 Y16 Z16 E16 I1                 		; configure microstepping with interpolation
                                  
                                  ; Motor settings
                                  M92 X80.00 Y80.00 Z800.00 E832.0           		; set steps per mm
                                  M906 X1800 Y1800 Z1500 E800 I30             	; set motor currents (mA) and motor idle factor in percent
                                  M84 S30                                 		; set idle timeout
                                  M915 P3:4 S20 R0 F0 H400               			; setup for stall detection
                                  
                                  ; Speed settings
                                  M566 X600.00 Y600.00 Z100.00 E3000.00 P1        ; set maximum instantaneous speed changes (mm/min)
                                  M203 X30000.00 Y30000.00 Z1000.00 E3600.00     	; set maximum speeds (mm/min)
                                  M201 X9000.00 Y9000.00 Z100.00 E5000.00        	; set accelerations (mm/s^2)
                                  
                                  ; Axis Limits
                                  M208 X-5:505 Y-10:502 Z0:500                   	; set axis minima and maxima
                                  
                                  ; Endstops
                                  M574 X1 S3                                     	; configure sensorless endstop for x-axis
                                  M574 Y1 S3                                     	; configure sensorless endstop for y-axis
                                  M574 Z1 S2                                     	; configure Z-probe endstop for low end on Z
                                  
                                  ; Tramming
                                  M671 X-4.5:250:470 Y-4.52:485:-4.52 S5         	; define positions of Z leadscrews or bed levelling screws
                                  M557 X3:470 Y0:485 P10						   	; define 10x10 mesh grid
                                  
                                  ; Heaters
                                  M308 S0 P"temp0" Y"thermistor" T100000 B3950 A"Bed"    	; configure sensor 0 as thermistor on pin temp0
                                  M950 H0 C"out1" T0                                     	; create bed heater output on out5 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
                                  M307 H0 B0 R0.195 C128.4 D1.80 S1.00                   	; pid tune 330W
                                  
                                  ; Fans
                                  M950 F0 C"121.out2" Q500                   				; create fan 0 on pin out3 and set its frequency
                                  M950 F1 C"!121.out1+out1.tach"             				; create fan 1 on pin out4 and set its frequency
                                  M106 P0 C"Hotend Fan" S255								; temporary spin up the tool fan
                                  M106 P1 C"Layer Fan" S255 H-1 B0.35 L0.20 X0.40			; set fan 1 name and value. Thermostatic control is turned off
                                  G4 S1													; wait two seconds to turn them back off
                                  M106 P0 C"Hotend Fan" S0 H1 T45 L255   					; set fan 0 name and value. Thermostatic control turned on for Hotend
                                  M106 P1 S0												; turn off part fan
                                  
                                  ; Tools
                                  M563 P0 D0 H1 F1 S"MainTool"    						; define tool 0
                                  G10 P0 X0 Y0 Z0            								; set tool 0 axis offsets
                                  G10 P0 R25 S0              								; set initial tool 0 active and standby temperatures to 0C
                                  
                                  M950 H1 C"121.out0" T1         								; create nozzle heater output on out2 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 the maximum temperature in C for heater
                                  
                                  ; Filament Sensor
                                  M591 D0 S1 P2 C"^io1.in"           						; configure switch filament monitor
                                  
                                  ; Ambient (DHT) Sensor
                                  M308 S10 P"io0.out+io0.in" Y"dht22" A"AmbientTemperature"		; configure pins for DHT sensor (temperature)
                                  M308 S11 P"S10.1" Y"dhthumidity" A"AmbientHumidity"				; configure pins for DHT sensor (humidity)
                                  
                                  ; Hotend thermistor
                                  M308 S1 P"121.temp0" Y"thermistor" T100000 B4725 C7.060000e-8 A"Hotend"
                                  
                                  ; Z-Probe
                                  M558 P8 C"^121.io0.in" H6.0 F400:200 T30000				; set Z probe type to unmodulated and the dive height + speeds
                                  G31 P500 X-30 Y-15 Z0.000              					; set Z probe trigger value, offset and trigger height, more Z means closer to the bed
                                  
                                  ; Filament settings
                                  M404 N1.75 D0.8                        					; filament width and nozzle diameter
                                  M207 S1.0 F3600 T1200 Z0.27 		   					; retraction settings used by M10 & M11
                                  
                                  T0														; activate tool 0
                                  
                                  ; Triggers
                                  M950 J1 C"!121.button0" 								; button0 toolboard
                                  M581 P1 S0 T2 R0    									; trigger2.g
                                  M950 J2 C"!121.button1" 								; button1 toolboard
                                  M581 P2 S0 T3 R0    									; trigger3.g
                                  
                                  ; Accelerometer
                                  M955 P121.0 I10 										; specify orientation of accelerometer on Toolboard 1LC with CAN address 121
                                  
                                  ; Global Variables
                                  if exists(global.state)
                                  	set global.state = "Started"
                                  else
                                  	global state = "Started"
                                  	
                                  if exists(global.printer_type)
                                  	set global.printer_type = "V-CORE_3.1"
                                  else
                                  	global printer_type = "V-CORE_3.1"
                                  
                                  if exists(global.printer_config)
                                  	set global.printer_config = "0.1.1"
                                  else
                                  	global printer_config = "0.1.1"
                                  
                                  M501
                                  

                                  M122

                                  M122
                                  === Diagnostics ===
                                  RepRapFirmware for Duet 3 Mini 5+ version 3.5.1 (2024-04-19 14:41:25) running on Duet 3 Mini5plus Ethernet (standalone mode)
                                  Board ID: 3YN4S-4867A-G65J0-401GQ-1Q82Z-73P7R
                                  Used output buffers: 3 of 40 (32 max)
                                  === RTOS ===
                                  Static ram: 103232
                                  Dynamic ram: 116316 of which 0 recycled
                                  Never used RAM 19012, free system stack 194 words
                                  Tasks: NETWORK(1,ready,918.8%,138) ETHERNET(5,nWait 7,8.4%,562) HEAT(3,nWait 6,4.5%,326) Move(4,nWait 6,0.5%,341) CanReceiv(6,nWait 1,8.1%,774) CanSender(5,nWait 7,0.0%,336) CanClock(7,delaying,1.2%,348) TMC(4,nWait 6,225.3%,102) MAIN(1,running,224.7%,647) IDLE(0,ready,0.0%,30) AIN(4,delaying,134.0%,256), total 1525.5%
                                  Owned mutexes:
                                  === Platform ===
                                  Last reset 17:41:20 ago, cause: software
                                  Last software reset at 2024-05-30 14:47, reason: User, Gcodes spinning, available RAM 29824, slot 2
                                  Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00000000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
                                  Error status: 0x00
                                  MCU revision 3, ADC conversions started 63680215, completed 63680215, timed out 0, errs 0
                                  MCU temperature: min 32.4, current 34.2, max 38.4
                                  Supply voltage: min 24.4, current 24.5, max 24.5, under voltage events: 0, over voltage events: 0, power good: yes
                                  Heap OK, handles allocated/used 99/6, heap memory allocated/used/recyclable 2048/1000/920, gc cycles 1
                                  Events: 4 queued, 4 completed
                                  Driver 0: standstill, SG min 0, read errors 0, write errors 0, ifcnt 32, reads 61500, writes 3, timeouts 0, DMA errors 0, CC errors 0
                                  Driver 1: standstill, SG min 0, read errors 0, write errors 0, ifcnt 32, reads 61500, writes 3, timeouts 0, DMA errors 0, CC errors 0
                                  Driver 2: standstill, SG min 0, read errors 0, write errors 0, ifcnt 32, reads 61500, writes 3, timeouts 0, DMA errors 0, CC errors 0
                                  Driver 3: standstill, SG min 0, read errors 0, write errors 0, ifcnt 40, reads 61497, writes 5, timeouts 0, DMA errors 0, CC errors 0
                                  Driver 4: standstill, SG min 0, read errors 0, write errors 0, ifcnt 40, reads 61498, writes 5, timeouts 0, DMA errors 0, CC errors 0
                                  Driver 5: standstill, SG min 0, read errors 0, write errors 0, ifcnt 20, reads 61503, writes 0, timeouts 0, DMA errors 0, CC errors 0
                                  Driver 6: standstill, SG min 0, read errors 0, write errors 0, ifcnt 20, reads 61502, writes 0, timeouts 0, DMA errors 0, CC errors 0
                                  Date/time: 2024-05-31 09:47:16
                                  Cache data hit count 4294967295
                                  Slowest loop: 21.72ms; fastest: 0.16ms
                                  === Storage ===
                                  Free file entries: 20
                                  SD card 0 detected, interface speed: 22.5MBytes/sec
                                  SD card longest read time 13.4ms, write time 5.7ms, 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 0, completed 0, 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 0 is on, I-accum = 0.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: ok
                                  === CAN ===
                                  Messages queued 570615, received 1299700, lost 0, errs 0, boc 0
                                  Longest wait 2ms for reply type 6048, peak Tx sync delay 277, free buffers 26 (min 25), ts 316973/316973/0
                                  Tx timeouts 0,0,0,0,0,0
                                  === Network ===
                                  Slowest loop: 30.28ms; fastest: 0.04ms
                                  Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
                                  HTTP sessions: 2 of 8
                                  = Ethernet =
                                  Interface state: active
                                  Error counts: 0 0 10976 0 0 0
                                  Socket states: 2 2 2 2 2 0 0 0
                                  

                                  M122 B121

                                  M122 B121
                                  Diagnostics for board 121:
                                  Duet TOOL1LC rev 1.1 or later firmware version 3.5.1 (2024-04-19 14:42:41)
                                  Bootloader ID: SAMC21 bootloader version 2.3 (2021-01-26b1)
                                  All averaging filters OK
                                  Never used RAM 3956, free system stack 122 words
                                  Tasks: Move(3,nWait 7,0.2%,121) HEAT(2,nWait 6,44.8%,107) CanAsync(5,nWait 4,0.0%,55) CanRecv(3,nWait 1,1.8%,71) CanClock(5,nWait 1,2.8%,59) ACCEL(3,nWait 6,0.0%,53) TMC(2,delaying,461.4%,53) MAIN(1,running,176.7%,315) IDLE(0,ready,0.0%,27) AIN(2,delaying,623.0%,112), total 1310.8%
                                  Owned mutexes:
                                  Last reset 17:41:59 ago, cause: software
                                  Last software reset time unknown, reason: AssertionFailed, available RAM 3392, slot 2
                                  Software reset code 0x0120 ICSR 0x00000000 SP 0x2000415c Task  Freestk 129 bad marker
                                  Stack: 00000544 00022ffc 00019b65 20003134 00016cff 20003134 000163d1 20000ed0 00000000 00000001 00008275 200071c8 200071c8 200071e0 00000000 20000f50 00011647 000223b8 00022474 00021ac8 00019b05 200071c8 200071c8 20000f50 000083ed 200071d8 000009c7
                                  Driver 0: pos 0, 832.0 steps/mm, standstill, SG min 0, read errors 0, write errors 0, ifcnt 41, reads 13426, writes 3, timeouts 10, DMA errors 0, CC errors 0, failedOp 0x6a, steps req 0 done 0
                                  Moves scheduled 0, completed 0, in progress 0, hiccups 0, segs 0, step errors 0, maxLate 0 maxPrep 0, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0, ebfmin 0.00 max 0.00
                                  Peak sync jitter -5/10, peak Rx sync delay 214, resyncs 0/0, no timer interrupt scheduled
                                  VIN voltage: min 24.4, current 24.5, max 24.5
                                  MCU temperature: min 39.2C, current 46.1C, max 46.4C
                                  Last sensors broadcast 0x00000002 found 1 131 ticks ago, 0 ordering errs, loop time 0
                                  CAN messages queued 1301180, send timeouts 0, received 571258, lost 0, errs 0, boc 0, free buffers 18, min 18, error reg 0
                                  dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 0
                                  Accelerometer: LIS3DH, status: 00
                                  I2C bus errors 0, naks 0, contentions 0, other errors 0
                                  === Filament sensors ===
                                  Interrupt 5726621 to 0us, poll 4 to 976us
                                  Driver 0: no filament
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • Christopheundefined
                                    Christophe @Phaedrux
                                    last edited by

                                    @Phaedrux Same behaviour on 3.5.2 RC1

                                    I start off by not configuring the filament sensor at all in the config.g

                                    M591 D0
                                    Extruder 0 has no filament sensor
                                    

                                    I then enter

                                    M591 D0 S1 P2 C"^io1.in"
                                    ; which gives the following result when reading it out
                                    M591 D0
                                    Simple filament sensor on pin 121.io1.in, enabled when printing from SD card, output high when no filament, filament present: no
                                    

                                    It always changes the pin from io1.in to 121.io1.in

                                    jay_s_ukundefined 1 Reply Last reply Reply Quote 0
                                    • jay_s_ukundefined
                                      jay_s_uk @Christophe
                                      last edited by

                                      @Christophe although a simple switch on a board different to where the extruder connected was in the release notes as being included in 3.5, I don't think it works currently

                                      Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

                                      Christopheundefined 1 Reply Last reply Reply Quote 0
                                      • Christopheundefined
                                        Christophe @jay_s_uk
                                        last edited by

                                        Alright @jay_s_uk, gonna try a quick fix with M581 and segmentation. Hit me up if you need a hand testing stuff later, happy to help! Cheers!

                                        1 Reply Last reply Reply Quote 0
                                        • First post
                                          Last post
                                        Unless otherwise noted, all forum content is licensed under CC-BY-SA