roboforum.ru

Технический форум по робототехнике.


Marlin 2.0 (32bit)

Обсуждение технологии печати на 3D принтерах. Самостоятельное изготовление и приобретение. RepRap и его последователи.

Marlin 2.0 (32bit)

Сообщение alexxy » 29 окт 2017, 20:54

Как известно одна из популярных прошивок для 3D принтеров Marlin обзавелась поддержкой 32битных контроллеров на базе следующих чипов:
  • AT91SAM3X8E (на базе Arduino Due) (например RAMPS-FD, RADDS)
  • LPC176x (Всем известные девайсы на базе Smoothieboard) (работают ReARM, MKS Sbase, Azteeg X5 GT, AZSMZ mini)
  • STM32F1
  • Teensy 3.5/3.6 (они уже Cortex-M4 с FPU)

Предыстория: Товарижчь setar подбросил мне плату Azteeg X5 GT с драйверами BigFoot BSD2660. В оригинале плата работала на Smoothiware, но мне хотелось попробовать Marlin на ней. Собственно дело оставалось за малым, добавить в Marlin поддержку этой платы. К плате прилагался дисплей Viki2.

На фото ниже, Marlin запущенный на Azteeg X5 GT с Viki2 (к принтеру пока не подключал, драйвера tmc2660 не удалось запустить, надо написать или найти библиотеку для них)
DSC_0339.JPG

DSC_0340.JPG

DSC_0341.JPG

DSC_0342.JPG


Что сейчас работает:
  • Мапинг базовых пинов
  • Эндстопы
  • Грелки
  • Сервы
  • Термисторы
  • Экран Viki2
  • Драйверы (пробовал drv8825 и tmc2100)
Что не работает:
  • Драйверы BSD2660 (нет библиотеки, надо написать)
  • Ну и потенциально всё что не проверялось ;)

Как всё это было: вся проблема заключалась в том, что по этой борде нет нормальной спецификации с пинами, а предположение что все пины будут совпадать с тем что заявлено для Smoothieboard мягко говоря не оправдалось =). Так что пины искались методом реверс энжиниринга и научного тыка. Порт по сути делался не с нуля, а в качестве базы использовалось то, что было сделано уже для re-arm. Фотки и может пара видео этого дела будет в следующих постах.

Мой код поддержки Azteeg X5 GT смержили в основное дерево Marlin, так что берем бранч bugfix-2.0.x и пользуем

Базовая инструкция для сборки
  • Ставим platformio
  • Клонируем основную репу марлина
    Код: Выделить всёРазвернуть
    git clone https://github.com/MarlinFirmware/Marlin
  • Переключаем бранч на bugfix-2.0.x
    Код: Выделить всёРазвернуть
    git checkout -b bugfix-2.0.x origin/bugfix-2.0.x
  • Конфигурим как обычно, выставляем нужные параметры для платы и тип платы
  • Собираем
    Код: Выделить всёРазвернуть
    pio run -e LPC1768
  • В итоге получится файл firmware.bin (смотрим где он в выводе pio), копируем его на флешку, и перезапускаем плату
  • Радуемся Marlin на 32битной борде
alexxy
 
Сообщения: 93
Зарегистрирован: 05 фев 2015, 22:58

Re: Marlin 2.0 (32bit)

Сообщение setar » 08 окт 2018, 09:08

M42 P26 S{PWM 0 -255}
// возможно пин как требуется P0_26 описывать - нужно проверить

http://marlinfw.org/docs/gcode/M042.html
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: Marlin 2.0 (32bit)

Сообщение ursus » 08 окт 2018, 11:53

Да спасибо, разобрался. Рулится такой командой М42 Р026 S...

UPD: Есть нюанс. В файле пинов нужно назначить пин 0.26 на серву 2(может быть на любую другую тоже заработает, не пробовал) #define SERVO2_PIN P0_26
И включить в конфиге поддержку серв вообще. #define NUM_SERVOS 3 и задать им всем делей #define SERVO_DELAY { 300, 300, 300 }. Иначе работать не будет. Может кому пригодится.
ZAV MAX Pro V1. ZAV mini.
ursus
 
Сообщения: 267
Зарегистрирован: 27 авг 2014, 02:11
Откуда: Тольятти
ФИО: Михаил

Re: Marlin 2.0 (32bit)

Сообщение setar » 11 окт 2018, 11:15

очень даже пригодится :)
я сегодня вторую серву описывать буду (Bltouch + extruder switch), про зависимость от массива SERVO_DELAY я бы долго разбирался.
спасибо!
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: Marlin 2.0 (32bit)

Сообщение Strijar » 31 окт 2018, 12:22

