Кремень КД Реклама
Кремень КМ Реклама

Anycubic Predator (D) + SKR 1.4(TURBO) + Klipper + Raspberry Pi (Zero W) + 12864 RepRap LCD

Alpenstock
Идет загрузка
Загрузка
02.03.2021
10970
36
Техничка

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

13
Статья относится к принтерам:
Anycubic Predator

Anycubic Predator (D) + SKR 1.4(TURBO) + Klipper + Raspberry Pi (Zero W) + 12864 RepRap LCD

Сейчас мы обогатим ваш Anycubic Predator платой SKR, полной автономностью и чудо прошивкой Klipper.

Агрегировал свой опыт в простыню. Если кому пригодится, буду рад.

В первую очередь ссылки:

Видео Дмитрия Соркина:Видео Сергея Ирбиса:Посты sumerok:

Установка Klipper

В том числе Klipper

Первый

Описание конфигов Klipper

Его же гайд (ссылка под видео)

Второй

Нам понадобится:

  1. Anycubic Predator - настройка оного.
  2. SKR (1.3 / 1.4 / 1.4 TURBO) - разница между ними минимальная (в контексте данного поста).
  3. Raspberry Pi (Zero W) - доступный минимум, при достаточных характеристиках.

Другие очевидные и необходимые вещи - MicroSD для Raspberry, минимальные навыки пайки и прочее.

Начнём, внезапно, с 3 пункта

Берём Raspberry Pi (Zero W) в одну руку, видео Дмитрия в другую. Следуя инструкциям Дмитрия устанавливаем fluiddpi.

Ничего сложного, всё изложено очень доступно. 

Доходим до момента компиляции прошивки для принтера где-то здесь.

Тут начинаются кардинальные отличия, а именно:.

SKR 1.3 + USB

Anycubic Predator (D) + SKR 1.4(TURBO) + Klipper + Raspberry Pi (Zero W) + 12864 RepRap LCD

SKR 1.3 + UART

Anycubic Predator (D) + SKR 1.4(TURBO) + Klipper + Raspberry Pi (Zero W) + 12864 RepRap LCD

SKR 1.4 + USB

Anycubic Predator (D) + SKR 1.4(TURBO) + Klipper + Raspberry Pi (Zero W) + 12864 RepRap LCD

SKR 1.4 + UART

Anycubic Predator (D) + SKR 1.4(TURBO) + Klipper + Raspberry Pi (Zero W) + 12864 RepRap LCD

Сразу лирическое отступление про подключение по UART.

Anycubic Predator (D) + SKR 1.4(TURBO) + Klipper + Raspberry Pi (Zero W) + 12864 RepRap LCD

Берём RPi, jumper-wire. И подключаем пины (RX, TX, GND) TFT-порта SKR к RPi пинам (TX,RX,GND).

 У SKR 1.3 и SKR 1.4 распиновка порта TFT отличаются.

Anycubic Predator (D) + SKR 1.4(TURBO) + Klipper + Raspberry Pi (Zero W) + 12864 RepRap LCD

Anycubic Predator (D) + SKR 1.4(TURBO) + Klipper + Raspberry Pi (Zero W) + 12864 RepRap LCD

Не забываем 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

      Нам необходимо:

      1. Разместить плату в корпусе. С использованием 120 ММ вентилятора от Zalman всё буквально бесшумно и помещается красиво. Да на двухстороннем скотче, но...кто кроме вас об этом узнает.

      Anycubic Predator (D) + SKR 1.4(TURBO) + Klipper + Raspberry Pi (Zero W) + 12864 RepRap LCD

      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.

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

      Anycubic Predator (D) + SKR 1.4(TURBO) + Klipper + Raspberry Pi (Zero W) + 12864 RepRap LCD

      Самое интересное напоследок пункт 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: !

      Если с кривизной стола "всё в порядке". То основной калибровки для дельта-принтеров, по моему мнению, достаточно (при использовании 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 или в гугл.

      Очень полезный горшочек. Крайне рекомендую не лениться и откалибровать. 

      Опять таки видео Дмитрия; ещё видео из youtube; и, конечно же официальный мануал (куда же без него).

      В дополнение к официальному мануалу - у хыщника всё же больше боуден, чем директ, посему:

      >_ TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.020 (или .010)

      Иначе будет долговато.

      Естественно и очевидно, что все калибровки необходимо творить на своём принтере - использовать "чужие" значения не приветствуется и на свой страх и риск, как и всё вышеописанное.

      Примечания (далее мои мысли и путевые заметки):

      1. Глобально Klipper можно разделить на 4 части:
      2. Прошивка host-часть, которая исполняется в linux-среде (на Raspberry) 
      3. Прошивка client-часть, которая загружается в SKR 
      4. Web-интерфейс доступа (в частности fluidd) 
      5. Moonraker - прослойка между 1 и 3.

        Нам интересен порядок инициализации (если так можно сказать), как сам понял: сначала грузится RPi, потом грузится сервис Klipper в linux, следом грузится web-интерфейс, который презентует информацию о доступе host к client (понятно, что должно быть наоборот, но на экране принтера не будет интерфейса, пока его не отправит host).

        В итоге если после прошивки принтера, или после загрузки RPi ничего (явно) не происходит - необходимо подождать, пока произойдёт магия. Конкретно у меня RPi подключен к БП принтера и после включения, минуты 1,5 - 2 происходит "загрузка". Потом в fluidd появляется информация о показателях принтера и на экране принтера появляется интерфейс.

        Всё это к тому, что "торопиться не надо". После каждой манипуляции по обновлению прошивки необходимо время. И сначала перезагружаем host, потом firmware. Если в fluidd написано только firmware, то делаем так.

        Подпишитесь на автора

        Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

        Отписаться от уведомлений вы всегда сможете в профиле автора.

        13
        Комментарии к статье