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)

Сообщение iYw682w » 31 окт 2017, 13:43

vtoryh писал(а):Итого... Встал в компиляции на
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
Хелп ми. :)

Может не так параметры экрана раскомментированы? Попробуй #define ULTRA_LCD - закоменти.
iYw682w
 
Сообщения: 19
Зарегистрирован: 13 ноя 2016, 14:15

Re: Marlin 2.0 (32bit)

Сообщение vtoryh » 31 окт 2017, 14:27

То же самое.

Добавлено спустя 36 минут 10 секунд:
В файле Marlin-bugfix-2.0.x\Marlin\src\HAL\HAL_LPC1768\pinmapping.h
Добавил строку #define P0_14 LPC1768_PIN(PORT(0), PIN(14), INTERRUPT(1), PWM(0), ADC_NONE)
Скомпилилось, но экран не показывает. :(
Печатаю на FastMaker(corexy, композитный корпус, AZSMZ mini, Volcano 0.4, 210х210х300)
vtoryh
 
Сообщения: 256
Зарегистрирован: 11 мар 2013, 15:47
Откуда: МО, Нахабино

Re: Marlin 2.0 (32bit)

Сообщение iYw682w » 31 окт 2017, 14:36

vtoryh писал(а):То же самое.

Добавлено спустя 36 минут 10 секунд:
В файле Marlin-bugfix-2.0.x\Marlin\src\HAL\HAL_LPC1768\pinmapping.h
Добавил строку #define P0_14 LPC1768_PIN(PORT(0), PIN(14), INTERRUPT(1), PWM(0), ADC_NONE)
Скомпилилось, но экран не показывает. :(

U8glib отсюда скачивалась?
https://github.com/olikraus/U8glib_Arduino
iYw682w
 
Сообщения: 19
Зарегистрирован: 13 ноя 2016, 14:15

Re: Marlin 2.0 (32bit)

Сообщение alexxy » 31 окт 2017, 15:01

vtoryh писал(а):Итого... Встал в компиляции на
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
Хелп ми. :)


А конфиг из Marlin/src/config/examples/Mks/Sbase/ собирается?

У меня MKS Sbase нет, так что не проверял на нём

Добавлено спустя 2 минуты 16 секунд:
iYw682w писал(а):U8glib отсюда скачивалась?
https://github.com/olikraus/U8glib_Arduino


PlatformIO по идее само ставит нужные либы.

Добавлено спустя 2 минуты 20 секунд:
vtoryh писал(а):То же самое.

Добавлено спустя 36 минут 10 секунд:
В файле Marlin-bugfix-2.0.x\Marlin\src\HAL\HAL_LPC1768\pinmapping.h
Добавил строку #define P0_14 LPC1768_PIN(PORT(0), PIN(14), INTERRUPT(1), PWM(0), ADC_NONE)
Скомпилилось, но экран не показывает. :(


Хе, там похоже пинов не хватает ;)
alexxy
 
Сообщения: 93
Зарегистрирован: 05 фев 2015, 22:58

Re: Marlin 2.0 (32bit)

Сообщение vtoryh » 31 окт 2017, 16:40

alexxy писал(а):Хе, там похоже пинов не хватает ;)

Либо не допилено, либо я чета не так делаю. :(
Печатаю на FastMaker(corexy, композитный корпус, AZSMZ mini, Volcano 0.4, 210х210х300)
vtoryh
 
Сообщения: 256
Зарегистрирован: 11 мар 2013, 15:47
Откуда: МО, Нахабино

Re: Marlin 2.0 (32bit)

Сообщение alexxy » 31 окт 2017, 21:19

Видимо забыли ;) Не все конфигурации проверялись ;)
alexxy
 
Сообщения: 93
Зарегистрирован: 05 фев 2015, 22:58

Re: Marlin 2.0 (32bit)

Сообщение iYw682w » 31 окт 2017, 22:47

Докладываю. Все отлично скомпелировалось. Проверить пока не смогу.
Если что брать сразу нужный бренч можно вот так:
git clone -b bugfix-2.0.x https://github.com/MarlinFirmware/Marlin.git
iYw682w
 
Сообщения: 19
Зарегистрирован: 13 ноя 2016, 14:15

Re: Marlin 2.0 (32bit)

Сообщение vtoryh » 01 ноя 2017, 10:09

alexxy писал(а):Видимо забыли ;) Не все конфигурации проверялись ;)

Ну ладно. будем делать подождать. :)
Печатаю на FastMaker(corexy, композитный корпус, AZSMZ mini, Volcano 0.4, 210х210х300)
vtoryh
 
Сообщения: 256
Зарегистрирован: 11 мар 2013, 15:47
Откуда: МО, Нахабино

Re: Marlin 2.0 (32bit)

Сообщение karabas2011 » 01 ноя 2017, 18:44

