Технический форум по робототехнике.
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 не удалось запустить, надо написать или найти библиотеку для них)
Что сейчас работает:
- Мапинг базовых пинов
- Эндстопы
- Грелки
- Сервы
- Термисторы
- Экран Viki2
- Драйверы (пробовал drv8825 и tmc2100)
Что не работает:
- Драйверы BSD2660 (нет библиотеки, надо написать)
- Ну и потенциально всё что не проверялось
![Wink ;)](http://roboforum.ru/images/smilies/wink.gif)
Как всё это было: вся проблема заключалась в том, что по этой борде нет нормальной спецификации с пинами, а предположение что все пины будут совпадать с тем что заявлено для 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битной борде
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
Хелп ми.
![Smile :)](http://roboforum.ru/images/smilies/smile.gif)
Может не так параметры экрана раскомментированы? Попробуй #define ULTRA_LCD - закоменти.
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)
Скомпилилось, но экран не показывает.
![Sad :(](http://roboforum.ru/images/smilies/sad.gif)
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)
Скомпилилось, но экран не показывает.
![Sad :(](http://roboforum.ru/images/smilies/sad.gif)
U8glib отсюда скачивалась?
https://github.com/olikraus/U8glib_Arduino
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
Хелп ми.
![Smile :)](http://roboforum.ru/images/smilies/smile.gif)
А конфиг из Marlin/src/config/examples/Mks/Sbase/ собирается?
У меня MKS Sbase нет, так что не проверял на нём
Добавлено спустя 2 минуты 16 секунд: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)
Скомпилилось, но экран не показывает.
![Sad :(](http://roboforum.ru/images/smilies/sad.gif)
Хе, там похоже пинов не хватает
![Wink ;)](http://roboforum.ru/images/smilies/wink.gif)
vtoryh » 31 окт 2017, 16:40
alexxy писал(а):Хе, там похоже пинов не хватает
![Wink ;)](http://roboforum.ru/images/smilies/wink.gif)
Либо не допилено, либо я чета не так делаю.
![Sad :(](http://roboforum.ru/images/smilies/sad.gif)
alexxy » 31 окт 2017, 21:19
Видимо забыли
![Wink ;)](http://roboforum.ru/images/smilies/wink.gif)
Не все конфигурации проверялись
![Wink ;)](http://roboforum.ru/images/smilies/wink.gif)
iYw682w » 31 окт 2017, 22:47
Докладываю. Все отлично скомпелировалось. Проверить пока не смогу.
Если что брать сразу нужный бренч можно вот так:
git clone -b bugfix-2.0.x
https://github.com/MarlinFirmware/Marlin.git
vtoryh » 01 ноя 2017, 10:09
alexxy писал(а):Видимо забыли
![Wink ;)](http://roboforum.ru/images/smilies/wink.gif)
Не все конфигурации проверялись
![Wink ;)](http://roboforum.ru/images/smilies/wink.gif)
Ну ладно. будем делать подождать.
![Smile :)](http://roboforum.ru/images/smilies/smile.gif)
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
sergey2x » 01 ноя 2017, 20:29
karabas2011 писал(а):а вот кардридер не собрался.
попробуй
#define SDCARD_SORT_ALPHA
karabas2011 » 01 ноя 2017, 21:52
Да уже нашёл. Без сортировки никак, а с ней видимо глюки.
cddetect отрабатывает, а проинитить флешку не может. Рисует трясущиеся полосочки на экране, потом говорит нет карты.
флешки разные пробовал.
Пронтерфейс так и не сконнетился. Хотя компорт исправно в системе появляется
sergey2x » 01 ноя 2017, 23:38
Вывод марлина на AUX-1 P0.2
alexxy » 02 ноя 2017, 01:46
Для USB-to-Serial надо поставить PORT на -1, у меня только так с Azteeg заработал USB-to-serial
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
Экран заработал. флешка не видится, никак.
Отправьте кто-нибудь разрабам... что нужно пин поправить.
![Smile :)](http://roboforum.ru/images/smilies/smile.gif)
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
Экран заработал. флешка не видится, никак.
Отправьте кто-нибудь разрабам... что нужно пин поправить.
![Smile :)](http://roboforum.ru/images/smilies/smile.gif)
Да, обязательно надо отправлять. Если не можете, то кидайте сюда описание проблемы или просто информацию, но обязательно надо прикладывать zip фаил с `Configuration.h` and `Configuration_adv.h`. Есть аккаунт на гите, могу репостить туда.