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.
 
 
 
 
 
 

11 KiB

Marlin 3D Printer Firmware for Flying Bear 4S

Версия поддержкой WIFI модуля

Это конфигурация официального Marlin для принтера Flying Bear Ghost 4S (плата MKS Robin Nano). Эта ветка содержит код для работы с модулем MKS WIFI, установленным в FB4S. Загрузка файлов через стандартный plugin в Cura. Код работы с экраном взят из репозитория inib/Marlin

В ветке FB4S_Config находится вариант с минимальными изменениями в коде Marlin (только работа с экраном и конфигурация)

Что работает, что не работает

Работает

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

Не работает (совсем)

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

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

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

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

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

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

Что нужно настроить

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

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

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

#define ALL_DRV_2208
//#define ALL_DRV_A4988
//#define FB_5_STOCK

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

Первое, что нужно сделать после прошивки, это проинициализировать eeprom, сбросив настройки по-умолчанию. Делается это через меню Configuration -> Advanced settings -> Initialize eeprom.

Если нет желания самому собирать прошивку

Готовые файлы лежат в папке firmware.

Если вы используете драйвера 2208 или 2209, прошивка в папке firmware/2208 Robin_nano35.bin

Если вы используете стандартные драйвера, прошивка в папке firmware/std Robin_nano35.bin

Отличия сборок только в инвертировании осей.

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

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

Настройки WIFI, если вы собираете прошивку сами

В файле mks_wifi_settings.h

Для того, чтобы эти настройки применялись при включении, "MKS_WIFI_ENABLED_WIFI_CONFIG" должен быть раскомментирован. Если закомментировать "#define MKS_WIFI_ENABLED_WIFI_CONFIG", при запуске настройки ESP модулю отправляться не будут

Диагностика WIFI

При успешном подключении к сети (или создании сети в режиме точки доступа) в стандартный UART, который выведен на USB разъем принтера, будет выведен IP адрес и название сети. Если у модуля ESP есть какие-то настройки сети, но подключиться к ней он не смог, то модуль перейдет в режим точки доступа, и выдаст в UART название точки доступа и свой IP. На попытки подключения к сети уходит несколько минут.

IP адрес так же будет на экране.

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

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

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

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

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

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

EEPROM

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

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

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

  • SD карта. Этот вариант наиболее предпочтительный, если нет осознанного желания хранить EEPROM где-то еще.
  • I2C EEPROM. Хранение в AT24C16 подключенной по I2C. При первом включении все содержимое AT24C16 будет переписано. Память не быстрая, поэтому процесс занимает до 10 секунд. В дальнейшем в память пишутся только измененные значения, поэтому работает быстрее.
  • 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_AT24C16
EEPROM_W25Q
*/
#define EEPROM_SD

#if ENABLED(EEPROM_AT24C16)
#undef SDCARD_EEPROM_EMULATION
#undef USE_REAL_EEPROM
#undef FLASH_EEPROM_EMULATION
#undef SRAM_EEPROM_EMULATION
#define I2C_EEPROM_AT24C16
#define USE_WIRED_EEPROM    1
#define E2END (2*1024 - 1)
#endif

#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_OFFSET 0x700000
#define USE_WIRED_EEPROM    1
#define E2END (2*1024 - 1)
#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
#endif

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

Для изменения места хранения EEPROM например на SPI флеш, надо заменить "#define EEPROM_SD" на "#define EEPROM_W25Q"

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

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

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

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

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