Laser Filament Monitor - test results
This post is an update for everyone that has been waiting so patiently for information about the Laser Filament monitors.
I have managed to run some tests on 40 laser filament monitors in advance of providing some of them for people to test with many different filament types. (I will respond separately to that forum thread where so many people have said they would like to try one!).
- 5 sensors per test (5 endstops on a Duet) all sensing the movement of the same filament going into the input of a Titan extruder.
- Titan extruder steps/mm check to be accurate over 100mm using calipers
- The test housing is based on the original housing DC42 designed (with a 9mm filament to sensor offset), just duplicated 5 times in one block.
- Each bank of 5 sensors were tested for 60mm of filament movement, in one direction only at 200mm/m with the sample set to be every 3mm. All tests were run 3 times per filament.
M584 X5 Y6 Z7 E0:1:2:3:4 M201 X8000 Y800 Z800 E1000 M203 X10000 Y10000 Z10000 E20000 M566 X600 Y600 Z600 E20 M563 P0 D0:1:2:3:4 H1 M591 D0 C0 P5 S0 R50:150 M591 D1 C1 P5 S0 R50:150 M591 D2 C2 P5 S0 R50:150 M591 D3 C3 P5 S0 R50:150 M591 D4 C4 P5 S0 R50:150 M567 P0 E1:1:1:1:1 M350 E16 I1 M92 E804
5 monitors were tested with a range of filaments:
- Yellow PLA (Generic)
- White Petg (Generic)
- Green nGen (Colorfabb)
- Red Edge (e3d
- Blue ABS (Generic)
- Woodfill (Colorfabb)
- Nylon 618 - natural) (Taulman)
- All 40 monitors were tested with Yellow PLA. This was selected as it was a common filament that showed the worst results in the multi material test.
In the graphs below
- Y axis: 100 represents 100%, i.e. the sensor detected 100% of the commanded movement. higher than 100% indicates over reading, lower than 100% indicated under reading.
- Min, Avg, Max is reported by the firmware as the minimum sample, maximum sample and average of all samples over the test.
- T1-T40 is Sensor under Test number 1 -40. Filament types are labelled.
Yellow PLA for all 40 sensors:
As can be seen there is variation across the 40 tests. More on this below in discussion
All different filament types tested for 5 sensors:
Significant variation depending on filament type. ABS (at least blue ABS) reads amazingly well.
I have drawn out the following key points
- There are improvements that may be possible to the housing design to further improve results. Something that is 100% IR absorbent (the laser is an IR laser) would be perfect. In the first graph I have a theory that the results got better as the afternoon turned into night and the ambient IR dropped. I have not had a chance to repeat those tests to confirm that.
- The monitors, as currently housed, appear to be quite variable on filament type. With (blue) ABS they are accurate enough to detect a jam and pause before the filament is ground in the extruder. on yellow PLA it is likely that they will detect a problem before the print is ruined, but the filament in the extruder will be a bit ground up (if its a nozzle blockage or a tangle).
- I need lots more real world tests with different filament types and when actually printing (so retraction is taken into account.
For point 3 a number of people have already kindly offered to help in this thread:
I will be contacting people to responded (not everyone I am afraid - I can't send out all 40 sensors and some are already allocated).
Qdeathstar last edited by
Is there a schematic for the pcb so that the people contacted can pre-plan a housing for the sensor, or do you wish for us to initially use the stock design? Also, when do you anticipate shipping these?
@qdeathstar The documentation is updated with more information, including the critical dimensions. https://duet3d.dozuki.com/Wiki/Duet3dFilamentMonitor_LaserVersion
I have just updated the documentation to bring it up to date with current firmware. Please use firmware 2.01 or the forthcoming 2.02beta if you are testing the laser sensor.
pjr3D last edited by
Received the filament sensor earlier this week and printed a case (the default one on Thingiverse) in black PLA.
Initial results with the filaments I had to hand as follows:
Currently running a 28 hour print using the yellow PLA and sensor enabled with the current state:
Duet3D laser filament monitor on endstop input 3, enabled, allowed movement 40% to 120%, check every 3.0mm, current position -7.0, brightness 89, shutter 15, measured minimum 78%, average 94%, maximum 114% over 43930.2mm
I haven't yet tried alternative case designs - planning to take a look at that later.
I also have a Prusa I3 mk3 for comparison and my initial impressions of the sensor are very positive.
I need to do more testing of filament sensing and failing along with recovery processes. I do like the way the Prusa will pause, prompt you and eject/reload filament with just a few clicks on the control panel. I am not sure yet how we can define macros to perform similar functions since I think we would need access to the filament sensor state but that is for another day ...
I have just updated the documentation to bring it up to date with current firmware.
I found one thing that is somehow missing:
Hardware -> Assembly -> 2)last sentence starts with
Add the washers [...]
but they have not been mentioned anywhere before especially not in the
Other Partstable. I guess one should use nylon washers here, right?
@wilriker I think they are optional with the new PCB design as normal nyloc nuts can't cut any PCB traces or short anything. Washer will help protect the PCB and are best practice, and yes they should by nylon.
wilriker last edited by wilriker
@t3p3tony OK. I should have some nylon washer left from the Duet. They are for M4 instead of M3 - but experience showed they also kind of work good enough for M3 screws (like when the holder you design for M4 screws ends up with too small holes... not that this ever happened to me ).
P.S.: I received my sensor yesterday (the day you said they should arrive "around now" - do you have a spy at my post office?) and designed my holder for the sensor housing today as well as extended the sensor housing to be screwed to my holder. I will have to fix something on my Y axis first but I guess I can print these parts probably on the weekend.
fma last edited by
@T3P3Tony, did you re-calibrate the extruder steps/mm for each filament?
@fma no I did not - I was "extruding" into free air rather than through a nozzle so there was no really back pressure on the filament so the variation should have been less than in a real printer however if your extruder has variations in steps/mm depending on filament then worth doing that.
fma last edited by
Well, I think that there are always variations, even when extruding in free air: ABS is softer than PLA, so gear teeth go deeper, resulting in a smaller apparent diameter... And it would be worse when really extruding.
This means that different filaments should be calibrated changing the steps/mm, and not only with a extruding ratio on the slicer side.
@fma yes you are right, and that could account for some of the difference between the different filaments in my original tests.
Qdeathstar last edited by
So it seems like i have successfully set up the filament monitor and i am getting good data back. My question is, is the goal to print a whole bunch of different things using different filaments, and then report back the percentages? eg, for my first test print with the filament monitor:
I am using matterhackers black ABS filament, 1.75mm
Duet3D laser filament monitor on endstop input 3, disabled, allowed movement 40% to 120%, check every 3.0mm, current position 7.3, brightness 91, shutter 17, measured minimum 97%, average 100%, maximum 105% over 547.9mm
Is that the information you want?
@qdeathstar yes! Exactly. You are getting good results with ABS, which I did as well. Also worth noting what housing you used and how you mounted it.
An idea -
Could we do something where we could use a macro at the start of a print to extrude 10mm (or however much is "enough" to get a good reading) at 1mm/s, measure the amount the laser sees extruded. Then set that as 100% as a correction. Then that value could last through that print, and would theoretically be a way to automatically correct for different filament colors / types.
Obviously this would require a purge area, that not all printers have, but for those the macro could do a single line print at a designated spot, like a purge line.
@kraegar That's an interesting thought. We will though need some data first on how consistent the sensor behaves throughout a spool of one filament.
If it is purely dependent on color and type of filament this would be a great solution. If it also varies along the filament... it might still give a better baseline than having to set very relaxed boundaries. So after rethinking I like this idea!
@wilriker Agreed on inconsistencies with a spool. I'm also thinking it'll have to be combined with non-linear extrusion calibration.
@kraegar But then again the sensor - given it would be sufficiently accurate - could assist in tuning non-linear extrusion beforehand.
Let's wait and see where we get with it.
Probably tomorrow, I will eventually print the housing for my sensor. Loaded black filament tonight and redid bed leveling so I am set.
Yep, I'm thinking if we find a "best" filament for monitoring, that would be the ideal one to use for tuning non-linear extrusion.
Qdeathstar last edited by Qdeathstar
Ok, So here is another test:
Black ABS - Matterhackers - Benchy Test
Calibrated Steps/mm 441
Duet3D laser filament monitor on endstop input 3, disabled, allowed movement 40% to 120%, check every 3.0mm, current position -9.6, brightness 94, shutter 17, measured minimum 94%, average 100%, maximum 105% over 3972.5mm
I am using the fully enclosed mount provided in the documentation and it is mounted about 3" above the extruder. I am using a bondtech BMG extruder direct drive.
I am going to run the test again now with white ABS.