roboforum.ru

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

Marlin 2.0 (32bit)

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битной борде

Re: Marlin 2.0 (32bit)

setar » 29 окт 2017, 21:27

:) я тут малость переводчиком буду выступать.

Основная идея в том что пока на платах 32бита с чипом 120Mhz NXP LPC1769 ARM можно было работать лишь с прошивкой смузи (Smoothieware).
И появилась возможность прикрутить скажем прямо более глючнуюфункциональную прошивку marlin 2.

Re: Marlin 2.0 (32bit)

vtoryh » 29 окт 2017, 22:39

А где этого портированного монстрика взять на попробовать? :)

Re: Marlin 2.0 (32bit)

alexxy » 29 окт 2017, 22:45

vtoryh писал(а):А где этого портированного монстрика взять на попробовать? :)


Обновил шапку ;) там линк на репу. В принципе в Марлине сейчас работают ReARM и MKS SBase и в принципе AZSMZ Mini =) так что если есть желающие то могут попробовать

Re: Marlin 2.0 (32bit)

iYw682w » 30 окт 2017, 21:46

Кто нибудь тестировал на mks sbase? Как оно? Какие вообще плюсы стоит ожидать именно от этой прошивки, по сравнению с smoothie?

Re: Marlin 2.0 (32bit)

alexxy » 31 окт 2017, 00:28

Кто то тестировал. Плюсы?

Ну все фишки что есть в марлине ;) Из минусов не будет поддержки сети на sbase

Re: Marlin 2.0 (32bit)

iYw682w » 31 окт 2017, 00:48

alexxy писал(а):Кто то тестировал. Плюсы?

Ну все фишки что есть в марлине ;) Из минусов не будет поддержки сети на sbase

Ну сеть и не нужна, используется октопринт или репиетер-сервер. Вообще уже стабильна и юзабельна? Как устанавливать? Я так понимаю надо будет так же как смузи, некий фаил ложить на карточку?

Re: Marlin 2.0 (32bit)

alexxy » 31 окт 2017, 01:12

iYw682w писал(а):Ну сеть и не нужна, используется октопринт или репиетер-сервер. Вообще уже стабильна и юзабельна? Как устанавливать? Я так понимаю надо будет так же как смузи, некий фаил ложить на карточку?


В целом стабильно... Собирается из бранча bugfix-2.0.x
Конфигурим как обычно.
Ставим platformio, собираем им

Код: Выделить всёРазвернуть
$ pio run -e LPC1768


в результает получится файл firmware.bin

Кладем его на карту, и перезапускаем.

EEPROM эмулируется через создание файла на карте (марлин сам делает)

Re: Marlin 2.0 (32bit)

iYw682w » 31 окт 2017, 01:19

alexxy писал(а):
iYw682w писал(а):Ну сеть и не нужна, используется октопринт или репиетер-сервер. Вообще уже стабильна и юзабельна? Как устанавливать? Я так понимаю надо будет так же как смузи, некий фаил ложить на карточку?


В целом стабильно... Собирается из бранча bugfix-2.0.x
Конфигурим как обычно.
Ставим platformio, собираем им

Код: Выделить всёРазвернуть
$ pio run -e LPC1768


в результает получится файл firmware.bin

Кладем его на карту, и перезапускаем.

EEPROM эмулируется через создание файла на карте (марлин сам делает)


А из под линукса как собрать?
UPD. Разобрался, теперь не могу скачать конкретный бранч.

Re: Marlin 2.0 (32bit)

alexxy » 31 окт 2017, 01:49

iYw682w писал(а):А из под линукса как собрать?
UPD. Разобрался, теперь не могу скачать конкретный бранч.


Эм.. А у меня нет вендов, так что я из под линукс и собирал ;)

PS если тебе надо MKS Sbase то лучше брать bugfix-2.0.x из офф репы Marlin

Re: Marlin 2.0 (32bit)

iYw682w » 31 окт 2017, 10:53