Надо же, я как раз поменял на днях Marlin плату на MKS SBase и жалел, что для SBASE нет Marlin. Но потом обновил "смузю" на последнюю версию и она мне больше нравится чем Marlin. Печатает плавней на больших скоростях. Хотя я в Marlin через Cura настраивал ускорения и рывки, но смузя это делает оптимальней. Опять же в смузи код прозрачней - ковырять проще (;
Аватара пользователя
Strijar
 
Сообщения: 664
Зарегистрирован: 28 авг 2006, 17:09
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов

Re: Marlin 2.0 (32bit)

Сообщение Strijar » 02 ноя 2018, 12:03

Почитал исходники Marlin 2 и решил таки попробовать. Народ, как оно на SBASE - юзабильно уже? Стоит заморачиваться со сборкой под него? И есть какой нибудь "олдскульный" способ сборки под Linux без установки всяких IDE и проч? (toolchain под arm уже стоит)
Аватара пользователя
Strijar
 
Сообщения: 664
Зарегистрирован: 28 авг 2006, 17:09
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов

Re: Marlin 2.0 (32bit)

Сообщение Alexus12 » 02 ноя 2018, 16:31

Strijar писал(а):Почитал исходники Marlin 2 и решил таки попробовать. Народ, как оно на SBASE - юзабильно уже? Стоит заморачиваться со сборкой под него? И есть какой нибудь "олдскульный" способ сборки под Linux без установки всяких IDE и проч? (toolchain под arm уже стоит)

Я установил себе и не могу нарадоваться. Намного лучше Смузи, перешел потому что Смузи не все команды Гкода отрабатывает. Собирал через Платформио.

Есть правда один глючок, непонятный. При печати на экране скачет температура стола. То показывает заданную, то подскочит до 5-6 тысяч, то опять упадет. По факту вроде держит заданную ПИДом, но на экране такая вот фигня. Датчик менял. У экструдера все нормально, такой же датчик. Никто не сталкивался?
Noname + Arduino + RAMPS 1.4 + Marlin (не понравился)
Noname (CoreXY) + Duet2 WiFi v1.03 (MKS Clone) + 4 x (E3D V6 1,75 мм (боуден)) ToolChanger (в процессе эксплуатации)
Alexus12
 
Сообщения: 1132
Зарегистрирован: 18 дек 2014, 01:43

Re: Marlin 2.0 (32bit)

Сообщение Strijar » 12 ноя 2018, 13:59

Да, я тоже уже собрал и поставил. Пока устраивает. Одно раздражает не сохранение настроек. Раньше эмулировал EEPROM в файле на SD, но я так понял что выпилили эту фичу. Надо будет заняться и вернуть. А то ради поправки z-offset пересобирать прошивку как-то напрягает.

Народ, а кто занимался портированием Marlin2 на Selena Compact? Я купил ее, жду драйвера ST820. Как приедут хотел бы перейти на нее. Какие-то конфиги уже лежат в исходниках - на каком оно там этапе? Можно скооперироваться и дожать.
Аватара пользователя
Strijar
 
Сообщения: 664
Зарегистрирован: 28 авг 2006, 17:09
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов

Re: Marlin 2.0 (32bit)

Сообщение setar » 13 ноя 2018, 18:49

селена работает, EEPROM сохраняется на флешке.
UBL Autolevel принципиально не выполнить без калибровки (пересборкой прошивки не выполняется) которая и сохраняется в EEPROM.

по селене могу дать конфиги.

Добавлено спустя 9 минут 5 секунд:
кроме стандартного конфига из коробки
#define MOTHERBOARD BOARD_SELENA_COMPACT

я добавлял поддержку их же графического дисплея (конфигурировал как VIKI2), пришлось немного контакты поправить
Marlin/src/pins/pins_SELENA_COMPACT.h
Код: Выделить всёРазвернуть
#endif // REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

+//Panel Selena 3.1.0
+#if ENABLED(VIKI2)
+    #undef DEFAULT_LCD_CONTRAST
+    #define DEFAULT_LCD_CONTRAST 200
+
+//# SPI сигналы аппаратные
+//    #define SCK_PIN             P0_15
+//    #define MOSI_PIN            P0_18
+
+//# SPI сигналы на панели
+//    #define SCK_PIN             P0_07
+//    #define MISO_PIN            P0_08
+//    #define MOSI_PIN            P0_09
+
+    #define DOGLCD_SCK          P0_07
+    #define DOGLCD_MOSI         P0_09
+
+    #define DOGLCD_A0           P1_01
+    #define DOGLCD_CS           P1_00
+
+    #define BTN_EN1             P3_25
+    #define BTN_EN2             P3_26
+    #define BTN_ENC             P1_30
+
+    #define SDSS                P0_28
+    #define SD_DETECT_PIN       P0_27
+
+    #define BEEPER_PIN          P1_31
+#endif // VIKI2
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: Marlin 2.0 (32bit)

Сообщение Strijar » 14 ноя 2018, 12:56

селена работает, EEPROM сохраняется на флешке.


А какая версия? В последней из git нет даже пункта меню для сохранения.
И кстати, у меня тут Марлин2 перестал нормально печатать. Я просто экспериментировал с разными соплами и он вдруг стал дико перегревать экструдер. Я обычно печатаю на 235, а тут стал пластик закипать. Я уже снизил до 225 - и все равно не помогало. Стенки кривые, косые. Сдвигает слои. Я чего только не делал. Даже ремни нятягивал-ослаблял. И сопло поставил новое. Потом плюнул поставил "смузи" и оно все стало просто идеально. Так что пока на нем побуду.

UBL Autolevel принципиально не выполнить без калибровки (пересборкой прошивки не выполняется) которая и сохраняется в EEPROM.


Я автолевелом не пользуюсь. Стол выровнял и не трогаю. Иногда только z-offset поправляю когда сопла меняю.
Аватара пользователя
Strijar
 
Сообщения: 664
Зарегистрирован: 28 авг 2006, 17:09
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов

Re: Marlin 2.0 (32bit)

Сообщение setar » 14 ноя 2018, 13:14

все работает, поломок в последнее время не фиксировал (может перескочил через сбойные коммиты ?)
версия оригинальная https://github.com/MarlinFirmware/Marlin.git ветка bugfix-2.0.x
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: Marlin 2.0 (32bit)

Сообщение Strijar » 14 ноя 2018, 16:24

все работает, поломок в последнее время не фиксировал (может перескочил через сбойные коммиты ?)


Да я как взял исходники так и не накатывал. Просто пересобирал изменяя конфиг. Сам не понимаю как оно случилось.

версия оригинальная https://github.com/MarlinFirmware/Marlin.git ветка bugfix-2.0.x


Ну да, ее и использую. Но все таки мне кажется что "смузи" лучше управляет движками. Может частота больше или еще что. Токи у меня одинаковые выставлены что в "смузи", что в Марлин. Но при этом "смузи" работает значительно тише и как-то четче. Хочу поковырять "смузи" под Селену. Убрать поддержку сети (web, ethernet, telnet) и прикрутить Micropython (;
Аватара пользователя
Strijar
 
Сообщения: 664
Зарегистрирован: 28 авг 2006, 17:09
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов

Re: Marlin 2.0 (32bit)

Сообщение pamalofeev » 24 ноя 2018, 11:23

Strijar писал(а):
Но при этом "смузи" работает значительно тише и как-то четче.

Потому, что там другая математика. Марлин так и остался на старых добрых джерках, смузи, а вслед за ней и клиппер, используют junction_deviation. Если интересны подробности, можно там https://onehossshay.wordpress.com/2011/09/24/improving_grbl_cornering_algorithm/ почитать.
pamalofeev
 
Сообщения: 80
Зарегистрирован: 13 янв 2014, 22:06

Re: Marlin 2.0 (32bit)

Сообщение setar » 26 ноя 2018, 18:32

Смузи хороша математикой, да.
Но для серьезных проектов не подходит.
Там много чего нету, взять тот же функционал автоуровня UBL:
криволинейная матрица поверхности, что очень нужно, ибо почти всегда стол представляет из себя закрученную винтом поверхность.
Это особенно начинает чувствоваться при размерах 400x400 и больше.
всякие миксеры для использования DiamondHead, переключаемые экструдеры (один мотор/два сопла),
паркуемые экструдеры.
Я уже не говорю про prusa mmu2 (переключатель цвета прутка)
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: Marlin 2.0 (32bit)

Сообщение Strijar » 27 ноя 2018, 11:44

Марлин так и остался на старых добрых джерках, смузи, а вслед за ней и клиппер, используют junction_deviation


Да, конечно же я все это уже понял и даже посмотрел как это реализовано (;
Я пару недель назад столкнулся с тем что Марлин перестал нормально печатать. Я решил попробовать поменять сопло и началось. То не липнет к столу, то пластик начинает кипеть (хотя параметры термистора и температура та-же!), когда начал печатать качество резко упало - стенки кривые, углы завалены итд итп. Я уже и ремни натянул, потом ослабил. Ничего не помогало. Плюнул, запустил под Смузи - и все стало просто идеально!

Там много чего нету, взять тот же функционал автоуровня UBL:
криволинейная матрица поверхности, что очень нужно, ибо почти всегда стол представляет из себя закрученную винтом поверхность.


Я автоуровнем не пользуюсь. Хотя индуктивный датчик был на голове, чтобы печатать на стекле я его перенес на раму. Со стеклом проблем кривизны стола нет. Хотя может это пока стол 220х220. Вот сделаю следующий ~350-400мм тогда посмотрю. Тут родилась безумная идея - приклеить силиконовую грелку прямо на 6мм стекло (;
Аватара пользователя
Strijar
 
Сообщения: 664
Зарегистрирован: 28 авг 2006, 17:09
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов

Re: Marlin 2.0 (32bit)

Сообщение OBN_RacerMan » 27 ноя 2018, 14:24

Strijar писал(а):Тут родилась безумная идея - приклеить силиконовую грелку прямо на 6мм стекло (;

Стекло обязательно должно быть закалённым... иначе либо стол будет вынужден греться пол-часа, либо лопнет от быстрого нагрева.
P.S. Думаю, можно попробовать использовать для эксперимента плоское закалённое автостекло, например, опускное с задней двери "классики" 2105.
Печатаю на RepRap
Аватара пользователя
OBN_RacerMan
 
Сообщения: 281
Зарегистрирован: 05 сен 2017, 10:50
Откуда: Обнинск
ФИО: Андрей

Пред.След.

Вернуться в 3D печать

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 13