Filament Motion Sensor Encoder v2

Filament Motion Sensor Encoder v2

thingiverse

UPDATE 26/10/2023: I have revised the "Spring Case" to make loading filament much easier. Install filament from the face rather than threading. You can also add a drilled out brass heated insert for durability and then with a dremel cut a slot in the side to match the slot in the part. UPDATE 13/07/2023: Have been testing for a week now printing for several hours without issue and I can confirm its works well on 3.3v supply. I am no longer going to develop any other of my motion detection designs... this is it. It's compact enough for me, easily accessible loading filament and accurate. I adjusted the detection setting to 7mm and had a few false postive runout pauses, set to 8mm and I have had no more. Filament Motion Sensor v2 Currently testing on my Voron 2 using Klipper. For reliability and accuracy, I went with a rotary encoder to detect filament motion or lack thereof and runout. Tried to keep it as small as possible as usual. With the mounting ring the encoder can be rotated to be at any angle to accept the filament direction. The encoder moves on a very light touch and responds very accurately with the TPU Wheel. The TPU Wheel has a ‘V’ groove to keep the filament aligned and having the encoder wheel press the filament to the fixed idler bearing to make the encoder rotate. This design does not require much spring tension on the filament for the encoder to move therefore does not contribute much resistance to the extruder when pulling the filament through or vice versa. --- BOM 1x 4mm DIA pen spring cut in half (approx. 10mm each length) 2x M3x8-10mm FHCS screws (for mounting Encoder Block to the encoder) 4x M3x25mm SHCS bolts (Encoder Block screws) 4x M3x5x4mmØ heat-set inserts 1x M5x16mm BHCS bolt (608Z axel) 2x M5x8x1mm flat washers (608Z spacers) 1x M5x6x5mmØ heat-set insert 1x 608z Bearing (sealed) 1x 8mmOD x 5mm ID x 5mm Aluminium spacer (for 608z axel) 1x Mini rotary photoelectric encoder 200PPR - 25mmOD with 25mm long 6mmOD shaft https://www.aliexpress.com/item/1005004995222625.html?spm=a2g0o.productlist.main.1.4f2774b0d4SjqJ&algo_pvid=5e5a8ac5-8c1e-4ae3-842d-981f027f7104&algo_exp_id=5e5a8ac5-8c1e-4ae3-842d-981f027f7104-0&pdp_npi=3%40dis%21NZD%212.98%212.2%21%21%211.80%21%21%4021227a0f16888549714203086d077b%2112000031283622714%21sea%21NZ%21842589877&curPageLogUid=43KkfPQeW9gg https://www.aliexpress.com/item/1005005030680929.html?spm=a2g0o.order_list.order_list_main.86.3d4e1802EotTJ1 --- Printing Main parts printed in PLA+ or ABS+ or whatever... 4 walls, 4 surfaces, 30% infill, layer height of 0.2mm. Wheel printed in TPU, 3 walls, 3 surfaces, 25% infill, layer height of 0.2mm. No supports required. --- Assembly Install the heated inserts into the parts. Make sure they are inserted plumb and square, any deviation will result in binding screws. M3’s inserts are installed into the Encoder Block. M5 inserts are installed into the Spring Case face for the 608Z bearing. Carefully without drilling right through using a 4mmDIA drill bit, clear out the Bowden tube holes. Install the Encoder Block into the Spring Case, making sure there is no binding. Sand if required for a free glide. Add some grease sparingly onto the back face and sides of the Encoder Block if you want. Screw in all the M3 screws just until the stop and test for a free glide. Again make sure there is no binding of the screws. If any binding occurs, drill out screw holes on the Spring Case. Add a sparing amount of grease to lube the screws in the Spring Case. Remove the bottom screws to insert the pen springs to push up the Encoder Block and then insert the M3 screws again until just tight.  Installing the springs is fiddly and patients is required to get them installed. I did it so you should be able to as well. Mount the 608Z bearing onto the Spring Case. Installed as washer, bearing, washer with the axel spacer. Screw in the M5 BHCS just until tight. There is no need to over tighten the screws. Mount the encoder to the Encoder block Press on the TPU Wheel onto the encoder axel and you’re done. Encoder Wiring Check the encoder wiring!!! VCC 5v – Red (although I'm only supplying 3.3v) GND – Black A (Signal) – Green B (Signal) – White Currently this is how I have mine wired up on a BTT Octopus v1.0 MCU board. VCC, GND & B (Signal). I installed a 3Pin JST connector and plugged it into a free endstop pin e.g. DIAG7 (PG15). Using a keyed JST connector make sure you insert the wire into the correct locations for the VCC, GND and B (Signal) on the MCU board. Check and then double check to be sure. Edit ‘filament_motion.cfg’ to suit the selected pin on the MCU. Test by extruding filament and adjust the detection length. I have mine set at 9mm the and you are done. At the time of uploading this information I am using the 3.3v supplied by DIAG7. I am still testing and will confirm 3.3v is satisfactory for the encoder. Klipper Macro Please refer to Klipper documentation for explanation of filament_sensor settings -  https://www.klipper3d.org/Config_Reference.html#filament-sensors Upload the ‘filament_motion.cfg’ file included into your Klipper configuration. Add the [include filament_motion.cfg] to your ‘printer.cfg’ file. Restart Klipper. Please note this macro is not my work and I cannot recall where I got it from, but it works great. Thanks to the creator. --- Works for me. Please consider supporting my designs when downloading. PayPal.Me/RedWhere2020

Download Model from thingiverse

With this file you will be able to print Filament Motion Sensor Encoder v2 with your 3D printer. Click on the button and save the file on your computer to work, edit or customize your design. You can also find more 3D designs for printers on Filament Motion Sensor Encoder v2.