
Панель «5D модуль» предназначена для ручного управления дополнительными осями (A и C) в интерфейсе Mainsail.
Она позволяет контролировать текущее положение осей, выполнять перемещения и возвращать оси в исходное положение.

Панель «График WCS» предназначена для визуализации и настройки рабочих систем координат (WCS) 5D модуля в интерфейсе Mainsail.
Она отображает текущее положение оснастки по осям X, Y, Z, а также смещение домашнего положения оси A требуемого для парралельного положения координат принтера и модуля, а также позволяет просматривать и редактировать значения рабочих систем координат (WCS 1 - положение центра оснастки при А=0 и WCS 2 - положение центра оснастки при А=90).
Компонент упрощает контроль калибровки и повышает наглядность работы с многоосевыми модулями в Klipper/Mainsail.
Панель «Смещение датчика» предназначена для настройки пространственных смещений датчика калибровки относительно сопла в Mainsail.
Она позволяет задать и отредактировать значения смещений по осям X, Y и Z, обеспечивая корректное позиционирование при автоматической калибровке и выполнении измерений.

Просмотр и создание карт стола (bed mesh) и анализ проблем с печатной платформой.
Чтобы перейти к картам стола, выберите HEIGHTMAP на панели навигации.

Обратите внимание, что этот пункт появляется только после корректной настройки "Bed Mesh" в Klipper. Для получения дополнительной информации по этой теме обратитесь к документации Klipper
Отправляйте команды на ваш принтер. Консоль Mainsail доступна на панели управления и как отдельная страница в боковой панели.
Начните вводить текст в консоли. Чтобы отправить команду, нажмите клавишу Enter или нажмите на значок бумажного самолётика в поле ввода.
Если вы нажмёте клавишу TAB, команда будет дополнена до следующего возможного варианта. Если существует несколько вариантов, появится список доступных команд. Вы можете нажать на нужную команду для автодополнения или продолжить ввод и снова нажать клавишу TAB для следующего дополнения.
На мобильных устройствах Mainsail покажет вам кнопку Tab.
Нажав на значок «?», расположенный в заголовке, вы получите список доступных команд и их описаний.

Вы можете отфильтровать этот список с помощью строки поиска.

Выберите фильтры, нажав на кнопку воронки, чтобы скрыть определённые записи в выводе консоли.

В настоящее время Mainsail содержит один предустановленный фильтр для сообщений о состоянии температуры. Однако вы можете задать дополнительные фильтры в настройках.
Описание настроек можно найти здесь.
Существует несколько способов настроить панель управления под свои потребности.
Панели на панели управления можно переставлять местами. Как это сделать, описано на странице Настройки панели управления.
Обратите внимание, что различные настройки могут быть заданы для каждого класса устройств. Классы устройств также имеют различные схемы расположения колонок. Например, можно скрыть некоторые панели на мобильных устройствах, которые отображаются на настольных компьютерах, и задать для них другой порядок.
Панели на панели управления можно свернуть, чтобы временно освободить место, и снова развернуть при необходимости. Mainsail запоминает последнее состояние.

Косвенно макет панели управления также можно настроить через управление макросами в Mainsail. В экспертном режиме можно создавать группы макросов, которые будут отображаться как панели на панели управления. Цвета макросов можно настраивать, а отображение макросов может зависеть от состояния принтера.
Более подробную информацию можно найти в разделе Управление макросами
Исключение отдельных объектов во время выполнения печати.
Эта функция была интегрирована в
Klipper v0.10.0-438,Moonraker v0.7.1-445иMainsail v2.1.0. Пожалуйста, сначала проверьте установленные версии и при необходимости обновите их.
Чтобы использовать эту функцию, ваш слайсер должен быть настроен на присвоение имён отдельным объектам в G-Code. G-Code должен быть предварительно обработан либо с помощью скрипта постобработки в слайсере, либо через Moonraker, при этом соответствующая функциональность должна быть включена в Klipper. Начиная с PrusaSlicer v2.7.0, можно корректно генерировать полный файл непосредственно в слайсере, и предварительная обработка через Moonraker больше не требуется.
Обратите внимание, что функция работает только с G-Code файлами, подготовленными соответствующим образом. Со старыми, необработанными файлами она работать не будет.
Сначала необходимо проверить параметр G-code flavor в:
Printer Settings > General > Firmware > G-code flavor
.png%22)
Далее необходимо изменить параметр Label Objects на Firmware-specific в:
Print Settings > Output options > Output file > Label objects
Label objects в слайсереВ PrusaSlicer или SuperSlicer необходимо установить флажок в:
Print Settings > Output options > Output file > Label objects

