Фризы и паузы во время печати с OctoPrint (UART)

Аватара пользователя
satos
Сообщения: 12
Зарегистрирован: 05 апр 2020, 10:12

Фризы и паузы во время печати с OctoPrint (UART)

Сообщение satos »

Если у вас при работе OctoPrint на Raspberry Pi 3 (B/B+) и подключении его к плате (или экрану TFT) наблюдаются паузы и ошибки во время печати, то проблема может быть в следующем:

- неисправный USB кабель
- недостаточное питание платы RPi
- перегрев
- использование "медленного" UART

На последнем надо остановится по-подробнее.
В Raspberry Pi 3 есть два пина для подключения по UART - GPIO 14 и 15 (8 и 10-й пины), Tx и Rx соответственно.
По-умолчанию они подключены к логике miniUART (device - ttyS0), чтобы их включить, необходимо в /boot/config.txt добавить строку:

Код: Выделить всё

enable_uart=1
После перезагрузки, можно глянуть к чему привязаны пины:

Код: Выделить всё

ls -l /dev | grep serial
Должен вернуть что-то вроде

Код: Выделить всё

serial0 -> ttyS0
serial1 -> ttyAMA0 
После этого, в целом, OctoPrint сможет общаться по этим пинам, но достаточно медленно. А если подключиться к плате принтера и попытаться попечатать, то будут наблюдаться паузы и фризы из-за крайне низкой скорости и урезанного функционала протокола. Чтобы это исправить, нужно полноценный UART перевесить на эти пины, а miniUART - вернуть обратно для Bluetooth (да, изначально BT использует UART).

В /boot/config.txt добавляем следующие строчки:

Код: Выделить всё

dtoverlay=pi3-miniuart-bt
Если Bluetooth не нужен, можно его просто отключить, добавив дополнительный оверлей:

Код: Выделить всё

dtoverlay=pi3-disable-bt
После перезагрузки, можно глянуть ls -l /dev | grep serial и убедиться, что заветный ttyAMA0 подключен к serial0. Конфигурируем через OctoPrint SerialPort на /dev/ttyAMA0. Проблема должна исчезнуть.
Аватара пользователя
demonlibra
Помогаю слегка
Сообщения: 2552
Зарегистрирован: 18 янв 2020, 11:49
Откуда: Ростов-на-Дону

Re: Фризы и паузы во время печати с OctoPrint (UART)

Сообщение demonlibra »

Я всегда думал, что подключение через USB выполняется. Понятно, что там всё равно конвертер USB/UART, но тем не менее.
Есть схема подключения?
Не бойся поломать. Бойся не починить ))
Изображение
Аватара пользователя
satos
Сообщения: 12
Зарегистрирован: 05 апр 2020, 10:12

Re: Фризы и паузы во время печати с OctoPrint (UART)

Сообщение satos »

demonlibra писал(а): 16 июн 2020, 18:30 Я всегда думал, что подключение через USB выполняется. Понятно, что там всё равно конвертер USB/UART, но тем не менее.
Есть схема подключения?
Я не хотел лишний раз занимать разъем, да и места особо не остается. Планирую подключать отдельно экран для самой Raspberry в качестве терминала в будущем.

Подключается крайне просто, на RPi 3 и TFT v3.0 от BTT:
- подключаем Raspberry к TFT через GPIO 14 и 15 на колодке к разъему UART4 дисплея (Rx и Tx малинки к Tx и Rx дисплея, см. распиновку)
- подключаем TFT к плате принтера как обычно

TFT будет работать в режиме passthrough.

Изображение

Изображение

Рекомендуется собрать прошивку для экрана с поддержкой SERIAL_ALWAYS_ON и RAPID_SERIAL_COMM, во избежание проблем.

Вернуться в «OctoPrint»