FAQ - ghzserg/zmod GitHub Wiki

FAQ

Частые вопросы

Поставили мод.

Ни хотите ни в чем разбираться - печатаете как и печатали.

Вообще ничего нигде настраивать и менять не надо.

Решили, что готовы двигаться дальше - двигаетесь - читая документацию.

Чем ZMOD отличается от KlipperMod/родной прошивки

Разница между KlipperMod и ZMOD:

  • KlipperMod использует собственный клиппер
  • ZMOD использует стандартный Klipper из родной прошивки
  • KlipperMod работает с KlipperScreen/GuppyScreen и без родного экрана
  • ZMOD работает с родным экраном/GuppyScreen и без родного экрана.
  • KlipperMod использует Moonraker-timelapse
  • ZMOD использует moonraker-telegram-bot на ВНЕШНЕМ хосте с поддержкой таймлапс

Разная философия.

  • KlipperMod - по сути альтернативная реализация прошивки.
  • ZMOD минимальное вмешательство в родную прошивку. Все функции родной прошивки сохранены.

Именно по этому, в ZMOD не будет G17, G18, G19 - хотя это просто. Не будет обновлений родного клиппера, не будет переименований или изменений стандартных макросов, настроек, названия пинов и т.д.

ZMOD НЕ основан на KlipperMod, и НЕ является его развитием. При этом в ZMOD используются некоторые макросы и скрипты из KlipperMod, а также использовались наработки из KlipperMod. Но не стоит ожидать от ZMOD поведения аналогичного KlipperMod.

ZMOD бинарно не совместим к KlipperMod.

Что есть в KlipperMod и чего нет в ZMOD:

  • KlipperScreen - экран для принтера. В ZMOD вместо KlipperScreen родной экран.
  • Moonraker-timelapse - в ZMOD используется Телеграм бот
  • Настройка сети через iwd - в zmod настройка сети через родной экран.
  • Автоматическое подключение USB-Flash. В zmod работа с флэшками возможна только через родной экран. Запросов на реализацию работы с флэшками без родного экрана не поступало.

Что есть в ZMOD и чего нет в KlipperMod:

Что есть в ZMOD и чего нет в родной прошивке:

  • Поддержки Moonraker/Fluidd/Mainsail
  • Поддержки Телеграм бота
  • Всех функций что перечислены в сравнении с KlipperMod

Я использую вариант с экраном. Отправляю файл на печать, а на экране температура 0 0 и печать не идет.

Добавьте в стартовый код в самое начало 2 строчки

M190 S[bed_temperature_initial_layer_single]
M104 S[nozzle_temperature_initial_layer]

Без этих строчек экран принтера не знает до какой температуры надо греть сопло и стол. бегемот

После установки ZMOD мой экран умер, не реагирует на нажатия.

Надо ли менять что-то в стартовом коде

Если работаете с родным экраном, то ничего менять не надо.

При работе без родного экрана/Guppy (а также рекомендуется и при работе с экраном) заменить весь стартовый код:

START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]
M190 S[bed_temperature_initial_layer_single]
M104 S[nozzle_temperature_initial_layer]
SET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count]

А конечный код на:

END_PRINT

Чтобы корректно считались слои во Fluidd, в код смены слоя прописать:

SET_PRINT_STATS_INFO CURRENT_LAYER={layer_num + 1}

Если вы хотите включить авто калибровку при каждой печати, введите 1 раз в консоль Fluidd/Mainsail

SAVE_ZMOD_DATA CLOSE_DIALOGS=2 PRINT_LEVELING=1 USE_KAMP=1

Через меню экрана принтера перейти на вкладку Настройки -> Иконка WiFi -> Сетевой режим -> включить ползунок Только локальные сети.

Прочитайте документацию к START_PRINT и SAVE_ZMOD_DATA, это позволит вам использовать расширенные и полезные функции ZMOD

Если хотите воспользоваться откатом из прошивки, то прочитайте документацию и добавьте Профиль прутка -> Дополнительно -> Стартовый G-код прутка

SET_RETRACTION RETRACT_LENGTH=[filament_retraction_length]

енот