Cura и Ideamaker по умолчанию добавляют метки объектов в G-Code и автоматически совместимы без дополнительных настроек.
Этот шаг необходим для преобразования ранее активированных меток объектов в корректный G-Code для Klipper. Откройте файл moonraker.conf в Mainsail, добавьте следующую настройку в конфигурацию и перезапустите службу Moonraker:
[file_manager]
enable_object_processing: True
В качестве альтернативы можно использовать внешний препроцессор. Подробнее см. preprocess-cancellation.
exclude_object в KlipperОткройте файл printer.cfg в Mainsail и добавьте следующую настройку:
[exclude_object]
Подробнее о модуле exclude_object в Klipper: exclude_object
После этого все новые загруженные G-Code файлы будут поддерживать эту функцию. В панели состояния появится новая кнопка в виде пунктирного квадрата с крестиком в центре.

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

Только G-Code файлы, подготовленные указанным способом, поддерживают исключение объектов.
Вы можете отображать и скрывать G-Code макросы в настройках интерфейса. Знаете ли вы, что G-Code макросы также можно скрыть, добавив подчёркивание в начале имени?
[gcode_macro MY_AWESOME_GCODE]
gcode:
_MY_HELPER_CODE
[gcode_macro _MY_HELPER_CODE]
gcode:
M300
MY_AWESOME_GCODE отображается в настройках интерфейса, _MY_HELPER_CODE — нет.

Это также работает для других разделов конфигурации, включая вентиляторы и выходы (outputs).
rename_existingВсе gcode_macros с атрибутом rename_existing также скрываются в Mainsail, поскольку это стандартные G-Code команды Klipper, и они уже реализованы в самом Mainsail в виде кнопок.
Например, макрос PAUSE в файле mainsail.cfg:
[gcode_macro PAUSE]
description: Приостановить текущую печать
rename_existing: PAUSE_BASE
gcode:
PAUSE_BASE
_TOOLHEAD_PARK_PAUSE_CANCEL
Mainsail доступен на многих языках благодаря переводам сообщества.
Чтобы изменить язык, перейдите в "Настройки интерфейса", нажав на значок двух шестерёнок в правом верхнем углу. 
В разделе "GENERAL" выберите предпочитаемый язык.

