HyperCube Evolution. ч.1. Вводная. Мозги.[Klipper]

Добавлено в закладки: 21

Всем доброго времени суток!

Рассказ о принтере HyperCube Evolution хочу начать с конца, не с рамы, а с мозгов. И в данной статье речь будет именно об этой составляющей так как она, по моему мнению, представляет наибольший интерес. Статья будет интересна в первую очередь тем, кто подбирает электронику для нового принтера, собирается переехать на 32-битный контроллер или имеет принт-сервер Octoprint.

HyperCube Evolution. ч.1. Вводная. Мозги.[Klipper]

Предыстория:

Если сравнивать принтер с живим существом, то корпус это скелет, шаговые двигатели – мышцы. До сегодняшнего дня, управляющая плата была главным нервным центром, со всем набором функций и простых реакций как у обычных беспозвоночных, на большее 8-битные контроллеры не способны. Ситуацию попытались исправить внедрив 32-битные контроллеры – возросла скорость реакции, добавились функции как подключение WiFi, управление цветными экранами, большим количеством экструдеров, но суть ограничения остались прежними, хоть и планка чуть-чуть повыше. После того как Вы определитесь с выбором кинематики принтера, следующим вопросом станет выбор электроники. Типичный вариант, “бомж”-набор: Ramps 1.4 + Arduino Mega. Те кто располагают большими средствами могут взять уже 32 битную плату типа MKS Sbase, или DuetWiFi. Так как даже самая мощная плата ничто без хорошей прошивки, а самая медленная 8-битная с оптимизированной прошивкой может показывать чудеса, то я в выборе мозгов для своего принтера отталкивался именно от возможностей прошивки, а потом решил подобрать железо под эту прошивку. Много было интернета перелопачено, встречал я там таких же людей с тем же вопросом “какая прошивка лучше?” Однозначного ответа на этот вопрос я так и не нашел. Но где-то в обсуждениях человек заметил, что для своего бизнес-проекта они выбрали Klipper и очень довольны. Что ж это такое, Klipper ? Под какое он железо ?

Из чего состоит Klipper:

HyperCube Evolution. ч.1. Вводная. Мозги.[Klipper]

Klipper это программное обеспечение для 3Д принтеров состоящее из двух частей: одна часть работает на микроконтроллере, вторая часть на хост-машине. Наверное многие подумали, а, опять какой-то принт-сервер? Нет! Если развивать нашу аналогию с живим существом, то микроконтроллер исполняет очень простую программу являясь спинным мозгом, а Klipper – мозг, который размышляет о высоком, читает gcode, рассчитывает оптимизации, шаги, общается с внешним миром. Получается, что на наш микроконтроллер Klipper шлет уже оптимизированные команды в которых указано когда и какому шаговому двигателю делать свой шаг. А наш спинной мозг уже не решает и не считает ничего, у него остается одна функция – схватить команду и двинуть шаговым движком в нужное время, все. Прошивка, которая принимает команду и ставит ее в очередь на выполнение, занимает каких-то 8Кб (в случае с Arduino Due), сравните это с монструзными 160Кб кода прошивки Marlin или Repetier. В этом и есть весь гениальный план создателя Klipper. Разделив двигательную и мыслительную функции мы получаем 3Д принтер, который отличается от других, как позвоночные и беспозвоночные в мире животных. С прошивкой вроде все ясно. А какую плату для нее выбрать?

Зачем нам всё это ? Выбор 8-бит или 32-битный контроллер.

Вот здесь и получается самое интересное. Klipper  на данный момент поддерживает “из коробки” 8-битные Arduino Mega, и 32-битную Due. Так как мы перенесли все вычисления в головной мозг, то для спинного подойдет любая, даже 8-битная плата, скорость реакции у нее будет даже выше чем у нынешних 32-битных с прошивками типа Marlin. Давайте прикинем, нужна ли так нам скорость реакции ? При движении печатающей головки со скоростью 85мм/сек одному мотору, который имеет 200 шагов на мм, нужно выдать 85 х 200 = 17 тыс импульсов, т.е. частота 17 КГц. И это будет предельной частотой для большинства прошивок. Repetier имеет оптимизацию с названием “4х кратный шаг” и предельную частоту 40КГц, что в пересчете на шаги даст возможность двигать одним мотором со скоростью 200 мм/сек. А если будем двигать двумя, то это уже 100мм/сек, а еще ж и экструдером надо управлять… а если на полном ходу вдруг надо температуру стола подкорректировать или среагировать на кнопочку? Правильно, экструдер в такие моменты будет останавливаться, не на долго, на длительность пары шагов, мы это точно не заметим, но хорошо будет видно на конечном отпечатке.

 