Как работает Z-Offset

При работе с экраном мод никак не вмешивается в работу z-offset.

Используется z-offset сохраненный на экране.

Смещение Z из Fluidd/Mainsail/GuppyScreen влияет только до перезагрузки и менять его без понимая, куда движется сопло не стоит.

Любой вызов SET_GCODE_OFFSET (а он автоматически вызывается при изменении смещения Z из Fluid/Mainsail/GuppyScreen) сохраняет текущий z-offset в глобальные параметры мода. Но это сохраненное значение используется только в том случае, если указан глобальный параметр LOAD_ZOFFSET(который по умолчанию отключен, для вклчючения SAVE_ZMOD_DATA LOAD_ZOFFSET=1), не используется родной экран и используется макрос START_PRINT.

Также для задания Z-offset можно использовать параметры START_PRINT

  • Z_OFFSET - Установить Z офсет (0.0)
  • SKIP_ZOFFSET - Для печати с родного экрана не устанавливать Z offset, т.к. его устанавливает родной экран (True - для родного экрана / False - работа без родного экрана)

Какие есть варианты снятия карты стола?

Если вы хотите включить автокалибровку при каждой печати, введите 1 раз в консоль fluidd/mainsail:

SAVE_ZMOD_DATA CLOSE_DIALOGS=2 PRINT_LEVELING=1 USE_KAMP=1

Родной экран использует карты (всегда, это не исправляется, даже если вам не надо):

  • MESH_DATA - по умолчанию
  • DEFAULT - если установлена галочка leveling (построение карты стола перед печатью), а после печати карта DEFAULT всегда удаляется.

При работе без родного экрана используется карта:

  • auto - она автоматически подгружается при включении принтера.

Если вы хотите использовать другую карту при печати, то автокалибровку в глобальных параметрах надо выключить(SAVE_ZMOD_DATA PRINT_LEVELING=0):

  • укажите ее через параметр MESH макроса START_PRINT. START_PRINT MESH=moya_karta_na_80_gradusov.
  • загрузите в любом удобном месте (например в профиле прутка) через команду BED_MESH_PROFILE LOAD=moya_karta_na_80_gradusov. Убедитесь что у вас используется одна и таже карта в профиле прутка и START_PRINT, или отключите очистку сопла в START_PRINT, запуская ее через профиль прутка.
  • снимите заранее карту стола через макрос AUTO_FULL_BED_LEVEL. AUTO_FULL_BED_LEVEL EXTRUDER_TEMP=230 BED_TEMP=80 PROFILE=moya_karta_na_80_gradusov.

Через глобальные параметры

Я рекомендую использовать глобальные параметры, которые настраиваются один раз и используются при каждой печати. Менять стартовый и конечный G-код в этом случае нет необходимости.

Параметр PRINT_LEVELING:

  • Снимает карту стола при каждой печати

  • Если работаете с экраном, то карту стола снимает родной экран, так как если бы выбрали файл с экрана и нажали галочку Выравнивание. Если параметр равен 1 SAVE_ZMOD_DATA PRINT_LEVELING=1, то когда вы отправляете файлы через Orca/Fluidd/Mainsail, принтер считает, что вы с родного экрана выбрали файл для печати и поставили галочку Выравнивание. При каждой печати в этом случае будет сниматься карта стола.

  • Если работаете без родного экрана и используете макрос START_PRINT в начальном G-коде, то при каждой печати тоже будет сниматься карта стола

    Для включения этой возможности нужно настроить один раз макрос SAVE_ZMOD_DATA, параметр PRINT_LEVELING

    SAVE_ZMOD_DATA PRINT_LEVELING=1 (нужно вводить к консоль Fluidd/Mainsail). В этом случае карта стала будет сниматься при каждой печати.

    Для работы снятия карты стола с родного экрана необходимо, через меню экрана принтера перейти на вкладку Настройки -> Иконка WiFi -> Сетевой режим -> включить ползунок Только локальные сети

    Если этот параметр активен, то любые параметры START_PRINT, относящиеся к построению/использованию карты стола игнорируются(FORCE_LEVELING, FORCE_KAMP, SKIP_LEVELING, MESH).

