logo

Технологии / 
Прошивка и автолевелинг Anycubic Kossel Linear Plus

15 апрель, 2019 1 687 0
Пользуюсь Anycubic Kossel Linear Plus уже почти год, хоть и печатаю довольно редко, но никаких нареканий в работе нет.



Вопреки множественным обзорам на ютубе о сложности сборки и настройке дельта-принтеров, мой экземпляр собрался буквально за час и после единстевнной процедуры автолевелинга печатал без нареканий, с отменным качеством. Использую в основном PLA пластик, t = 200-210, обдув 100%, экструзия 93%, остальное в слайсере :)

И вот, на днях, решил его проапгрейдить! Начал с драйверов для шаговых двигателей TMC2208.Купил с али 5шт за ~1500 руб: https://s.click.aliexpress.com/e/bvfG2zuA

Основные характеристики TMC2208 согласно 3дшник wiki:
  • Логика совместима с драйвером A4988. Напряжение от 3,3В до 5В
  • Ток до 2А. Зависит он установленных Rsense
  • Конфигурации микрошага 1/2, 1/4, 1/8, 1/16. Все они с интерполяцией до 1/256
  • 1/256 без интерполяции только с управлением по UART
  • Напряжение для двигателя от 4,75 до 36В
Режим stealthChop2 - автоматически оптимизирует настройки для снижения шума. Работает по умолчанию и не требует конфигурации.
Режим spreadCycle. Уменьшает резонанс и повышает плавность. Может быть включен только через UART и OPT.

Чип расположен на нижней части драйвера. Это сделано потому что низ чипа лучше рассеивает тепло. Радиатор нужно устанавливать на печатную плату. Vref регулируется через отверстие в печатной плате.

Радует, что данные драйвера полностью взаимозаменяемы со стандартными A4988, которые стояли в моём кубике по-умолчанию, поэтому можно одни вытащить, другие поставить, НО ХРЕН ТАМ! :( 

Во-первых, надо настроить ток Vref на драйвере - чем выше ток, тем больше крутящий момент, но и больше нагрев двигателя. В большинстве случаев (по интернету) хватает тока 0,79В - тем более для дельты, где не нужен огромный крутящий момент.


Отключаем шлейфы двигателей, включаем питание принтера. Берём мультиметр, один щуп в любое место на плате с землёй, второй в дырочку на драйвере. Берём керамическую отвёртку и крутим потенциометр, сверяясь с показаниями мультиметра.

В большинстве случаев хватит тока 0,79В, что соответствует движку на 800mA.

На моих шаговых двигателях маркировки не было, поэтому выставил Vref 1.1В, прочитав в отзыве на алишке. Спустя два часа непрерывной печати, движки нагрелись так, что прикоснуться нельзя было... Решил почитать, разобраться и в итоге снизил ток до 0,79В. 

Табличка установки Vref на драйвере, в зависимости от тока мотора и сопротивления Rsense. 

Во-вторых, как оказалось, TMC2208 крутит шаговые двигатели в противоположную сторону (от A4988).
Внимание, спойлер! Как выяснилось, это A4988 крутят движки в "другую" сторону, в прошивке Marlin под A4988 стоит инверт для осей. Для TMC2208 инверт надо убрать, работают по дефолту в "нужную" сторону.

Принтером пользовался со стоковой прошивкой и проблем не знал, автолевелинг раз в полгода, всё прекрасно работало. Однако, поменять направление движения двигателей в стоковой невозможно, а Anycubic на своём сайте прошивку даёт скачать только в hex, уже скомпилированную.. Капец, короче.

Ладно, для начала, сделал бэкап стоковой прошивки через avrdude.exe, спасибо товарищу CraVeg с 3dtoday.ru.
avrdude.exe -C "../etc/avrdude.conf" -p atmega2560 -c wiring -PCOMпорт -b115200 -Uflash:r:"имя_файла_прошивки".hex:i

Файл появится в папке с avrdude.exe. Для загрузки прошивки в принтер юзаем ту же команду, добавив аргумент -D и меняем r на w:

avrdude.exe -C "../etc/avrdude.conf" -p atmega2560 -c wiring -PCOMпорт -b115200 -D -Uflash:w:"имя_файла_прошивки".hex:i

- Скачал и поставил Марлин 1.1.8 от умельцев с настройками под Kossel Linear Plus - поставил пробную печать - движки тише не стали, более того, начали стучать, а сама деталь развалилась по слоям, вырубил принтер.
- Запулил прошивку Репитер с конфигом от умельцев - не устроил внешний вид, неудобная менюшка, печать даже не запускал, т.к. не смог провести автокалибровку, а разбираться с доп. ПО было лень.
- Вернул стоковую прошивку и стоковые драйвера, запустил автолевелинг, распечатал модель, убедился, что всё работает, отложил замену драйверов на будущее, пока не найду стоковую прошивку в которой просто смогу поменять движение моторов.

На следующий день в процессе гугления вопроса наткнулся на исходники прошивки от Anycubic на github!!

- Быстренько поставил обратно TMC2208, открыл Configuration.h, поменял INVERT_X_DIR на false
// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false
- Залил в принтер, провёл автолевел, запустил печать - всё заработало! :)