alexxy писал(а):
iYw682w писал(а):А из под линукса как собрать?
UPD. Разобрался, теперь не могу скачать конкретный бранч.


Эм.. А у меня нет вендов, так что я из под линукс и собирал ;)

PS если тебе надо MKS Sbase то лучше брать bugfix-2.0.x из офф репы Marlin

Сразу бы ссылочку лучше.
Пытаюсь взять вот это:
https://github.com/MarlinFirmware/Marli ... gfix-2.0.x
Но не получается, качается основная ветка.

Re: Marlin 2.0 (32bit)

alexxy » 31 окт 2017, 11:11

ну так RTFM по гит, в частности

Код: Выделить всёРазвернуть
$ git checkout -b bugfix-2.0.x origin/bugfix-2.0.x

Re: Marlin 2.0 (32bit)

ZeroCool » 31 окт 2017, 12:42

Плата конечно интересная ,но далеко не выдающиеся, куда интереснее сами драйверы) И сколько нынче стоимость платы + драйверов 2660 = 12-13к р?)

Re: Marlin 2.0 (32bit)

iYw682w » 31 окт 2017, 13:17

alexxy писал(а):
iYw682w писал(а):А из под линукса как собрать?
UPD. Разобрался, теперь не могу скачать конкретный бранч.


Эм.. А у меня нет вендов, так что я из под линукс и собирал ;)

PS если тебе надо MKS Sbase то лучше брать bugfix-2.0.x из офф репы Marlin


pio run -e LPC1768