Параметр USE_KAMP:

  • Можно включить адаптивное снятие карты стола (KAMP), тогда будет сниматься не весь стол, а только те части, где есть модели для печати. Автоматически снятие карты стола не запускается!. Этот параметр говорит, что если вызывается снятие карты стола, то запускать вместо него KAMP.

    Для включения этой возможности нужно настроить один раз макрос SAVE_ZMOD_DATA, параметр USE_KAMP

    SAVE_ZMOD_DATA USE_KAMP=1 (нужно вводить к консоль Fluidd/Mainsail). В этом случае, будет использоваться адаптивная карта стола везде, где возможно, в том числе и при снятии карты стола родным экраном по сети.

Через изменение стартового кода и макрос START_PRINT

Если вы не хотите пользоваться глобальными параметрами (SAVE_ZMOD_DATA PRINT_LEVELING=0), то вам доступны следующие параметры макроса START_PRINT, который прописывается в стартовый G-код.

  • FORCE_LEVELING - принудительно строить карту стола, True - строить, False - не строить (False)
  • FORCE_KAMP - запустить построение адаптивной карты стола, True - да, False - нет (False)
  • SKIP_LEVELING - не строить карту стола ни при каком условии. Сильнее FORCE_KAMP и FORCE_LEVELING (False)
  • MESH - имя карты стола, которую подгружать, если не задано, то ничего не подгружается, если не существует то будет создана ("")

Примеры:

Снятие полной карты стола:

START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] FORCE_LEVELING=True
M190 S[bed_temperature_initial_layer_single]
M104 S[nozzle_temperature_initial_layer]

Снятие адаптивной карты стола

START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] FORCE_KAMP=True
M190 S[bed_temperature_initial_layer_single]
M104 S[nozzle_temperature_initial_layer]

Алгоритм снятия карты стола в макросе START_PRINT:

  1. Если MESH не пустой, то загружается карта с именем записанном в параметре MESH
  2. Если SKIP_LEVELING = True - то карта стола не будет сниматься ни при каких условиях
  3. В противном случае, если стоит FORCE_CAMP=True, то снимается KAMP
  4. В противном случае, если не загружена карта стола (родная голова всегда грузит карту MESH_DATA) или если FORCE_LEVELING=True, то запускается построение карты стола, но она сама не сохраняется

Через макросы и кнопки во Fluidd

Если вы не хотите использовать макрос START_PRINT и глобальные параметры, то доступны следующие макросы:

  • AUTO_FULL_BED_LEVEL - снятие карты стола с очисткой сопла при заданной температуре стола и экструдера. Выключает нагрев после снятия карты..

    Этот же макрос можно вызвать кнопкой Fluidd/Mainsail, называется он КАЛИБРОВКА СТОЛА. Сняв карту стола при определенной температуре, можно нажать кнопку Сохранить параметры и карта стола сохранится в файл printer.cfg.

    Также его можно прописать в стартовый G-код:

    AUTO_FULL_BED_LEVEL EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]
    M190 S[bed_temperature_initial_layer_single]
    M104 S[nozzle_temperature_initial_layer]
    
  • KAMP - Адаптивная калибровка стола с очисткой сопла KAMP EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]

  • BED_MESH_CALIBRATE - снятие карты стола стандартным макросом klipper. Не рекомендуется использовать, т.к. не производится очистка сопла, а значит результаты будут некорректными. Адаптивная карта стола из Orca, совсем не рекомендуется, т.к. в ней нет рандомизации снятия точек, а это значит что при печати одинаковых моделей сопло каждый раз будет брать замеры в одних и тех же точках, что приведет к появлению микролунок, и как следствие к некорректной карте стола.

Используя стандартные команды KLIPPER

Для работы с MESH, есть стандартные макросы Klipper:

Если вы загружаете карту, через команды KLIPPER в профиле прутка, убедитесь что у вас используется одна и таже карта в START_PRINT и профиле прутка, или отключайте очистку сопла в START_PRINT и запускайте ее отдельно через профиль прутка.

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

  • CLEAR_NOZZLE - Очистка сопла как в родной прошивке
  • Параметр PRECLEAR - Дополнительная очистка сопла при снятии карты стола.
  • Параметр CLEAR - четыре алгоритма (можно добавить свой) очистки сопла линией, перед печатью.

