vyacheslav-shubin / shui

Licence: other
MKS-ROBIN_NANO, MKS-WIFI shui firmware

Programming Languages

G-code
73 projects
Vim Snippet
174 projects
python
139335 projects - #7 most used programming language
Marlin 2, SHUI Beta 0.1



Полезные ссытки:
	Описание прошивки от пользователей (отдельное спасибо Виктору): http://shui.hardisoft.ru 
	Бессистемный техноблог (Виктор): https://www.youtube.com/channel/UCjAcQzsKd0Hd_fnlPUN26JQ
	Ранние версии : https://github.com/vyacheslav-shubin/mks-robin-nano35-binary/tree/master/m2-alpha
	Настройка телеграмм бота: https://docs.google.com/document/d/13jDTtNGEu4eXHo-b5OVEF_yLy80kEXV90A_X9vX3aRA
	Настройка LA: https://marlinfw.org/tools/lin_advance/k-factor.html


С 2021.04.09 файлы *_config.gcode заменены на @*.gcode, далее по тексту следует это учитывать.
Файлы начинающиеся на @ рассматриваются прошивкой как файлы конфигурации.

Бета версия прошивки для MKS_ROBIN_NANO.
Прошивка и сопутствующие дополнения к ней состоит из файлов:
  robin_nano35.bin  - собственно код прошивки
  RESDUMP.BIN       - картинки, шрифты, прочие ресурсы
  Файлы расположены в каталоге firmware. На флешка для прошивки они должны находиться в корне. Файлы Configuration.h приложены справочно, и для прошивки не требуются.
  сfg/@printer.gcode      - конфигурация
  cfg/@pid.gcode - демонстрационный файл конфигурирования PID термостатов. При запуске файла включается специальный виджет, показывающий динамику температуры
  preview-test - тестовые файлы для проверки алгоритмов превью
  SHUIWIFI.BIN - прошивка модуля WiFi
  
  
  !!!! только для MKS ROBIN 1.1 с модулем wifi
  ROBIN11.BIN - Этот файл используется как маркерный для определения типа материноской платы в момент прошивки WiFi модуля.
	MKS ROBIN 1.1 и MKS ROBIN 1.2 используют разные порты для перевода модуля WiFi в режим прошивки.
	Для MKS ROBIN 1.1 во время прошивки файл должен находиться в корне флешки. Содержание файла не имеет значения.
	
	

  
  ROBIN11.BIN, SHUIWIFI.BIN, RESDUMP.BIN не следует переименовывать с использованием маленьких букв. marlin2 не поддерживает удаление и изменение имен файлов с длинными именами,
  это не отностится к robin_nano35.bin - так как он используется бутлоадером платы, а не Marlin
  
  cura.zip - плагин для CURA и сценарий создания превью в файле g кода.
  
  ShuiPreview.py - скрипт для CURA, создающий preview. Поддерживается собственный формат и формат от MKS, 
	малые превью файлов могут быть двух размеров: 100x100 и 50х50 - кому уж как навится.
	Скрипт устанавливается в <Cura configuration>/scripts (меню HELP/Cura configuration). 
	Плагин от mks лучше удалить, чтобы не путаться в переключателях Save to File и Save as TFT
	
	Использование скрипта:
		Extensions/Post processing/Modify G-code
		Add a script/Generate SHUI Preview
	При сохранении G кода в файл будет добавлены строки описывающие превью.
	Какой формат выбрать?
		Если файл будет печататься на принтере с прошивкой SHUI, то формат SHUI, если это будут и принтеры с прошивкой от MKS, то формат MKS
		Прошивка shui поддерживает оба формата (с учетом размера превью - 4 формата), прошивка от MKS в зависимости от версии только mks50 или mks100
	Преимущество формата SHUI:
		Использовано кодирование base64, что дает избыточность кода 4/3, в отличии от MKS где кодировка HEX с избыточностью 2/1,
		что делает файлы с g кодом несколько меньше объемом.
  Плагин "Send to SHUI WIFI"
  	В адресной строке задается IP адрес принтера. В строке имени файла необходимо задать не более 8 символов допустимых в формате 
	имени файла 8.3 (большие латинсие буквы, цифры, некоторые знаки). Данный формат пока не контролируется, и в случае его нарушения загрузка файла може закончится ошибкой
	
	

Использование памяти EEPROM отличается от версии MKS, поэтому, 
при обратной прошивке требуется полная инициализация:
  /mks_pics
  /mks_fonts
  robin_nano35.bin
  robin_nano_config.txt


Особенности:
Концевики X-min, Y-max, Z-min

Все настройки в настоящий момент делаются через g код. После прошивки запустить вручную.
О выполнении конфигурирования будет сообщено в статусной строке: settings stored
Предварительно настроенный 
Специфичные настройки прошивки задаются через "M117 SHUI "

2021-02-02
-Можно печатать
-Виджет выбора файлов имеет два вида
-Конфигурирование сигнала концевиков
-Размер стола и оси Z задается через GCODE 
      M117 SHUI M2001 X220 Y220 Z250  ;set machine size
-Точки для ручного уровня стола задаются через
      M117 SHUI M2002 S0 X20 Y20      ;set manual leveling point
-Поддержка настроек пресетов для пластика:
      M145 S0 B61 H201
      M145 S1 B91 H231
      M145 S2 B76 H241
      M145 S3 B111 H210
-Ограничение длины отображения строки (за предоставленный размер не залезает)


2021-02-02 2
-Виджет конфигурирования инверсии осей. 
-Поддержка G кода конфигурирования инверсии осей и состяния концевых датчиков 
  M117 SHUI M2003 X1 Y1 Z1 T0 E1      ;Axis invertion (1 - inverted)
  M117 SHUI M2004 S1 X0 Y1 Z0       ;Endstop passive level (S-1-MAX/0-MIN enstop)
  M117 SHUI M2004 S0 X1 Y0 Z1  
-Исправлана ошибка выделения памяти для отлисовки букв загружаемого шрифта

2021-02-03 
-Кнопка выключения питания
-Виджет печати - пиктограммы состояния

2021-02-04
-Виждет перемещения хотэнда
-Поддержка сниппетов
-Файл ресурсов с контрольной суммой и сигнатурой
-Включен LINEAR ADVANCE

2021-02-06
-Калькулятор
-Браузер файлов, расширения файлов не отображаются
-Браузер файлов, поддержка файлов _config.gcoge
-Виджет конфигурирвания размера принтера

2021-02-08
-Управление питанием
    -ожидание охлаждения хотэнда будет реализовано чуть позже
-Конфигурирование параметров управления питанием через G код (см. конфиг)
-Виджет настройки длины притка для команд загрузки/выгрузки
-Сниппет выключения питания 
    POWER_OFF=M81
-Поддержка M0/M1 - диалоговое окно с ожиданием нажатия.
-По окончанию исполнения файлов конфигурации браузер файлов не закрывается

2021-02-09
-Новый виджет перемещения. Совмещает парковку, управление филаментом, передвижение

2021-02-10
-Сниппеты конфигурируются из g-кода
-Виджеты работают через сниппеты. Без однократного запуска после прошивки конфигурирущего файла интерфейс работать не будет.
-В конфигурационном файле можно настроить основные действия по нажатию на кнопки интерфейса. Начальная конфигурция задана
-Если в новом виджете перемещения выбрать ось E0(E1) - экструдер, и максимальную дистанцию перемещения, сработают сниппеты FILAMENT_LOAD 17, FILAMENT_UNLOAD 18
-Длина сниппета не более 64 символов. Если сниппет содержит поле для подстановки значения, следует учитывать его увеличивающуюся длину, после заполнения.

2021-02-11
-Превью файлов в браузере

2021-02-12
-Превью в виджете печати

2021-02-12
-Пиктограммы активных процессов (печать, парковка, нагрев, срабатывание концевых датчиков)
-Предварительный просмотр печатаемого фала, метаинформация о размере модели, к-ва филамента, времени печати
-Виджет переключения языка. (строковые константы не опрелены, язык переключается только на первом виджете)
-Диалог выключения принтера отформатирован

2021-02-15
-Калькулятор присоединен к пиктограммам с температурой, вентилятором. Можно менять значения.
-В виджете перчати добавлена информация о расходе филамента.
-Превью печатаемой модели активно в виджете печати. При нажатии отображается статистика. (черновой вариант, требуется форматирование)

2021-02-16
-Виджет Home. Пользовательские кнопки (сниппет 40-43)
-Ручная настройка уровней стола - 9 точек
-Запуск файла конфигурации обязателен

2021-02-17
-Диалог-виджет "Информация"
-Заготовка к "Управление нагревом"
-Заготовка к "Управление филаментом"

2021-02-18
-Виджет управления филаментом
-Кнопки пользовательских сниппетов не отображаются, если сниппет не задан.
-Виджет графика температуры


2021-02-19
-Установка/сброс флагов состояния через G-код
-Виджет управления нагревом
-Виджет подстройки печати (начало)


2021-02-21
-M300 - пикалка пикает
-Виджет управления параметрами печати. На ходу можно поправить скорость печати, подачу пластика, коэфициент la...
-Доработка виджета конфигурирования
-Виджет Управление вентиляторами (начало)
-Виджет настройки wiFI (начало)

2021-02-24
-Украинский язык
-Доделан виджет управления вентилятором
-В конфигурации парковки инструмента можно задать длину ретракта филамента
-Функция "Пауза" (надо тестировать во время печати)

2021-02-24
-Выравнивание текста по центру для больших кнопок

2021-03-01
-Обновление WiFi модуля, файлы 0x00000.bin,  0x10000.bin
-M117 SHUI M25 - пауза печати, передача управления UI, возможность возобновления печати

2021-03-05
-WiFi NTP

2021-03-08
-Выбор сети WiFi
  При установке значения SSID сети или пароля происходит сброс модуля wifi. Иницализания модуля требует нескольких секунд. В случае возможна задержка поиска сетей на 2-3 секунды.
-6 срок виджеты конфигурации
-Виджет задания значений PID и лимита температур
M117 SHUI M414 S1 - установка языка. 0 - английский, 1 - русский, 2 - украинский

2021-03-09
-Автовыключение дисплея (время настраивается)
-Инициализация калькулятора в 0 (настраивается)
-Событийное взаимодействие с модулем WiFi

2021-03-09
-NTP
-Wifi виджет - состояние подключения модуля WiFi
-Обновление модуля WiFi в любом случае, если найдены файлы прошивки. (Было если включена опция наличия модуля WiFi)
-Wifi UART bridge - Приветственная строка с версиями

2021-03-11
-Marlin bugfix-2.0.x-2021-03-10
-WiFi UART Порт 8080
-Консоль исполнения G кода (на основе сниппетов)
-Обновление ресурсов, прошивки wifi, конфигурационного файла принтера обязателно

2021-03-17
-Скрипт для CURA генерации preview (MKS, Shui, 50x50, 100x100)


2021-03-18
-SHUI preview - полная поддержка
-Журналирование событий (лог сам не обрезается и не архивируется, следует следить за его размером)
-Подтверждение прерывания печати


2021-03-20
-Окно с прогрессом UPLOAD файла
-upload файлов на медленной скорости (115200). Отладка алгоритма. Доступно через http://ip_принетра/
	Временное имя файла после загрузки upload.gco (создание файлов с длинными именами не поддерживается?)

2021-03-24
-UPLOAD на скорости 115200*17 (режим uart-dma) Обновление модуля WiFi обязательно

2021-03-25
-Превью файлов в момент загрузки по WiFi (работает только для превью формата SHUI) (см обновление от 2021-03-17)
-По окончании загрузки через Web страницу, в диалоговом виджете с прогрессом загрузки отображается предложение отправить файл на печать.

