Anycubic Predator (D) + SKR 1.4(TURBO) + Klipper + Raspberry Pi (Zero W) + 12864 RepRap LCD
Сейчас мы обогатим ваш Anycubic Predator платой SKR, полной автономностью и чудо прошивкой Klipper.
Агрегировал свой опыт в простыню. Если кому пригодится, буду рад.
В первую очередь ссылки:
Видео Дмитрия Соркина: | Видео Сергея Ирбиса: | Посты sumerok: |
Его же гайд (ссылка под видео) |
Нам понадобится:
- Anycubic Predator - настройка оного.
- SKR (1.3 / 1.4 / 1.4 TURBO) - разница между ними минимальная (в контексте данного поста).
- Raspberry Pi (Zero W) - доступный минимум, при достаточных характеристиках.
Другие очевидные и необходимые вещи - MicroSD для Raspberry, минимальные навыки пайки и прочее.
Начнём, внезапно, с 3 пункта
Берём Raspberry Pi (Zero W) в одну руку, видео Дмитрия в другую. Следуя инструкциям Дмитрия устанавливаем fluiddpi.
Ничего сложного, всё изложено очень доступно.
Доходим до момента компиляции прошивки для принтера где-то здесь.
Тут начинаются кардинальные отличия, а именно:.
SKR 1.3 + USB | |
SKR 1.3 + UART | |
SKR 1.4 + USB | |
SKR 1.4 + UART |
Сразу лирическое отступление про подключение по UART.
Берём RPi, jumper-wire. И подключаем пины (RX, TX, GND) TFT-порта SKR к RPi пинам (TX,RX,GND).
У SKR 1.3 и SKR 1.4 распиновка порта TFT отличаются.
Не забываем RX платы SKR подключаем к TX Raspberry и TX платы SKR подключаем к RX Raspberry.
Настройка Raspberry Pi (Zero W) для работы по UART:
Заходим на RPi через PuTTY (например):
- sudo nano /boot/cmdline.txt
console=tty1 root=PARTUUID=2b5222ac-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
- Ctr+X -> Y -> Enter
- sudo nano /boot/config.txt
добавляем в конец файла
enable_uart=1
dtoverlay=pi3-miniuart-bt
Где-то на GitHub написали, что неплохо бы использовать фильтр (ферритовое кольцо), а он у меня как раз есть.
Прошивку скомпилировали, забрали с Raspberry, переименовали (всё по видео-инструкции).
Теперь пункт 2
Нам необходимо:
- Разместить плату в корпусе. С использованием 120 ММ вентилятора от Zalman всё буквально бесшумно и помещается красиво. Да на двухстороннем скотче, но...кто кроме вас об этом узнает.
2. Укладываем проводку заново, подключаем к SKR. Там вроде про миграцию со сток платы на SKR всё уже расписано. Да и в целом интуитивно.
Главное на забываем про логические уровни - что 12V должно быть подключено через DC-DC buck конверторы (понижайки в простонародье). У нас 24V бортовое всё таки. А Raspberry Pi (Zero W) так и подавно отдельно 5V(2-3A) требуется.
3. Klipper для суровых печатников - в модные экраны не умеет. Берём рабоче-крестьянский RepRapDiscount Full Graphic Smart Controller (он же LCD 12864). Подключаем по EXP1/EXP2.
Но его тоже необходимо приколхозить к корпусу. Не нашёл для себя удовлетворительного решения. Взял ежа, взял ужа, получил что-то похожее на правду.
Самое интересное напоследок пункт 1.
Необходим конфиг для нашего принтера. В видео-инструкциях Дмитрия и Сергея описаны общие моменты настройки принтера.
Вот мои частности.
Данный конфиг можно использовать на 80%. Эксплуатация принтера ТОЛЬКО после калибровок.
Он только для SKR 1.4(TURBO), так как распиновка с SKR 1.3 точно не совпадает. Насчёт SKR 1.4 не TURBO, с точностью не скажу.
Значит так. Конфиг принтера в Klipper это вам "не фунт изюму".
Сверху вниз (в видео Дмитрия про конфиг всё прекрасно и подробно расписано, опишу только "переменные"):
- MCU - настройки платы: #UART-mode для подключения по UART; #USB-mode для подключения по USB (пока всё просто, правда)
- [virtual_sdcard] / [display_status] / [input_shaper] / [pause_resume] / [firmware_retraction] смотрим в видео или читаем на GitHub
- [printer]
delta_radius: 227
"начальное" значение, после калибровки будет закоментировано скриптом калибровки
- * - AXIS
position_endstop: 445
arm_length: 440.0
"начальные" значения, после калибровки будут закоментированы скриптом калибровки
- [extruder] / [heater_bed]
control: pid
pid_Kp: ____
pid_Ki: ____
pid_Kd: ____
"начальные" значения, после калибровки будут закоментированы скриптом калибровки
- [probe]
z_offset: 16.18
"начальное" значение, после калибровки будет закоментировано скриптом калибровки
- MACROS
минимальный набор необходимых макросов. Добавлять макросы для калибровок не вижу смысла, так как калибровка делается слишком не часто.
Калибровки (>_ консоль)
Калибровки не опасные (находимся рядом с принтером конечно же), сделали - забыли.
Хотэнд:
>_ PID_CALIBRATE HEATER=extruder TARGET=220
после завершения
>_ SAVE_CONFIG
Стол:
>_ PID_CALIBRATE HEATER=heater_bed TARGET=60
после завершения
>_ SAVE_CONFIG
- Калибровка шаговых моторов (осей)
Это вам не Marlin - не шаги на 1 мм, а мм за 1 шаг. Нет времени объяснять - курим видео Chris Riley например или официальный мануал.
Если коротко берём калькулятор идём в раздел Stepper Motors:
- Motor step angle (#define XYZ_FULL_STEPS_PER_ROTATION 200 в Marlin)
- Driver microstepping (задавали в конфиге) - 32
- Belt pitch (in mm) (#define XYZ_BELT_PITCH 2 в Marlin)
- Pulley tooth count (#define XYZ_PULLEY_TEETH 20 в Marlin)
- Belt presets GT2 (стандартная конфигурация)
Хоба - получили 160 steps/mm. Переводим: 1 / 160 steps/mm = 0.006248 steps/distance.
Это для моторов осей a/b/c (в частности для нашей дельты в стоке). Зачем учиться считать? Идём дальше.
В конфиге мы указали max_extrude_only_distance: 320. Нам это нужно для замены филамента (макрос), также поможет и при калибровке экструдера. Klipper боится без явной настройки двигать филамент больше чем на 50мм. Поэтому в официальном мануале извращаются с "around 70mm".
Мы идём простым путём - используем калибровочные данные из Marlin. Например было 436 step/mm для экструдера, переводим для Klipper: 1 / 436 step/mm = 0.002293 steps/distance.
Или ставим что-то около 1 / 420 = 0.002381 и калибруем:
- G28
- G1 Z300
- M104 S220
- M83
- Отмеряем линейкой 120мм от входа в экструдер (там где фитинг)
- G1 E100 F100
- Отмеряем сколько осталось
- Считаем фактические выдавленное: 120 - остаток (например 25) = 95 мм
- Считаем новые шаги: (100 / 95) * 420 = 442 steps/mm
- Переводим для Klipper: 1 / 442 steps/mm = 0.002262 steps/distance
- Вносим в конфиг
[extruder]
step_distance: 0.002262
- M82
Лучше повторить минимум ещё 1 раз.
Не забываем, если поставили BMG или его клон - инвертируем [extruder] dir_pin: !
- Калибровка дельты (она же Basic delta calibration)
Если с кривизной стола "всё в порядке". То основной калибровки для дельта-принтеров, по моему мнению, достаточно (при использовании 3D клея - ни одного фейла).
Перед началом калибровки ОБЯЗАТЕЛЬНО проверить функциональность стокового датчика.
- Подключаем датчик
- >_ QUERY_PROBE
- В консоли будет >_ // probe: open
- Нажать и держать кнопку датчика
- >_ QUERY_PROBE
- В консоли будет >_ // probe: TRIGGERED
- Датчик подключен верно - можно продолжать.
Если в процессе калибровки что-то пойдёт не так, перед отменой ОБЯЗАТЕЛЬНО придержать эффектор рукой (можно за тяги). Сразу после отмены операции Klipper отключает питание моторов осей и эффектор падает на кнопку (микрик) датчика калибровки. С большой вероятностью последний придёт в негодность.
Непосредственно калибровка не интересная:
- Нацепили датчик
- Подключили
- G28
- >_ DELTA_CALIBRATE
- После завершения
- >_ SAVE_CONFIG
За Probe Calibrate (он же Z-OFFSET) и Bed Mesh (он же BED_MESH_CALIBRATE, он же ABL/UBL в Marlin) велкам в официальный мануал или к sumerok или в гугл.
- Pressure advance (он же Linear Anvance в Marlin, он же K-factor)
Очень полезный горшочек. Крайне рекомендую не лениться и откалибровать.
Опять таки видео Дмитрия; ещё видео из youtube; и, конечно же официальный мануал (куда же без него).
В дополнение к официальному мануалу - у хыщника всё же больше боуден, чем директ, посему:
>_ TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.020 (или .010)
Иначе будет долговато.
Естественно и очевидно, что все калибровки необходимо творить на своём принтере - использовать "чужие" значения не приветствуется и на свой страх и риск, как и всё вышеописанное.
Примечания (далее мои мысли и путевые заметки):
- Глобально Klipper можно разделить на 4 части:
- Прошивка host-часть, которая исполняется в linux-среде (на Raspberry)
- Прошивка client-часть, которая загружается в SKR
- Web-интерфейс доступа (в частности fluidd)
- Moonraker - прослойка между 1 и 3.
Нам интересен порядок инициализации (если так можно сказать), как сам понял: сначала грузится RPi, потом грузится сервис Klipper в linux, следом грузится web-интерфейс, который презентует информацию о доступе host к client (понятно, что должно быть наоборот, но на экране принтера не будет интерфейса, пока его не отправит host).
В итоге если после прошивки принтера, или после загрузки RPi ничего (явно) не происходит - необходимо подождать, пока произойдёт магия. Конкретно у меня RPi подключен к БП принтера и после включения, минуты 1,5 - 2 происходит "загрузка". Потом в fluidd появляется информация о показателях принтера и на экране принтера появляется интерфейс.
Всё это к тому, что "торопиться не надо". После каждой манипуляции по обновлению прошивки необходимо время. И сначала перезагружаем host, потом firmware. Если в fluidd написано только firmware, то делаем так.
Еще больше интересных статей
Замена подшипников в фидере Creality k1
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Elegoo Neptune 4 Plus альтернативный и более простой способ замены сопла
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
G-CODE по-русски для 3D печати (Мини-справочник)
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
Пользуюсь традиционным микроск...
А что делать если потенциометр...
Когда на моем принтере начал з...
Доброго времени суток, при печ...
Как настроить ось Z? После авт...
Собираю кубик corexy htt...
Доброго времени суток! Купил н...