Вы можете помочь улучшить переводы. Инструкции доступны здесь.
В Mainsail можно управлять макросами: сортировать их, изменять цвета и автоматически показывать или скрывать в зависимости от состояния принтера. Дополнительную информацию можно найти здесь.
.png)
Позволяет макросам в Klipper вызывать диалоговые окна для взаимодействия с прошивкой и предоставляет пользователю возможность выбирать между вариантами или закрывать окно, если оно больше не требуется.
.png)
Для работы этой функции необходим модуль
[respond]в Klipper. Пожалуйста, убедитесь, что он включён в вашей конфигурации Klipper.Функция реализована начиная с версии Mainsail v2.9.0. Проверьте установленную версию Mainsail перед использованием.
С помощью следующих команд вы можете создать собственное диалоговое окно макроса:
Первая команда для создания окна. Атрибут <заголовок> будет отображаться в качестве заголовка диалогового окна.
Добавляет текстовое описание в диалоговое окно.
Добавляет кнопку в диалоговое окно.
<надпись> — текст внутри кнопки<gcode?> — необязательный параметр для указания другого G-Code для этой кнопки (по умолчанию используется текст кнопки)<цвет?> — необязательный параметр, изменяющий цвет кнопки. Возможные значения: primary, secondary, info, warning, error. (по умолчанию тёмно-серый).png)
Начинает «группу кнопок», позволяя отображать несколько кнопок в одной строке.
Завершает текущую «группу кнопок».
Добавляет кнопку в нижнюю часть (footer) диалогового окна.
<надпись> — текст внутри кнопки<gcode?> — необязательный параметр для указания другого G-Code (по умолчанию используется текст кнопки)<цвет?> — необязательный параметр, изменяющий цвет кнопки. Возможные значения: primary, secondary, info, warning, error. (по умолчанию белый).png)
Отображает диалоговое окно.
Закрывает/скрывает диалоговое окно.
Ниже приведены примеры диалоговых окон макросов.
[gcode_macro SHOW_PROMT_BUTTON_GROUPS]
gcode:
RESPOND TYPE=command MSG="action:prompt_begin MacroPrompt"
RESPOND TYPE=command MSG="action:prompt_text These are all button colors"
RESPOND TYPE=command MSG="action:prompt_button default|TEST"
RESPOND TYPE=command MSG="action:prompt_button_group_start"
RESPOND TYPE=command MSG="action:prompt_button primary|TEST|primary"
RESPOND TYPE=command MSG="action:prompt_button secondary|TEST|secondary"
RESPOND TYPE=command MSG="action:prompt_button_group_end"
RESPOND TYPE=command MSG="action:prompt_button_group_start"
RESPOND TYPE=command MSG="action:prompt_button info|TEST|info"
RESPOND TYPE=command MSG="action:prompt_button warning|TEST|warning"
RESPOND TYPE=command MSG="action:prompt_button error|TEST|error"
RESPOND TYPE=command MSG="action:prompt_button_group_end"
RESPOND TYPE=command MSG="action:prompt_show"
[gcode_macro SHOW_PROMT]
gcode:
RESPOND TYPE=command MSG="action:prompt_begin Question"
RESPOND TYPE=command MSG="action:prompt_text Do you wont to cancel the print?"
RESPOND TYPE=command MSG="action:prompt_footer_button continue|RESPOND TYPE=command MSG=action:prompt_end"
RESPOND TYPE=command MSG="action:prompt_footer_button CANCEL|CANCEL_PRINT|error"
RESPOND TYPE=command MSG="action:prompt_show"
Mainsail поддерживает так называемые предустановки. Они часто используются для предварительного нагрева и охлаждения, а также для выполнения обычного G-Code.
В настройках интерфейса Mainsail вы найдёте раздел «Preheat Presets». Там можно создать предустановки с помощью кнопки «ADD PRESET» и последующего диалогового окна.
Введите имя предустановки (например, тип филамента, цвет или другое обозначение) и температуру, которую нужно установить. Можно отключить отдельные нагреватели и даже указать собственный G-Code для этапа предварительного нагрева. G-Code будет выполнен после достижения выбранных температур.
.png)
Можно добавить собственный G-Code, чтобы упростить переключение между различными значениями Z-Offset. Это удобно при работе с разными поверхностями и гибкими пластинами.
Для настройки введите SET_GCODE_OFFSET Z=0.2, заменив 0.2 на необходимое значение смещения.

Вы можете просматривать историю печати и статистику в разделе History интерфейса Mainsail. Это включает статус задания печати, продолжительность, количество использованного филамента и многое другое. Также можно повторно запустить задание печати.

Чтобы включить отслеживание истории печати, сначала необходимо активировать эту функцию в Moonraker.
Добавьте [history] в конфигурационный файл moonraker.conf и перезапустите Moonraker.
Новый пункт истории появится в боковой панели Mainsail.
Mainsail может отображать различные CAN / Serial / USB / Video устройства, чтобы помочь найти правильный путь к оборудованию для вашей конфигурации. Откройте любой конфигурационный файл в редакторе, и в верхней части появится кнопка Devices.
В этой вкладке можно отобразить «неподключённые» CAN-узлы. К сожалению, доступна только информация о приложении (Klipper/Katapult) и соответствующий UUID.

«Unassigned» (неназначенный) узел — это CAN-узел, который не был активирован Katapult или Klipper. Если Klipper или Katapult подключились к узлу, ему будет назначен Node ID, и он перестанет отвечать на запросы. Для снятия назначения требуется > перезагрузка устройства.
Если в сети присутствует несколько неназначенных узлов, каждый из них отвечает на запрос примерно одновременно. Это приводит к ошибкам арбитража. Узлы будут повторять попытку отправки до успешного ответа. Однако узлы отслеживают количество > ошибок арбитража, и при достижении определённого порога переходят в состояние «bus off». Для сброса счётчика и выхода из состояния «bus off» требуется перезагрузка устройства.
По этой причине рекомендуется выполнять запрос только при наличии одного неназначенного узла в сети. Если необходимо выполнить запрос для нескольких узлов, крайне важно перезагрузить все узлы в сети перед запуском Klipper.
Источник: https://moonraker.readthedocs.io/en/latest/web_api/#query-unassigned-canbus-uuids
Эта вкладка важна для принтеров с Klipper. Здесь отображаются подключения к основной плате принтера.
.png)
Эта вкладка предназначена для отладки. Здесь можно проверить, распознаёт ли система подключённое USB-устройство.
.png)
В этой вкладке перечислены все веб-камеры libcamera и V4L2. Также отображаются все доступные разрешения и форматы видео.
.png)
Встроенные темы — это заранее разработанные темы оформления. Они позволяют пользователям быстро и легко изменить внешний вид интерфейса без необходимости создавать дизайн с нуля.
В Mainsail существует две группы, которым разрешено иметь встроенные темы. Первая группа — это спонсоры-производители, получающие эксклюзивные темы в знак признания их поддержки. Вторая группа включает крупные open-source сообщества.
Если вы являетесь мейнтейнером крупного open-source проекта в области 3D-печати, свяжитесь с командой Mainsail через сервер Discord для получения встроенной темы.

