Duet3 v3.3 6HC Magnetic Filament Sensor = 'sensorError'
-
@t3p3tony It happens again:
4.12.2021, 22:47:36 m591 d0
Duet3D rotating magnet filament monitor v3 on pin io3.in, enabled, sensitivity 25.00mm/rev, allow 50% to 150%, check every 30.0mm, version 3, mag 129 agc 93, measured sensitivity 25.67mm/rev, min 96% max 103% over 3645.8mm
4.12.2021, 22:47:19 m122
=== Diagnostics ===
RepRapFirmware for Duet 3 MB6HC version 3.3 (2021-06-15 21:45:47) running on Duet 3 MB6HC v1.01 or later (SBC mode)
Board ID: 08DJM-956BA-NA3TN-6JTD4-3SJ6S-KV82V
Used output buffers: 1 of 40 (13 max)
=== RTOS ===
Static ram: 150904
Dynamic ram: 62464 of which 16 recycled
Never used RAM 137952, free system stack 134 words
Tasks: SBC(ready,14.8%,328) HEAT(notifyWait,0.1%,325) Move(notifyWait,0.1%,250) CanReceiv(notifyWait,0.0%,944) CanSender(notifyWait,0.0%,362) CanClock(delaying,0.0%,333) TMC(notifyWait,24.0%,59) MAIN(running,61.0%,922) IDLE(ready,0.0%,29), total 100.0%
Owned mutexes: HTTP(MAIN)
=== Platform ===
Last reset 04:43:33 ago, cause: software
Last software reset at 2021-12-04 17:03, reason: User, none spinning, available RAM 137952, slot 0
Software reset code 0x0012 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0044a000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a
Error status: 0x00
Step timer max interval 176
MCU temperature: min 48.7, current 49.0, max 51.9
Supply voltage: min 23.9, current 24.0, max 24.0, under voltage events: 0, over voltage events: 0, power good: yes
12V rail voltage: min 12.1, current 12.2, max 12.2, under voltage events: 0
Heap OK, handles allocated/used 99/0, heap memory allocated/used/recyclable 2048/38/38, gc cycles 0
Driver 0: position 0, standstill, reads 17580, writes 23 timeouts 0, SG min/max 0/1023
Driver 1: position 0, standstill, reads 17580, writes 23 timeouts 0, SG min/max 0/1023
Driver 2: position 320125, standstill, reads 17580, writes 23 timeouts 0, SG min/max 0/1023
Driver 3: position 0, standstill, reads 17580, writes 23 timeouts 0, SG min/max 0/1023
Driver 4: position 0, standstill, reads 17580, writes 23 timeouts 0, SG min/max 0/1023
Driver 5: position 0, standstill, reads 17585, writes 19 timeouts 0, SG min/max 0/463
Date/time: 2021-12-04 21:47:22
Slowest loop: 246.78ms; fastest: 0.02ms
=== Storage ===
Free file entries: 10
SD card 0 not detected, interface speed: 37.5MBytes/sec
SD card longest read time 0.0ms, write time 0.0ms, max retries 0
=== Move ===
DMs created 125, maxWait 357066ms, bed compensation in use: mesh, comp offset 0.115
=== MainDDARing ===
Scheduled moves 14691, completed moves 14691, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 1], CDDA state -1
=== 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.0
Heater 1 is on, I-accum = 0.7
=== GCodes ===
Segments left: 0
Movement lock held by null
HTTP* is doing "M122" 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
Code queue is empty.
=== Filament sensors ===
Extruder 0: pos 59.77, errs: frame 6 parity 0 ovrun 30 pol 0 ovdue 0
=== CAN ===
Messages queued 153166, received 0, lost 0, longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 49 (min 49), ts 85070/0/0
Tx timeouts 0,64,85069,0,0,68030 last cancelled message type 30 dest 127=== SBC interface ===
State: 4, failed transfers: 0, checksum errors: 0
Last transfer: 2ms ago
RX/TX seq numbers: 29787/29787
SPI underruns 0, overruns 0
Disconnects: 0, timeouts: 0, IAP RAM available 0x2c83c
Buffer RX/TX: 0/0-0
=== Duet Control Server ===
Duet Control Server v3.3.0
Code buffer space: 4096
Configured SPI speed: 8000000Hz
Full transfers per second: 36.42, max wait times: 15.0ms/0.0ms
Codes per second: 1.53
Maximum length of RX/TX data transfers: 3152/1632Totally random!
-
-
@preischl3d -Is there someting new? It is look like I have same isue.
-
@petrkroupa I bought a new sensor. But it had the same problems. Then I changed the connection to a different pin assignment and laid the cable so that it did not cross any other cables.
In the meantime, the error hardly ever occurs. Not at all for the last 2 weeks. I'm keeping my fingers crossed that it stays that way -
@preischl3d thanks for the update. Was the cable close to or crossing a stepper motor cable?
-
I think I am having the same problems, albeit with the laser sensor. Constantly getting extruder "sensorError".
Result of M122: Extruder 0: pos 0.02, errs: frame 22 parity 0 ovrun 0 pol 0 ovdue 0
I did redo some wiring right before it started occurring, so I'll be looking at the positions of the cables and making sure the sensor wires do not cross the stepper wires. How much space would be recommended for clearance between the wires? Or are there any other methods of shielding the sensor wires from the stepper wires?
-
@dc42 I found out that the MFM is very sensitive to interference and power fluctuations. Just a slight drop in power supply and the sensor will either restart or report an error. I will say that I solved it because it has been working without problems for a some time. I apologize in advance for the "ugly" solution but it works. At least it works for me.
I connected two capacitors directly to the sensor. 220uF and 100nF.
-
@petrkroupa Where did you install those?
-
@verdeel You can see the yellow and red wires soldered to the power and ground pads on the programming header going to the two capacitors.
-
@alankilian Thank you. I'm going to give it a try once I manage to get my hands on some capacitors that are roughly the same capacity. I've already tried to get the sensor cable away from the stepper cables, but it keeps happening. The sensor cable is bundled together with the z-probe from the smart effector and the fans, heater.
-
@verdeel You can solder capacitor directly to sensor. But you will probably lose waranty. Just for info. My waranty is also gone BUT sensor works.
-
Before starting with soldering capacitors to anything I decided to investigate further. Before making any changes I sometimes had 20 or more sensorErrors just during mesh leveling.
First I installed a new wire for the sensor, completely outside of the machine, away from all other cables incl. the other cables going to the smart effector. Test print of about 45 minutes, no errors.
So my issue was being caused by the wiring. I still had some cable for analog sensors, with braided shielding. But because those wires were pretty thick I just removed the shield from that wire, and put it around my new filament sensor wire, guided it through the nylon sleeving that goes to the smart effector and did another test print. Again, no sensorErrors!
I'll have to see how it behaves the next couple of weeks, but to me it seems that the error was caused by my own wiring being to close to the other wiring for the smart effector.
-
I'm having the same issue, I'm on a Duet 2 WiFi. I'll try the capacitors to see if it is fixed.
-
@surgikill said in Duet3 v3.3 6HC Magnetic Filament Sensor = 'sensorError':
I'm having the same issue, I'm on a Duet 2 WiFi. I'll try the capacitors to see if it is fixed.
Didn't fix it. I put a 50V 10uf capacitor on the sensor, no dice, still getting sensor error sporadically.
-
@surgikill - 10uF is small. I have two. 1x 100nF and 1x 220uF.
-
@petrkroupa I don't believe the sensor is very sensitive to power supply fluctuations, unless your sensor is faulty. I think it more likely that you have a bad connection in the +3.3V or ground feed to the sensor, or you are getting static discharge from the hot end to the sensor connections.
-
@dc42 - Two sensors on two different printers? I'm not saying it's not possible but it's unlikely. Capacitors have resolved the issue on both printers. If the cause is elsewhere, I really have no idea where. However, since then, both sensors have worked perfectly. See for yourself. For 23 hours of printing, the tolerance is 97-104%. I do not think it is possible to achieve better values.
Duet3D rotating magnet filament monitor v4 on pin 121.io1.in, enabled, sensitivity 25.00mm/rev, allow 50% to 200%, check printing moves every 10.0mm, version 4, mag 131 agc 96, measured sensitivity 24.62mm/rev, min 97% max 104% over 42855.6mm
-
It's great that adding capacitors to your sensor PCB get you working sensors.
Adding a large cap to the PCB helps when your 3.3 Volt supply is not continuous or low-impedance.
It's possible (I'm not saying it is, but for others...) that you've got marginal crimps on your wiring to the sensor. This can cause very short outages in power which would be compensated by the large cap on the sensor. This is a good thing to have if you have marginal connections in power or ground. Also good to have "Just in case."
- Do you use wiring that is crimped from the factory or do you make your own?
- If you make your own, do you crimp? Do you have an expensive crimp tool or an inexpensive one?
- Do you crimp AND solder?
Anyway, this is great that you've got it working and should help others if they also have wiring that somehow is not able to power the sensor continuously.
-
@alankilian - I crimp and then solder it for sure. I don't have the original tool. I changed the whole line several times. Subsequently, I shortened it to the shortest possible distance. Twisted together and used shielding. Even so, sometimes the sensor made "sensor error". I read the datasheet for the sensor used, looked at the overall wiring on the github, and found nothing wrong. When I had no other idea and tested 5 sensors, I tried capacitors. Well, finally it worked.
I'm not sure why. And since the sensor is directly on the extruder and powered by 1LC, I can't even check what's going on there with the oscilloscope.
It is true that adding a capacitor was probably the last attempt. Then I would give it up. It cost me a lot of time, but the idea of such a precise sensor is simply tempting. It may not always help and if someone has another problem with the sensor BUT as I say, it helped to me.
-
@alankilian I used a good crimp tool as well, EDM jaws. I do not solder seeing as that is usually not recommended for crimp connections.
@PetrKroupa I'll try adding some different capacitors. I just ordered shielded wire for it, so maybe that helps.
It also looks like there are some filament monitor fixes in 3.4 https://github.com/Duet3D/RepRapFirmware/commit/2ee6b1a26dcf7fd0b6037c519ac3e056f1e15c62
-
Well I found 1 issue. Part of the shaft was rubbing on the filament monitor. I resin printed the case and all the dimensions came out perfect, but apparently there is tolerance in there made for FDM, so the sensor was way too close. I'm going to try some test prints and see what happens.