This is a remixed version of the popular Enraged Rabbit Carrot Feeder smart filament motion sensor, designed for Creality K1 printers and available here on Printables.
I have been using it on my K1 and K1M for about six months with no issues, so I can confidently say it works quite well. Through experimentation, I set the filament detection length to 12mm, which you can use as a starting point. The only thing you need to ensure is that everything is printed and assembled accurately.
Unlike many other sensors, it creates almost no obstacles in the filament path.
I bought everything from Aliexpress
I recommend using SHCS screws, but BHCS or even FHCS should fit as well.
Please refer to the GitHub ERCF v1 manual (pages 49-53).
This specific hole was created while I was experimenting with various tensions. Its purpose is to load a spring with an M3 screw, similar to how it's done on many extruders. If you'd like better contact between the filament, the BMG gear, and the bearing, you can use it.
It fits well as a replacement for a Creality stock filament presence sensor. Technically, it should be compatible with most relocation mods, provided there is enough space for it to be mounted.
Wire as Follows
If you want to connect the sensor to the stock wiring, use the following method.
Alternatively, you can connect it directly to the printer's mainboard, an RPi Pico, or an Arduino—it's up to you. Additionally, refer to the BTT SFS connection method for guidance.
TCRT CRK1
vcc (red) --------- right
gnd (black) ------- middle
out (green)-------- left
I prefer to use the sensor as a replacement for the stock filament runout sensor, so it should be named filament_sensor.
In my scenario, the sensor doesn't stop the printing but instead:
# Sensor name must be filament_sensor to not confuse built-in macroses
[filament_motion_sensor filament_sensor]
switch_pin: PC15
detection_length: 15
extruder: extruder
pause_on_runout: false
runout_gcode:
MR_NOTIFY TITLE="ERCF: $printer_name" MESSAGE="Filament runout detected"
UPDATE_DELAYED_GCODE ID=ercf_alarm DURATION=10
insert_gcode:
MR_NOTIFY TITLE="ERCF: $printer_name" MESSAGE="Filament inserted"
UPDATE_DELAYED_GCODE ID=ercf_alarm DURATION=0
[delayed_gcode ercf_alarm]
initial_duration: 0
gcode:
BEEP
BEEP
BEEP
The author remixed this model.