32 бита

Repetier обещает до 160 КГц на 32-битной Arduino Due. Но вот смотрите, у меня для апгрейда лежат два двигателя повышенной точности, 0.9 градусов, так же я планирую использовать драйвера TMC c микрошагом 256, при чем я хочу рулить каждым микрошагом без интерполяции, получается что максимальная скорость с которой будет работать один двигатель это 160 000/(320 шагов/мм *256) = 125 мм/сек. или чуть более 65мм/сек на два двигателя, беда. Но вот какие скорости достижимы с Klipper:

8-битная Мега – 120КГц  (в 3 раза быстрей чем Repetier)

Arduino Due – 337КГц (в 2.1 раза быстрей чем Repetier)

Так что на роль спинного мозга вполне сгодится и 8-битная Мега, она отлично справится даже с прямым управлением драйверами с 1/256 микрошагом.

А Klipper на чем запустить ?

Центральный мозг. На его роль сгодится почти любая плата и даже старый компьютер с линуксом, главное чтобы на нем можно было установить Python, большего не требуется. Т.е. в ход идут популярные Raspberry Pi даже самых ранних вариантов. Для покупки я бы рекомендовал посмотреть в сторону Orange Pi Zero либо Orange Pi Lite с вайфаем на борту. Сам Klipper кушает очень мало системных ресурсов, так что мы можем дополнительно нагрузить мозг принт-сервером, как вариант подойдет Octoprint. В итоге у нас получается такой бутерброд: принт-сервер принимает файлики для печати, показывает нам красивое и удобное меню, доступное как с компьютера так и с телефона, скармливает g-код Клипперу, определяя его как принтер, а Клиппер производит необходимые вычисления, оптимизации, проверки и уже выдает спинному мозгу (нашему 8-битному контроллеру) простые команды, чем и когда шевелить, а контроллер их исполняет.

При работе клиппера и октопринта загрузка процессора не превышает 30%, занято 94Мб оперативной памяти, так что Вы можете подключить принтер к телевизору и смотреть на нем фильмы, качать торренты или запустить на принтере сервер умного дома и охранной сигнализации.

HyperCube Evolution. ч.1. Вводная. Мозги.[Klipper]

Что в итоге получим с Клиппером ?

Теперь вкратце о том какие есть “плюшки” в Клиппере.

  • Высокая точность микрошагов по времени, погрешность не более 25 микросекунд. Клиппер не использует упрощения кинематики (алгоритм Брезенхе́ма), как в других прошивках. Вместо этого он использует физическую модель движения для расчета времени, когда нужно сделать шаг. Благодаря точным шагам получаются более качественные отпечатки.
  • Высокая производительность по количеству шагов за секунду, лучшая в своем классе. При этом, микрошаги выполняются без потери в точности по времени, именно тогда когда они запланированы.
  • Настройка принтера простым конфигурационным файлом, без перепрошивок.
  • Исполнительный код (для спинного мозга) может выполняться на существующих 8-ми и 32-битных платах для 3д принтера без переделки.
  • Основной код Клиппера написан на Python, что позволяет легко добавлять новые возможности в прошивку, как то – управление нагревателями, подсветкой, G-коды.

 

Продвинутые возможности:

  • Клиппер имеет встроенный алгоритм прогнозируемого давления для экструдеров, что улучшает стык пластика. (В обычных прошивках когда печатающая головка начинает движение давление пластика в сопле низкое, что проявляется в недостатке экструзии, тогда как в конце движения, когда печатающая головка тормозит, давление пластика сопле высокое что проявляется в избытке экструзии)
  • Клиппер поддерживает принтер с несколькими контроллерами. Например, один управляет только нагревателями, второй только движками по оси Z, третий ответственный только за экструдер, а четвертый мониторит состояние концевых выключателей.
  • Клиппер поддерживает передовую схему фазовой парковки, что после настройки позволяет экстремально точно устанавливать начальную точку движения, таким образом улучшается первый слой печати, так как его высота будет предельно точной.
  • Поддерживается схема ограничения движения зигзагом, что позволяет уменьшить шумы и вибрации при заливке тонких и длинных областей.

 

