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 Помогает избежать ошибок опустошения буфера из-за плохого соединения и слишком быстрого выполнения команд принтером

 

Поблагода₽ить за помощь

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