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)

Сообщение Ruslan » 10 окт 2019, 22:26

Сергей, OBN_RacerMan, спасибо за идеи!
Дисплея есть два: REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER и REPRAP_DISCOUNT_SMART_CONTROLLER. Оба протестированы на MEGA+RAMPS. Это точно снимает вопрос с контрастностью.

Я подозреваю электрические проблемы в плате...
Аватара пользователя
Ruslan
 
Сообщения: 603
Зарегистрирован: 03 июн 2007, 22:32
Откуда: Москва
ФИО: Руслан

Re: Marlin 2.0 (32bit)

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

проверь как вот такой патч (его я делал для селены, там пришлось менять дефолтную контрастность) проблема схожая.
ключевое #define DEFAULT_LCD_CONTRAST 200
и на всякий случай оставил ремарки по выбору режима работы SPI (программный / аппаратный)
это в файле описания пинов в борде.

Marlin/src/pins/pins_SELENA_COMPACT.h
Код: Выделить всёРазвернуть
     #define SD_DETECT_PIN       -1
#endif // REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

+//Panel Selena 3.1.0
+#if ENABLED(VIKI2)
+/*
+    #define ULTRA_LCD
+    #define DOGLCD
+    #define ULTIMAKERCONTROLLER
+    #define LCD_CONTRAST_MIN       0
+    #define LCD_CONTRAST_MAX     255
+    #define DEFAULT_LCD_CONTRAST 200
+    #define U8GLIB_ST7565_64128N
+*/
+    #undef DEFAULT_LCD_CONTRAST
+    #define DEFAULT_LCD_CONTRAST 200
+
+/* из HAL
+// onboard SD card
+  #define SCK_PIN           P0_07
+  #define MISO_PIN          P0_08
+  #define MOSI_PIN          P0_09
+  #define SS_PIN            P0_06
+// external
+  #define SCK_PIN           P0_15
+  #define MISO_PIN          P0_17
+  #define MOSI_PIN          P0_18
+  #define SS_PIN            P1_23
+  #define SDSS              SS_PIN
+*/
+// DOGLCD_SCK == SCK_PIN && DOGLCD_MOSI == MOSI_PIN => using HW-SPI
+
+//# 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
 
Сообщения: 10637
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: Marlin 2.0 (32bit)

Сообщение Ruslan » 12 окт 2019, 00:09

проверил DEFAULT_LCD_CONTRAST - это не оно. тому же под Smoothie дисплей тоже не работает.
Решил плюнуть и заказать какой-нибудь совсем другой дисплей, например Viki.
Аватара пользователя
Ruslan
 
Сообщения: 603
Зарегистрирован: 03 июн 2007, 22:32
Откуда: Москва
ФИО: Руслан

Пред.

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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

Mail.ru counter