1LC + Duet Rotary Magnetic Filament Sensor - Problems
-
@medicusdkfz it should be D0 in M591 not 121.0
What report do you get back from M591 D0 ?
-
Hi Tony,
at the moment I have a print running. The sensor is currently disabled with the S0 parameter. The Version is 1.7a...
This is the message I get with "m591 d0":
Duet3D rotating magnet filament monitor v1 on pin 121.io1.in, disabled, sensitivity 24.80mm/rev, allow 70% to 130%, check every 3.0mm, no data received
Thank you,
Pierre -
Now I see, that the led is flashing 7 times: Magnet too weak...
How can I solve this?
-
At the moment I get no mag or agc parameters. I'll try to sand my housing a little bit down...
-
I sanded my housing down and now I get 3 green flashes at powering up the sensor.
My actual data M591 d0:
Duet3D rotating magnet filament monitor v3 on pin 121.io1.in, disabled, sensitivity 24.80mm/rev, allow 70% to 130%, check every 3.0mm, version 3, mag 133 agc 87, measured sensitivity infmm/rev, min 2147483647% max 2147483647% over 66.1mm
What do I have to configure now in my config.g?
Thank you very much,
Pierre -
@medicusdkfz that is a much better reading from the sensor. (agc 87) obviously the mm/rev and min max are wrong. is this with the same print still going on or a new print?
When you can please start a new print with the sensor still disabled and see what sensitivity and mix max are reported.
also what version of firmware do you have on the 6HC and the 1LC?
-
@t3p3tony said in 1LC + Duet Rotary Magnetic Filament Sensor - Problems:
@medicusdkfz that is a much better reading from the sensor. (agc 87) obviously the mm/rev and min max are wrong. is this with the same print still going on or a new print?
When you can please start a new print with the sensor still disabled and see what sensitivity and mix max are reported.
also what version of firmware do you have on the 6HC and the 1LC?
Hi Tony,
I have installed the latest version of RRF3.3 on 6HC and 1LC 3 days ago... The measurement was midprint. After pausing my actual print, I disconnected the sensor, sanded the housing, reconnected the sensor and started the paused print again. This was the first measurement almost after starting...
When I start a new print, how do I clear the sensor data? Is this automatically done?
Best regards,
Pierre -
@medicusdkfz every time you start a new print or resume a paused print, the collected calibration data is reset.
-
@dc42 Thank you very much for your answer and your great job!!!
-
@t3p3tony said in 1LC + Duet Rotary Magnetic Filament Sensor - Problems:
@medicusdkfz that is a much better reading from the sensor. (agc 87) obviously the mm/rev and min max are wrong. is this with the same print still going on or a new print?
When you can please start a new print with the sensor still disabled and see what sensitivity and mix max are reported.
also what version of firmware do you have on the 6HC and the 1LC?
This is my M591 midprint:
M591 D0
Duet3D rotating magnet filament monitor v3 on pin 121.io1.in, disabled, sensitivity 24.80mm/rev, allow 70% to 130%, check every 3.0mm, version 3, mag 131 agc 87, measured sensitivity 127519.39mm/rev, min -3859% max 77317% over 9837.9mmThis looks strange... The sensitivity is way too high... To be on the safe side I have also checked my firmware version with M122 for 6HC and 1LC - both have 3.3...
-
This is my M122 B121:
m122 b121 Diagnostics for board 121: Duet TOOL1LC firmware version 3.3 (2021-06-15 16:12:58) Bootloader ID: SAMC21 bootloader version 2.3 (2021-01-26b1) Never used RAM 2204, free system stack 2719 words Tasks: Move(notifyWait,1.6%,99) HEAT(delaying,2.3%,101) CanAsync(notifyWait,0.0%,57) CanRecv(notifyWait,0.4%,74) CanClock(notifyWait,0.2%,65) ACCEL(notifyWait,0.0%,61) TMC(notifyWait,28.0%,57) MAIN(running,19.1%,352) IDLE(ready,0.0%,27) AIN(delaying,48.3%,142), total 100.0% Last reset 01:46:25 ago, cause: software Last software reset data not available Driver 0: position 4320388, 423.0 steps/mm, ok, SG min/max 0/48, read errors 0, write errors 1, ifcnt 107, reads 41498, writes 13, timeouts 2, DMA errors 0, failedOp 0x41, steps req 4643282 done 4643050 Moves scheduled 28365, completed 28364, in progress 1, hiccups 0, step errors 0, maxPrep 630, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0 Peak sync jitter 0/15, peak Rx sync delay 225, resyncs 0/0, next step interrupt due in 958 ticks, enabled VIN: 24.1V MCU temperature: min 66.2C, current 78.4C, max 79.3C Ticks since heat task active 186, ADC conversions started 6371755, completed 6371752, timed out 2, errs 0 Last sensors broadcast 0x00000002 found 1 191 ticks ago, loop time 0 CAN messages queued 80075, send timeouts 0, received 86058, lost 0, free buffers 37, min 36, error reg 110000 dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 576, adv 22122/74653 Accelerometer detected: yes, status: 00 I2C bus errors 0, naks 0, other errors 0 === Filament sensors === Interrupt 4 to 32us, poll 8 to 2449us Driver 0: pos 359.30, errs: frame 6 parity 0 ovrun 0 pol 0 ovdue 0
and M122
M122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.3 (2021-06-15 21:45:47) running on Duet 3 MB6HC v0.6 or 1.0 (standalone mode) Board ID: 08DJM-956L2-G43S8-6J1DJ-3SN6M-9S0YG Used output buffers: 1 of 40 (23 max) === RTOS === Static ram: 150904 Dynamic ram: 94276 of which 144 recycled Never used RAM 106012, free system stack 132 words Tasks: NETWORK(ready,307.6%,234) ETHERNET(notifyWait,0.4%,120) HEAT(delaying,0.2%,325) Move(notifyWait,1.2%,250) CanReceiv(notifyWait,0.2%,774) CanSender(notifyWait,0.0%,366) CanClock(delaying,0.1%,339) TMC(notifyWait,98.7%,59) MAIN(running,756.2%,924) IDLE(ready,0.0%,29), total 1164.5% Owned mutexes: === Platform === Last reset 01:44:24 ago, cause: software Last software reset at 2021-09-30 14:30, reason: User, GCodes spinning, available RAM 106168, slot 1 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0044a000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 Aux0 errors 0,0,0 Step timer max interval 191 MCU temperature: min 34.2, current 34.8, max 38.8 Supply voltage: min 23.7, current 24.0, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.1, current 12.2, max 12.3, under voltage events: 0 Heap OK, handles allocated/used 99/38, heap memory allocated/used/recyclable 2048/1348/804, gc cycles 0 Driver 0: position 71589, ok, reads 30350, writes 17 timeouts 0, SG min/max 0/1023 Driver 1: position 10014, ok, reads 30351, writes 17 timeouts 0, SG min/max 0/1023 Driver 2: position 2090, ok, reads 30351, writes 17 timeouts 0, SG min/max 0/1023 Driver 3: position 0, ok, reads 30351, writes 17 timeouts 0, SG min/max 0/1023 Driver 4: position 0, ok, reads 30351, writes 17 timeouts 0, SG min/max 0/1023 Driver 5: position 0, standstill, reads 30351, writes 17 timeouts 0, SG min/max 0/1023 Date/time: 2021-09-30 16:14:39 Slowest loop: 86.65ms; fastest: 0.05ms === Storage === Free file entries: 9 SD card 0 detected, interface speed: 25.0MBytes/sec SD card longest read time 2.5ms, write time 6.5ms, max retries 0 === Move === DMs created 125, maxWait 127184ms, bed compensation in use: mesh, comp offset 0.000 === MainDDARing === Scheduled moves 33124, completed moves 33117, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state 3 === AuxDDARing === Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters = 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1 Heater 0 is on, I-accum = 0.4 Heater 1 is on, I-accum = 0.0 === GCodes === Segments left: 2 Movement lock held by null HTTP is idle in state(s) 0 Telnet is idle in state(s) 0 File is idle in state(s) 3 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 Code queue is empty. === Filament sensors === Extruder 0: no data received === CAN === Messages queued 84639, received 78564, lost 0, longest wait 3ms for reply type 6048, peak Tx sync delay 459, free buffers 49 (min 42), ts 31323/31322/0 Tx timeouts 0,0,0,0,0,0 === Network === Slowest loop: 23.91ms; fastest: 0.02ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions HTTP sessions: 1 of 8 - Ethernet - State: active Error counts: 0 0 1 0 0 Socket states: 5 2 2 2 2 2 0 0```
-
I have a sensor like this with a additional switch connector (see picture).
Before I had a p-value from 3 in M591. Is that right or do I have to choose P4? I'm a little confused. When I setup with P4, I get following sensor statement:
M591 D0 Duet3D rotating magnet filament monitor v3 with switch on pin 121.io1.in, disabled, sensitivity 24.80mm/rev, allow 70% to 130%, check every 3.0mm, version 3, no filament, mag 130 agc 85, no calibration data
Thank you for your support,
Pierre -
P3 means you have a rotating magnetic sensor.
P4 means you have a rotating magnetic sensor AND you've plugged in a microswitch to the two-pin "SW" connector as a filament-out sensor -
Now my sensor is working. It shows the right values. Here is my M591 D0:
m591 d0 Duet3D rotating magnet filament monitor v3 on pin 121.io1.in, enabled, sensitivity 25.77mm/rev, allow 90% to 110%, check every 3.0mm, version 3, mag 132 agc 83, measured sensitivity 25.12mm/rev, min 97% max 103% over 103.6mm
After changing the P value back to 3, my problems are solved. Great safety feature...
Thank you for all your help,
Pierre -
@medicusdkfz AWESOME!
Show us what you're printing sometime.
-
@alankilian Here is a actual video of my latest project: Scara robot laser arm. Printing the base and more...
-
I don't understand the hysteresis. My printer paused the print. When I read the parameters via M591 D0, I get this:
m591 d0 Duet3D rotating magnet filament monitor v3 on pin 121.io1.in, enabled, sensitivity 25.00mm/rev, allow 70% to 130%, check every 10.0mm, version 3, mag 133 agc 85, measured sensitivity 25.01mm/rev, min 95% max 116% over 16071.0mm
My print keeps pausing with a message that "too little movement" was detected on the sensor. I'm not alone with this problem. The deviation is obviously too large. What are safe min-max-values, when sometimes the min-value goes down to 4%?
Where is my thinking error?
My config.g:
; Configuration file for Duet 3 (firmware version 3) ; executed by the firmware on start-up ; General preferences M111 S0 ; Debugging off G21 ; Work in millimetres G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves G4 S5 ; wait for 5 seconds M564 S1 H1 ; Forbid axis movements when not homed ; Network ;M552 P10.0.0.2 S1 ; enable network and acquire dynamic address via DHCP ;M554 P10.0.0.1 ; gateway ;M553 P255.255.255.0 ; subnet mask M552 P192.168.178.88 S1 ; enable network and acquire dynamic address via DHCP M554 P192.168.178.1 ; gateway M553 P255.255.255.0 ; subnet mask M586 P0 S1 ; enable HTTP M586 P1 S1 T0 ; enable FTP (for remote backups) M586 P2 S0 ; disable Telnet ; General setup M669 K1 ; Select CoreXY mode (2.03 and up) M550 PVoron 2.4 350mm^3 ; set printer name ; Drives for Z M569 P0 S1 ; Front left M569 P1 S0 ; Back left M569 P2 S1 ; Back right M569 P3 S0 ; Front right ; Drives for XY M569 P4 S1 ; A motor (X) M569 P5 S0 ; B motor (Y) ; Drive for extruder M569 P121.0 S1 ; Extruder an 1LC ; Motor mapping and steps per mm M584 X0.4 Y0.5 Z0.0:0.1:0.2:0.3 E121.0 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; Use 1/16 microstepping with interpolation everywhere M92 X162.222 Y161.298 Z805.721 ; Set XYZ steps per mm (0.9deg motors) M92 E423.00 ; Set Extruder steps per mm ; Drive currents M906 X1200 Y1200 Z1200 E600 ; XYZ and E current M906 I100 ; Idle current percentage M84 S10000 ; Idle timeout ; Accelerations and speed M98 P"/macros/print_scripts/speed_printing.g" ; Axis travel limits M208 X0 Y0 Z-0.5 S1 ; set axis minima M208 X346 Y355 Z320 S0 ; set axis maxima ; Endstops M574 X2 S1 P"!io1.in" ; X Hall effect endstop M574 Y2 S1 P"!io2.in" ; Y Hall effect endstop ;M574 Z0 S1 P"io5.in" ; klicky probe microswitch ;M574 Z1 S1 P"io3.in" ; Z microswitch endstop M574 Z1 P"nil" ; No endstop ; Klicky Probe ;M558 K0 P8 C"io5.in" I1 H2.5 F350:60 T18000 A31 S0.0035 R0.2 ; set Z probe type to switch and the dive height + speeds ;G31 K0 P500 X0 Y21 Z10 ; Z microswitch ;M558 K1 P8 C"io3.in" I1 H2 F200 T18000 A31 S0.0035 R0.2 ; set Z probe type to switch and the dive height + speeds ;G31 K1 P500 X0 Y0 Z0 ; set Z probe trigger value, offset and trigger height -0.8 M671 X-62:-62:407.5:407.5 Y-1:429:429:-1 S20 ; Define Z belts locations (Front_Left, Back_Left, Back_Right, Front_Right) ;M557 X10:340 Y30:320 S33:29 ; Anfahrtpunkte für Sonde!!! define mesh grid (for G29) - overwrite mesh settings in DOW after restart ; Hotbed (dual thermistor setup) M308 S0 P"temp0" Y"thermistor" T100000 B3950 A"Keenovo" ; configure sensor 0 as thermistor on pin temp0 (heater sensor) M308 S2 P"temp2" Y"thermistor" T100000 B3950 A"Heizbett direkt" ; configure sensor 2 as thermistor on pin temp2 M950 H0 C"out0" T2 Q10 ; Heater --> SSD-Steuerung ;M307 H0 A261.9 C549.2 D0.7 V24.0 B0 ; Heater 0 model: gain 261.9, time constant 549.2, dead time 0.7, max PWM 1.00, calibration voltage 24.0, mode PID M140 P0 H0 ; Map heated bed to heater 0 - Keenovo 220V, 750W M143 H0 P1 T0 A2 S125 C0 ; Regulate (A2) bed heater (H0) to have pad sensor (T0) below 115°C. Use Heater monitor 1 for it M143 H0 P2 T0 A1 S135 C0 ; Shut off (A1) bed heater (H0) if pad sensor (T0) exceeds 125°C. Use Heater monitor 2 for it M143 H0 S110 ; Set bed heater max temperature to 120°C, use implict monitor 0 which is implicitly configured for heater fault ;M307 H0 B0 S0.6 ; Disable Bang Bang mode and set PWM to 60% to avoid warping ; Hotend M308 S1 P"121.temp0" Y"thermistor" T500000 B4723 C1.196220e-7 A"Mosquito" H-6 ; Thermistor H-Wert eicht die Temp R3950 M950 H1 C"121.out0" T1 ; Heater M307 H1 A593.7 C180.4 D7.6 V24.0 B0 ; Heater 1 model: gain 593.7, time constant 180.4, dead time 7.6, max PWM 1.00, calibration voltage 24.0, mode PID M143 H1 S350 ; Sets temperature limit for extruder - Mosquito ; DHT22 sensor ;M308 S10 P"0.spi.cs0" Y"dht22" A"Chamber Temp" ; Temperature (connected to cs0 port on the temp daughterboard slot ;M308 S11 P"S10.1" Y"dhthumidity" A"Chamber Hum[%]" ; Humidity ; MCU sensors M308 S3 Y"mcu-temp" A"MCU" ; Main fans M950 F0 C"!121.out1+out1.tach" Q500 ; Part cooling fan M106 P0 S0 B0.1 H-1 ; Default off; booststart for 0.1s (B0.1); thermostatic control off M950 F1 C"121.out2" Q500 ; Hotend cooling fan M106 P1 S255 H1 T50 ; Default on; thermistatic control on above 50C ; Aux fans (option to control daughter board fans based on main board temp sensor coming in RRF3.3, for now has to be manual) M950 F2 C"out7" Q500 ; Electronics compartment fan 1 M106 P2 S1.0 H-1 ; Default on; thermostatic control off M950 F3 C"out9" Q500 ; Electronics compartment fan 2 M106 P3 S1.0 H-1 ; Default on; thermostatic control off M950 F6 C"out8" Q500 ; Noctua exhaust filter fan M106 P6 S0 H-1 ; Default off ; LED-Stripes ;M950 F5 C"out9" Q500 ; LED-Streifen rechts --> derzeit nicht installiert ;M106 P5 S1.0 H-1 ; Default on; thermostatic control off ; Misc M912 P0 S-4 ; MCU temperature calibration (yours will be different) M575 P1 S1 B57600 ; enable support for PanelDue ; Tools M563 P0 D0 H1 F0 ; Define tool 0 using fan 0 for M106 G10 P0 X0 Y0 Z0 ; Set tool 0 axis offsets G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C ; DAA tuning (you will need to change this for your slicer) M80 ; turn on PSU & mains voltage M501 ; load config-override.g T0 ; select tool 0 ; workaround for bug in 3.2beta3, M143 needs to be done after all M950, M307, M140 and M141. https://forum.duet3d.com/topic/19031/m143-issue/25?_=1605986986974 M143 H0 S115 M143 H1 S350 M98 P"/macros/autoz/edit_me.g" ; load your settings for autoz with klicky probe M400 M98 P"/macros/autoz/scripts/autoz_globals.g" ; load autoz framework for klicky probe M400 ; Filament sensor (Duet) M591 D0 P3 C"121.io1.in" S1 R4:200 L25.0 E10.0 ; Duet3D rotating magnet sensor for extruder drive 0 is connected to E0 endstop input, enabled, sensitivity 25.0mm.rev, 70% to 130% tolerance, 3mm detection length
Best regards,
Pierre -
15.10.2021, 10:53:51 m591 d0 Duet3D rotating magnet filament monitor v3 on pin 121.io1.in, enabled, sensitivity 25.00mm/rev, allow 2% to 200%, check every 3.0mm, version 3, mag 129 agc 85, measured sensitivity 25.05mm/rev, min 96% max 104% over 6371.7mm
I think, I've found my fault... I unchecked some checkboxes in SuperSlicer in my printer settings...
Now min and max are stable between 90 and 120...
-
@medicusdkfz if possible can you upload a (short) print example where you got the issues with relative E distances and that then is fixed with absolute? In general the normal advice is to use relative extrusion not absolute extrusion because it prevents a build up of errors in rounding, however this will help my investigation into what's happening.
-
@medicusdkfz Historically I had my sensors floating "inline" like your pictures show, and I also battled these spurious faults and exaggerated min/max values. At some point I finally took the time to design housings/brackets to positively affix the monitors to a rigid structure (extruder, carriage, chassis, etc) and the faults disappeared. I am guessing it had something to do with twisting of the filament/ptfe tube, and/or lash in the filament conveyance path. It seems like however small the error was, eventually it would stack up and release at just the wrong time to trigger a fault.
-