скопилил по умолчанию скопировав примеры конфигов от sbase
сделалось два файла bin и elf
причём bin маленький совсем 80к а елф под 2мега
и смузя вешается при попытке прошиться

какого размера firmware.bin у вас компилится?

> Executing task: platformio.exe run --environment LPC1768 <
[11/01/17 15:19:18] 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; li
b_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 9 compatible libraries
Looking for dependencies...
Library Dependency Graph
|-- <U8glib-ARM> v1.18.1
|-- <CMSIS-LPC1768> v0.0.0
Linking .pioenvs\LPC1768\firmware.elf
Calculating size .pioenvs\LPC1768\firmware.elf
text data bss dec hex filename
86564 1128 6092 93784 16e58 .pioenvs\LPC1768\firmware.elf

Добавлено спустя 2 часа 17 минут 51 секунду:
Блин по привычке смотрел на лампочки платы. Они ж выключены в марлине
короче заработал дисплей GLDC P0_15 должен быть на A0
а вот кардридер не собрался.
И по USB монтирует флешку но компорт хотя и появляется, нет коннекта из пронтерфейса

#define LCD_PINS_D4 P0_15 // EXP1.5

//#define ULTRA_LCD // Character based
//#define SDSUPPORT
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
karabas2011
 
Сообщения: 1607
Зарегистрирован: 04 мар 2012, 01:06
Откуда: Севастополь-Москва

Re: Marlin 2.0 (32bit)

Сообщение sergey2x » 01 ноя 2017, 20:29

karabas2011 писал(а):а вот кардридер не собрался.


попробуй
#define SDCARD_SORT_ALPHA
sergey2x
 
Сообщения: 235
Зарегистрирован: 14 янв 2015, 16:18
Откуда: СПб

Re: Marlin 2.0 (32bit)

Сообщение karabas2011 » 01 ноя 2017, 21:52

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

Пронтерфейс так и не сконнетился. Хотя компорт исправно в системе появляется
karabas2011
 
Сообщения: 1607
Зарегистрирован: 04 мар 2012, 01:06
Откуда: Севастополь-Москва

Re: Marlin 2.0 (32bit)

Сообщение sergey2x » 01 ноя 2017, 23:38

Вывод марлина на AUX-1 P0.2
sergey2x
 
Сообщения: 235
Зарегистрирован: 14 янв 2015, 16:18
Откуда: СПб

Re: Marlin 2.0 (32bit)

Сообщение alexxy » 02 ноя 2017, 01:46

Для USB-to-Serial надо поставить PORT на -1, у меня только так с Azteeg заработал USB-to-serial
alexxy
 
Сообщения: 93
Зарегистрирован: 05 фев 2015, 22:58

Re: Marlin 2.0 (32bit)

Сообщение vtoryh » 02 ноя 2017, 10:23

karabas2011 писал(а):Блин по привычке смотрел на лампочки платы. Они ж выключены в марлине
короче заработал дисплей GLDC P0_15 должен быть на A0
а вот кардридер не собрался.
И по USB монтирует флешку но компорт хотя и появляется, нет коннекта из пронтерфейса

#define LCD_PINS_D4 P0_15 // EXP1.5

//#define ULTRA_LCD // Character based
//#define SDSUPPORT
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

Исправил настройки пинов платы
#define LCD_PINS_D4 P0_15 // EXP1.5
Экран заработал. флешка не видится, никак.

Отправьте кто-нибудь разрабам... что нужно пин поправить. :)
Печатаю на FastMaker(corexy, композитный корпус, AZSMZ mini, Volcano 0.4, 210х210х300)
vtoryh
 
Сообщения: 256
Зарегистрирован: 11 мар 2013, 15:47
Откуда: МО, Нахабино

Re: Marlin 2.0 (32bit)

Сообщение iYw682w » 02 ноя 2017, 11:23

vtoryh писал(а):
karabas2011 писал(а):Блин по привычке смотрел на лампочки платы. Они ж выключены в марлине
короче заработал дисплей GLDC P0_15 должен быть на A0
а вот кардридер не собрался.
И по USB монтирует флешку но компорт хотя и появляется, нет коннекта из пронтерфейса

#define LCD_PINS_D4 P0_15 // EXP1.5

//#define ULTRA_LCD // Character based
//#define SDSUPPORT
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

Исправил настройки пинов платы
#define LCD_PINS_D4 P0_15 // EXP1.5
Экран заработал. флешка не видится, никак.

Отправьте кто-нибудь разрабам... что нужно пин поправить. :)


Да, обязательно надо отправлять. Если не можете, то кидайте сюда описание проблемы или просто информацию, но обязательно надо прикладывать zip фаил с `Configuration.h` and `Configuration_adv.h`. Есть аккаунт на гите, могу репостить туда.
iYw682w
 
Сообщения: 19
Зарегистрирован: 13 ноя 2016, 14:15

Пред.След.

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

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

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