Optical mouse based filament motion sensor
We calculate the final price from your selected file. You review and accept it before payment.
Saved on this device.
USB filament motion sensor based on re-used optical mouse to detect filament run-out or jams
- Rating
- 0 / 5
- Likes
- 13
- Downloads
- 62
- Makes
- 0
- Views
- 1,738
- Reviews
- 0
Updated at source:
Model information
- Source
- Printables
- Category
- Accessories
- License
- Creative Commons — Attribution
USB filament sensor, based on re-used optical mouse to detect run-outs or jams.
There is a small (coverheight=14mm) a large (coverheight=21mm) version of this housing.
Function:
The filament runs beneath the optical flow sensor. The filament position is chosen, that the sensor reliably detects mouse motion in X direction. The motion events can be processed in software on the host to generate an alarm in case of run-out or jam.
Software:
This sensor is for USB only, it is suitable for host based printer software such as OctoPrint and Klipper. The software is still in progress.
I managed to read out mouse events using a small python script. With that script I recorded data points for analysing what to expect in case of JAM. I learned that position of the sensor is crucial for detection quality. The best detection is expected, when the sensor is mounted on the extruder. The assembly at the spool mount is also possible, but gives other characteristics.
I also learned, that jam detection relies on the fact, that filament slips inside extruder in case of heavy pulling force on the filament. To ensure this, the filament tensioner needs to be tighten not too strong.
ToDo:
There is still work to be done:
- Develope algorithm to detect jams and run-outs
- Use Klipper-API to create printer event which shuts down printing on positive detection
- Despite alarming: Do other stuff with this sensor
- Do something useful with the mouse buttons and mouse wheel/rotary encoder
Assembly steps:
1.) Get the mouse. It's a LogiLink ID0010. Lowest price is about 3 to 4 € in Germany
This mouse is a ideal choice:
It's cheap, has a small PCB and some fancy red and blue lights!
2.) Disassemble mouse and retain PCB and lens for later usage
3.) Print cover and base: Decide which cover height you want. You can use the small version, if you want to de-solder the rotary encoder off the PCB. If you want the rotary encoder to be where it is, then the large version is right for you.
4.) Apply three M3 melting thread inserts to the base
5.) Assemble lens, PCB to the base
6.) Snap cover on, put the cable through the slot
7.) Use three M3x8 screws for fixating the cover to the base
8.) Have fun!
Attached files are:
- Printable models for Cover, large, 21 mm height
- Printable models for Base, large, 21 mm height
- Printable models for Cover, small, 14 mm height
- Printable models for Base, small, 14 mm height
- Python script for recording mouse events
- Matlab script for displaying the results