2021-03-26
-Marlin 2021-03-25
-Включен BlTouch (не тестировано на принтере). В конфигурации добавлен виджет для задания смещения датчика относительно сопла
    (prev stable)Robin_nano35.bin - предыдущая версия для отката.
    Подключено к Z-MIN

2021-03-29
-Виджет печати, поддержка страничной панели статусов
-babystep (управляется с виджета печати)
-feedrate статус на виджете печати. Можно изменить процент подачи.
	Обновление ресурсов обязательно

2021-03-30
-bltouch -> Z_MAX, парковка по BLTOUCH отключена
-Виджет Уровень стола + режим измерения с bltouch

2021-03-31
-Измерение стола с помощью bltouch. Стол разбивается на 9 квадратов, измерение производится в центре каждого.
-Автоматическое измерение уровня стола по 9 точкам
-Учитываются смещения bltouch заданные в виджете конфигурации уровня стола
-Перед измерением и после измерения передвижение в Z=10


2021-04-01
-Уровень стола. Двойное смещение bltouch (исправлено)
-Ошибка конфигурирование смещения bltouch (исправлено)
-Кириллические символы в именах файлов (linux и windows имеют разные алгоритмы формирования короткого имени. Тестирование linux - OK, win- ????)


2021-04-03
-Marlin 2021-04-03
-Контроль Fat orphan - Marlin 2 не умеет корректно удалять файлы с длинными именами. 
-Файлы прошивки приведены к имени 8.3 (короткие имена файлов)
-Поддержка Upload через WiFi и запуск на печать
-Собственный плагин к CURA и сценарий дополнения G-кода превью
-Опция в настройках "короткие имена файлов" браузер будет отображать имена файлов в формате 8.3


2021-04-03
-Правки "Контроль Fat orphan" приняты в дистрибутив Marlin
-Marlin 2021-04-05
-Обновлена поддержка украинского языка
-В сборку включена конфигурация для принтера two trees bluer
-На виджете "Перемещение" можно отключить концевики (программные и аппаратные одновременно)
==========================================================================

2021-04-06
-Опция "управление концевиками' позволяет скрыть кнопку управления концеиками в виджете "Перемещение"
-Бакап конфигурации (файл GFGBKP.GCO)
-Правки локализации UA

2021-04-09
-Проблемы с длинными именами файлов в M2 привели к изменению суффиксов имен файлов с конфигурацией. Теперь файлы <name>_config должны быть названы @<name>
-Устранение причин, вызыающих ребут при запуске конфигурационных файлов в режиме отображения 8.3
-Настройки концевиков осей, датчики филамента выделены в отдельный раздел конфигурации
-Добавлена конфигурация "особые точки", где можно задать точку смены филамента и смещение точки парковки.
-В виджете "Настройка температуры" можно вызвать виджет "График температур", кторый раньше можно было видеть только при запуске калибровки PID
-Исправлена ошибка экспорта точек ручной настройки стола
-обновление ресурсов обязательно!

2021-04-12
-Большие буквы кириллического шрифта
-переезд https://github.com/vyacheslav-shubin/shui

2021-04-13
-Сброс частных настроек после печати файла. Не относится к конфигурационным файлам (@name.GCO)
  Опция включается в Настройки/Разное
-Подключены сенсоры филамента. В правом верхнем углу появляется приктограмма, сигнализирующая об обрыве. Печать встает на паузу при обрыве. 
  Перед печатью и после паузы проверяется состояние датчиков филамента.
  Опция включается в Настройки/Разное

2021-04-20
-Поддержка превью, если файлы были сохранены с Windows типом перевода строки (\r\n)
-Поддержка варианта платы ROBIN 1.1 (не работал алгоритм прошивки WiFi)
-Файлы прошивки Wifi 0x00000.bin и 0x10000.bin объединены в один SHUIWIFI.BIN
-two_trees_bluer CARTESIAN кинематика
-на виджете перемещения кнопка выключения моторов (для ее работы необходимо однократно запустить файл с определениями сниппетов) @snippets.gcode

2021-04-21
-Сниппет 19 "Отключить моторы". Кнопка добавлена на виджеты Парковка, Уровни, Перемещение, Филамент
-На виджете "G код" пиктограмма сниппет 4, заменена на пиктограмму с клавиатурой, вызывается так же сниппет 51, который при желании может быть переопределен
-Конфигурирование/Разное/Парковка Z по центу
-Конфигурирование/Разное/Управления холодным филаментом
-Увеличены пределы температур экструдера до 300

2021-04-23
-backup исправлена ошибка. В резервировании шаги на мм ось Z заменялась настройками E0
-добавлена отдельная ф-я backup PID
-добавлена настройка включения вентилятора в момент ожидания охлаждения принтера при выключении
-введена новая настройка "Координатные оси", где можно задать диапазон перемещения осей МИН-МАКС. 
  По задумке эта опция позволит задавать область печати и в дальнейшем включить в настройки 
  указания местоположеня концевиков. 
  Реализация этой опции затрагивает алгоритмы вычисления области перемещения в Марлин, и требует тестирования.
  На стенде все поведения кинематики принтера отследить невозможно, предыдущие версии для отката в архивах...
  
2021-04-24 Обновление не затрагивает функциональности прошивки.
  -Встроена поддержка настройки цвета фона, шрифта элементов интерфейса
  -В качестве примера приложен файл ресурсов в котором системный экран сообщений имеет темно-красный цвет,
  	а текст в виджете консоли желтый для этого с обновленной прошивкой достаточно прошить файл из папки alt-res

2021-04-25
  -Координаты оси Z выводятся до 2 знака после запятой. 
  -Исправлена ошибка отображения большой картинки печатаемой модели. Ощибка проявлялась в том, что при повторном запуске на печать
   некоторых файлов картинка сжималась в 2-3-4 раза с каждым запуском.
	Большое спасибо всем, кто обратил внимание на эту ощибку, а так же 
   	на особенности ее проявления. Это очень помогает в исправлении и поиске места ошибки
	
2021-04-25 
  -В настройках/разное, появилась опция "Выводить G код в виджет консоли". При ее включении исполняемый G код будет отображаться в соответсвующем виджете
  -Виджет Консоль G-кода добавлен в список инструментов времени печати (аккуратнее с G кодом !! ;) 
  -Начиная с этой версии в прошивке появилась возможность переопределения и дополнения своих G кодов.
  Это означает, что будут появляться необходимые для конфигурирования коды, а поведение некоторых стандартных может быть изменено.
  О всех дополнениях и изменениях буду писать.
  Диапазон кодов M2000-M2100 - коды специфичные для прошивки SHUI. Ранее эти же настройки задавались черех M117 SHUI
  
  M414 - переопределенная стандартная комманда выбора языка интрерфейса
  	параметр S - определяет язык.
	0 - en, 1 - ru, 2 - ua
  M114 S1 ; Выбор русского языка
  
  M2000 - задание размера области печати (стол, высота)
  M2000.1 - минимальные значения
  M2000.2 - максимальные значения
  
  M2000.0 X0 Y0 Z0        ;min axis values
  M2000.1 X225 Y225 Z240  ;max axis values
  
  M2001 - задание инверсии моторов, параметр T определяет для какого экструдера указыватся параметр E
  
  M2001 X1 Y1 Z1 T0 E1    ;Stepper inversion (1 - inverted)
  M2001 T1 E1	; Stepper inversion, extruder 1
  
  M2002 - указание пассивного уровня концевика
  M2002.0 - для концевиков установленных в минимуме оси
  M2002.1 - для концевиков установленных в максимуме оси
  X, Y, Z, E - оси, P - probe
  ;Sensors passive level (1 - vcc / 0 - gnd)
  M2002 T0 E1
  M2002 T1 E1
  M2002.0 X1 Y1 Z1 P1 
  M2002.1 X1 Y1 Z1
  
  |6|7|8|
  |3|4|5|
  |0|1|2|

  M2003 - задание точек ручной регулиновки уровня стола. Всего 9 точек, S - номер точки от 0 до 8
  M2003 S0 X20 Y20
  M2003 S1 X110 Y20
  M2003 S2 X200 Y20
  
  M2003 B20 - модификация этой же команды, где B определяет ширину отступа от края стола, а точки задаются автоматически
  
  Любая из описанных выше команд вызванная без параментров, выведет текущие настройки
  

2021-04-27
  -Обновление большое, потому сначала test-only
  -Вариант andry_hm переименован в ultimaker
  -Пиктограмма парковки по Z работает, для конфигурации с BLTOUCH Z_MIN
  -Бакап использует новый вариант G-кода, старые G коды еще работают, но их поддержка будет удалена
  	если после прошивки параметры принтера будут сброшены, восстановить их можно из ранее сделанного бакапа предыдущей версии.
	Рекомендуется ранее сделанный бакап сохранить отдельно, а после обновления прошивки сделать новый, с новой версией g-кода
	

  Продолжаю добавлять g-код для управления конфигурацией и виджетами
  M2004 - настрока модуля питания
	F - флаги, битовая маска, может быть суммой следующих значений. 
	  1 - Модуль присутсвует,
	  2 - Автоматические выключение по окончании печати
	  4 - Ожидание охлаждения хотэнда
	  8 - Включить вентилятор при ожидании охлаждения
	S - Ожидание перед выключением (0-255 секунд)
	T - Температура до которой должен отсыть хотэнд, перед выключением принтера (0-255 celsius)  
  M2004 F15 S120 T60	
  
  M2005 - Управление сниппетами
    	E - стереть сниппеты
	S - задание номера сниппета
	| после номера и далее - код сниппета
	Сниппеты могут быть стерты из памяти только все сразу.
	Назначение каждого сниппета возможно только один раз после стирания.
	Поэтому, для переназначения сниппета необходимо удалить и записать все текущие используемые.
	Тем не менее, если ранее сниппет с нужным номером не был записан, его можно задать отдельно.
  
  M2005 E ;Eraise snippets
  M2005 S0|G91|G1 X%3.1f F2000|G90        ;MOVE_X_INC 0
  M2005 S1|G91|G1 X-%3.1f F1000|G90       ;MOVE_X_DEC 1
  
  M2006 - вызов виджета
  	W - номер виджета
	С - закрыть виджет
  
  M2006	W9 - отобразить консоль ввода G-кода
  Включая виджет на отображение предыдущий виджет попадает в стек, поэтому вызов
  	M2006 С - приведет к отображению ранее активного виджета.
  Размер стека виджетов ограничен 5!
  	Особые номера:
	M2006 W0 - стартовый виджет (стек виждетов будет обнулен)
	M2006 W-1 - возврат по стеку, аналогичен  M2006 С
  
  M2007 - флаги состояния (для отладки)
  
  M2008 - Задание точки смены филамента
  	M2008 X20 Y20 Z20 E5 F1000 (x, y - абсолютная координата, z - относительная. 
	e - втягивание пластика перед сменой, F - скорость перемещения к точке смены (m/min) )

  M2009 - задание параметров модуля WIFI
  	M - (mode) тип модуля 1 - станция, 2 - точка доступа, 0 - отключен
	T - смещение времени NTP
	H - (hold) модуль временно не используется (0/1)
  M2009.1 - для модуля в режиме станции
  M2009.2 - для модуля в режиме точки доступа
  	S - SSID
	P - пароль
	
  	M2009.1 S:HOME_NETWORK P:pleaseplease
  	M2009.2 S:SHUI P:pleaseplease
	M2009 H0 M1 T180
	
	;Вариат конфигурирования модуля с "шифрованием" пароля
	M2009.1 CH:B2B16F79D0D4D155A8B7230151D7043B23FBE8DFB8081F0EC72C61
	M2009.2 CH:D2EFDD5DEDFBBDE6686A5D862B15E5CA2A3730102405