Перезагружаю принтер иииииииии.. настройки левелинга не сохранились в EEPROM. Провёл ещё раз автолевел, сохранил, скачал Pronterface (ссылка, FAQ по командам). Напрямую, командами M500, M501, M502 убедился, что принтер записывает данные, НО! после ребута New Z Offset по нулям и через M501 bilinear leveling mesh по нулям.

Залил стоковую прошивку с бэкапа, поставил старые драйвера, провел автолевел - store memory - после ребута всё по нулям. Пару дней колупался в чем проблема, EEPROM включен, всё делаю верно, принтер, сволочь такая, пишет, что всё сохранил и после ребута опять пусто.

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

Не смог победить недуг на прошивках от Anycubic. Пока выянял, как это сложно настраивать прошивку и где искать конфиги для моей дельты, узнал, что марлин гамно, репитер отстой и самый ништяк для дельты с tmc2208 и автолевелом - это смузивэар и вообще надо менять плату управления.

Пофигам, поскольку прошивка от кубика в основе своей это Marlin, да и она самая распространённая, решил скачать оригинал и затестить. Зашёл на github Marlin, скачал последнюю версию 1.1.9 (по крайней мере её обновляют), в readme черным по белому написано: Если у вас дельта принтер, возьмите файлы конфига из папки «example_configurations» - «delta» и настройте их под свой принтер.

Взял конфиги из папки Anycubic, что исправлил:
- В самом начале Configuration.h
/**
 * Choose your version: 
 */
// normal size or plus?
#define ANCYUBIC_KOSSEL_PLUS 
// Anycubic Probe version 1 or 2 see README.md; 0 for no probe
#define ANYCUBIC_PROBE_VERSION 2
// Heated Bed: 
// 0 ... no heated bed
// 1 ... aluminium heated bed with "BuildTak-like" sticker
// 2 ... ultrabase heated bed
#define ANYCUBIC_KOSSEL_ENABLE_BED 1
- Был включен инверт концевиков ENDSTOP_INVERTING (после пары смачных таранов стола и попыток экструдера улететь через верх принтера, выяснил в чем проблема - выключил инверт на всех датчиках)
// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_INVERTING false  // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING false  // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING false  // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING false  // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING false  // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING false  // set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING false  // set to true to invert the logic of the probe.
- Был приятно удивлён имеющимися настройками под TMC2208, расскоментировал
/**
 * Stepper Drivers
 *
 * These settings allow Marlin to tune stepper driver timing and enable advanced options for
 * stepper drivers that support them. You may also override timing options in Configuration_adv.h.
 *
 * A4988 is assumed for unspecified drivers.
 *
 * Options: A4988, DRV8825, LV8729, L6470, TB6560, TB6600, TMC2100,
 *          TMC2130, TMC2130_STANDALONE, TMC2208, TMC2208_STANDALONE,
 *          TMC26X,  TMC26X_STANDALONE,  TMC2660, TMC2660_STANDALONE,
 *          TMC5130, TMC5130_STANDALONE
 * :['A4988', 'DRV8825', 'LV8729', 'L6470', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE']
 */
#define X_DRIVER_TYPE  TMC2208
#define Y_DRIVER_TYPE  TMC2208
#define Z_DRIVER_TYPE  TMC2208
//#define X2_DRIVER_TYPE A4988
//#define Y2_DRIVER_TYPE A4988
//#define Z2_DRIVER_TYPE A4988
#define E0_DRIVER_TYPE TMC2208
//#define E1_DRIVER_TYPE A4988
//#define E2_DRIVER_TYPE A4988
//#define E3_DRIVER_TYPE A4988
//#define E4_DRIVER_TYPE A4988
- Сразу скачал библиотеку для TMC2208 (ссылка), закинул в папку с Marlin.ino
- Acceleration выставил как в стоковой прошивке от кубика 
/**
 * Default Acceleration (change/s) change = mm/s
 * Override with M204
 *
 *   M204 P    Acceleration
 *   M204 R    Retract Acceleration
 *   M204 T    Travel Acceleration
 */
