Help with pulse-generating Filament Sensor



  • *I have a Duet wifi 2, running 2.04 (2019-11-01b1) firmware.

    *Wifi Server 1.23,

    *Web Interface Version: 1.22.6.

    I have a bigtreetech filament sensor connected to E1 end stop. I can tell its sending info to the endstop because you can see the end stop red light flicker on and off as the filament is moving though the bowden tube. Problem that i'm having is that, I'm not getting any Data or line data. It keeps telling its at position 0.0. Or no data received.

    This is the line I have enabled in my config.g for the sensor. To start off with before I can calibrate the sensor. I can't do that yet since its not getting any data.

    ;Filament Sensor 
    M591 D0 C4 P7 R60:140 L0.037 E5 S0      ; pulse-generating sensor drive 0 Connected to C4 input, 40% to 130% tolerance, 7mm detection length
    M591 D0                                 ; display filament sensor parameters for extruder drive 0
    

    I have also connected a optical rotary filament sensor that I made to that same output and I get the same type of issue. I get no data, is there something simple I might be forgetting to enabling in my config.g file maybe. I have been over this and trying to work on this for last two days. Thanks for any help. If I have forgotten anything.


  • administrators

    Your M591 command is OK except that I find the L parameter suspiciously low. Do you really get 1 pulse per 0.037mm of filament motion through the sensor?

    What does M591 D0 return?

    Please note, you probably need to be printing from SD card for data to be collected.



  • This is what im getting when put the M591 D0 in G-code command prompt. I can tell the endstop is getting a signal because its flashing on and off. I have also tried to pause and resume the print. But I still pretty much get the same thing except the minimum will change and maximum and the over MM will change. But the current position will never update. This is where I think its not updating.
    When i was watching the red light I could count about 3 to 4 secs between the pulses.
    Also I print from the internal SD card is that what you mean printing from the SD card. Or printing from the SD card from the touch screen?

    Pulse-type filament monitor on endstop input 4, disabled, sensitivity 0.500mm/pulse, allowed movement 60% to 140%, check every 5.0mm, current position 0.0, measured sensitivity 6.650mm/pulse, measured minimum 7%, maximum 8% over 2334.0mm
    

  • administrators

    @kordris as dc42 said, you L value is way too low:

    measured sensitivity 6.650mm/pulse

    which may be correct or may be long between pulses. depends on the sensor. what does the sensor manual say about pulses per mm?

    anyway try setting the L parameter in M591 to 6.65



  • This is the pdf on the filament sensor, it says use 7mm on marlin for the sensor. But I dont think thats for the pulse. It doenst give much info on what other info for setting for duet stuff. Im having to figure it out for my self.
    PDF File Github Link


  • administrators

    certainly looks like 7 or 6.65 would be a good start point for the L parameter.



  • Even if I use that, i still get no postion data. Which then leads to the printer stopping because it says theres to little movement. I dont think it's getting postion data correctly. Is there anything else should I enable in my config.g for the endstop on the extruder side. Since I'm using the extruder endstop E1. When I tried to get calibration data, it's the se way. Theres no postion point. So as soon as I go to enable the filament sensor it's going to error tell me there little or no movement.


  • administrators

    @kordris run the monitor disabled by using the M591 S0 switch for now so we can gather some data.

    looking at our previous output 6.650mm/pulse, measured minimum 7%, maximum 8% over 2334.0mm that shows that is was sensing something as it measured some minimum and maximum. What does M591 D0 show now?

    I have not tried it myself but I am not sure what position data is displayed for a pulse type sensor. it may just be movement as the pulse sensor does not send position.


  • administrators

    A pulse generating sensor doesn't distinguish between forward and reverse motion, so position cannot be inferred. I'll check why the firmware prints a position.


  • administrators

    I've checked the code, and I confirm that the "current position" has no meaning for a pulsed filament monitor. I'll remove it from the report in the next firmware build.



  • Ok, so when I try to run it with just those lines. I get little movement error. This is why I think that line postion has something to do with the error. Because it expecting to get the position data but its not. This is the last calibration data that I got. I guess until you fix it. I wont be able to use it.

    Pulse-type filament monitor on endstop input 4, enabled, sensitivity 6.650mm/pulse, allowed movement 60% to 140%, check every 3.0mm, current position 0.0, measured sensitivity 12.004mm/pulse, measured minimum 0%, maximum 111% over 24.0mm
    


  • When I change the E to 7mm distance I get a lot longer print time before it errors out before it wants to give me the problem with no little movement. So I guessing I might be close to the right settings maybe?

    M591 D0 C4 P7 R60:140 A1 L6.65 E7 S1      ; pulse-generating sensor drive 0 Connected to C4 input, 40% to 130% tolerance, 7mm detection length
    M591 D0                                   ; display filament sensor parameters for extruder drive 0
    

    This is the last one M591 D0

    Pulse-type filament monitor on endstop input 4, enabled, sensitivity 6.650mm/pulse, allowed movement 60% to 140%, check every 7.0mm, current position 0.0, measured sensitivity 6.886mm/pulse, measured minimum 47%, maximum 104% over 185.9mm
    


  • @T3P3Tony said in Help with pulse-generating Filament Sensor:

    M591 S0

    To get the Calibration data better do I just run M591 S0 ? I do I run the full M591 command with the S0 on the end like I had and then just check it with M591 D0 command.


  • administrators

    @kordris said in Help with pulse-generating Filament Sensor:

    @T3P3Tony said in Help with pulse-generating Filament Sensor:

    M591 S0

    To get the Calibration data better do I just run M591 S0 ? I do I run the full M591 command with the S0 on the end like I had and then just check it with M591 D0 command.

    See https://duet3d.dozuki.com/Wiki/Duet3dFilamentMonitor_LaserVersion#Section_Calibration. It's written for the laser filament monitor, but it's the same for your filament monitor.

    As it appears that your sensor only generates 1 pulse per approx. 6mm of filament, you will need to set the measurement distance (E parameter) several times greater then 6mm in order to get consistent results.



  • @dc42 Is the position data going to cause any problems or is that just going to just unrelated till you fix in the next firmware fix? I try to set the pulse to higher number. But I kept getting a error about every 5 mins telling little or no movement when I tried to enable the sensor with the S1. So Im guessing I still don't have something just right.


  • administrators

    No, the position data being reported as zero shouldn't cause any problems. However, I can't guarantee that the code is entirely correct, because it was adapted from the code for Duet3D laser and magnetic filament monitors, so it isn't well-suited to low-resolution sensors. With a window of 60 to 140%, my guess is that you will need at least 20mm measurement length, perhaps even 25mm. A wider window will allow a shorter length, but even then the measurement length should be more than twice the extrusion length per pulse.


Log in to reply