2021-04-28
	-M302 - Cold Extrude перекрыта реализация с целью сохранения настроей температуры.
	    https://marlinfw.org/docs/gcode/M302.html
	    настройки добавлены в backup.
	    При процедуре резевирования настроек параметр P всегда имеет значение P0
	-в конфигураци можно задать предельную температуру стола. 
	  ВНИМАНИЕ!!! Если указать слишком низкую температуру (ниже окружающей среды), 
	  система защиты Марлин будет выключать принтер по перегреву!
	-Если в корень флешки положить файл RESET.BIN, при включении настройки принтера будут сброшены до умолчаний.
	  данная опция напрямую связана с предыдущей и поможет восстановить принтер после "конфигурирования".  
	-При попытке запуска не установленного сниппета выдается сообщение "Сниппет [номер] не установлен... Запустите snippets.gcode"      
	-Предельную температуру хотенда можно задать в конфигурации
	  В Марлин есть переменная HOTEND_OVERSHOOT=15, на это значение уменьшается предельная температура.
	  Т.е. если задать предельную температуру 300, то установить можно будет только 285
	-Настройки WiFi (пароль и SSID) записываются в Backup только в зашифрованном виде
	-Новый g код
		M2010 - резервировать настройки
			имеет 3 параметра P и A - (pid, all)
			
			U (ui) 0/1 отображает дилог завершения
		Пример использования:
		M2010 ;резервировать настройки (будет создан файл на флешке CFGBKP.GCO) 
		M2010 P; резервировать настройки PID (будет создан файл на флешке @PID.GCO) 
		M2010 A P; резервировать настройки PID, и все настройки.

  	M2004 - настрока модуля питания
	    Дополнительный  бит (подробнее выше)
	    16 - PWC
	-Управление питанием, добавлена поддержка PWC (пока в режиме выключения, без виджета подтвержения)  
	-в папке shui - картинки-заставки. Папку надо положить в корень флешки. Отображается файл с именем 
	  bmp_logo.bin. Чуть позже переименую в logo.565
	  
2021-04-29
	Исправлена ошибка установки языка ui командной M414
	Перекрыта реализация M81
	M81 получила дополнительные параметры:
		С - взять параметры из настроек модуля управления питанием
		D (delay) задержка выключения [0..255] секунд
		T (temperature) - ожидание охлаждения хотэнда
		F (fan) - включение вентилятора при ожидании охлаждения
	Пример использования:
	  M81; выключение незамедлительно
	  M81 D100; выключение через 100 секунд
	  M81 D100 T60; выключение не менее чем через 100 секунд, и при охлаждении до 60 градусов
	  M81 D100 T60 F; Дополнтительно включить вентилятор
	Сниппет 16 назначен на кнопку выключения питания в главном виджете
	Сниппет 20 назначен на аппаратную кнопку PWC
	Файлы bmp_logo.bin переименованы в LOGO.565
	файл /shui/POWEROFF.565 будет оборажаться в момент выключения принтера
	
2021-04-30
	Сниппет 20 назначен на аппаратную кнопку PWC (отпускание)
	Сниппет 21 назначен на аппаратную кнопку PWC (нажатие)
		настройка этих сниппетов определит поведение аппаратной кнопки модуля PWC
  	M2011 - вывод диалогового окна с сообщением
	    S - время отображения в секундах
	    или P - время отображения в миллисекундах
	    если ни S ни P не заданы, то отображать до нажатия.
	    В отличии от M0 и M1 M2011 не останавливает выполнение дальнейшего кода
	    Пример:
	M2011 S1 Скорость печати изменена
	    см. так же M2006 C
	В Марлин есть подобная команда M117, выводящая текст в статусную строку
	M2012 - Выполнить сниппет
	    S-номер сниппета
	M2012 S21
	
	---------
	Экспериментальная часть, каталог test-only
	Включены команды G60, G61 c к-вом точек 2
	Добавлено 2 сниппета: (длина сниппетов не более 64 символов)
	22 - M25|G60S0|G91|G1Z20T0E-10|G90|G1X20Y20   ;Park head
	23 - G91|G1E10|G61S0X0Y0|G61S0Z0|G90|M24
       
	22 вызывает при нажатии на паузу
	23 при возобновлении из паузы
	
	Для обеспечения комплементарности вызова, если паузу надо добавить в печатемый файл (например смена пластика)
	делать это надо вызовом сниппета: M2012 S22
	Или добавлять всю цепочку:
		G60S0
		G91
		G1Z20T0E-10
		G90
		G1X20Y20
		M25
	тогда кнопкой с экрана можно корректно продолжить печать.	
	....не сделано еще.. если прервать печать после паузы..

2021-05-04
	-Marlin 2021-05-04
	-Пауза печати на основе сниппетов
	-Пиктограммы хотэндов и стола дополнены относительным значеним подаваемой мощности
	-К инструментам доступным при печати добавлена кнопка пресетов температур
	-Появилась кнопка Восстановить и Восстановить pid. Видимы только есть соответствующие файлы есть на флешке
	-Исправлено поведение G61, теперь состояние коордиаты E тоже можно восстановить. (Pull request в Марлин)
		если не примут, реализацию в любом случае оставлю. 
		G61 получила краткую форму. Если не указывать параметры, то сначала восстанавливаются координаты XY, затем ZE
		
2021-05-05
	-Разработка виджета "Уровнень стола"
	-Исправление G61
	-Синтаксические правки
2021-05-06
	-Выключена излишняя корректировка z при измерении стола bltouch
	-настройки уровни/включать уровни после парковки.
	После установки этого обновления стоит проверить, какие значения записаны в карте стола (Инструменты/Уровень стола)
	для начала стоит сбросить все в 0 (рука=>пипетка=>крестик=>ок), а в конфигурации установить в НЕТ "Включить уровни стола после парковки"
	В этом случае принтер будет работать как и до обновления. Никаких принципиальных изменений внесено не было кроме возможности управления процессом mbl
	Далее, можно экспериментировать с картой высот стола, заполняя ее как с bltouch так и вручную подстраивая каждую точку по бумажке.
	
2021-05-07
	!!!! Конфигурация поменялась, не зыбыть сохранить BACKUP!!!!
	Вынесено в конфигурацию 
		-number число измерений в точке для bltouch
		-clearance расстояние отката стола перед измерением, по умолчанию 10
		-probe low point максимальный подъем стола при измерени (если датчик не сработал, до этого значения поднимается стол), по умолчанию -2
		Расширена команда настройки смещения датчика уровня стола:
			добавлены параметры С - clearance, L - z probe low point, N - number
		M851 добавлена в backup
		-Функция резервирования mbl (mesh bed leveling)
		M2029 - Автоуровень (в последствии будет заменено на G29)

2021-05-11
	-Нидерландский язык
	-Удалена реализация G-кода M117 SHUI (старые конфигурационные файлы не поддерживаются)
		M2000+ переопределяют ранние реализации M117 SHUI
	-Введена опция "BLTouch" Настроки/Уровень стола. 
		При выключенно опции соответсвующие кнопоки на виджете "Урвень стола" не будут появляться.
		В дальнейшем опция потребуется для определения точек измерения уровня стола. Для алгоритмов с bltouch 
		нужно учитвать смещение xy. Не хотелось бы их обнулять для временного отключения bltouch..
		M2029 не будет выпонять измерения, только включать имеющуюся сетку.
	-Перекомпанованы виджеты настроек "Координатные оси", "Особые точки", "Парковка"
	-Добавлена настройка скорости парковки. Отдельно настраивается xy и z	
	-position_is_reachable переопределена, учитываются заданные в конфигурации размеры стола
	-исправлена ошибка в бакапе инверсии осей
	-бакап предыдущей версии не сохранял настройки смещения bltouch, возможно потребуется вставить их снова.
		
2021-05-12
	-Зазор от датчика после парковки
	-M2013 - дополнительное конфигурирование парковки (см. gcode_info.txt)
	-M831 добавлено упавление флагом наличия BlTouch (B 0/1)
	-M2003 изменено. Точки замера задаются автоматически
	-Если время отключения дисплея 0, дисплей отключаться не будет
	-M2004.1 - можно настроить время отключения дисплея
	-В бакап добавлены параметры парковки, время отключения дисплея
	-M2014 - отдельные флаги в конфигурации, подробнее в gcode_info.txt

2021-05-21
	-Настройки, нагреватели, E1 (включен-выключен). Позволяет исключить элементы управления вторым экструдером
	из виджетов
	M2014 - расширена
	        7 - Наличие второго экструдера

2021-05-25 (только для тестирования, каталог test-only)
	-Вместо второго хотэнда можно подключить вентилятор. В настройках выключить E1 и включить "E1 как вентилятор",
		Там же можно задать пороговую температуру включения. Если пороговая температура не задана вентилятор автоматически
		включаться не будет.
		Вентилятор включается при превышении температуры хотэнда E0 заданной. Гистерезис выключения составляет 5 градусов.
		Вентилятор может управляться коммандами M106 и M107 как P1, если автоматическое управление не задано.
	-M2014 новые флаги:
		8 - Robin nano 1.1
		9 - Вентилятор вместо второго хотэнда	
	-M2009 - задание параметров модуля WIFI	
		флаг H (hold) удален

2021-05-28
	-Опция "Автостарт печати". При передаче файла по сети печать будет начинаться автоматически в любом случае
	-Длинные имена файлов переданных по сети обрезаются до 8.3, недопустимые символы заменяются на _. (особенности Марли 2, файлы можно создать только с именами 8.3)

2021-06-04
	-исправлена ошибка в формировании имени 8.3

2021-06-08 (test-only)
	-Таблица терморезистора расширена до 335 градусов, лимит нагрева может быть установлен до этого значения. Алгоритм контроля температуры 
	учитывает заданное в конфигурации предельное значение.
	-Виджет "WiFi" перекомпанован, добавлен флаг WAN
  
2021-06-09
	-Виджет "Уровни стола", добавлен набор инструментов управления температурой
	-Вентиляторы обдува филамента не будут включаться в момент выклчючения принтера, если температура сопла не превышает критическую

2021-06-11
	-Исправлена ошибка бакапа скоростей парковки
	-Дополнительные опции модуля WiFi
	-Файл с ресурсами (RESDUMP.BIN) обновлен


2021-06-11
	-M600 - snippet pause (опробовано, работает)

2021-06-15
	-FAN_KICKSTART
	-Добавлен виджет конфигурации вернтилятороа. 
		-Настройка автоматического включения вентилятора хотэнда продублирована.
		-Можно настроить время старта вентилятора обдува, значение указывается в миллисекундах (FAN_KICKSTART). 
		Если вентилятор был выключен, то при старте он включается на полную мощность на время указанное в конфигурации.
		Затем значение опускается до требуемого. Это обеспечивает преодоление начального сопротивления.
	-Виджет конфигурирование/моторы
		Настройка шагов, предельного ускорения и подачи
	-Файл с ресурсами обновлен!

2021-06-16
	-Во время паузы датчик окончания филамента не обрабатывается
		
2021-06-17
	-Конфигурация браузера файлов
		-Включение, выключение отображения скрытых файлов
		-Включение, выключение файлов с расшинением не GCO (gcode)
		-Имена файлов 8.3
	-Фильтр/Трансформатор G-кода	
		-Отключение кода M600 (смена филамента)
		-Отключение кода M104, M109 - нагрев, ожидание хотэнда
		-Отключение кода M140, M190 - нагрев, ожидание стола
	-Доступ к кастомным настройкам перчати из виджета предварительного просмотра	

2021-06-18
	-Виджет печати дополнен еще одной панелью, где отображается текущее состояние карты высот стола
	-M2014 - установка, сброс флагов
        	13 - Инспектор файлов, показать скрытые
        	14 - Инспектор файлов, показать только G-код
		
2021-06-18
	-Трансформатор g кода. G29->M2029	
	-Трансформатор g кода. G28->G28+M2029	
	-Настройка маски по расширению файлов g кода. Маска *.G* включена всегда, 
		по умолчанию добавлена маска PLG. Дополнительные расширения следует задават через запятую: PLG,GCO,TXT
		фильтр накладывается на 8.3 имена файлов и использует только символы верхнего регистра
 	-cura plugin. esp32 octet-stream mode
	
