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, то делаем так.
Еще больше интересных статей
Активная термокамера для Flashforge Adventurer 5M
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Реализация I2C на MKS Robin nano v1.2 + Бонус прошивка по UART
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
GCODE: Основы
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
GCODE: Плюшки от ПавлушкиПосле написания предыдущей...
Комментарии и вопросы
А что так? Стакан муки не разо...
х..ь, купил такую из нержавейк...
у шлифовщика вытяжки нет? наст...
Всем привет.Очень странная сит...
Всем привет , я тут новенькая...
Всем привет!На работе печатаем...
Делаю стол 650х650 мм.Рассматр...