Код: Выделить всёРазвернуть
[Tue Oct 31 12:10:28 2017] Processing LPC1768 (build_unflags: -Wall; build_flags: !python Marlin/src/HAL/HAL_LPC1768/lpc1768_flag_script.py; src_build_flags: -Wall; lib_deps: U8glib-ARM, CMSIS-LPC1768; extra_scripts: Marlin/src/HAL/HAL_LPC1768/lpc1768_flag_script.py; board_f_cpu: 100000000L; platform: nxplpc; lib_extra_dirs: frameworks; lib_ldf_mode: off; src_filter: +<src/*> -<src/config>)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Warning! Library `CMSIS-LPC1768` has not been found in PlatformIO Registry.
You can ignore this message, if `CMSIS-LPC1768` is a built-in library (included in framework, SDK). E.g., SPI, Wire, etc.
Verbose mode can be enabled via `-v, --verbose` option
Collected 2 compatible libraries
Looking for dependencies...
Library Dependency Graph
|-- <U8glib-ARM> v1.18.1
|-- <CMSIS-LPC1768> v0.0.0
Compiling .pioenvs/LPC1768/src/src/HAL/HAL_AVR/HAL_AVR.o
Compiling .pioenvs/LPC1768/src/src/HAL/HAL_AVR/HAL_spi_AVR.o
Compiling .pioenvs/LPC1768/src/src/HAL/HAL_AVR/MarlinSerial.o
Compiling .pioenvs/LPC1768/src/src/HAL/HAL_AVR/persistent_store_impl.o
Compiling .pioenvs/LPC1768/src/src/HAL/HAL_AVR/servo_AVR.o
Compiling .pioenvs/LPC1768/src/src/HAL/HAL_AVR/watchdog_AVR.o
Compiling .pioenvs/LPC1768/src/src/HAL/HAL_DUE/HAL_Due.o
Compiling .pioenvs/LPC1768/src/src/HAL/HAL_DUE/HAL_spi_Due.o
Compiling .pioenvs/LPC1768/src/src/HAL/HAL_DUE/HAL_timers_Due.o
Compiling .pioenvs/LPC1768/src/src/HAL/HAL_DUE/InterruptVectors_Due.o
Compiling .pioenvs/LPC1768/src/src/HAL/HAL_DUE/MarlinSerial_Due.o
Compiling .pioenvs/LPC1768/src/src/HAL/HAL_DUE/Servo_Due.o
Compiling .pioenvs/LPC1768/src/src/HAL/HAL_DUE/persistent_store_impl.o
Compiling .pioenvs/LPC1768/src/src/HAL/HAL_DUE/watchdog_Due.o
Compiling .pioenvs/LPC1768/src/src/HAL/HAL_LPC1768/HAL.o
Compiling .pioenvs/LPC1768/src/src/HAL/HAL_LPC1768/HAL_timers.o
Compiling .pioenvs/LPC1768/src/src/HAL/HAL_LPC1768/HardwareSerial.o
Compiling .pioenvs/LPC1768/src/src/HAL/HAL_LPC1768/LPC1768_Servo.o
In file included from Marlin/src/HAL/HAL_LPC1768/../../inc/MarlinConfig.h:40:0,
from Marlin/src/HAL/HAL_LPC1768/HAL.cpp:23:
Marlin/src/HAL/HAL_LPC1768/../../inc/SanityCheck.h:330:8: error: #error "SDSORT_CACHE_VFATS must be 2 or greater!"
#error "SDSORT_CACHE_VFATS must be 2 or greater!"
^~~~~
In file included from Marlin/src/HAL/HAL_LPC1768/../../inc/MarlinConfig.h:40:0,
from Marlin/src/HAL/HAL_LPC1768/HAL_timers.cpp:31:
Marlin/src/HAL/HAL_LPC1768/../../inc/SanityCheck.h:330:8: error: #error "SDSORT_CACHE_VFATS must be 2 or greater!"
#error "SDSORT_CACHE_VFATS must be 2 or greater!"
^~~~~
In file included from Marlin/src/HAL/HAL_LPC1768/../../inc/MarlinConfig.h:40:0,
from Marlin/src/HAL/HAL_LPC1768/HardwareSerial.cpp:25:
Marlin/src/HAL/HAL_LPC1768/../../inc/SanityCheck.h:330:8: error: #error "SDSORT_CACHE_VFATS must be 2 or greater!"
#error "SDSORT_CACHE_VFATS must be 2 or greater!"
^~~~~
In file included from Marlin/src/HAL/HAL_LPC1768/../../inc/MarlinConfig.h:40:0,
from Marlin/src/HAL/HAL_LPC1768/LPC1768_Servo.cpp:63:
Marlin/src/HAL/HAL_LPC1768/../../inc/SanityCheck.h:330:8: error: #error "SDSORT_CACHE_VFATS must be 2 or greater!"
#error "SDSORT_CACHE_VFATS must be 2 or greater!"
^~~~~
*** [.pioenvs/LPC1768/src/src/HAL/HAL_LPC1768/HAL.o] Error 1
*** [.pioenvs/LPC1768/src/src/HAL/HAL_LPC1768/HAL_timers.o] Error 1
*** [.pioenvs/LPC1768/src/src/HAL/HAL_LPC1768/HardwareSerial.o] Error 1
*** [.pioenvs/LPC1768/src/src/HAL/HAL_LPC1768/LPC1768_Servo.o] Error 1

Re: Marlin 2.0 (32bit)

vtoryh » 31 окт 2017, 13:23

Итого... Встал в компиляции на
In file included from Marlin\src\lcd\../inc/../HAL/HAL_LPC1768/HAL.h:57:0,
from Marlin\src\lcd\../inc/../HAL/HAL.h:47,
from Marlin\src\lcd\../inc/MarlinConfig.h:34,
from Marlin\src\lcd\ultralcd.cpp:23:
Marlin\src\lcd\dogm/ultralcd_st7920_u8glib_rrd.h: In function 'void ST7920_SWSPI
_SND_8BIT(uint8_t)':
Marlin\src\lcd\../inc/../pins/pins_MKS_SBASE.h:158:28: error: 'P0_14' was not de
clared in this scope
#define LCD_PINS_D4 P0_14 // EXP1.5
плата mks sbase с включенными опциями
#define ULTRA_LCD // Character based
#define SDSUPPORT
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
Хелп ми. :)


Rambler\'s Top100 Mail.ru counter