2021-06-21
	-Yandex disk, esp 32
  
2021-06-28 (test only) - версия с ошибками (!). Проверено для CoreXY, оси X и Y перепутаны
	-Marlin 2021-06-25
	В Марлин добавлено еще три оси и немного переделана инициализация инверсии моторов. 
	Обновление, возможно, содержит ошибки. Перед установкой обязательно сохранить настройки и ранее устанвленную версию
	-Локализация UA
	
2021-07-02
	-Marlin 2021-06-05
  
2021-07-08
	-Исправлена ошибка, приводящая к закртытию виджета печати, если файл передан на печать через wifi
		-Размер стека виджетов увеличен до 10
2021-07-08
	-Включена поддержка G10, G11 - настраиваемые ретракты
		Подробнее о G10, G11 https://3dtoday.ru/blogs/defekt/otkat-pri-pomoshchi-g10g11-vmesto-otkata-slayserom/
	-В виджете конфигурации можно подстроить параметры ретракта
	-Во время печати в виджете "Подстройка" можно сменить текущие настройки ретракта
	-настроки ретракта M207, M208 добавлены в backup

2021-07-14
	-Fat time

2021-07-16
	-Опция: Переворот дисплея на 180 градусов
	-Fat time (исправление)
	-Настройки трансформации сбрасываются всегда после окончания печати
	-Число попыток повтора записи на sd карту, в случае ошибки, увеличино с 3 до 5
2021-07-19
	-Марлин 2021-07-19 (все настройки будут сброшены, необходимо предварительно сделать резервную копию)
	-Переключатель BlTouch/BfTouch (пока только элемент управления настройками), выбор любого сенсора приводит к включению bltouch
	-необходимо проверить настройки/сенсоры. Для Z-probe, Z-max с установленным bltouch должно быть указано GND (ранее это делалось принудительно)
	-перенесено в firmware
	
2021-07-20
	-Кнопка удаления файлов работает, если файл имеет только 8.3 имя (все файлы загруженные через WiFi), в противном случае кнопка скрыта
	-Встроен настраиваемый алгоритм сортировки файлов. 
			- Алфавитный порядок: сначала кататалоги по алфавиту, затем файлы
			- Без сортировки

2021-07-23
	-Сортировка по дате изменения файла
	-В виджете предварительного просмотра файла перед печатью добавлена кнопка "Скрыть файл"
		снять признак "скрытый" или удалить такой файл можно только на компьютере. 
		Таким образом, ограничение на удаление файлов с длиными именами снимается.
	-Кнопка "удалить файл" отображается только, если файл имеет имя 8.3
	Сортировке подлежат только первые 64 отображаемых файла. Если в каталоге их больше, не все файлы будут отсортированы
	-Набор ресурсов обновлен. Необходимо прошить файл RESDUMP.BIN

2021-07-26
	-Файлы с бакапами перенесены в каталог SHUI
	-При восстановления из бакапа сначала ищется файл в корне флешки и если он не найден, повторный поиск идет в каталоге SHUI
	-При сохранении файла предыдущая его версия удаляется из корня флешки и каталога SHUI, новая версия записывается в каталог SHUI
	-Состояние дисплея (поворот 180 градусов) синхронизируется после запуска восстановления из бакапа
	-Виджет Debug добавлены состояния сенсоров

2021-07-27
	-Поддержка BfTouch
	-Настройки уровней управления BfTouch (M281), виджет Конфигурация/Уровень стола
	-Бакап M281
	-Long click (3 секунды), Кнопка выключения питания на главном виджете при долгом нажатии выключает принтер без диалогового окна подтверждения

2021-07-28
	-Парковка. Принудителное включение bltouch сделано опционально, в зависимости от выбранного датчика
	-G29->M2029 теперь по-умолчанию включено
	-Настройка долгого нажания (конфигурации/разное). Минимум 1000мс
	-Автоповтор +/- в виджетах управления вентилятором, температурой
	-Отображение координаты Z расширено, не влезали разряды babystep
	-Долгое нажатие на каталоге или файле запускает отображение виджета действий с файлом
		Файл можно скрыть, запусить на печать. Файлы с именам 8.3 можно удалить
		Каталоги можно скрыть.
		Обратная операция для скрытых файлов и каталогов не предусматривается. Можно выполнить на компьютере
		В настройках можно включить отображение скрытых файлов
	-Обновление картинок обязательно
	-Лимит сортировки 128

2021-08-03
	-Новый браузер файлов.
	-Дополнительные пиктограммы для скрытых файлов
	-ESP32 индикация светодиодом

2021-08-04
	-Исправлена ошибка приводящая к зацикливанию при нажатии на кнопку ручной подстройки уровня стола. Ошибка связана с обновлением "long click"
	-Кнопки выбора шага имеют подписи соответсвующе размеру шага
	-babystep можно выбрать шаг
	-Браузер файлов, файлы не g кода отображаются серыми значками
	-Обновление ресурсов обязательно

2021-08-06
	-Исправлена ошибка babystep лишняя позиция в выборе шага 

2021-08-10  +Sapphire Plus
	-Добавлен новый виджет конфигурирования Модификации. Содержит переключения разных аппаратных модификаций принтера
	-Поддержка второго мотора по оси Z. Мотор подключается вместо второго экструдера и работает синхронно с первым мотором по Z. 
		Отдельная инверсия для второго мотора может быть реализована по необходимости.
		Опция включется в виджете Конфигурация/Модификации E1=>Z2
		ВНИМАНИЕ!!! перед запуском функций приводящих к движению осей для принтеров с двойным Z проверить правильность работы моторов по Z.
		Cделать это можно в виджете Передвижение, выбрав минимальный шаг по оси Z и нажав на +/-. Моторы по Z должны работать синхронно
	-Прошивка может быть установлена на Sapphire Plus
	-M2014 - установка, сброс флагов
		16 - Два мотора по оси Z (флаг 7 должен быть сброшен)
	-Исправлена ошибка приводящая к перезагрузке принтера после прошивке ресурсов

2021-08-11 
	-Telegramm bot. Все статусные сообщения и сообщения об ошибках можно перенаправить в канал телеграмм. Включается в виджете конфигурации WiFi
	-Прошивка ESP32, исправлена ошибка формирования некоторых сообщений для telegramm

2021-08-11
	-Z по центру. Исправлена ошибка. Теперь координата вычитсляется от размера стола, ранее - константа 110/110
  

2021-08-11
	-Новый виджет настройки сенсоров парковки
	-Модуль сенсоров заменен, алгоритмы парковки в разных направлениях, (!!!!)bltouch не включен 
2021-08-13
	-Подключен bltouch
	-Переключатель кинематики CoreXY->CoreYX
	-Добавлен перехват управления моторами
	
	После выхода этого обновления, резко сокращаются варианты прошивки, для которых надо пересобирать исходный код с разной конфигурацией. 
	Остается 2 варианта: СoreXY/YX и Cartesian XYZ. Размеры стола, местоположение сенсоров (в том числе вариант установки сенсора Z), может быть настроен в виджетах конфигурации
	Типовые настройки принтеров можно задать в соответсвующих @printer.gcode

	Такие возможности конфигурации позволили получить еще одну интересную функуцию: Печать с отзеркаливанием - т.е сменить лево-право модели без ее обработки в слайсере.
	Если для Cartesian XYZ это сделать легко, включив инверсию мотора X и в настройках указать, что концевик по X стоит не в min а в max,
	то дла CoreXY это сделать сложнее. Простая инверсия мотора B(или Y) приведет к повороту координатной плоскости на 90 градусов с отзеркаливанием одной из осей. В этом случа
	концевики не будут соответсвовать осям. Если инвертировать два мотора AB (или XY), координатная плоскость развернется на 180 градусов, а оси останутся нормальными. Сменив указание местоположения
	концевиков мы получим работающию систему, точка ноля которой будет в правом дальнем углу.
	Однако, если физически переткнуть шлейфы моторов, получится система CoreYX и одна из осей, скорее всего Y будет развернута. После смены инверсии моторов AB, координатныя плоскость развернется на 180
	градусов и получим требуемую конфигурацию с отзеркаленым X. Собственно, для печати модели зеркально, не важно какая из осей перевенута.
	Текущее обновление позволяет не перетыкать шлейфы моторов, а указать в конфигурации тип кинематики CoreXY или CoreYX.
	PS На Sapphire Plus уже проверил. С бакапом от предыдущей версии стартануло сразу, тестовая печать прошла успешно.
2021-08-13
	-Бакап настройки сенсоров (формат g кода изменен)
	-Бакап настройки моторов  (формат g кода изменен)
	-Включен датчик филамента
	-Виджет "Настройки уровня стола" удален. Все настройки перенесены в "Сенсоры"
	-!!!!!!!!!!!! Формат g кода настройки сенсоров и инверсии моторов изменен. 
		После прошивки необходимо восстановить настройки из бакапа, 
		Настроить сенсоры и моторы
		Сохранить бакап

M2001 - задание инверсии и кинетатики моторов, параметр T определяет для какого экструдера указыватся параметр E
    M2001 X1 Y1 Z1 T0 E1    ;Stepper inversion (1 - inverted)
    M2001 T1 E1	; Stepper inversion, extruder 1
    ;С - кинематика 0 - CoreXY, 1 - CoreYX

M2002 - Настройки концевиков
    ;X, Y, Z, E - оси, P - probe (сенсор уровня стола)
    ;Sensors passive level (1 - vcc / 0 - gnd)
    M2002 T0 E1
    M2002 T1 E1
    M2002 X1 Y1 Z1 P0
M2002.1 - Настройки позиции концевиков
    ;X, Y, Z
    ;Sensors position (0 - min, 1 - max)
M2002.2 - Прочее
    Назначения
    Z0 - Z->ZMin Probe->ZMax, Z1-Z->ZMax Probe->ZMin
    Контроль срабатывания концевиков (hit test)
    H0 - выключен, H1-включен

2021-08-18 
	-Исправлена ошибка сенсора Z

2021-08-19
	-Сообщение telegramm "принтер подключился к сети" в момент подключения и смены telegramm char_id
	-backup опций телеграмм
	-esp32 удлинен финализирующий пакет
2021-08-23
	-Выключеная реакция на M997 (обновление прошивки). Эту команду отправляет плагин MKS, что приводит к перезагрузке принтера
	-Сенсоры z-min. Не менялось значение (исправлено)
	-Синтаксическая ошибка Инструмены->Инструменты (исправлено)
	-Обновление yandex key и telegram chat id без перезагрузки
	-Исправлена ошибка бакапа положения сенсоров
2021-08-24
	-При срабатывании концевика по Y отражалась пиктограмма X. Исправлено	
	-Фильтр M2029
	-Синхронизация кнопки пресетов температуры (не работает)
2021-08-30
	-Исправлено. Если при выключенном WiFi включить телеграмм или обратиться к Яндекс диску, принтер уходит в перезагрузку
	-Синхронизация кнопки пресетов температуры

2021-09-03
	-Опция E1<=>E2 - Переключить мотор экструдера 1 в порт экструдера 2 и наоборот.
		-Если в настройках включен только один экструдер, при включенной опции E1<=>E2 набор портов для E1 останется не инициализированным A B Z -- E1
		-Если в настройках включена опция E2=>Z2, то при включенной опции E1<=>E2 назначение для драйверов моторов будет следующее A B Z Z2 E1
	-Добавлен еще один дизайн UI, спасибо Максим. firmware/custom-ui/moroz110

