Обзор PAT9125 оптического датчика филамента для 3d печати

ee2e9583550ddf7e7ede4b8252238b3a.jpg

Добрый день друзья. Сегодня я хотел бы рассказать вам про датчик филамента PAT9125, а также про мой опыт общения с ним.

PAT9125 это оптический датчик который применяется на 3d принтерах Prusa. Этот датчик может отслеживать не только момент окончания филамента, но и момент его застревания. Например если у вас возникла тепловая пробка.

Главная проблема датчика, его нельзя подключить напрямую к плате с Marlin. Поскольку Marlin поддерживает только подключение энкодера, а этот датчик должен быть подключен по интерфейсу I2C. Чтобы разрешить эту проблему я использовал attiny85 digispark. Датчик подключается к Attiny, а уже Attiny в свою очередь эмулирует работу энкодера.

Настройка Marlin

В файле Configuration.h нужно раскомментировать параметр #define FILAMENT_RUNOUT_SENSOR. А вот параметр #define FIL_RUNOUT_PULLUP лучше закомментировать поскольку у нас ненастоящий енкодер то подтяжка attiny к линии питания будет только мешать работе.

Кроме того нужно раскомментировать параметр #define FILAMENT_RUNOUT_DISTANCE_MM это скажет Marlin что у нас не концевой выключатель, а энкодер. Значение параметра надо уменьшить по умолчанию там стоит 25 мм. Чтоб вы понимали сколько это, принтер успеет уложить два слоя калибровочного куба воздухом прежде чем заметит что что-то не так. Я поставил там 5 мм можно и меньше, но тогда можно столкнутся с ложными срабатываниями.

В файле Configuration_adv.h нужно раскомментировать #define ADVANCED_PAUSE_FEATURE

В файле Pinout вашей платы надо задать пин к которому будет подключен датчик в параметре #define FIL_RUNOUT_PIN.

Особенности работы датчика

Во первых я очень надеялся что поскольку я использую прозрачную трубку для филамента то датчик можно будет одеть прямо на неё и он будет видеть только филамент. Но оказалось, что датчик прекрасно видит эту прозрачную трубку и мне пришлось делать в ней окно.

94b8409941086c045ea740cbecfcc5bd.jpg

Следующая особенность касалась уже Attiny. Сначала я подключил принтер к пину P3 и Attiny просто не стала запускаться. То есть без подключения к принтеру все прекрасно работает, а стоит подключить Attiny не стартует. После этого я подключил принтер к пину P5, Attiny загрузилась, но порт просто не работал на нем всегда был высокий потенциал, возможно у меня оказалась бракованная Attiny. Все заработало только когда я подключил принтер к пину P1, пин на котором располагается диод.

Также я хочу отметить что датчик отслеживает отдельно движение по оси X и по оси Y. В моем случае используется ось X, но если вы захотите расположить датчик по другому. Например расположить его перпендикулярно движению филамента, то надо в прошивке Attiny заменить ось X на Y.

Вот так выглядит мой принтер с датчиком

3ba271b1d6117e232d9307ffe9ae8894.jpg

Прошивка для Attiny

Ссылка на корпус для датчика

© Habrahabr.ru