Пример работа алгоритма компенсации давления в экструдере. Первое фото – без компенсации, второй фото – с компенсацией после подбора параметров.

HyperCube Evolution. ч.1. Вводная. Мозги.[Klipper] HyperCube Evolution. ч.1. Вводная. Мозги.[Klipper]

Общие возможности Клиппера:

  • Совместим с принт-сервером Octoprint, который может быть запущен на том же железе что и Klipper
  • Поддерживает стандартные G-коды, которые выдают популярные слайсеры.
  • Поддерживает режим константного ускорения. Все движения либо с постоянным ускорением при разгоне, либо с постоянным торможением при остановке.
  • Режим “смотри вперед”. Входящий поток G-кодов на движение записывается в очередь и анализируется, ускорения в одинаковых направлениях оптимизируются, чтобы избежать остановок и сократить итоговое время на печать.
  • Поддерживаются принтеры с кинематиками : “дрыгостол”, дельта и coreXY

Итоги

В конце привожу для сравнения фото стенки квадрата 40х40. Один напечатан с прошивкой Marlin4Kimbra, второй с прошивкой Klipper, принтер HyperCube Evolution.

В ч.2  расскажу пошагово как прошить и настроить Klipper на примере принтера HyperCube Evolution, контроллера Due + Ramps 1.4, центральный мозг Orange Pi Lite.

HyperCube Evolution. ч.1. Вводная. Мозги.[Klipper]

Ссылки:

  1. Пруф об ограничениях по скорости от создателей Repetier (на других прошивках могут быть другие ограничения). https://forum.repetier.com/discussion/1512/double-quadstepping-setup
  2. Собственно Клиппер. https://github.com/KevinOConnor/klipper
  3. Видеодемонстрация как работает компенсация давления пластика в сопле на больших скоростях https://www.youtube.com/watch?v=-saoFQll2NM
  4. Видеодемонстрация предельных возможностей Клиппера (драйвера TMC, 30В, ускорение 4000, скорость до 250мм/сек) https://www.youtube.com/watch?v=clixTeZ3fJA
70

Метки: , , , , , , , ,    2017-11-26      Раздел: На конкурс, Обзор, Прошивка, Секреты и лайфхаки 3D печати  
Автор: Просмотров: 19 355   40 комментариев



