Расскажу про замену штатного датчика запутывания пластика на SFS V2 от BigTreeTech (https://biqu.equipment/collections/module-expansion-board/products/btt-sfs-v2-0-smart-filament-sensor).

Основное отличие от штатного датчика — это принцип работы, SFS V2 детектирует именно движение пластика, т.е. он, как и стандартный поймет, что пластик запутался, оборвался, но также он поймёт если забилось сопло и пластик не двигается. У меня лично последний вариант частый гость ввиду использования композитов и экспериментов с пластиками сомнительного качества.
Хочу выразить благодарность автору этого поста (https://www.printables.com/model/1147564-qidi-q1-pro-connect-and-configure-any-motion-senso), чья работа была взята за основу и дала понять, что установка этого датчика на Q1 Pro возможна.
Моим единственным замечанием к оригинальному креплению было то, что датчик нужно было крепить на боковой или задней панели принтера. У меня мало места, и все равно требовалось удалить штатный датчик. Поэтому я сообразил крепление, которое позволяет установить SFS V2 на место оригинального датчика запутывания филамента QIDI.
Единственный небольшой нюанс с моей конструкцией заключается в том, что вам нужно будет заранее вставить PTFE трубку во вход датчика. Однако я всегда печатаю прямо из сушилки, поэтому это даже упрощает рабочий процесс.
Всё что дальше это переведенное и немного адаптированное описание (https://www.printables.com/model/1147564-qidi-q1-pro-connect-and-configure-any-motion-senso). Дублирую сюда чтобы всё было в одном месте и не потерялось в случае, если оригинал будет недоступен.
1. Подготовьте разъем SFS в соответствии с фотографиями. Кабель от SFS делится на два разъема, нужно вытащить красный провод из одного и вставить его в свободное место вместе с черным и зеленым проводом. Извлечь пин можно с помощью тонкой отвертки, иглы, тонкого ножа и т.д. Мы не будем использовать датчик окончания филамента (runout sensor), он потребует дополнительного пина на материнской плате, и, по сути, дублирует функционал, поэтому потребуется только один 3-контактный разъем для датчика движения филамента.
![]() |
![]() |
Снимите заднюю крышку. Отключите штатный датчик, подключите на его место новый. Уложите кабель так же, как лежал старый.
![]() |
![]() |
Снимите оригинальный датчик, открутив два винта в дальнем левом углу сверху корпуса.

Прикрутите SFS V2 к напечатанному креплению используя винты из комплекта датчика. Вставьте PTFE трубку в отверстие на корпусе принтера от оригинального датчика и вставьте в датчик SFS, с другой стороны, вставьте PTFE трубку от экструдера. Прикрутите крепление вместе датчиком и трубками на место оригинального датчика. Подключите провода датчика.
![]() |
![]() |
![]() |
Установленный датчик позволяет свободно двигаться голове, не забирая полезную область.

Замените это в printer.cfg:
[filament_switch_sensor fila]
pause_on_runout: True
runout_gcode:
M118 Filament tangle detected
event_delay: 3.0
pause_delay: 0.5
switch_pin: U_1:PC3
На это:
[filament_motion_sensor fila]
switch_pin: U_1:PC3
detection_length: 5.76
extruder: extruder
pause_on_runout: False
runout_gcode:
M118 Filament encoder runout
PAUSE
insert_gcode:
M117 Filament encoder inserted
Добавьте новые макросы для включения и выключения датчика в конце gcode_macro.cfg:
[gcode_macro SFS_ENABLE]
gcode:
M117 ENABLING the SFS
G92 E0
SET_FILAMENT_SENSOR SENSOR=fila ENABLE=1
[gcode_macro SFS_DISABLE]
gcode:
M117 DISABLING the SFS
G92 E0
SET_FILAMENT_SENSOR SENSOR=fila ENABLE=0
Найдите раздел в gcode_macro.cfg [gcode_macro CANCEL_PRINT] и вставьте SFS_DISABLE в его начало следующим образом:
[gcode_macro CANCEL_PRINT]
rename_existing: BASE_CANCEL_PRINT
gcode:
SFS_DISABLE
{% if (printer.gcode_move.position.z) < 150 %} ; check that zhop doesn't exceed z max
G1 Z150 F480
{% endif %}
…
Вставьте SFS_DISABLE в начало стартового и конечного G-кода в слайсере. Отключение BTT SFS v2.0 перед началом печати необходимо, чтобы предотвратить ложные срабатывания на этапе очистки сопла перед печатью.

Вставьте SFS_ENABLE в конец стартового G-кода в слайсере:

Автор: @KonstaShch