2021-09-13 (dev) после прошивки конфигурация будет сброшена. Не забыть сделать backup, и потом его восстановление.
	-Добавлены опции конфигурации нагревателя стола
		-Переключатель PID <=> BANG-BANG (пока только настройка, алгоритм не переключается)
		-Настройки BANG-BAND: Гистерезис, дискретность
		-Контроль dT - контроль изменения температуры при нагреве. (реализовано)
			В Марлин, если температура стола меньше целевой, и за определенное время она не изменилась в большую сторону, 
			возникает ошибка с завершением работы. Этот контроль теперь можно отключить. Индикатор под пиктограммой с температурой стола станет оранжевый.
		
2021-09-13 (test-only)
	-Переключатель PID <=> BANG-BANG без гистерезиса и настраиваемой дискретности

2021-09-14 (test-only)
	-Настройки bang-bang: Гистерезис, дискретность
	-Контроль провала температуры стола - опционально
	
	M2016 - Настройки нагревателя стола
    	M2016 P1 H2 D5000 W1 R1
		P - 1-PID, 0 - BANG-BANG
		H - гистерезис (градусы)
		D - дискретизация (миллисекунды)
		W - watch -  Контроль нагревателя стола, обязательное положительное изменение температуры при нагреве
		R - runaway - Контроль нагревателя стола, runaway уход температуры вниз

2021-09-15 (test-only) обновление RESDUMP.BIN и @snippets.gcode
	M2097 - пропуск последующего g кода до M2098
	M2098 - завершение пропуска g кода
	
	-Во время паузы при долгом нажатии на кнопку продолжения печати появляется диалог с выбором вариантов продолжения
		-Продолжить после паузы (аналогично кратковременному нажатию)
		-Выполнить сниппет 24 - переход на следующую модель (запуск пропуска кода до M2098)
	-Новые пиктограммы состояния (правый верхний угол): пауза, пропуск g-кода


2021-09-15 (test-only)
	-Картинка preview в диалоговом окне во время загрузки файла по WiFi или с Yandex, поддержка формата SHUI50/100, WIN/UNIX конец строки
	-Статусные сообщения передаваемые модулем WiFi

2021-09-15 (test-only)
	-Исправлена ошибка паузы при задании в слайсере относительной системы координат экструдера
		-Теперь во время паузы сохраняется, а после паузы восстанавливается:
			-настройки относительная/абсолютная система координат для осей и экструдера
			-cкорость  подачи
			-масштабирование подачи филамента и скоросити передвижения по осям
		-Во время паузы масштабные коэфициенты прининмают значние 1.

2021-09-20 (test-only)
	-Новый скин от tg:@Andr7567 https://github.com/vyacheslav-shubin/shui/tree/master/firmware/custom-ui
	-Цвета используемые в прошике теперь можно настроить в профиль файле ресурсов (для разработчиков скинов UI), требуется обновление инструментов сборки UI и файла профиля (репозиторий shui-res)
	-Кнопка "Выключение питанием" теперь настраиваемая
	-Новый виджет в конфигурировании: Конфигурация UI. В него вошли параметры относящиеся к UI, ранее расположенные в "Разное"
	-Конфигурация UI - можно задать настраиваемую кнопку:
		        0 - не отображается
			1 - выключение питания (если модуль установнен),
			2 - упрвление филаментом,
			3 - упрвление вентиляторами,
			4 - упрвление нагревателями,
			5 - парковка,
			6 - уровни,
			7 - перемещение,
			8 - консоль g кода
			9 - ядекс диск (если модуль esp32 установнен)
			10 - debug
	-Новый код для конфигурирования:
		M2017 - Переопределение UI
		    L - цвет config-line (в конфигурацию не сохраняется)
		    D - цвет dialog-frame (в конфигурацию не сохраняется)
		    N - номер кнопки
		    W - вызываемый виджет (код см. выше)

		Парные цвета (в конфигурацию не сохраняется)
		    B-background color
		    F-foreground color
		M2017.1 - основной цвет фона и текста
		M2017.2 - цвет фона и текста окна с системной ошибкой
		M2017.3 - прогресс бар
		M2017.4 - warning прогресс бар
		M2017.5 - Окно терминала

2021-09-21
	-Набор инструментов. Все кнопки настраиваемые. Долгое нажатие на кнопку приводит к выбору нового варианта
	-Конфигурация UI - настройка кнопок удалена за ненадобностью
	-Цвета используемые в прошике теперь можно настроить в профиль файле ресурсов (для разработчиков скинов UI), требуется обновление инструментов сборки UI и файла профиля (репозиторий shui-res)
		+Рамка консоли, цвет линии текущего измерения температуры, цвет графика температуры
	-Португальский язык

2021-09-22
	-Исправлена ошибка приводящая к зависанию после установки новой прошивки с измененной версией конфигурации
	-Исправлена ошибка настраиваемых кнопок: реакция на выключенную кнопку управления питанием
	-Исправлена ошибка определения цветов в файле ресурсов

2021-09-22
	-Новый виджет перемещения (выбор из настраиваемых). Требуется обноление сниппетов

2021-09-22
	-Настройка "Передвижение стола по Z" - определеяет поведение UI в новом виджете перемещения. Область управления по Z рассматривается или с точки зрения движения стола (ноль вверху - sapphire, ultimaker) или рамы (ноль внизу - bluer)
	-Большая кнопка пресетов температур может переключаться в оба направления. Выбор направления зависимот от области нажатия - вверху или внизу. (отключается в конфигурировании UI)
	-Новая версия плагина к CURA. Настройки IP адреса принтера указываются в коде самого плагина. Там же можно выбрать используемый язык.
		
2021-09-27
	-Уровни. Долгое нажание на кнопку выбора режима запускает виджет конфигурирования
	-Уровни. Долгое нажате на кнопку "Автозамер" включает разметку ячеек MBL
	-Виджет печати "улитка филамент" вместо процентов отображает метраж использованного пластика. 

2021-09-29 +SHUIWIFI.BIN
	-Поле текста в виджете "Уровень стола" уменьшен
	-Поле для текста в переключателе Да/Нет уменьшено
	-SHUI WIFI. Поддержка датчика температуры BMP280 (BME280 будет добавлен чуть позже)
	-При наличии датчика BMP280 значение температуры будет отображаться в нижней части экрана рядом с временем.


2021-10-04 
	-LA по-умолчанию 0
	-Формат вывода значения LA 2 знака после запятой
	-Настройка/Нагреватели/Пресеты - можно задать пресеты нагрева
	-Виджет печати/Сетка MBL поле текста уменьшено на 2 пикселя (кастомизация ui)
	-Исправлена ошибка приводящая к нарушению обмена с модулем WiFi при прерывании печати файла.
	-ESP32 - включается светодиод при высокой скорости обмена с материнской платой (режим передачи файла)
	-Если во время печати передается файл по WiFi, печать нового файла не будет запущена. Передача файла во время печати не запрещена, но не рекомедуется.
	