#define DEFAULT_ACCELERATION          3000    // X, Y, Z and E acceleration for printing moves
#define DEFAULT_RETRACT_ACCELERATION  3000    // E acceleration for retracts
#define DEFAULT_TRAVEL_ACCELERATION   1500    // X, Y, Z acceleration for travel (non printing) moves
- Выставил Z_PROBE_OFFSET_FROM_EXTRUDER как у кубика -15.9
/**
 *   Z Probe to nozzle (X,Y) offset, relative to (0, 0).
 *   X and Y offsets must be integers.
 *
 *   In the following example the X and Y offsets are both positive:
 *   #define X_PROBE_OFFSET_FROM_EXTRUDER 10
 *   #define Y_PROBE_OFFSET_FROM_EXTRUDER 10
 *
 *      +-- BACK ---+
 *      |           |
 *    L |    (+) P  | R <-- probe (20,20)
 *    E |           | I
 *    F | (-) N (+) | G <-- nozzle (10,10)
 *    T |           | H
 *      |    (-)    | T
 *      |           |
 *      O-- FRONT --+
 *    (0,0)
 */
#define X_PROBE_OFFSET_FROM_EXTRUDER 0     // X offset: -left  +right  [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER 0     // Y offset: -front +behind [the nozzle]

#if ANYCUBIC_PROBE_VERSION == 0
  #define Z_PROBE_OFFSET_FROM_EXTRUDER 0     // Z offset: -below +above  [the nozzle]
#elif ANYCUBIC_PROBE_VERSION == 1
  #define Z_PROBE_OFFSET_FROM_EXTRUDER -19.0 // Z offset: -below +above  [the nozzle]
#else
  #define Z_PROBE_OFFSET_FROM_EXTRUDER -15.9 // Z offset: -below +above  [the nozzle]
#endif
- Исправил направление энкодера в меню
//
// This option reverses the encoder direction for navigating LCD menus.
//
//  If CLOCKWISE normally moves DOWN this makes it go UP.
//  If CLOCKWISE normally moves UP this makes it go DOWN.
//
#define REVERSE_MENU_DIRECTION

Залил на принтер, включил, там же, в readme прописаны инструкции при первом запуске.

Начальная настройка принтера на Marlin 1.1.9:
Делаем Control - Initialize EEPROM, подцепляем датчик автолевелинга, затем идём в Prepare - Delta Calibration делаем Set Delta Height, затем Z Probe Offset, после на экране появляется Move Z, отцепляем датчик, с помощью энкодера опускаем экструдер, подкладываем листочек бумаги и настраиваем нужную высоту. Тыкаем Store Memory. На всякий случае перезагрузил и проверил через Pronterface M501 - ура, всё сохранилось!


Идём в Prepare - Delta Calibration - Auto Calibration, оооченьь дооолго ждёёёмм.. Видимо, несколько проходов калибровки и неоднократный замер одной точки даёт мегаточность при печати, не разбирался :) После калибровки, Store Memory. Проверяем, перезагружаем.

Запускаю печать и всё работает!
На расстоянии пары шагов, шума двигателей вообще не слышно, основной шум от охлаждения экструдера. Теперь буду думать как уменьшить от него шум, оставив эффективное охлаждение! :)

Прошивка от Marlin оказалась вполне удобной, мало чем отличается от той, что предлагает кубик. Есть несколько дополнительных пунктов, по больше части информативных, можно посмотреть сколько отпечатал принтер в метрах и минутах)) В сети полно марлинов с конфигами от умельцев, но сколько не скачивал под Anycubic Kossel Linear Plus, встают криво.. А стандартная от Marlin с мелкими корректировками идеально подошла. Два дня - полёт нормальный!

Marlin 1.1.9 для Anycubic Kossel Linear Plus: marlin.rar [1014,75 Kb] (cкачиваний: 102)
Configuration.h с вышеописанными изменениями configuration.h [78,02 Kb] (cкачиваний: 96)

Прокомментировать
Введите код с картинки:*
Кликните на изображение чтобы обновить код, если он неразборчив
все шаблоны для dle на сайте newtemplates.ru скачать