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.
 
 
 
 
 
 

4.9 KiB

Marlin 3D Printer Firmware for Flying Bear 4S

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

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

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

Работает (иногда)

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

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

  • Имена файлов на русском Переименуйте файл в Cura
  • Запуск печати. При нажатии "Print over Flying Bear Ghost 4S" файл загружается, но печать автоматически не стартует. Надо из меню принтера выбрать "Print from media"
  • Отображение состояния принтера (печатает, не печатает) в Cura
  • Все остальное, что не в указано в "работает"

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

Настройки WIFI

В файле mks_wifi_settings.h

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

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

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

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

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

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

Что и где и зачем

Основной код работы лежит в Marlin/src/module/mks_wifi

Для работы с файловой системой, в Marlin/src/libs/fatfs лежит FATFs и драйвер SDIO. Marlin зачем-то использует формат имен файлов в формате 8.3, а ESP модуль и plugin в Cura используют длинные имена файлов. Мне не удалось использовать для этого библиотеку из Marlin. Кроме того, драйвер SDIO используемый Marlin не умеет мультиблочное чтение/запись. Поэтому я использовал FATFs и свой драйвер SDIO. При начале передачи карта отключается от Marlin, заново происходит инит карты, и уже через FATFs запись файла. После передачи файла карта обратно подключается в Marlin.

Во время передачи файла управление в цикл Marlin не возвращается. Это значит, что пока идет передача никакой функционал Marlin не работает, команды не исполняются, устройства не управляются. Предполагается, что загрузка файла происходит во время простоя принтера. Есть проверка на то, чтобы передача не началась во время печати, но лучше не пробовать.

Почему такая убогая работа с DMA, с опросом флага в цикле. Я не смог использовать прерывание. Авторы libmapple зачем-то переименовали общепринятые названия обработчиков прерываний. Обработчик по умолчанию с "weak" я нашел, но почему-то мой обработчик с таким именем не работал. Если кто-то может показать как подключить свой обработчик прерывания DMA, это сделает код чище, проще и немного быстрее.

Скорость работы. Примерно такая же как у стандартного 4S. В целом упирается в ESP модуль, на карту можно писать и быстрее.