Почему в документации периодически встречаются названия животных?

Документацию никто не любит/не хочет и не читает, хотя 90% вопросов в ней решено и описано.

Те кто ее не читает также любят говорить, что все прочли.

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

Если вас направили сюда. Прочтите документацию и назовите животное, которое написано по вашему вопросу и вам обязательно помогут:

Чем отличается работа с экраном и без родного экрана

Не отключайте экран, если вы четко не понимаете как работает карта стола, z-offset и макросы START_PRINT и END_PRINT

В нашем принтере 128 мегабайт памяти, половину ест система, а 13 мегабайт (20 в старых версиях родной прошивки) съедает управление родным экраном.

Если отключить родной экран, то мы экономим память.

Но в этом случае начинают по другому работать встроенные средства печати (cтарт печати, пауза, восстановление, отмена, окончание печати, отправка файлов на печать, восстановление после сбоя электропитания).

Именно поэтому необходимо менять стартовый и конечный G код. лось

Также, при работе без родного экрана, принтер не выставляет Z-offset записанный на экране, и его необходимо передавать как параметр в START_PRINT или через глобальные параметры. Подробнее

Прочитайте особенности работы без родного экрана.

И перейти на протокол Octo/Klipper

Я хочу удалить ZMOD - мне придется все перекалибровать?

Нет - все настройки сохраняются

Где хранятся настройки, как вносить изменения в moonraker/klipper/zmod?

Хранение настроек

Известные особенности

Известные особенности

Что такое альтернативная камера?

Родная камера, которая включается с экрана имеет ряд недостатков.

  • Высокое потребление оперативной памяти
  • Низкое качество картинки
  • Только одно соединение с камерой. Открыв ее в орке, в браузере вы ее уже не увидите
  • Периодические отвалы изображения

Альтернативная камера использует патч от Александра (который сокращает потребление оперативной памяти), позволяет изменить разрешение, fps, разрешить множественные подключения, не пережимает картинку, легко перезапускается и настраивается макросом. заяц

  • Отключите на экране принтера родную камеру.
  • Вызовите макрос CAMERA_ON

Прочитайте: Я установил принтер, а ZMOD спрятал мою камеру!

Я установил принтер, а ZMOD спрятал мою камеру! В Orca-FF я ее видел, а теперь она пропала!

В веб интерфейсе (fluidd) зайти в Настройки -> Видеокамеры.

Там уже будет одна видеокамера "Пример_настройки_камеры". Зайти в нее и посмотреть настройки.

Создайте новую камеру c настройками по аналогии камеры "Пример_настройки_камеры":

  • Тип потока: MJPEG-поток
  • URL-адрес потока: http://your_IP:8080/?action=stream
  • URL-адрес снимка: http://your_IP:8080/?action=snapshot
  • your_IP - замените на IP адрес вашего принтера.

В версиях старше 1.4.3, также можно указать:

  • Тип потока: MJPEG-поток
  • URL-адрес потока: /webcam/?action=stream
  • URL-адрес снимка: /webcam/?action=snapshot

Если хотите настраивать разрешение, fps, использовать камеру из Telegram бота, снизить потребление оперативной памяти, разрешить параллельные подключения, то нужно использовать альтернативную камеру. крот

На роутере поставьте статический ip адрес для принтера иначе он будет меняться, а камера отваливаться.

У меня появилось 2 камеры / как отключить/повернуть камеру

Если у вас нет камеры, или настройки автоматической камеры вас не устраивают, то через Fluidd/Mainsail нужно открыть файл mod_data/user.moonraker.conf

И вписать:

Для отключения камеры:

[webcam video]
enabled: false

Для поворота камеры:

[webcam video]
rotation: 90

