• Stars
    star
    215
  • Rank 183,925 (Top 4 %)
  • Language
    C++
  • License
    GNU General Publi...
  • Created over 4 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Marlin 2.0 for Flying Bear 4S/5

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

Это конфигурация официального Marlin для принтера Flying Bear Ghost 4S и 5. На данный момент поддерживаются платы FlyingBear Reborn 2.0 (MKS Robin Nano 1.x), MKS Robin Nano v2, MKS Robin Nano-s v1.3, MKS Robin Nano v1.3, FlyingBear Reborn v3.0

В данном репозитории есть несколько веток:

  • FB4S_WIFI - эта, основная ветка. Эта ветка содержит дополнительный код для работы с модулем MKS WIFI, установленным в FB4S и FB5. Загрузка файлов через стандартный plugin в Cura. Классический интерфейс Color UI.
  • vanilla_fb_2.1.x - ветка на основе 2.1.x ветки Marlin. Никаких изменений в коде. Все изменения только в файлах конфигурации, под платы robin nano и принтеры Flying Bear. Классический интерфейс Color UI. WIFI модуль не работает.
  • MKS_UI - ветка на основе 2.1.x ветки Marlin. В коде есть очень небольшое изменение размера буфера, для сборки на STM32F1. На STM32F4 никаких изменений в коде нет. Все изменения только в файлах конфигурации, под платы robin nano и принтеры Flying Bear. Интерфейс MKS UI. WIFI модуль работает.

Если у вас есть какие-то вопросы по настройке прошивки или по ее использованию, вы можете задать свой вопрос в telegram группе.

MKS WIFI модуль

Работает

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

Не работает

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

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

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

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

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

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

Плата Robin Nano-s v1.3 и Robin Nano v1.3 сделана на микроконтроллере STM32F407, для сборки прошивки под эту плату нужно изменить:

  • В файле Marlin/Configuration.h параметр MOTHERBOARD:
#ifndef MOTHERBOARD
  #define MOTHERBOARD BOARD_MKS_ROBIN_NANO_V1_3_F4
#endif
  • В файле platformio.ini в параметре default_envs указать mks_robin_nano_v1_3_f4

Плата FlyingBear Reborn 2.0 (MKS Robin Nano 1.x), MKS Robin Nano v2, FlyingBear Reborn v3.0 сделаны на микроконтроллере STM32F103, для сборки прошивки под эту плату нужно изменить:

  • В файле Marlin/Configuration.h параметр MOTHERBOARD:
#ifndef MOTHERBOARD
  #define MOTHERBOARD BOARD_MKS_ROBIN_NANO
#endif
  • В файле platformio.ini в параметре default_envs указать mks_robin_nano_v1v2

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

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

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

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

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

Плата, Robin Nano v1.1 (1.2), уже выбрана в качестве платы по-умолчанию. Для плат Robin Nano-s v1.3 и Robin Nano v1.3 нужно изменить параметры сборки (описано выше).

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

После компиляции, готовая прошивка лежит в .pio/build/mks_robin_nano_v1v2/Robin_nano35.bin для плат Robin Nano v1.1(1.2) и в .pio/build/mks_robin_nano_v1_3/Robin_nano35.bin для плат Robin Nano-s v1.3 и Robin Nano v1.3

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

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

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

Для удобства, в файле Configuration.h уже есть готовые наборы настроек для всех типовых конфигураций.

Для плат Robin Nano v1.1(1.2):

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

Для плат Robin Nano v1.3:

  • FB_5_NANO_S_V1_3 - для платы Robin Nano-S v1.3
  • FB_5_NANO_V1_3_4TMC - Robin Nano v1.3 c 4 драйверами TMC 2208/2209
  • FB_5_NANO_V1_3 - Robin Nano v1.3 c 2 драйверами TMC 2208/2209 и 2 драйверами A4988

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

#define ALL_DRV_2208
//#define FB_4S_STOCK
//#define FB_5_STOCK
//#define FB_5_NANO_S_V1_3
//#define FB_5_NANO_V1_3_4TMC
//#define FB_5_NANO_V1_3
//FB_5_REBORN_3_0

Настройки 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" и прозвучит три звуковых сигнала

BLTouch

Bltouch отключен. О подключении Bltouch.

Firmware retract

Без использования опции "firmware retract" слайсер делает ретракты командами движения G1. В том месте, где нужно выполнить ректракт вставляются команды:

G1 E-2 F2100 ; "Откатить" 2мм со скоростью 35мм/с (2100 мм/мин)
команды движения
G1 E2 F2100  ; Вернуть обратно 2мм со скоростью 35мм/с (2100 мм/мин)

Для ректрактов в Marlin поддерживаются специальные команды - G10 и G11. В слайсере нужно включить поддержку firmware retract и тогда в том месте, где нужно "откатить" пластик будет вставлена команда G10, а там, где нужно его вернуть G11. Если никакие дополнительные параметры не установлены, будут использованы параметры из прошивки (2мм, 35мм/с).

Установить параметры можно командами M207 и M208.

Для того, чтобы можно было настраивать ретракт в слайсере, в стартовый код нужно добавить M207. Как правило, слайсеры позволяют добавить макрос в качестве параметров команды.

Firmware retract позволяет изменять значения ректракта из меню принтера прямо во время печати.

В Marlin есть функция автоматического распознования ректрактов командами G1 и замена их на G10/G11. Эта функция отключена.

Если в слайсере не включена поддержка firmware retract, все будет работать как обычно.

Драйвера TMC2209

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

EEPROM

На платах Robin Nano установленно 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_nano_v1v2] нужно указать IP адрес принтера в опции upload_flags.

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

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

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

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

Загрузка настроек в EEPROM из файла

При обновлении прошивки рекомендуется делать сброс настроек к значению по-умолчанию и устанавливать их заново. Для того, чтобы не делать это при каждом обновлении вручную, можно создать на sd карте файл с нужными командами и просто запускать его на печать. Пример файла с настройками:

M502 ;Сброс настроек
M500 ;Сохранить настройки (аналог Initialize eeprom)

M92 X80 Y80 Z400 E421 ;Установка шагов Step/mm по осям

M301 P19 I1 D64  ;PID сопла
M304 P26 I4 D102 ;PID стола

M851 X37 Y-20 Z-0.95 ;Probe offset

M906 X700 Y800 Z800 ;Ток драйверов шаговых двигателей
M906 T0 E450

M603 L150 U150 ;Длина загрузки-выгрузки филамента
M500 ;Сохранить настройки

Отслеживание состояния печати по WIFI

Во время печати прием данных от WIFI модуля отключен. Это сделано для того, чтобы в очередь команд не попал никакой мусор от от esp. Однако в обратную сторону, от МК к esp, передача работает. Поэтому если нужно отслеживать состояние печати удаленно, в стартовый код нужно добавить команду M155 для отображения температуры и M27 для отображения прогресса печати в байтах. В этом случае МК сам, через указанное в параметрах количество секунд, будет слать отчеты. Получать их можно подключившись к сокету на порт 8080. Модуль MKS WIFI поддерживает только одно соединение одновременно, поэтому Cura должна быть закрыта.

Для получения информации о текущей высоте, нужно добавить пост-процессинг в слайсере. В Cura это можно сделать в Extentions->Post processing->Modify G-code. Добавить скрипт на "Insert at layer change" и команду M114.