Marlin: печать с управлением через смарт-дисплей
Подвернулся полезный совет по настройке Marlin для печати с платы (например, SKR 1.4), но под управлением со смарт-дисплея (например, BTT TFT35 V3.0), работающего в тач-режиме, а не в режиме эмуляции 12864. Для этого необходимо настроить следующие параметры:
SDSUPPORT (in Configuration.h)
LONG_FILENAME_HOST_SUPPORT (in Configuration_adv.h)
AUTO_REPORT_SD_STATUS (in Configuration_adv.h)
SDCARD_CONNECTION ONBOARD (in Configuration_adv.h)
EMERGENCY_PARSER (in Configuration_adv.h)
SERIAL_FLOAT_PRECISION 4 (in Configuration_adv.h)
HOST_ACTION_COMMANDS (in Configuration_adv.h)
HOST_PROMPT_SUPPORT (in Configuration_adv.h)
С такими настройками и время печати показывается, и обработкой gcode занимается непосредственно плата принтера. При этом сохраняется возможность управлять процессом печати и в тач режиме тоже, но с небольшой задержкой.
И оттуда же про настройку параметров буферизации обмена дисплей-плата:
Все изменения в configuration_adv.h:
Здесь поднял количество команд хранящихся в буфере с 4 до 16.
#define BUFSIZE 16
Просто есть теория, что из-за лагов дисплея или помех или хе чего еще, команды поступающие от дисплея не успевают вовремя доходить и буфер команд опустошается из-за чего печать и виснет. По дефолту было 4 поднял до 16. Думаю хуже не будет
#if BOTH(SDSUPPORT, DIRECT_STEPPING)
#define BLOCK_BUFFER_SIZE 32
#elif ENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 32
#else
#define BLOCK_BUFFER_SIZE 32
#endif
Тут по честному не понял толком для чего этого. Что-то типа кэша команд при чтении с SD карты . В общем удвоил значения
#define TX_BUFFER_SIZE 32 Здесь увеличил до 32, для включения функции Advanced_OK
#define EMERGENCY_PARSER Это для нормальной обработки аварийного завершения работы.
#define NO_TIMEOUTS 1000 Тоже важный параметр для защиты от сбоев во время печати под управлением с дисплея. При ошибках передачи данных отправляет запрос на повторное получение пакета и ждет указанное время в миллисекундах
#define ADVANCED_OK Помогает избежать ошибок опустошения буфера из-за плохого соединения и слишком быстрого выполнения команд принтером
Поблагода₽ить за помощь
Если эта заметка оказалась для вас полезна, вы можете отблагодарить меня за проделанную для вас работу любой суммой на своё усмотрение, перейдя по данной ссылке.