Я установил последнюю версию, а разработчик говорит что надо обновиться.

  • Удостоверьтесь, что вы поставили последнюю версию с флэшки
  • Зайдите в веб интерфейс. Настройки -> Обновления ПО -> Нажать Проверить обновление
  • Обновите все компоненты древолаз
  • Перезагрузите принтер

Can not update MCU

После перезагрузки появляется ошибка

!! Can not update MCU 'eboard' config as it is shutdown

Перезагрузка принтера нештатный режим работы.

Именно поэтому при установке родной прошивки просят выключить питание и включить его обратно.

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

В этом случае вам нужно один вариант:

  • Вызвать FIRMWARE_RESTART - в этом случае зависнет родной экран.
  • Выключить питание принтера и включить

Отличие REBOOT от FIRMWARE_RESTART в том, что REBOOT перезагружает linux/ а с ним и Klipper на материнской плате, FIRMWARE_RESTART частично перезапускает klipper и полностью перезапускает MCU

Ошибка сброса тензодатчиков.

Как лечить:

  • Обновить zmod. В версии 1.1.1 проблема была решена Igor Polunovskiy и Alexander K.

  • Очистить сопло

  • Очистить стол

  • Перезагрузиться

  • Откалибровать тензодатчики

  • Использовать построение карты стола из родной прошивки (работает в режиме работы с экраном)

    Рекомендуется при работе с экраном

    SAVE_ZMOD_DATA CLOSE_DIALOGS=2 PRINT_LEVELING=1 USE_KAMP=1.

    Внимательно прочитайте документацию на SAVE_ZMOD_DATA

    Для работы снятия карты стола с родного экрана необходимо, через меню экрана принтера перейти на вкладку Настройки -> Иконка WiFi -> Сетевой режим -> включить ползунок Только локальные сети

  • Использовать автоматическую перезагрузку принтера после печати (SAVE_ZMOD_DATA AUTO_REBOOT=1 или автоматический перезапуск прошивки при работе без родного экрана SAVE_ZMOD_DATA AUTO_REBOOT=2)

бабуин

Что такое МАКРОС? Как его запускать, качать использовать.

Макрос - это небольшая программа на языке Klipper/Gcode.

Он может вызываться:

  • Из файла GCODE
  • Из консоли Fluidd/Mainstaill ежик

Список макросов

Я захожу на принтер через Orca/браузер, а вижу Welcome to Moonraker

Итак какие порты использует ZMOD:

  • 7125 - тут находится Moonraker
  • 8080 - тут находится камера
  • 80 - тут работает Fluidd/Mainsail

Чтобы зайти на принтер, надо ввести просто IP принтера, без указания номера порта. кролик

Как настроить в Orca

Я переключил веб интерфейс и теперь ничего не работает.

Если вы переключили интерфейс макросом WEB выхухоль

Первым делом нужно нажать Ctrl + F5

Если у вас проблема в Orca, то нужно нажать Ctrl + F5 лисица

Если вы пользуетесь другим браузером, то нужно очистить кэш и куки, зайти по IP адресу принтера без дополнительных символов в адресной строке.

http://ИП_ПРИНТЕРА/

Если не помогает, то использовать другой браузер: Firefox, Chrome, Yandex, Opera и т.д.

В ZMOD входит Entware - как им воспользоваться?

Внимание! В AD5X нет Entware

Нужно зайти по SSH на принтер (root:root порт 22)

Выполнить команду export PATH="$PATH:/opt/bin/:/opt/sbin/"

Далее можно запустить mc или opkg

  • Обновление базы пакетов: opkg update
  • Установка пакета: opkg install mc

Каталоги которые создаются и используются entware:

  • /opt/bin
  • /opt/etc
  • /opt/home
  • /opt/lib
  • /opt/libexec
  • /opt/root
  • /opt/sbin
  • /opt/share
  • /opt/tmp
  • /opt/usr
  • /opt/var

Что такое откат из прошивки?

В ZMOD во Fluidd/Mainsail есть ползунки управления скоростью и величиной отката из прошивки.

Они не влияют на печать, если g-code файл нарезан без использования параметров отката из прошивки.

Откат из прошивки позволяет менять величину отката во время печати, без необходимости перенарезать весь файл.