40 комментариев на «HyperCube Evolution. ч.1. Вводная. Мозги.[Klipper]»

  1. Смотри-ка, а проект здорово развился, с тех пор, как я им последний раз интересовался! Попробую как-нибудь под андроидом завести.

    0
    1. Если на Андроиде нормально работает питон, то почему бы и нет ? Только прошивать контроллер надо будет с другой машины, так очень сомневаюсь что под Андроид будут доступны компиляторы кода для Ардуины

      0
      1. На андроид можно поставить Linux Deploy и поиметь поверх андроида практически полноценный линукс. Питон и октопринт там точно запускаются, пробовал, поиграл, не придумал зачем мне нужен октопринт. Теперь придумал)). Но это конечно так, на попробовать, на постоянку надо брать апельсинку.

        0
  2. Не совсем понятно что дает компенсация давления филамента как она организована и что за новый термин.

    -1
    1. В Simplify это опции “Coast at End” и “Coasting Distance”. В основном это нужно для тонкой настройки подачи на боудене.

      0
      1. Здесь оно работает как при начале так и в конце печати, можно подстроить для любого экструдера, хотя для директа наверное менее актуально.

        0
      2. да спасибо, приблизительно так и понял, разобрались в чате по данной фишке с Стасом.

        0
  3. Интересненько…
    Очень интересненько…
    Окончательно прощай свободное время…

    0
  4. Перечитал на несколько раз…
    Все есть для этого… :) даже вторая апельсина лежит без дела… :)
    Жду второй части… хотя вроде и почитал мануалы с гитхаба…

    0
  5. Итак… имеется
    моторы 0,9
    Due + ramps (переделанный)
    Orange PI+ 2E
    Теперь надо определится с тестовой деталью для сравнения в дальнейшем перехода на этот самый “Klipper”
    Чтоб не получилось, как с переходом на 32 бита, железо поменялось – печатает не плохо, а сравнить не с чем :)

    0
    1. Какие будут предложения по поводу тестовой детали ? Прошить на Марлин а потом обратно на Клиппер – секунда дела.

      0
      1. и секунда, но настройки EEPROMa + по мелочи… принтер к компу нормальному подключить… т.к. прошивать DUE из *nix я так и не научился… не нашел я нормально поддерживающую DUE arduinoIDE под линуХ…

        0

        1. Если речь о Клиппере, то уметь вручную DUE шить не нужно)) Там все для домохазяек, даем комманду клипперу – Иттить-колотить ! Прошить Due !! И он сам разберется, где что качать, как компилировать и шить)) Главное верно порт указать и все. ЕЕPROM ни в случае с Клиппером ни с Марлином я не использую, все необходимые параметры (для марлина) в прошивке уже, внес ручками, а с клиппером еще проще – он один раз шьет а дальше только файл конфигурации правим и перезапускаем клиппер.
          Собственно вопрос по модели для теста – открытый.

          0
  6. Слог хороший. Статья заинтересовала.
    Было бы совсем замечательно почитать во второй части:
    1. Правильное ПОЛНОЕ название моделей применённых плат с ссылкой на модель , где покупали.
    2. Как подключали – схема коммутации плат между собой.
    3. Полный состав программных модулей , необходимых для запуска этого комплекса на 3D принтере. Ссылки на статьи по инсталляции, запуску и настройке программного комплекса.
    4. Примерный бюджет – сколько надо средств потратить на весь комплекс. Требуются ЛИ(?) какие-либо дополнительные траты для запуска проекта.
    Интересно, но я вот с этой темой вообще не сталкивался.
    Хотелось бы пошаговую инструкцию по повторению вашего проекта.
    *THUMBS UP* *THUMBS UP* *THUMBS UP* *DRINK*

    2
    1. Все уже есть на этом ресурсе…
      Отвечу за топикстартера как я это понял… заодно, если не прав, то он поправит.
      1. Ramps + Mega2560 или Mega UDE + любой одноплатный ПК будь то raspberry или OrangePI (к примеру посмотрите на Orange PC+)
      2. Если 1 плата меги с рампсом, то точно по USB (хотя подозреваю, что и 2-ю и 3-ю также)
      3. На одноплатном ПК установленный linux к примеру ARMBIAN и установленный принтсервер OctoPrint
      4. у меня все это есть. Мне не требуется

      Ссылки давать думаю бессмысленно все это гуглится и на этом сайте ищется… и установка, и настройка… и на малине, и на апельсине…

      0
  7. На данный момент у меня один вопрос… Как подключаются платы контроля к одноплатному ПК? По какому интерфейсу? Если использовать разные платы на контроль движков, нагревателей, концевиков и т.д.

    0
    1. По идее вместо одной меги можно использовать две или три ESP8266, правда управляющую прошивку надо будет подправить, т.е. это возможно, теоретически. Если же речь о том чтобы использовать несколько Arduino Pro Mini, то лично я еще не совсем разобрался как это работает, в файле конфигурации об этом мало сказано, лишь местами комментарии типа “это и то должно быть на одном контроллере, разносить нельзя”. Обмен данными идет по последовательному порту, так что будет ли это USB-RS232, либо ком-порт напрямую брошен на гребенку апельсины – без разницы.

      0
      1. ааа от оно как… а то я начал думать что клонируют именно меги 2560 с рампсами… хотя в некоторых случаях и это оправдано будет…

        0
  8. ммм… а h-bot с клиппером дружит?

    0
    1. Поддержка есть, дельту тоже поддерживает.

      0
  9. pamalofeev, а Вы ATMega 2560 используете или SAM3x8e?
    Я пол дня сегодня бился – не мог закомпилить под DUE.
    Выдает ошибку и все тут…
    Витоге не понял как решил первую проблему (подозрение, что помог ребут в очередной раз), но вторая ошибка решилась установкой пакета “gcc-arm-none-eabi” про который в инструкции нет ни единого слова

    Причем под мегу 2560 компилится без бубна

    0
    1. Да, у меня DUE, некоторые зависимости нужно было ставить отдельно, но там все по-мелочи, фактически установка с нуля и прошивка DUE занимают не более полу-часа. Подробности установки будут в ч.2

      0
  10. Да я с нуля все и так ставлю… сразу на EMMC… вторую част не дождусь “руки чешутся”… сегодня вечером в планах сделать бекап EEPROM’a и прошивка где-то была забекаплена – надо проверить и продолжить… а то остановился на шаге прошивки…

    Такой вопрос… я так понимаю EEPROM там не используется? Если так, то я ее просто отключу от РАМПС’а да и все… :)

    0
    1. Да, EEPROM не используется. Еще небольшая подсказка, найдите в марлине в файле boards.h описание своей платы, нужны пины, и именное эти пины надо вписывать в файл конфигурации. Так же если нужно инвертировать вход который подтянут к питанию его следует писать вот так ^!ar43

      0
      1. Про пины я уже глянул мельком, а про инвертирование – спасибо

        0
  11. 1. Пригодилась подсказка про инвертирование. Если сначала инвертирование “!” а потом подтяжка “^” то выходит ошибка принтера… на чем я и попался первый раз :)… Еще раз спасибо…
    2. По началу мне показалось, что настройка шагов вообще не имеет ни какой логики… Это капец… пока экспериментировать не начал… потом когда понял как меняется скорость и расстояние – понял логику “нулей” после точки :)
    3. Паршивый мануал по настройке от разработчиков.
    4. Заметного уменьшения шума – я не заметил. Правда еще и не печатал. Просто погонял голову по осям. Завтра экструдер настрою и попробую первую печать.
    5. Есть подозрение, что с помощью флешера от klipper’а можно и другую прошивку заливать в DUE прям из-под линкса (например MK4DUE), что я давно и искал…
    6. Был приятно удивлен поддержке команд M114 и M119… возможно и других, но другие мне не были нужны и их я не проверял/
    7. Менял пины только на концевики т.к. остальное – все верно. Плата Ramps4due…

    0
  12. Еще заметка для “потомков”
    Для инвертирования вращения двигателя – нужно инвертировать “dir_pin”

    0
    1. Да, а еще чтобы не перекидывать местами на плате двигатели, проще в файле конфигурации поменять Х на Y, что просто невозможно на других прошивках, так как пришлось бы переназначать все остальные пины управления.

      0
  13. В ч.2 расскажу пошагово как прошить и настроить Klipper на примере принтера HyperCube Evolution, контроллера Due + Ramps 1.4, центральный мозг Orange Pi Lite.

    Очень жду… очень скудная инфа в интернете.

    1
  14. Отказался я от клипера…
    С некоторыми параметрами он жутко тупит… Большие задержки на раздумья при переходе со слоя на слой что приводит к “сопле” на углу… Это основное… есть еще несколько проблем… но они решаемы…

    Хотя с другими параметрами печати он просто летает…
    Вернулся на MK4DUE

    1
    1. Я проводил тесты, один и тот же g-код, печать Клиппера и Марлина из октопринта, 3 разных режима печати, во всех случаях Клиппер лучше себя показал. У Вас были условия, железо и код идентичны при сравнении ? Ускорения в обоих прошивках по всех осях одинаковы ? А в Клиппере случайно не переборщили с настройками компенсации давления пластика в сопле ?

      0
  15. А можно всё это поднять на виртуальной машине для тестирования?

    0
    1. Можно если это Вам проще, так как можно и на Windows установить (для начала следует установить Python, а как установить питон на виндовс куча руководств)

      0
      1. OctoPrint под винду установил,настроил и запустил, теперь как к нему прикрутить Klipper?

        0
        1. Боюсь, что винда пролетает… теоретически установить можно, на практике – придется решать много специфических задач, готовых руководств по решению для которых – нет. Будет проще запустить и октопринт и клиппер на виртуальной машине либо VMWare либо Virtualbox, тогда после установки Убунты достаточно следовать инструкции которую опубликовал во второй статье

          0
          1. Под Virtualbox не получается COM over USB подключить, не видит гостевая Lubuntu Мегу 2560. :'(

            0
          2. А винда нормально связывается по ком-порту ? Очень странно, юсб устройства обычно без проблем пробрасываются

            0
  16. Да… Все идентично :)
    G код один…
    компенсация давления выключена

    0
  17. То есть с кинематикой Ультимейкера Клиппер пока не дружит ?

    0
    1. Нету такого понятия как кинематика ультимейкера *WALL* ! Вот уж маркетологи постарались так постарались.
      Есть механика ультимейкера.
      Кинематики бывают картезинская, дельта, кореXY, радиальная и т.д. Ультимейкер имеет картезианскую кинематику, т.е. та же что и у всеми любимого Пруши, т.е. один мотор двигает область печати в одной плоскости. Клиппер поддерживает картезианскую кинематику, а так же дельту и кореXY

      0

Добавить комментарий




     
Авторизация
*
*
Генерация пароля
Яндекс.Метрика