Marlin 2.0 for Flying Bear 4S/5
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Sergey 46d376a31d Обновление на 2.0.7 4 years ago
.github Update to 2.0.6 4 years ago
Marlin Обновление на 2.0.7 4 years ago
buildroot Обновление на 2.0.7 4 years ago
config Обновление на 2.0.7 4 years ago
data/www Add ESP32 WiFi interface (#11209) 5 years ago
docs Adaptive multiaxis step smoothing 6 years ago
firmware Обновление на 2.0.7 4 years ago
.editorconfig Add .editorconfig file 4 years ago
.gitattributes Support file updates 7 years ago
.gitignore Update to 2.0.6 4 years ago
LICENSE Обновление на 2.0.7 4 years ago
README.md Новый интерфейс 4 years ago
STM32F103.svd Новый интерфейс 4 years ago
jlink.cmd Обновление 2.0.6.1 4 years ago
platformio.ini Обновление на 2.0.7 4 years ago
process-palette.json Update auto_build.py paths for Atom/Sublime 4 years ago

README.md

Marlin 3D Printer Firmware for Flying Bear 4S and 5

Это конфигурация официального Marlin для принтера Flying Bear Ghost 4S и 5 (плата MKS Robin Nano 1.x).

Эта ветка содержит дополнительный код для работы с модулем MKS WIFI, установленным в FB4S и FB5. Загрузка файлов через стандартный plugin в Cura.

Прошивка работает на принтерах Flying Bear Ghost 4S и 5. Экран работает. WIFI работает.

MKS WIFI модуль

Работает

  • Отображение температуры в Cura
  • Просмотр содержимого SD карты
  • Удаление файлов с SD карты
  • Загрузка файлов на SD карту
  • Автоматический запуск печати при загрузке файла.
  • Настройка WIFI модуля (сеть и пароль)

Не работает

  • Имена файлов на русском Переименуйте файл в Cura
  • Работает только с картами стандарта SD card v2.0 и новее. Это все карты от 1Гб и больше.
  • Отображение состояния принтера (печатает, не печатает) в Cura

Как работает, как настроить

Варианты прошивки

Если вас устраивает типовой вариант конфигурации, можно взять готовые файлы прошивки:

  • Для FB4S с стандартными драйверами Robin_nano35.bin
  • Для FB5 с стандартными драйверами Robin_nano35.bin
  • Если установлены все 4 драйвера 2208 или 2209 Robin_nano35.bin

Разница в прошивках, только в направлении движения осей.

Для установки прошивки файл Robin_nano35.bin нужно записать в корень SD карты и включить принтер.

Вернуть стандартную прошивку можно в любой момент. Просто запишите ее на SD и включите принтер.

Для настройки под свои нужды, прошивку нужно собрать самостоятельно.

Первое, что нужно сделать, после прошивки

Первое, что нужно сделать после прошивки, это проинициализировать EEPROM (память внутри принтера), сбросив настройки по-умолчанию. После прошивки там находится мусор, который может привести к совершенно необъяснимому поведению.

Делается это через меню Configuration -> Advanced settings -> Initialize eeprom.

Как собрать прошивку самому

Видео Дмитрия Соркина

Нужная плата, Robin Nano, уже выбрана в качестве платы по-умолчанию. В меню Platformio можно не выбирать плату, а использовать сочетание клавиш Ctrl+Alt+B.

После компиляции, готовая прошивка лежит в .pio/build/mks_robin_nano35/Robin_nano35.bin

На SD карту нужно записывать именно Robin_nano35.bin, а не firmaware.bin

Что нужно настроить, если собираете сами

Нужно настроить направления движения по осям под свои драйвера в файле Configuration.h (параметры INVERT_?_DIR, строка 1125).

По умолчанию стоят настройки под драйвера 2208/2209 на всех осях. В файле Configuration.h уже есть несколько готовых наборов настроек:

  • ALL_DRV_2208 - если установлены драйвера TMC 2208 или TMC 2209 на всех осях
  • FB_4S_STOCK - если установлены драйвера A4988 на всех осях. Это конфигурация для FB4S с стандартными драйверами.
  • FB_5_STOCK - конфигурация для FB 5 (2208 на осях X,Y и A4988 на Z,E)

В строке 1098 нужно выбрать только один из вариантов:

#define ALL_DRV_2208
//#define FB_4S_STOCK
//#define FB_5_STOCK

Настройки WIFI, если вы используете готовую прошивку

Настройки сети хранятся в самом ESP-модуле. Есть несколько вариантов настройки:

  • Если модуль уже был настроен, то возможно никакая настройка не понадобится
  • Если модуль не был настроен, либо по какой-то причине не смог подключиться к сети, то он запустится в режиме точки доступа с именем сети MKSWIFI??? (вместо ? будут произвольные символы). Подключитесь к этой сети, откройте страницу по адресу 192.168.4.1 и установите нужные настройки сети.
  • Если вы собираете прошивку сами, есть возможность передать модулю настройки при запуске. Для этого в файле mks_wifi_settings.h можно задать параметры WIFI сети. Для того, чтобы эти настройки применялись при включении, "MKS_WIFI_ENABLED_WIFI_CONFIG" должен быть включен.

Состояние WIFI

При успешном подключении к сети (или создании сети в режиме точки доступа) в стандартный UART, который выведен на USB разъем принтера, будет выведен IP адрес и название сети, а так же IP адрес будет отображен на экране принтера.

Как понять, что WIFI работает

При включении принтера, на экране отобразится статус "WIFI init"

Если ESP модулю удалось подключиться к сети, на экране будет IP адрес.

При старте передачи файла отображается "Upload file", в процессе загрузки отображается прогресс в процентах.

Если файл успешно принят отобразится "Upload done" и прозвучит один звуковой сигнал

Если во время приема файла были ошибки, отобразится надпись "Upload Failed" и прозвучит три звуковых сигнала

Отключение кода связанного с WIFI модулем

Для отключения всего кода, который связан с WIFI модулем нужно в файле Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h отключить "#define MKS_WIFI". После этого в коде останутся только несколько незначительных изменений, которые не должны влиять на стабильность работы. Если нужен абсолютно чистый код, без каких либо изменений, взять его можно из оффициального репозитория Marlin и использовать файлы Configuration.h и Configuration_adv.h как образец.

BLTouch

В прошивке по-умолчанию включена поддержка Bltouch. Парковка стола по оси Z настроена по стандартному концевику (а не по датчику), поэтому если у вас нет датчика, то мешать это не будет. Просто не трогайте настройки Z Offset (должно быть 0).

Прошивка настроена на подключение датчика к разъему ZMax (концевик датчика) и PB2 (управление сервой). Подробнее о подключении Bltouch.

Драйвера TMC2209

По-умолчанию прошивка настроена на работу с драйверами шаговых двигателей без программного управления. В случае применения драйвером TMC 2209 или TMC 2208 можно включить управление по UART. Подробнее о настройке и подключении.

EEPROM

На FB4S установлена плата MKS Robin Nano v.1.1. На плате установленно 2 микросхемы флеш памяти: AT24C16 (2кб, подключена по I2C) и W25Q64 (подключена по SPI).

Размер данных, которые сохраняются в EEPROM зависит от включенных опций. При сохранении настроек командой M500, в ответе есть размер сохраняемых данных.

В качестве места хранения EEPROM в Marlin доступны несколько вариантов:

  • SD карта
  • I2C EEPROM. Этот вариант не используется, драйвер отключен.
  • SPI_EEPROM. Хранение в W25Q64BV подключенной по SPI. Этот вариант используется по-умолчанию.
  • FLASH_EEPROM_EMULATION. Это хранение EEPROM в flash памяти STM32. Этот вариант не работает.
  • SRAM_EEPROM_EMULATION. Этот вариант не работает.

Для включения в Configuration.h в разделе EEPROM нужно указать нужный define. Возможные варианты указаны в комментарии. Пример:

#if ENABLED(EEPROM_SETTINGS)
/*
MKS Robin EEPROM:
EEPROM_SD
EEPROM_W25Q
*/
#define EEPROM_W25Q

#if ENABLED(EEPROM_W25Q)
#undef SDCARD_EEPROM_EMULATION
#undef USE_REAL_EEPROM
#undef FLASH_EEPROM_EMULATION
#undef SRAM_EEPROM_EMULATION
#undef I2C_EEPROM_AT24C16
#define SPI_EEPROM_W25Q
#define SPI_EEPROM
#define SPI_EEPROM_OFFSET 0x700000
#define USE_WIRED_EEPROM    1
#define MARLIN_EEPROM_SIZE  2048
#endif

#if ENABLED(EEPROM_SD)
#define SDCARD_EEPROM_EMULATION
#undef USE_REAL_EEPROM
#undef FLASH_EEPROM_EMULATION
#undef SRAM_EEPROM_EMULATION
#undef I2C_EEPROM_AT24C16
#undef SPI_EEPROM_W25Q
#undef USE_WIRED_EEPROM
#define MARLIN_EEPROM_SIZE  4096
#endif

#define EEPROM_AUTO_INIT  // Init EEPROM automatically on any errors.
#endif

Для изменения места хранения EEPROM нужно заменить "#define EEPROM_W25Q" на другой вариант.

Загрузка прошивки по WIFI

Есть возможность отправлять прошивку на принтер через WIFI. Для этого в файле platformio.ini в разделе [env:mks_robin_nano35] нужно указать IP адрес принтера в опции upload_flags.

Передача файла происходит при помощи curl, поэтому надо или добавить curl в $PATH, либо указать полный путь в файле mks_robin_nano35.py в строке 43.

После настройки, для отправки прошивки на принтер, в меню platformio нужно выбрать Upload или нажать Ctrl+Alt+U.

После успешной передачи файла принтер перезагрузится автоматически.

Выбор графического интерфейса

В коде Marlin есть 3 варианта графического интерфейса, которые работают на FB4S и FB5. Для выбора интерфейса нужно выбрать соответствующий параметр, а остальные выключить.

  • Классический Marlin, "текстовый" интерфейс. Включение:
#define FSMC_GRAPHICAL_TFT
  • Классический Marlin, "графический" интерфейс. Этот вариант используется по-умолчанию.
#define TFT_480x320
  • Графический интерфейс от MKS. Этот вариант использует библиотеку LVGL и видео буфер большого размера. В МК практически не остается свободной памяти. Конфигурация размера видео буфера сделана внутри библиотеки, которую автоматически скачивает platformio и не предполагает настройки. Оставшейся памяти не достаточно для работы с WIFI модулем, поэтому этот вариант не работает c WIFI. Для его сборки необходимо выключить WIFI.

Для работы интерфейса нужны изображения и шрифты. После сборки прошивки они находятся в .pio/build/mks_robin_nano35/assets Для загрузки изображений, папку assets нужно положить в корень карты памяти.

Для сборки прошивки с графическим интерфейсом от MKS нужно сделать следующие настройки:

  • В файле Marlin/Configuration.h, выключить #define FSMC_GRAPHICAL_TFT и #define TFT_480x320
  • В файле Marlin/Configuration.h, включить #define TFT_LVGL_UI_FSMC
  • В файле Marlin/Configuration.h, выключить #define TOUCH_BUTTONS
  • В файле Marlin/Configuration.h, выключить #define LCD_BED_LEVELING
  • В файле Marlin/Configuration_adv.h, выключить #define ADVANCED_PAUSE_FEATURE

WIFI модуль, отправка команд и файлов

Для отправки команд и файлов на принтер не обязательно использовать Cura. Для отправки можно использовать простые инструменты - curl и netcat.

Для отправки команд используется tcp socket на порт 8080. Пример с netcat:

nc 192.168.0.105 8080

Вместо netcat можно использовать telnet.

Можно отправлять g-код команды, и получать ответ.

Для отправки файлов можно воспользоваться curl:

curl -v -H "Content-Type:application/octet-stream" http://192.168.0.105/upload?X-Filename=sd_file.gcode --data-binary @local_file.gcode
  • sd_file.gcode - имя файла под которым будет сохранение на sd карте
  • local_file.gcode - имя файла для отправки

В данном примере на принтер с IP 192.168.0.105 будет отправлен файл local_file.gcode, который будет сохранен на sd карте под именем sd_file.gcode