Вместо громоздких команд отката вроде G1 E-.5 F2100 для ретракта теперь используется короткая G10, а вместо G1 E.5 F2100 для обратного ретракта используется G11.

Чтобы воспользоваться откатом из прошивки, в Orca.

Настройки принтера -> Общая информация -> Дополнительно -> Исп. откат из прошивки поставить галочку

Если вы хотите поменять параметры отката по умолчанию в прошивке:

Через Fluidd. Конфигурация -> mod_data -> user.cfg

[firmware_retraction]
retract_length: 0.9
retract_speed: 35
unretract_extra_length: 0
unretract_speed: 35

SET_RETRACTION обычно устанавливается как часть конфигурации слайсера для каждого филамента, так как для разных филаментов требуются разные настройки параметров: SET_RETRACTION [RETRACT_LENGTH=<мм>] [RETRACT_SPEED=<мм/с>] [UNRETRACT_EXTRA_LENGTH=<мм>] [UNRETRACT_SPEED=<мм/с>]: Настройка параметров, используемых для ретрактов.

  • RETRACT_LENGTH - длина нити для втягивания и оттягивания.
  • RETRACT_SPEED - скорость втягивания.
  • UNRETRACT_SPEED - скорость оттягивания регулируется с помощью UNRETRACT_SPEED и не особенно критична, хотя часто ниже, чем RETRACT_SPEED.
  • UNRETRACT_EXTRA_LENGTH - в некоторых случаях полезно добавить небольшое количество дополнительной длины при оттягивании.

Пример установки RETRACTION на Orca:

Профиль прутка -> Переопределение параметров -> Откат -> Длина

Профиль прутка -> Дополнительно -> Стартовый G-код прутка

SET_RETRACTION RETRACT_LENGTH=[filament_retraction_length]

GET_RETRACTION: запрашивает текущие параметры, используемые при откате, и отображает их на терминале.

AD5X

Особенности работы AD5X:

  • Нет Entware, поэтому:
    • Не работает медленное закрытие диалогов CLOSE_DILALOGS, используйте FAST_CLOSE_DILAOGS
    • Не работает NEW_SAVE_CONFIG
  • Нет калибровки PID стола, т.к. стол 220 вольт и управляется не PID
  • Нет тензодатчиков, как следствие нет защиты стола (NOZZLE_CONTROL) и сброса тензодатчиков(LOAD_CELL_TARE).
  • При активации камеры указывать VIDEO3
  • Нет датчика наличия/движения филамента доступного из клиппер
  • Не работает звук
  • В режиме без родного экрана нет возможности сопоставить цвета с пластиком в катушках, недоступен блок управления цветом

В режиме с родным экраном для сопоставления физических катушек и цветов, используется макрос COLOR

Для отправки на печать из Fluid нужно просто отметить файл и нажать «Напечатать», далее откроется меню сопоставления цветов:

Нужно сопоставить цвета загруженных в принтер катушек с цветами из файла с gcode.

Внимание!!! Орка нумерует только те цвета, которые используются в модели.

При этом не важно сколько у вас забито видов прутка, орка пронумерует по порядку только те, что используются.

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

Например, у вас есть прутки с номерами 1, 2, 3, 4.

Вы используете 1 и 3, в файле они будут обозначены, как 1 и 2.

Соответственно, в меню выбора и сопоставления прутков вам нужно оперировать с теми, что обозначены:

  • «В файле: 1 - В катушке…»
  • «В Файле: 2 – В катушке…».

Прежде чем писать тикет, что цвета выбирает не те, вспомните, что вы нажимали.

help

Как обратиться в поддержку к разработчику

  1. Обновить zmod до последней версии
  2. Четко сформулировать проблему. Скрины, фото, текстовое описание.
  3. Вызвать CLEAR_EMMC для очистки логов
  4. Обязательно выключить принтер
  5. Включить принтер
  6. Сгенерировать проблему
  7. Выполнить TAR_CONFIG - сохранить лог файлы
  8. Выложить одно сообщение с описанием и файлом config.tar
  9. Добавить сообщение об ошибке
⚠️ **GitHub.com Fallback** ⚠️