Это конфигурация [официального Marlin](https://github.com/MarlinFirmware/Marlin) для принтера Flying Bear Ghost 4S (плата MKS Robin Nano).
Эта ветка содержит код для работы с модулем [MKS WIFI](https://github.com/makerbase-mks/MKS-WIFI), установленным в FB4S. Загрузка файлов через стандартный plugin в Cura.
Это конфигурация [официального Marlin](https://github.com/MarlinFirmware/Marlin) для принтера Flying Bear Ghost 4S (плата MKS Robin Nano). Прошивка подойдет так же для Flying Bear Ghost 5.
Эта ветка содержит код для работы с модулем [MKS WIFI](https://github.com/makerbase-mks/MKS-WIFI), установленным в FB4S и FB5. Загрузка файлов через стандартный plugin в Cura.
Код работы с экраном взят из репозитория [inib/Marlin](https://github.com/inib/Marlin)
В ветке [FB4S_Config](https://github.com/Sergey1560/Marlin_FB4S/tree/FB4S_Config) находится вариант с минимальными изменениями в коде Marlin (только работа с экраном и конфигурация)
В ветке [FB4S_Config](https://github.com/Sergey1560/Marlin_FB4S/tree/FB4S_Config) находится вариант с минимальными изменениями в коде Marlin (только работа с экраном и конфигурация), без поддержки WIFI.
## Что работает, что не работает
## WIFI модуль. Что работает, что не работает
### Работает
@ -27,17 +29,37 @@
## Как работает, как настроить
### Варианты прошивки
Если вас устраивает типовой вариант конфигурации, можно взять готовые файлы прошивки:
* Для FB4S с стандартными драйверами [Robin_nano35.bin](./firmware/fb_4s/Robin_nano35.bin)
* Для FB5 с стандартными драйверами [Robin_nano35.bin](./firmware/fb_5/Robin_nano35.bin)
* Если установлены все 4 драйвера 2208 или 2209 [Robin_nano35.bin](./firmware/all_drv_2208)
Разница в прошивках, только в направлении движения осей.
Для установки прошивки файл Robin_nano35.bin нужно записать в корень SD карты и включить принтер.
Вернуть стандартную прошивку можно в любой момент. Просто запишите ее на SD и включите принтер.
Для настройки под свои нужды, прошивку нужно собрать самостоятельно.
### Как собрать прошивку самому
Видео Дмитрия Соркина [youtube](https://www.youtube.com/watch?v=HirIZk0rWOQ)
Нужная плата, robin nano, уже выбрана в качестве платы по-умолчанию. В меню Platformio можно не выбирать плату, а нажать Build на самом верху. Или использовать сочетание клавиш Ctrl+Alt+B.
Нужная плата, Robin Nano, уже выбрана в качестве платы по-умолчанию. В меню Platformio можно не выбирать плату, а нажать Build на самом верху. Или использовать сочетание клавиш Ctrl+Alt+B.
После компиляции, готовая прошивка лежит в .pio/build/mks_robin_nano/Robin_nano35.bin
### Что нужно настроить
На SD карту нужно записывать именно Robin_nano35.bin, а не firmaware.bin
Нужно настроить направления движения по осям под свои драйвера в файле [Configuration.h](./Marlin/Configuration.h) (параметры INVERT_?_DIR, строка 1071). По умолчанию стоят настройки под драйвера 2208/2209 на всех осях. В файле [Configuration.h](./Marlin/Configuration.h) уже есть несколько готовых наборов настроек:
### Что нужно настроить, если собираете сами
Нужно настроить направления движения по осям под свои драйвера в файле [Configuration.h](./Marlin/Configuration.h) (параметры INVERT_?_DIR, строка 1125).
По умолчанию стоят настройки под драйвера 2208/2209 на всех осях. В файле [Configuration.h](./Marlin/Configuration.h) уже есть несколько готовых наборов настроек:
* ALL_DRV_2208 - если установлены драйвера TMC 2208 или TMC 2209 на всех осях
* FB_4S_STOCK - если установлены драйвера A4988 на всех осях. Это конфигурация для FB4S с стандартными драйверами.
@ -55,33 +77,27 @@
Первое, что нужно сделать после прошивки, это проинициализировать eeprom, сбросив настройки по-умолчанию. Делается это через меню Configuration -> Advanced settings -> Initialize eeprom.
### Если нет желания самому собирать прошивку
Готовые файлы лежат в папке firmware.
Если вы используете драйвера 2208 или 2209, прошивка в папке firmware/2208 [Robin_nano35.bin](./firmware/2208/Robin_nano35.bin)
Если вы используете стандартные драйвера, прошивка в папке firmware/std [Robin_nano35.bin](./firmware/std/Robin_nano35.bin)
Отличия сборок только в инвертировании осей.
### Настройки WIFI, если вы используете готовую прошивку
Если модуль уже был настроен, то возможно никакая настройка не понадобится. Если модуль не был настроен, либо по какой-то причине не смог подключиться к сети, то он запустится в режиме точки доступа с именем сети MKSWIFI??? (вместо ? будут произвольные символы). Подключитесь к этой сети, откройте страницу по адресу 192.168.4.1 и установите нужные настройки.
Если модуль уже был настроен, то возможно никакая настройка не понадобится.
Если модуль не был настроен, либо по какой-то причине не смог подключиться к сети, то он запустится в режиме точки доступа с именем сети MKSWIFI??? (вместо ? будут произвольные символы). Подключитесь к этой сети, откройте страницу по адресу 192.168.4.1 и установите нужные настройки.
### Настройки WIFI, если вы собираете прошивку сами
В файле [mks_wifi_settings.h](./Marlin/src/module/mks_wifi/mks_wifi_settings.h)
Для того, чтобы эти настройки применялись при включении, "MKS_WIFI_ENABLED_WIFI_CONFIG" должен быть раскомментирован. Если закомментировать "#define MKS_WIFI_ENABLED_WIFI_CONFIG", при запуске настройки ESP модулю отправляться не будут
Для того, чтобы эти настройки применялись при включении, "MKS_WIFI_ENABLED_WIFI_CONFIG" должен быть раскомментирован. Если закомментировать "#define MKS_WIFI_ENABLED_WIFI_CONFIG", при запуске настройки ESP модулю отправляться не будут.
Настройки сети хранятся в самом MKS WIFI модуле, поэтому отправлять настройки модулю при каждом старте не нужно.
### Диагностика WIFI
### Состояние WIFI
При успешном подключении к сети (или создании сети в режиме точки доступа) в стандартный UART, который выведен на USB разъем принтера, будет выведен IP адрес и название сети. Если у модуля ESP есть какие-то настройки сети, но подключиться к ней он не смог, то модуль перейдет в режим точки доступа, и выдаст в UART название точки доступа и свой IP. На попытки подключения к сети уходит несколько минут.
При успешном подключении к сети (или создании сети в режиме точки доступа) в стандартный UART, который выведен на USB разъем принтера, будет выведен IP адрес и название сети.
IP адрес так же будет на экране.
### Как понять, что оно работает
### Как понять, что WIFI работает
При включении принтера, на экране отобразится статус "WIFI init"
@ -93,6 +109,16 @@ IP адрес так же будет на экране.
Если во время приема файла были ошибки, отобразится надпись "Upload Failed" и **прозвучит три звуковых сигнала**
### BLTouch
В прошивке по-умолчанию включена поддержка Bltouch. Парковка стола по оси Z настроена по стандартному концевику (а не по датчику), поэтому если у вас нет датчика, то мешать это не будет. Просто не трогайте настройки Z Offset (должно быть 0).
Прошивка настроена на подключение датчика к разъему ZMax (концевик датчика) и PB2 (управление сервой). Подробнее о [подключении Bltouch](https://sergey1560.github.io/fb4s_howto/bltouch/).
### Драйвера TMC2209
По-умолчанию прошивка настроена на работу с драйверами шаговых двигателей без программного управления. В случае применения драйвером TMC 2209 или TMC 2208 можно включить управление по UART. Подробнее о [настройке и подключении](https://sergey1560.github.io/fb4s_howto/tmc_uart/).
### EEPROM
На FB4S установлена плата [MKS Robin Nano v.1.1](https://fbghost.info/bin/view/Main/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%B8%D0%BA%D0%B0%20%2F%20%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0/%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%8E%D1%89%D0%B0%D1%8F%20%D0%BF%D0%BB%D0%B0%D1%82%D0%B0/MKS%20Robin%20Nano%20V1.1/). На плате установленно 2 микросхемы флеш памяти: AT24C16 (2кб) подключена по I2C и W25Q64 подключена по SPI.
@ -101,9 +127,9 @@ IP адрес так же будет на экране.
В качестве места хранения EEPROM в Marlin доступны несколько вариантов:
* SD карта. Этот вариант наиболее предпочтительный, если нет осознанного желания хранить EEPROM где-то еще.
* SD карта
* I2C EEPROM. Хранение в AT24C16 подключенной по I2C. При первом включении все содержимое AT24C16 будет переписано. Память не быстрая, поэтому процесс занимает до 10 секунд. В дальнейшем в память пишутся только измененные значения, поэтому работает быстрее.
* SPI_EEPROM. Хранение в W25Q64BV подключенной по SPI.
* SPI_EEPROM. Хранение в W25Q64BV подключенной по SPI. Этот вариант используется по-умолчанию.
* FLASH_EEPROM_EMULATION. Это хранение EEPROM в flash памяти STM32. Этот вариант не работает.
* SRAM_EEPROM_EMULATION. Этот вариант не работает.
@ -117,16 +143,17 @@ EEPROM_SD
EEPROM_AT24C16
EEPROM_W25Q
*/
#define EEPROM_SD
#define EEPROM_W25Q
#if ENABLED(EEPROM_AT24C16)
#undef SDCARD_EEPROM_EMULATION
#undef USE_REAL_EEPROM
#undef FLASH_EEPROM_EMULATION
#undef SRAM_EEPROM_EMULATION
#define I2C_EEPROM 1
#define I2C_EEPROM_AT24C16
#define USE_WIRED_EEPROM 1
#defineE2END (2*1024 - 1)
#defineMARLIN_EEPROM_SIZE 1024
#endif
#if ENABLED(EEPROM_W25Q)
@ -136,9 +163,10 @@ EEPROM_W25Q
#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
#defineE2END (2*1024 - 1)
#defineMARLIN_EEPROM_SIZE 2048
#endif
#if ENABLED(EEPROM_SD)
@ -149,13 +177,14 @@ EEPROM_W25Q
#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 например на SPI флеш, надо заменить "#define EEPROM_SD" на "#define EEPROM_W25Q"
Для изменения места хранения EEPROM нужно заменить "#define EEPROM_W25Q" на другой вариант.