2021-10-06  обновление ресурсов RESDUMP.BIN, @snippets.gcode, @pid.gcode 
	M2006 - команда отображения виджета
		Опция W будет удалена.
		Опция N имеет другую нумерацию вижетов:
        N - номер виджета (новый вариант)
                NONE = 0,
                POWER_OFF,
                FILAMENT,
                FAN,
                HEATING,
                HOME, //5
                LEVELING,
                MOVE,
                MOVE_PANE,
                CONSOLE,
                YANDEX, //10
                DEBUG,
                SECRET,
                TEMPERATURE_STAT, //13
	
	- Кнопка вызова клавиатуры в консоли ввода g кода более не может быть переназначена на другое действие.	
	- Сниппет вызова клавиатуры в консоли ввода g кода переназначен на калибровку PID (виджет статистики температуры)
	- На виджет с графиком температуры добавлена кнопка запустка сниппета 51 - калибровка PID
	- В файл @pid.gcode изменена команда запуска виджета графика температур M2006N13
	- Включены макросы M810-M814
	- "Йогурт таймер"
		-позволяет одноразово через определенный промежуток времени или периодически запустить ранее заданный макрос G кода или сниппет
		M2018 - Йогурт таймер
			H - часы
			M - минуты
			S - секунды
			A -
			    0-стоп/сброс,
			    1-старт (если задано время)/продожение(если HMS не указаны),
			    2-пауза,
			    3-цикличный старт
			P - 0/1 стоп таймера по окончании исполнения печатаемого файла
			R - run исполнение макроса:
			    подробнее (https://marlinfw.org/docs/gcode/M810-M819.html)
			    включено первые 5 слотов. Использовать можно 810-814
			    или сниппета 1-63
			    
	    		
		Виджет содержит четыре кнопки исполнения сниппетов 56-59, где могут быть заданы соответсвующие настройки таймера
		Пример: M2005 S57|M810 M300|M2018S10A3R810
			Сниппет 57. Задать макрос M810 - M300-звуковой сигнал
			M2018S10A3R810 - запустить циклический таймер с интервалом 10 секунд, по окончании интервала выполнить макрос M810
			
		Макросы M810 используют в качестве разделения команд символ |, поэтому, 
			для различия разделителей команд сниппета и макроса определение сниппета может иметь следующую форму:			
			M2005 S57#M810 M300|M117 Hello#M2018S10A3R810
			
			
		Код старта таймера можно встроить в скрипт инициализации печатаемой модели и, например, раз в 10 минут отправлять 
		состояние печатаемой модели в телеграм канал:
		M810 M117.1 P
		M2018 M10 A3 R810 P1
		
	-M117.1 Расширение реализации
		-M117.1 P - position - выводит текущую позицию

2021-10-08 Требуется обновление ресурсов RESDUMP.BIN. Обязательно обновить сниппеты!!!
	-Конфигурация/Моторы/Автовыключение (c)
		Определяет время, по истечении которого моторы автоматически отключаются, если не было команд перемещения
	-Оптимизация сниппетов
		Сниппеты S1-S9 заменены на 30-34
	-Виджет управления филаментом, Виджет перемещения: Отображение дельты филамента
	-Обмер стола. Можно задать до 5 (влючительно) обмеров одной точки.
		-поддерживается 2 алгоритма работы.
			1. Все измерения проводятся, значение усредняется
			2. Проводится не более максимального числа измерений. В случае наличия в серии двух измерений
				отличающихся друг от друга не более чем на заданную точность, за результат измерения приниматется
				среднее значение от двух замеров и повтор измерений прекращается.
				Если пары значений удовлетворяющих описанному критерию не нашлось, результатом измерения считается общее среднее серии.
	-M851
		С - clearance, L - z probe low point, N - number of failed probes
		B - bltouch (0/1) 
		дополнительные параметры:
		I - inaccuracy, O - optimization
	
	-M2001 - задание инверсии и кинетатики моторов, параметр T определяет для какого экструдера указыватся параметр E
	    M2001 X1 Y1 Z1 T0 E1    ;Stepper inversion (1 - inverted)
	    M2001 T1 E1	; Stepper inversion, extruder 1
	    С - кинематика 0 - CoreXY, 1 - CoreYX
	    
	    -новый параметр S
	    I inactive timeout - время в секундах, по истечении которого моторы переходят в отключенное состояние, если не использовались
		0 - не отключать моторы

2021-10-11 Обновить RESDUMP.BIN, После применения бакапа Запустить @snippets.gcode, @presets.gcode, сохранить бакап
	-начало 2021-09-27

	-M117.1 сообщения так же уходят в телеграмм. Было только в строку состяния на дисплей
	-Исправлена ошибка проявление которй могло быть следующим:
		-Виджет печати, во время измерения стола не работает отображение измеренной сетки
		-Виджет выключения не отображается
		-Во время срабатывания прерывания печати по окончании филамента при 
			обратном возврате отображается пустое диалоговое окно.
		
	-Дополнение M2014 - установка, сброс флагов
		F - flag - номер флага
		S - set (0/1) - включено/выключено
	    Флаги:
		22 - beeper (по-умолчанию может быть выключен)
	-конфигурация, разное, опция отключения звукового сигнала. Звуковой сиграл можно отключить только в вызовах прошивки, 
	звуковой сигнал бутлоадера останется без изменений.
	-настройка времени долгого нажания на кнопку сохрняется в бакап. Минимальное значение 1000ms
	-Колесо пресетов. SBS уданен, добавлен USER. Пресеты поменяли индекс, необходимо запустить файл @presets.gcode, предварительно растров его, если температуры по-умолчанию не соответсвуют требуемым:	
	    ; Material heatup parameters:
	    M145 S0 B60 H200    ;PLA Material preset
	    M145 S1 B70 H240    ;PETG
	    M145 S2 B110 H220   ;ABS
	    M145 S3 B100 H230   ;USER/NYLON
	    M0 S2 Snippets updated
	    M500

==================Включено fw 2021-11-01
	
2021-10-12 Обновить RESDUMP.BIN
	-Сниппеты стали не обязательны. Если для действия не задан сниппет, действие выполняется по-умолчанию
	-Виджет уровни:
		-Значение dZ можно задать без перехода в виджет конфигурации
		-Добавлены две кнопки для тестирования bltouch
		-Цикл обмера стола можно прервать

2021-10-16 
	-Настройки, разное - исправлен заголовок
	-Переключатель "включить логгирование" работает
	-Исправлена ошибка генерации картинки превью модели
	-Новый сниппет M2005 S25|G28XY|M300 - выполняется после прерывания печати.
		по-умолчанию установлено значение G28XY - парковка XY - оригинальное поведение Марлин
	-Йогурт таймер. По умолчанию исполняется сниппет 60
		M2005 S60|M140S0|M300|M117 Yougurt completted               ;* YOGURT DEFAULT SNIPPET	
		
2021-10-18 
	- MKS PWC, экран включится, если был выключен в момент нажатия на кнопку модуля
	- Виджет настройки уровней стола
		В режиме измерения сенсором долгое нажатие на кнопках поля стола приводит 
		к коррекции dZ на соответствующее измеренному значение. Конфигурация сохраняется автоматически.
	-Если после обновления требуется сброс конфигурации, а на флешке есть файл бакапа, после обновления будет предложено восстановить
	конфигурацию принтера автоматически
	-При переключении виджетов статус строка очищается
	-Конфигурирование/Модификации/Отображать T2 - включит отображение температуры полученной с терморезистора второго экструдера

2021-10-19
	-внутренний рефакторинг кода графических утилит
	
2021-10-20
	!!!! ВНИМАНИЕ! После прошивки и восстановления из бакапа титульный виджет может содержать случайный набор инструментов или пустых ячеек вместо кнопок.
	Для исправления этого необходимо выполнить/напечатать файл @UI.GCO
	Если кнопка Печать не присутствует на титульном виджете необходимо нажать на одну из кнопок 
	(или пустое место, где должна быть кнопка), удерживая ее 2-3 секунды,
	дождаться появления виджета настроек кнопки. Далее выбрать опцию "Печать" и вернуться на титульный виджет.
	

	-Для функций backup/restore добавлен отдельный пункт меню
	-Титульный виджет может быть переоформлен. Все кнопки можно заменить
		-Дополнительная опция в Настройки UI:
			Расширенный стартовый виджет - увеличивает число кнопок до 8
			Температуры на стартовом виджете - выбор отображения температур или настраиваемой кнопки
	-Новый пункт backup меню - backup ui
	-Кнопка выбора пресета темпратур может быть изменена с "прокручиваемого колеса" на диалоговую кнопку

2021-10-21
	-Исправлена ошибка в плагине для прюша слайсера

2021-10-23 !!! RESDUMP.BIN обновлен
	-Марлин 2021-10-21
	-Перехват комментариев с метаданными печати
	-Счетчик слоев
	-Пауза по смене слоя при превышении значения Z
	-Z offset
	M29 S0, S3, S4, S5
	-backup mbl z-offset
	-Исправлена ошибка приводящая к уходу сопла в правый дальний угол при начале печати.
		Ошибка проявлялась, если перед печатью выполнить загрузку филамента или его передвижение через виджет управления,
		что приводило к переключению в относительные координаты. 
		Отсутствие кода G90 в стартовом сценарии слайсера сильно удивило, так как управляющий g код должен инициализировать
		среду исполнения так, как в дальнейшем предполагает ее использование.
		Рекомендую в стартовый скрипт добавить команду G90
	-Сниппет передвижения филамента дополнен кодом возврата к абсолютным координатам
	-Перед началом печати режим абсолютных координат устанавливается принудительно
	-Обновлен виджет температур. 
		Долгое нажатие на пресеты вызывает виджет конфигурирования температур
		Кнопка OFF выключает выбранный элемент (сопло, стол, вентилятор)
		Долгое нажатие на OFF выключает нагреватели сопла и стола
	-Новый виджет перемещения совмещен с управлением филаментом	
	-В бакап добавлены настройки вижета печати
	-Виджет WiFI - список устройств на шине I2С 
	-M2017 дополнено
	    N - номер кнопки
	    W - вызываемый виджет
		0 - не отображается
		1 - выключение питания (если модуль установлен),
		2 - управление филаментом,
		3 - управление вентиляторами,
		4 - управление нагревателями,
		5 - парковка,
		6 - уровни,
		7 - перемещение,
		8 - консоль g кода
		9 - ядекс диск (если модуль esp32 установнен)
	    S - Виджет (кнопка) состяний
		0 - не отображается,
		1 - время печати,
		2 - текущая координата X
		3 - текущая координата Y,
		4 - текущая координата Z,
		5 - номер текущего слоя, число слоев, триггер паузы печати по высоте,
		6 - температрура сопла 1
		7 - температура сопла 2
		8 - температура стола
		9 - длина использованного филамента
		10 - текущая скорость
		11 - состояние вентилятора
		12 - смещение сенсора стола по Z

2021-10-23
	-Двунаправленная кнопка пресетов. Исправлено
	-Синхронизация кнопки пресетов с текущей температурой. Исправлено
	-"Возвращаущаяся кнопка пресетов". Исправлено
	-При прерывании печати можно оставить нагреватели включенными и не выполнять завершающий печать код (сниппет 25)

2021-11-01
	-junction deviation заменено на classic jerk
	-Исправлена ошибка в виджете настройки модуля питания (не открывалась вторая страница настроек)
	-Виджет Настройки стал кастомизируемый.
	-Виджеты Конфигурация, состояние wiFi, О прошивке, могут быть использованы для настраиваемых кнопок

2021-11-18 Перед установкой обновления не забудьте сделать backup. Настройки будут сброшены
	-Диалоговое окно завершения печати содержит опции прерывания. Умолчания опций можно настроить в конфигурации/конфигурация UI
	-Ручная калибровка стола, задание сетки. Исправлена ошибка, ранее сетка заполнялась с противоположным знаком.
	-Во всех режимах задания сетки кроме автоизмерения долгое нажатие на квадрат сетки позволяет ввести значение вручную с использованием калькулятора.
		В режиме равтоизмерения долгое нажатие приводит к корректировке dZ
	-Тестовая версия robin nano 1.3	перенесена в другой каталог 



	-Поддержка настройки драйверов TMC2029 (TMC2226) через UART (WiFi модуль может присутствовать)
	-Детектор подключенных драйверов, при условии что драйверы имеют уникальные адреса
	-Ручное указание используемых адресов для драйверов (на одном адресе может быть несколько драйверов)
	
	-Упрощенный виджет настройки TMC2029 (Vref, микрошаги). 
	-Расширенные настройки. (Внимание! 
		Перед экспериментами с расширенными настройками настоятельно рекомендую 
		детально ознакомиться с описанием минкросжемы TMC2209)
	Для расширенных настроек описаний и пояснений не предполагается. Все параметры соотсветствуют описанным в спецификации на микросхему:
	https://github.com/vyacheslav-shubin/shui/blob/master/misc/TMC2209_V103.pdf
	
	Драйверы TMC2029 и модуль WiFi разделяют одну шину UART, поэтому в момент детектирования и настройки TMC2029
	WiFi модуль в настоящий момент отключается и по завершении инициализирутся снова. 
	Модуль WiFi можно оставить в работе в фазе обмена данными с TMC2029... пока не решил, надо ли это. Текущее решение кажется достаточным
	
	Так как переработке подверглись все алгоритмы работы с UART и иницализации модуля WiFi возможны ошибки связанные с настройкой модуля WiFi.
	Не все параметры могут применяться сразу, но применятся после перезагрузки.

2021-11-20	Требуется обновление RESDUMP.bin
	-QR код со ссылкой на справку. Пока только с титульного виджета и виджета настройки стола

	
2021-11-22
	Внимание! Не переключайте сенсор температуры на Pt1000 ради эксперимента, если у вас он не установлен. 
	Этот сенсор имеет прямую зависимость сопротивления от температуры. При комнатной температуре установленный сенсор 
	с данной настройкой будет приводить к защите по перегреву. Исправить совершенную ошибку, если вы ее совершили, можно сбросом настроек, 
	создав на флешке файл reset.bin (см. обновление от 2021-04-28)
	
	-Изменен фильтр G кода. Убрано перенаправление G29->M2029, код M2029 временно оставлен для совместимости
	-Для G29 Добавлена опция M1 - замер только в одной точке по центру, остальные принимают то же значение
	-Если во время печати происходит замер стола и сенсор bltouch не срабатывает, Марлин это воспринимает как ошибку. 
		Предполагается остановка печати. Процедура остановки выполняет выключение нагревателей, 
		таймера текущего просесса печати, однако не останавливает чтение с флеш карты.
		Добавлена опция: Игнорировать ошибки bltouch. Если опция включена ошибки замера сетки стола приводят 
		к общему сбросу замера и отказу в применении сетки а печать продолжается. Если опция выключена печать прерывается.
	-Добавлен переключатеть таблиц терморезисторов. (настройки, нагреватели)
            0 - // R25 = 100 kOhm, beta25 = 4092 K, 4.7 kOhm pull-up, bed thermistor
            1 - // Pt1000 with 4k7 pullup
    M2016.1 - нагреватель экструдера
        E - номер (0, 1)
        L - предел нагрева
        S - сенсор
            0 - // R25 = 100 kOhm, beta25 = 4092 K, 4.7 kOhm pull-up, bed thermistor
            1 - // Pt1000 with 4k7 pullup
      
      M2016.1 E0 S0 L300
      M2016.1 E1 S1 L350
	    
2021-11-24
	-Добавлены ссылки на справку

2021-11-30 ВНИМАНИЕ @snippets.gcode обновлен! Если ранее использовались сниппеты ПРИМЕНЕНИЕ @snippets.gcode или сброс сниппетов после прошивки ОБЯЗАТЕЛЬНО!
	Омедвеживание:
	-Выбор сенсора температуры, по которому управляются вентиляторы подвала и охлаждения сопла
	-Можно задать скорость вентиляторов подвала и охлаждения сопла
	M2020 - настройка вентиляторов подвала и охлаждения сопла (медвежий режим)
	    T - температура автоматического включения
	    P - скорость в процентах
	    S - сенсор 0, 1	
	M2014 - установка, сброс флагов
        	F - flag - номер флага
        	S - set (0/1) - включено/выключено
        	9 - Вентилятор вместо второго хотэнда (флаг 7 должен быть сброшен)

	-В сниппетах шаблоны форматирования %f заменены на %s. Сборка под F407 не поддерживает форматирование float данных. Преобразователь float в строку - отдельная функция.
	
	-В настройках паровки можно задать значение отката для повторной парковки с меньщей скоростью (bumping)
	-Приорит парковки XY или YX
	-Паковка Z по сенсору уровня стола (рекомендуется включть дополнительно опцию z по центру)
		
	-Поддержка плат Robin Nano 1.3 на базе STM32F407 (без модуля WiFi и управления драйверами trimanic)
	
	-Конфигурация, Архивирование. Новая опция "Сброс сниппетов"
	
	-Переключаемые таблицы сенсоров температуры:
		0 - 	// Marlin #1, R25 = 100 kOhm, beta25 = 4092 K, 4.7 kOhm pull-up, bed thermistor
		1 - 	// Marlin #1047, Pt1000 with 4k7 pullup
		2 -	// Marlin #5, R25 = 100 kOhm, beta25 = 4267 K, 4.7 kOhm pull-up
			// 100k ParCan thermistor (104GT-2)
		3 - 	// Marlin #9, R25 = 100 kOhm, beta25 = 3960 K, 4.7 kOhm pull-up, GE Sensing AL03006-58.2K-97-G1
	-Коэффициенты преобразования таблиц терморезисторов
		Tout=(Tin-cP)*kT
	-Расширение M2016.1 		
	        C - Точка пересечения кривых температур
        	T - Масштабный коэффициент (0.5-2)
            		To=(Ti-C)*T+C

2021-11-30
	-Опция "Смещение сенсоров парковки" позволяет указать на каком расстоянии от ноля оси установлен сенсор (не путать с сенсором уровня стола bltouch).
		При отсутствии сенсора стола концевик по z можно установить отодвинув от ноля 0.5-1мм. Далее калибровать парковку стола при помощи
		параметра смещения Z. Для оптических концевиков этот параметр может иметь достаточно большой разброс. Для механических определяется 
		допустимым ходом пружинки кнопки.

2021-12-02
	-Подготовительные доработки для запуска uart на F4
	-UART на низкой скорости f4
	-Настраиваемая скорость парковки
	-Настраиваемый множитель повтороной парковки

	    
2021-12-02
	M303 - расширение. Калибровка PID по таблице 
		При наличии B или H определяются следующие параметры:
			S - слот (0-4) если слот не указан, замеры производятся для всех слотов в последовательности возрастания температур
				если температура задана 0 - слот пропускается			
			С - Число повторений (больше 2)
			B - стол
			H - hotend
2021-12-09
	-Динамический PID, включеное в настройки/температура/Динамический PID
	-Виджет калибровки PID позволяет выбрать калибруемый нагреватель (стол, сопло)
	-Если сниппет калибровки pid не опререлен:
		Кнопка калибровки PID запускает калибровку динамического PID по таблице температур 
			если включено, если нет - стандартный PID: Сопло 220, стол 90
		(сбросить настройки сниппетов можно в меню Архивирование, вторая страница)	
	-При калибровке PID есть возможность прерывания
	-M73 (набросок)		

2021-12-09
	-Исправлена ошибка в редакторе температур
		
2021-12-16 Требуется обновление RESDUMP.BIN, SHUIWIFI.BIN (ESP32)
	-Телеграмм диск
		Файлы с G кодом можно располагать в канале, куда бот @shui_wifi_bot отправляет сообщения или любом другом (см. ниже).
		Появился новый инструмент "TG диск". Расположить его можно как на титульном виджете, так и на виджете инструментов.
		Прежде чем добавлять файлы в канал, необходимо боту @shui_wifi_bot дать права на чтение сообщений в канале
		Для ботов телеграмм есть ограничения. Телеграмм бот может получить доступ к файлам, размер которых менее 20М.
		В дальнейшем можно будет добавить архивы ZIP.
	-Ссылки на внешние хранилища файлов
		на флешке можно разместить файлы-ссылки, по которым происходит переход на яндекс или телеграмм диск.
		В содержании этих файлов должен быть указан ключ доступа к соответствующему хранилищу.
		Для Яндекс диска это выданный ранее ключ, для телеграм - id канала.
		Таким образом, можно иметь доступ к нескольким внешним хранилищам, создав для каждого отдельный файл-ссылку.
		Для теста можно использовать канал shui-public, id = -1001197511741 (файл ссылка прилагается в обновлении)
		ВАЖНО! В браузере файлов отображаются не все файлы, а лишь те, расширение которых в формате 8.3 удовлетворяет 
		заданному фильтру в настройках браузера. Для включения отображения ссылок на внешние хранилища фильтр следует указать
		следующий: "GCO,PLT,TG ,YA ". Пробелы в TG и YA - значимы.
		
	Следует понимать, что так как @shui_wifi_bot должен иметь доступ на чтение поступающих в канал сообщений, все каналы,
	куда он будет добавлен будут доступны серверному программноу обеспечению обслуживающему бота с правами, которыми наделен бот. 
	Если Вы не доверяете данной разработке или данные, которые будут публиковаться в телеграмм канале имеют особый статус секретности 
	не пользуйтесь телеграмм диском.	
	Это не относится к сообщениям отправляемым ботом во время работы принтера, так как для данного режима не требуется чтения сообщений канала.
	Серверное программное обеспечение, которое ведет базу данных загруженных файлов в стадии разработки, поэтому и базы данных и стабильность ответов
	телеграмм бота не является 100%. Используйте возможности телеграмм диска как перевалочный механизм для передачи файлов на принтеры.
	
2021-12-25 Требуется обновление RESDUMP.BIN, SHUIWIFI.BIN (ESP32)
	-Яндекс диск. Можно подключить публичные папки.
		Публичные папки Яндекс диска имеют адреса вида: https://disk.yandex.ru/d/IgGCwtuzoiksMw
		Их можно указать вместо ключа к Яндекс диску как в настройках M2009.4, так и файлах ссылках (см) toys.ya 
		https://disk.yandex.ru/d/IgGCwtuzoiksMw
	-Телеграмм бот
		Ранее была добавлена возможность получать файлы загруженные в канал, к которому у бота есть доступ на чтение сообщений (см обновление от 2021-12-16)
		Ограниечение на размер таких файлов 20М. Добавлена поддержка ZIP файлов. Сам размер ZIP файла так же ограничен 20М. ZIP Файл может содержать несколько 
		файлов с G кодом, но доступен будет только первый. Поэтому, zip архивы сдедует использовать лишь для преодоления ограничения бота на размер файла в tg канале.
		
		Через телеграмм бота можно получить досту к публичным git хранилищам. GitHub позволяет взаимодействовать с ним анонимному пользователю через специальный сервис,
		но это взаимодействие ограничено лимитом обращений в месяц. Для снятия этих ограничений на git надо зарегистрироваться и по агалогии с Яндекс диском получить 
		пользовательский ключ доступа по ссылке: https://shui.j76.ru/git.php. Ключ выглядит примерно так: gho_R2qWxAJSi3_____XBWFNAh0zEyPhf_____
		Далее надо сообщить телеграмм боту в своем канале ключ командой /git key gho_R2qWxAJSi3_____XBWFNAh0zEyPhf_____, после этого
		можно добавлять хранилище git с публичным доступом. Например: /git add vyacheslav-shubin/3d-models 
		В ответ бот вернет ключ доступа в git: 67F4192E-3E0D-48BF-AE1F-BFAB0461F5E9
		посмотреть все зарегистрированные репозитории можно командой /git list
		Полученный от бота ключ надо сохранить на флешке в файле ссылке, например shui-3d.tg
		Проверить работоспособность ключа можно по ссылке https://shui.j76.ru/bot.php?channel=<КЛЮЧ>
		https://shui.j76.ru/bot.php?channel=67F4192E-3E0D-48BF-AE1F-BFAB0461F5E9 в результате должен отобразиться список файлов g кода или каталогов. 
		Все остальные файлы будут скрыты
		Точно так же можно регистрировать источники с Яндекс диска. Файлами ссылками с ключами, выданными ботом можно обмениваться, так как и отозвать их
		можно в любой момент.
		Вызов справки: /yandex, /git
		
2021-12-27 Обновлений не требуется
		-Поддержка Dropbox. Регистрация через телеграмм бота.
		
Известные ошибки:
	-Robin Nano 1.1 не прошивает плату WiFi - откатиться до ранней версии (сентябрь), прошить WiFi, вернуть текущую версию
	-После получения по сети файлов с определенным размером по завершении обмена после сообщения об удачном завершении возникает сообщение "Ошибка протокола обмена'
		Ошибка не устранимая. В ближайшем обновлении исправлена
	-Кнопка выключения питания не работает. - установить сниппет: 
			M2005 S16|M81C ;* POWER_OFF UI BUTTON		    
			или M2005 S16|M140S0|M104S0|M81C	


2021-12-27
	-sensorless
	-PID (простой, ступенчатый) - возможность задания максимальной мощности
	-Удание файлов с длинными именами

2022-01-17
	-Постепенно начал заменять драйвер FAT. На текущий момент:
		-Передача по сети файлов поддерживает длинные имена
		-Удаление файлов как 8.3 так и с длинным именем
		-Алгоритм записи файла на флешку работает на низком уровне оперируя кластерами и блоками флешки
			Управление таблицей fat - оставлено оригинальное от Марлин
		-В случае ошибки записи блока происходит повторная попытка записи, что исправляет ошибки связанные 
		со временем подготовки флеша для записи и не требует снижения общей скорости обращения.
	-Для Z safe point можно указать точку	

2022-01-20
	-Загрузка файлов BIN. Согласие на исполнение файла приводит к перезагрузке принтера. Предполагается, что BIN файлы содержат прошивку. 
		При установленном модуле управления питанием принтер выключится. После включения произойдет обновление ПО.
	-Добавлен сброс флага watchdog во время выделения кластеров sd карты. Для большого диапазона время перекрывало допустимое, 
		что приводило к перезагрузке по прерыванию от watchdog
	-Плагин к CURA - разрешены длинные имена файлов	
	-Строка часов сдвинута чуть левее

2022-01-20
	-Исправлено. После загрузки некоторых файлов возникало сообщение "Ошибка протокола обмена", при этом сам файл загружался нормально.
	-Завершение загрузки файла по wifi без рестарта модуля

2022-01-21
	-Виджет настройки стола перекомпанован.
	-M42 - прямое управление пинами. Включено.
		M42P2S1 - 1 на PA2
		M42P2S0 - 0 на PA2
	-Новая опция управления питанием. Реверс PA2
		При включенной опции в момент выключения пин PA2 переключается на выход и на нем устанавливается логическая единица
		Если опция PWC не включена, то при включении пин PA2 переключается на выход и на нем устанавливается логический ноль
		
2022-01-24
	-Добавлена кинематика MARKFORGED
	-Каталоги с прошивкой теперь называются:
		rn12_core
		rn12_xyz
		rn12_mfg
	
2022-01-27
	-Настойки/конфигурация/разное новая опция "Низкая частота SD"
		Опция переключает тактирование шины SDIO с 4.5МГц на 2.25 что приводит 
		к более медленному обмену с SD картрой и уменьшает число ошибок записи.
	-Только истинный сектант может достичь дьявольски высоких температур стола!

2022-01-28
	-f4 модуль wifi (все функции кроме передачи файла)


2022-01-31
	-Нагрев сопла и PID сопла. Ограничение мощности заданное в PID влияет и на диапазон вне действия PID (+-10 градусов до цели)
	-Ограничение начинает действовать начиная с заданной температуры. До этого значения нагрев идет на полную мощность
	
2022-02-01 ВНИМАНИЕ! Для COREXY необходимо переключить кинематику Конфигурация/Кинематика
	-Сброс babystep после печати при установленном флаге "сброс частный растроек после печати"
	-Прошивки с разной кинематикой обхединены в одну. 
		каталог RN12 - прошивка для Robin Nano 1.1, 1.2 и их клонов
		каталог F4_RN13 - Nano 1.3
	-Переключаемая кинематика
	
2022-02-04
	- M2016.1 - нагреватель экструдера
	    E - номер (0, 1)
	    L - предел нагрева
	    S - сенсор
		0 - // Marlin #1, R25 = 100 kOhm, beta25 = 4092 K, 4.7 kOhm pull-up, bed thermistor
		1 - // Marlin #1047, Pt1000 with 4k7 pullup
		2 -	// Marlin #5, R25 = 100 kOhm, beta25 = 4267 K, 4.7 kOhm pull-up
		    // 100k ParCan thermistor (104GT-2)
		3 - // Marlin #9, R25 = 100 kOhm, beta25 = 3960 K, 4.7 kOhm pull-up, GE Sensing AL03006-58.2K-97-G1
		4 - // R25 = 2.5 MOhm, beta25 = 4500 K, 4.7 kOhm pull-up, DyzeDesign 500 °C Thermistor
	    C - Точка пересечения кривых температур
	    T - Масштабный коэффициент (0.5-2)
		To=(Ti-C)*T+C
	    Y - 0/1 dYmanic PID
	    F - температура быстрого нагрева
	-Robin Nano 1.3 -WiFi в полном объеме  	
		
2022-02-08
	-Вентилятор обдува модели. SoftPWM. Включение: Настройка/вентиляторы
	-Частота SoftPWM вентилятора SoftPWM * 2^w, чем выше частота, тем больше шаг изменения скорости вентилятора и тем меньше этих шагов.
             SoftPWM имеет 128 значений, что соответсвует W=0. При W=1 значений 64, W=2 - 32, W=3 - 16, W=4 - 8, W=5 - 4
	-Расширенная таблица t_66
	// R25 = 2.5 MOhm, beta25 = 4500 K, 4.7 kOhm pull-up, DyzeDesign 500 °C Thermistor
	-Расширенная таблица t_1010
	-Набор таблиц термисторов
		0 - // Marlin #1, R25 = 100 kOhm, beta25 = 4092 K, 4.7 kOhm pull-up, bed thermistor
		1 - // Marlin #1047, Pt1000 with 4k7 pullup
		2 - // Marlin #5, R25 = 100 kOhm, beta25 = 4267 K, 4.7 kOhm pull-up
		    // 100k ParCan thermistor (104GT-2)
		3 - // Marlin #9, R25 = 100 kOhm, beta25 = 3960 K, 4.7 kOhm pull-up, GE Sensing AL03006-58.2K-97-G1
		4 - // Marlin #66, R25 = 2.5 MOhm, beta25 = 4500 K, 4.7 kOhm pull-up, DyzeDesign 500 °C Thermistor
		5 - // Marlin #1010, Pt1000 with 1k0 pullup
	-по окончании печати исполняется сниппет №26 выполняющий отключение моторов, выключение нагревателей сопла и стола.
		M2005 S26|M84|M104T0S0|M140S0

2022-02-16 ТРЕБУЕТСЯ ОБНОВЛЕНИЕ RESDUMP.BIN
	-Починен QR код
	-Добавлена возможность сброса статистики
	-Знак "справка" выводится без мусорной точки
	-Адептам секты доступен режим перемещения файлов и каталогов. (осторожно с применением до окончания тестирования)
		Долгое нажатие на файле или каталоге вызывает меню выбора действий. Ножницы - запомнить выбранный файл
		Долгое нажатие на папке вызывет меню, где можно выбрать пункт вставки в папку ранее выбранного файла
		Для объектов вне корневой папки есть пукнт меню - перенести в корневую папку.

2022-02-17
	-Данные о смещении осевых сенсоров сохраняются в бакап
	-Создание и удаление (не пустых в том числе) каталогов
	
2022-02-18
	-Калькулятор. Если начать ввод с цифр - текущее значение автоматически обнуляется. Математические операции сохраняют предыдущее значение
	-Опция "Ноль на калькуляторе" становится избыточной и будет удалена
	
2022-02-19
	-F4 Robin 1.3 Поющий вентилятор, не работающий SoftPWM - решено. Спасибо @LexxWSC за помощь!
	
2022-03-01
	-Импульсный датчик движения филамента (энкодер)



2022-03-08 (test only)
	-Фильт G кода управления вентиляторами M106, M107
	-Дополнительны настройки Управлени питанием:
		-Автоматическое отключение нагревателей по бездействию (нет передвижения, нет ожидания нагрева-охлаждения, нет прикосновений к экрану)
		-Автоматическое отключение принтера по бездействию
		Значение 0 - отключает алгоритм

	-"Медвежий" режим вентилятора включен по-умолчанию
	-Доработана кнопка пресетов температур
	-Статус сообщения по смене слоя: Layer 5/116 Z:0.90
		Значение Z - может отличаться от значения на котором печатается слой. Это зависит от того, где слайсер ставит маркер смены слоя 
		до опускания стола или после.
	-Триггер паузы можно задать по номеру слоя.
		
2022-03-16 (test only)
	-Типы сообщений отправляемых в телеграмм можно задать в настройках
	-Сообщения в телеграм поддеживают переключение языка (кроме тех, которые выдает Марлин самостоятельно)
	-Изменен виджет подстройки печати, добавлены рывки, убраны минимальные скорости подачи
	-Настройка/экструдеры. Можно задать скорость загрузки/выгрузки филамента и отдельно для пошагового перемещения.
	-Снова в дополнение к сниппету перемещения филамента включены отдельные сниппеты для зарузки-выгрузки: 
		34 MOVE_E_RELATIVE, 17 LOAD, 18 UNLOAD. Сниппеты должны содержать поле %s которое заменяется на значение длины загрузки-выгрузки из конфигурации или 
		селектора шага перемещения.
		Скорость перемещения филамента задается в сниппетах явно, например: G91|G1E%sF2000|G90, или G91|G1E%sF2000|G1E20F300|G90. Второй вариант сниппета 
		быстро загрузит филамент и сделает доводку 20 мм на медленной скорости.
		Если сниппеты не заданы, используется определение по-умолчанию: G91|G1E%sF%d|G90, где поле %s - дистанция перемещения, а %d - соответсвующая скорость перемещения
		заданная в конфигурации.
		
		
2022-03-21 (test only)
	-Исправлено: Если отключение моторов по бездействию отключено, не правильно работает автоотключение нагревателей
	-Кнопки-сниппеты. Файлы с расширением .snippet выполняются так же как конфигурационные файлы @, но могут содержать преаью 100х100
	-Режим техника (файлы SHUIWIFI.BIN не будут переименовываться после прошивки модуля)
	-При загрузке файла через wifi дисплей принудительно включается
	
2022-03-22 (test only)
	-Исправлено: При прерывании загрузки файла в некоторых случаях происходила перезагрузка принтера.
	-M2031 - Открыть внешний диск:
			[Y|T|O]:KEY
			Y - yandex
			0 - other
			//Yandex SHUI Firmware
			M2031 Y:https://disk.yandex.ru/d/AXI7sKW73vzvLA
			//GIT SHUI-3d models
			M2031 O:67F4192E-3E0D-48BF-AE1F-BFAB0461F5E9
			//Телеграм - shui-public
			M2031 O:-1001197511741
	
	-M2031.2 - загрузить файл (экспериментально)
			F: - номер файла (0 - по умолчанию)
			D: - каталог

    M2031.2 F:0 D:/test-only/RN12

	-Кнопка-сниппет ui/firmware.snippet - ссылка на git/shui
	-Кнопка-сниппет ui/RN12.snippet - загрузка git/shui/test-only/RN12/Robin_nano35.bin

2022-03-30 ТРЕБУЕТСЯ ОБНОВЛЕНИЕ RESDUMP.BIN
	-точка смены филамента может быть X,Y>255
	-Отложенный старт печати

2022-04-05 (+обновление для EP32)
	ВНИМАНИЕ!!!!
	Это обновление задевает критически важные алгоритмы прошивки. 
	Не рекомендуется его устанавливать, не понимая сути выполненных изменений до окончания тестирования
	или до подтверждения работоспособности от более опытных участников.
	Предыдущая тестируемая версия перенесена в раздел firmware
	Обновить модуль WiFi ESP32 можно независимо от обновления материнской платы.
	
	
	-переписан алгоритм контроля и управления нагревателями
	-Все нагреватели могут быть настроены PID - BANG-BANG, у каждого своя таблица ступенчатого PID
	-Контроль нагревателей можно отключить (не рекомендуется отключать контроль датчика и превышение максимума)
	-Исправлено: Циклоп+медвежий вентилятор
	-Формула корректировки показания термосенсора может быть измененя на T=t*kT+cP

	ESP32:
	-добалены ntp серверы: [0-3].europe.pool.ntp.org,
	    ранее использовались серверы ntp[1-5].stratum1.ru, ntp[2-5].stratum2.ru
	    как оказалось, не везде зона RU доступна.
	 Из-за недоступности зоны RU так же не будут работать облачные диски.   
	
2022-04-12
	-Выравнивание стола по двум концевикам Z (два мотора на Z без синхроремня).
		Включение: модификации, Асинхронный Z2
		Z1<->Z2 - корректировка сопоставления датчиков и моторов (или переткнуть на плате при несоответствии)
		Сенсоры, сенсор стола - Z1+Z2
	Спасибо Алексею Облезову (@faith_healer) за помощь в разработке и тестирвании.

2022-04-23
	-RN13 - Исправлено: "одноразовый WiFi", огромное спасибо Alexander Shutko (tg: @AlexShutko) 
		за детальное описание проявления проблемы и помощь в тестировании
	ESP8266 - Осталась общая пробема прерывания загрузки файла, на принтере, если передача идет через плагин. Модуль wifi сбрасывается, 
	но заново становится доступным через существенный промежуток времени. Прерывание передачи файла со стороны плагина проблем не вызывает.
	
2022-04-25
	-Добавлены настройки алгоритмов контроля за температурой
		-В настройках нагревателя добавлен параметр контроля разогрева +dT ...(градусы/мин).
		позволяет указать минимальную скорость нагрева. Актуально для слабых блоков питания и медленно греющихся столов.
		Если скорость нагрева меньше заданной - появляется ошибка "Не достаточно мощности". Настройка работает и для режима калибровки PID
	-Общее для всех нагревателей
		-Добавлен параметр "Время цикла PID". - определяет, какое максимальное время может длится один цикл PID, при однократном превышении 
		калибровка на заданной температуре повторяется с начала, при повторном - сообщение об ошибке о превышении времени цикла.
		Позволяет избегать ситуаций, когда коэффициенты подобрались так, что остывание или нагрев баллансируется близко к цели, но не переходит ее.
		Длительность цикла не стоить делать очень большой, достаточно незначительного превышения времени наибольшей полуволны нагрева или спада
		-Добавлен параметр "Перегрев" определяет маскимальное превышение целевой температуры PID. Умолчания Марлин - 30 градусов. Параметр добавлен для
		мощных нагревателях на хотэндах, но лучше сокраить общую мощность PID и задать температуру "быстрого нагрева".
	PS! Если общего понимания как работают описанные параметры нет, не стоит их изменять наугад, оставьте значения по-умолчанию.	
	-TG bot	

=========================== test only	


2022-05-20 (test only) Обновлен RESDUMP.BIN
	-M524
	-телеметрия
	-защита от шаловливых рук
	-исправлены заголовки телеграм, настроек нагревателей
	-обновлена прошивка для модуля ESP32

2022-06-10 (test only) Обновлен RESDUMP.BIN
	-Полное отключение LA. При отключенно опции алгоритм формирования сигнала step драйверов моторов соответствует Марлин без LA.
	-Ручная калибровка PID. Виджет позволяет вручную подобрать коэффициенты PID. Автоматическиго сохранения в слоты ступенчатого PID не предусматривается. 
	-Кнопку блокировки экрана можно убрать с виджета печати	
	-Запуск сценариев Алисы: (обновление для модуля WiFi)
		M2015.1 <id сценария>
		

Требуется решить:
	ESP8266 - Пробема прерывания загрузки файла, на принтере, если передача идет через плагин. Модуль wifi сбрасывается, 
	но заново становится доступным через существенный промежуток времени. Прерывание передачи файла со стороны плагина проблем не вызывает.

	

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].