Чтобы изменить тему в Mainsail, откройте Interface Settings (меню с шестерёнками в правом верхнем углу), перейдите в раздел UI-Settings и выберите тему из выпадающего списка.
В настоящее время в Mainsail доступны следующие темы:
Большинство тем изменяют только логотип боковой панели, favicon и основной цвет.
Mainsail может отображать миниатюры в файловом браузере и в виде предварительного просмотра в статусе печати.

.png)
Как настроить слайсер для миниатюр
Менеджер обновлений — это компонент Moonraker, который позволяет обновлять различные сервисы, такие как Klipper, Moonraker, Mainsail, а также системные пакеты непосредственно из Mainsail.

Для MainsailOS выполнять этот шаг не требуется.
Менеджер обновлений необходимо включить в Moonraker. Для этого выберите "Machine" в панели навигации.
Если вы уже видите панель "Update Manager" с Mainsail, этот шаг можно пропустить. В противном случае откройте файл moonraker.conf в файловом менеджере.
Добавьте следующие разделы, если они отсутствуют:
[update_manager]
refresh_interval: 168
enable_auto_refresh: True
[update_manager mainsail]
type: web
channel: stable
repo: mainsail-crew/mainsail
path: ~/mainsail
После этого необходимо перезапустить службу Moonraker. Это можно сделать через меню питания в правом верхнем углу.
Дополнительную информацию можно найти в документации Moonraker.
После включения Update Manager выберите вкладку "Machine" в боковой панели. Появится панель "Update Manager".
Нажмите кнопку обновления (reload), чтобы Moonraker проверил наличие новых версий. Moonraker также проверяет обновления автоматически, однако стандартный интервал довольно большой (его можно изменить). В приведённой выше конфигурации интервал уже уменьшен до 7 дней (168 часов).
Ознакомьтесь с примечаниями к выпуску, нажав на значок информации рядом с компонентом.
Обратите внимание, что некоторые обновления Klipper могут потребовать перепрошивки MCU. Без перепрошивки принтер работать не будет. Не выполняйте обновление, если у вас запланированы важные задания печати.
Рекомендуемый порядок обновления — сверху вниз.
Чтобы обновить компонент, нажмите кнопку "Update/Upgrade" рядом с ним. Также можно воспользоваться кнопкой "Update all components".
Подробная информация о процессе обновления отображается во всплывающем окне. После завершения обновления окно можно закрыть.
Компоненты в менеджере обновлений могут иметь различные статусы.
.png)
Всё в порядке, установлена последняя версия.
Для компонента доступны обновления. UPGRADE относится к системным пакетам.
Репозиторий компонента находится в состоянии detached. Статус можно восстановить.
Файлы репозитория компонента были изменены. Если это произошло случайно, статус можно восстановить.
Указанный путь к файлу недоступен. Проверьте, установлен ли компонент корректно и правильно ли указан путь в moonraker.conf.
В Mainsail можно добавить один или несколько потоков веб-камеры, чтобы наблюдать за работой принтера.
Потоки могут отображаться в различных местах:
Панель с веб-камерой на панели управления можно перемещать, сворачивать или полностью скрывать. Подробнее см. раздел организация панели управления.
В навигацию можно добавить отдельный пункт для веб-камеры. Это настраивается в разделе UI settings.
Если на принтере настроено несколько веб-камер, они отображаются в общем обзоре. Также можно переключиться на отдельную камеру с помощью выпадающего меню в заголовке панели.
.png)
Информацию о настройке веб-камер и необходимых требованиях можно найти на странице настроек веб-камер