Inconsistent results with optical encoder wheel filament sensor
-
@JohnOCFII said in Inconsistent results with optical encoder wheel filament sensor:
measured minimum 27%, maximum 2377% over 521.3mm
no retractions, no PA... IMHO this can mean only two things
- there is a problem with that encoder (it's sliping, or the light diode is not properly sensing the gaps, or a wire is loose, your output is floating and not properly going to Vcc/Vss, or ... dunno, something)
- there is a bug in the sensor code
I can't see the third option that can explain this.
What would be interesting to test is to attach a logic analyzer to the output of the sensor going to duet and logging the data
one question about [1], how is your electronics hooked up? schematic?
The way you configured itC"connlcd.encb"
is no pullup/pulldown on the duet so duet expect you have a full swing 0 to 3v3 on this pin, do you have this or you maybe need a pullup or pulldown? You can easily configure pin to use pullup by adding ^ before the pin name soC"^connlcd.encb"
dunno if duet support pull down I did not tryhttps://duet3d.dozuki.com/Wiki/RepRapFirmware_3_overview#Section_Pin_names
-
@arhi said in Inconsistent results with optical encoder wheel filament sensor:
What would be interesting to test is to attach a logic analyzer to the output of the sensor going to duet and logging the data
Hmm... I might have an old BitScope DSO around, but I'll have to see if I have a system I can run it from. Looks like they haven't updated software in a few years.
one question about [1], how is your electronics hooked up? schematic?
I hooked it up using the same connections I was using for my simple switched-based filament sensor. I'm using Pin1 in the CONNLCD 10-pin connector for 3.3V, Pin2 for GROUND, and Pin3 which is listed as STOP 10 (ENC_B).
https://duet3d.dozuki.com/Wiki/Duet_Wiring_Diagrams
The sensor itself is a pretty basic optical endstop: https://www.ebay.com/itm/4-Pieces-Optical-Endstop-Limit-Switch-RAMPS-1-4-Board-3D-Printer-3Pin-Cable-A27/254260205504
And again, the design is from @fractalengineer https://www.thingiverse.com/thing:4445504
The way you configured it
C"connlcd.encb"
is no pullup/pulldown on the duet so duet expect you have a full swing 0 to 3v3 on this pin, do you have this or you maybe need a pullup or pulldown? You can easily configure pin to use pullup by adding ^ before the pin name soC"^connlcd.encb"
dunno if duet support pull down I did not tryhttps://duet3d.dozuki.com/Wiki/RepRapFirmware_3_overview#Section_Pin_names
I'll try it with the pull-up.
I'll try these tomorrow. (US Central time here -- UTC-5 now for daylight saving time).
Thanks for the ideas!
-
the interrupter on those boards require pullup, wether pullup is already mounted on the pcb with the interrupter or not I don't know but testing with pullup on the duet is simple so nothing to lose by trying it IMHO
-
@arhi said in Inconsistent results with optical encoder wheel filament sensor:
the interrupter on those boards require pullup, wether pullup is already mounted on the pcb with the interrupter or not I don't know but testing with pullup on the duet is simple so nothing to lose by trying it IMHO
I added the pullup. Results seem more consistent. Still a broader range than I'd hope for a vase mode cylinder. I'll tweak the settings a bit - perhaps increase the measurement length, and try again.
Pulse-type filament monitor on pin (connlcd.encb,connlcd.3), disabled, sensitivity 1.200mm/pulse, allowed movement 50% to 1500%, check every 5.0mm, measured sensitivity 1.368mm/pulse, measured minimum 28%, maximum 428% over 521.3mm
-
@JohnOCFII Sadly - continued testing shows similar wild results:
Pulse-type filament monitor on pin (connlcd.encb,connlcd.3), disabled, sensitivity 3.000mm/pulse, allowed movement 30% to 1500%, check every 10.0mm, measured sensitivity 1.731mm/pulse, measured minimum 72%, maximum 2606% over 1026.4mm
I had changed the pulse sensitivity to be closer too what the measured results were on the previous tests, but now it moves again.
-
dunno that sound really bad, maybe move the connection to the
C"^e0stop"
connector, dunno if it makes a difference but I'm not getting that big span on that pin -
If you can get that BitScope DSO to run I think that's a good way to move forward. Dunno if it's capable of "passtrough" grabbing like saleae, that would be ideal...
What is the interface material between the roller and the filament? And how is filament pressed to the roller? I was having a lot of slipping when my roller wheel was just a piece of PLA/ABS and since I didn't have any real flex to print it out of I made a roller wheel to have groove and added a small wide rubber band (I actually redesigned my sensor to fit that rubber band and that's the only small one I have, when it wares out I'll have to figure something new)
-
@arhi said in Inconsistent results with optical encoder wheel filament sensor:
dunno that sound really bad, maybe move the connection to the
C"^e0stop"
connector, dunno if it makes a difference but I'm not getting that big span on that pinThat'd be wild if a different connection made a difference. I'll have to think about that.
-
@arhi said in Inconsistent results with optical encoder wheel filament sensor:
If you can get that BitScope DSO to run I think that's a good way to move forward. Dunno if it's capable of "passtrough" grabbing like saleae, that would be ideal...
I did install the software and it appears to function. To be honest, I've never actually used it, so that may take some effort. :).
What is the interface material between the roller and the filament? And how is filament pressed to the roller?
It is a TPE roller pressing against the filament that is in a carved out channel of PTFE.
I've switched to a wheel with fewer, larger "spokes" as that was one recommendation from @fractalengineer
-
dunno how soft is that tpu, if you hold the encoder wheel witha hand and move the filament, how much force you need to apply to move it (as it will be slipping 'cause you are holding the encoder wheel) ?
a possible issue I see here is that many black plastic filaments are actually transparent to IR light and does not work reliably, or at all, as a light stop for the gap sensors. back in the day of darwin I had to tape the alu foil over the printed blade (and then painting it black with marker) going into the sensor for sensor to register it every time and at the same location. I haven't used printed wheels for more than a decade as when I make pcb's at home when I do films I have to pay for full width of the film (30 or 60cm) so I add to the film different encoder wheel designs I can later use in designes like this (high precision, low precision...).
I believe you can do the same here, just tape the piece of alu foil over the wheel and cut the holes trough alu matching holes on the plastic using a blade, black marker paint the alu foil after that and the transparency of the plastic issue should be gone
-
@arhi said in Inconsistent results with optical encoder wheel filament sensor:
dunno how soft is that tpu, if you hold the encoder wheel witha hand and move the filament, how much force you need to apply to move it (as it will be slipping 'cause you are holding the encoder wheel) ?
It is a semi-flex material, and printed mostly solid. I'll try that test this evening, but I'm expecting it is held pretty firmly.
a possible issue I see here is that many black plastic filaments are actually transparent to IR light and does not work reliably, or at all, as a light stop for the gap sensors. back in the day of darwin I had to tape the alu foil over the printed blade (and then painting it black with marker) going into the sensor for sensor to register it every time and at the same location. I haven't used printed wheels for more than a decade as when I make pcb's at home when I do films I have to pay for full width of the film (30 or 60cm) so I add to the film different encoder wheel designs I can later use in designes like this (high precision, low precision...).
I believe you can do the same here, just tape the piece of alu foil over the wheel and cut the holes trough alu matching holes on the plastic using a blade, black marker paint the alu foil after that and the transparency of the plastic issue should be gone
Interesting! The wheel I have in there now is actually a brown PLA plastic, but seeing the same results as with the black. I can try the foil method too -- or print in a different color/material. The black in the photograph is PETG, the current one is PLA+ .
Thanks,
John
-
@JohnOCFII I have not tested how each plastic is transparent to the IR but most are to some extent... alu tape is pretty simple and effective solution for that transparency... I'm not sure that's the issue you are having but at this point...
-
@arhi said in Inconsistent results with optical encoder wheel filament sensor:
If you can get that BitScope DSO to run I think that's a good way to move forward. Dunno if it's capable of "passtrough" grabbing like saleae, that would be ideal...
Passthrough would be ideal. Do you know how the Saleae Logic units do that? Do all the current models do that (might upgrade if so...). I'd prefer to use something that is still actively developed.
-
@JohnOCFII said in Inconsistent results with optical encoder wheel filament sensor:
@arhi said in Inconsistent results with optical encoder wheel filament sensor:
dunno how soft is that tpu, if you hold the encoder wheel witha hand and move the filament, how much force you need to apply to move it (as it will be slipping 'cause you are holding the encoder wheel) ?
It is a semi-flex material, and printed mostly solid. I'll try that test this evening, but I'm expecting it is held pretty firmly.
If I held the encoder wheel tightly, I could move the filament past the TPU wheel with less force than I expected. I had previously only tested by ensuring that when I moved filament through the unit, that the encoder wheel was moving properly.
I'll have to think about this.
a possible issue I see here is that many black plastic filaments are actually transparent to IR light and does not work reliably, or at all, as a light stop for the gap sensors. back in the day of darwin I had to tape the alu foil over the printed blade (and then painting it black with marker) going into the sensor for sensor to register it every time and at the same location. I haven't used printed wheels for more than a decade as when I make pcb's at home when I do films I have to pay for full width of the film (30 or 60cm) so I add to the film different encoder wheel designs I can later use in designes like this (high precision, low precision...).
Interesting!
I believe you can do the same here, just tape the piece of alu foil over the wheel and cut the holes trough alu matching holes on the plastic using a blade, black marker paint the alu foil after that and the transparency of the plastic issue should be gone
I'll give that a shot. I need to make sure that I can do something that doesn't make the encoder wheel much wider, as the channel is pretty thin.
Thanks again for the ideas.
John
-
@JohnOCFII saleae 8 uses the CY7C68013A mcu. That series of cypress mcu's have 8051 compatible core and a way to directly copy a port on to usb at 24MHz so to have 24 MHz pass trough 8 bit logic analyzer you just need that mcu + some input handling
I'm not sure if they configure trigger condition on the '51 or they do it in software
Their 16pin version comes with fpga and does not work the same but I don't have 16pin version so no clue how exactly it works nor what it supports. For more than pins I use obls or I use my trusty 400MHz agilent mxo
-
@JohnOCFII said in Inconsistent results with optical encoder wheel filament sensor:
If I held the encoder wheel tightly, I could move the filament past the TPU wheel with less force than I expected.
so if the dirt gets in, wheel get stuck, it will slip ?
I'll give that a shot. I need to make sure that I can do something that doesn't make the encoder wheel much wider, as the channel is pretty thin.
IMHO you can sand off 1mm from the side of the wheel where you will apply alu tape. IIRC alu tape is .25mm thick so that should do it.
-
@arhi said in Inconsistent results with optical encoder wheel filament sensor:
@JohnOCFII saleae 8 uses the CY7C68013A mcu. That series of cypress mcu's have 8051 compatible core and a way to directly copy a port on to usb at 24MHz so to have 24 MHz pass trough 8 bit logic analyzer you just need that mcu + some input handling
Do you need extra hardware, or is it just a matter of connecting one lead from the Saleae to the signal pin on the optical encoder (in this case) and a different lead to the appropriate signal pin on the Duet, and setting the software to "passthrough from lead x to lead y?
-
@arhi said in Inconsistent results with optical encoder wheel filament sensor:
@JohnOCFII said in Inconsistent results with optical encoder wheel filament sensor:
If I held the encoder wheel tightly, I could move the filament past the TPU wheel with less force than I expected.
so if the dirt gets in, wheel get stuck, it will slip ?
Yes, especially with the Bondtech extruder pulling as strongly as it does.
I'll give that a shot. I need to make sure that I can do something that doesn't make the encoder wheel much wider, as the channel is pretty thin.
IMHO you can sand off 1mm from the side of the wheel where you will apply alu tape. IIRC alu tape is .25mm thick so that should do it.
The encoder wheel is only 1mm thick...
I'm going to have to think about this...
Thanks for your ideas and input!
-
@JohnOCFII said in Inconsistent results with optical encoder wheel filament sensor:
The encoder wheel is only 1mm thick...
looks thicker on the picture .. anyhow, if you have aluminium tape, you can stick it on one side, cut, then sand plastic side till it fits the groove properly... the alu tape is rather thin so it is easy to sand off that much from the plastic side.
Do you need extra hardware, or is it just a matter of connecting one lead from the Saleae to the signal pin on the optical encoder (in this case) and a different lead to the appropriate signal pin on the Duet, and setting the software to "passthrough from lead x to lead y?
the saleae has the "extra hardware" as the input circuitry (iirc there's octal bus transciever or something like that making it work ok with 3v3 and 5v signals) so what you would do is connect GND from saleae to GND on the duet and S1 from the saleae to the connlcd.encb set the sw to start scanning at some lower freq (no need to do 25MHz, 100Hz is more than enough I think, maybe 1kHz) and let it scan for couple of minits during printing and then you click stop and analyze the trace.
-
@arhi said in Inconsistent results with optical encoder wheel filament sensor:
@JohnOCFII said in Inconsistent results with optical encoder wheel filament sensor:
The encoder wheel is only 1mm thick...
looks thicker on the picture .. anyhow, if you have aluminium tape, you can stick it on one side, cut, then sand plastic side till it fits the groove properly... the alu tape is rather thin so it is easy to sand off that much from the plastic side.
I can also sand out the slot too -- or maybe see if @fractalengineer will share the design files so I can widen out the slot.
Do you need extra hardware, or is it just a matter of connecting one lead from the Saleae to the signal pin on the optical encoder (in this case) and a different lead to the appropriate signal pin on the Duet, and setting the software to "passthrough from lead x to lead y?
the saleae has the "extra hardware" as the input circuitry (iirc there's octal bus transciever or something like that making it work ok with 3v3 and 5v signals) so what you would do is connect GND from saleae to GND on the duet and S1 from the saleae to the connlcd.encb set the sw to start scanning at some lower freq (no need to do 25MHz, 100Hz is more than enough I think, maybe 1kHz) and let it scan for couple of minits during printing and then you click stop and analyze the trace.
Cool. I might just have to upgrade. I see they have "Enthusiast Pricing" for the basic Logic 8.