Кремень КД Реклама
Кремень КМ Реклама

Немного о Klipper и LCD

belpyro
Идет загрузка
Загрузка
03.04.2023
4057
21
Техничка

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

10
Статья относится к принтерам:
FLASHFORGE Creator Pro

Приветствую всех!

Решил поделиться своей эпопеей по модернизации старичка-принтера, а также решением одной проблемы, что "сожрала" у меня массу времени и нервов (на самом деле времени больше).

Итак, есть у меня принтер FlashForge Creator Pro, купленный в далекие времена за овердофига денег. Принтер по сути является клоном Makerbot Replicator 2x. но весьма неплохим по качеству исполнения. Брал его, как первый принтер и в принципе был доволен (хотя два экструдера это реально бесполезная фича для меня).

В общем наступил момент, когда я, уже имея три других принтера, решил обновить железо этого красавца. Сначала, в качестве мозгов была выбрана плата SKR Pro v.1.1 так как позволяла подключить два экструдера и имела шустрый контроллер STM32F407 с кучей портов для расширения.

Так как это были времена доступных "малинок", то заодно было прикуплено пару клонов Pi 3.

В общем и целом  перевод на Klipper был завершен успешно за исключением модуля родного дисплея. В целом экран был не особо нужен, до тех пор, пока я не перетащил все принтеры в отдельную комнату и стало неудобно бегать к компуктеру. Да-да, можно и с телефона, но многие операции все же удобно делать через родной экран (лично мне по крайней мере).

Итак, встала задача подключить родной дисплей. В целом, в нем ничего особенного нет: стандартный контроллер HD44780 подключенный через регистр сдвига. Так как Klipper поддерживает такие контроллеры, то мои ожидания были весьма позитивны: найти распиновку, прописать нужные пины, спаять переходник для стандартных портов расширения на плате и подключить. Но не тут-то было! Экран при подключении или оставался пустым, или показывал разную дичь в виде кракозябр по всему экрану.

Ладно, подумал я, может что-то с ним не в порядке ну или с моими руками. Достал у себя в закромах старую плату от Эндер-3, прошил, подключил к компу, подключил экран и .... заработало! Повторил с SKR - все по прежнему. Я уже в голове начал хоронить свою плату (ну мало ли), но возник резонный вопрос: а в чем же причина. Логично было предположить, что либо контроллер шлет дичь, либо что-то с портами. На мое счастье у меня был логический копеечный клон с Алика, который я немедленно подключил к обоим платам и снял данные.

А предварительно еще раз освежил знания по контроллеру LCD. В общем, пардон за большое вступление, проблема, как и ожидалось, оказалась в скорости обмена, а точнее в аппаратной скорости переключения уровней на портах. Если для старых AVR чипов длительность импульса синхронизации составляла пару мс, то для STM счет шел уже не нано-секунды. Естественно, что контроллер экрана просто не успевал выполнить команду и получалось, что получалось. Ладно, подумал я, у Klipper же есть задание скорости по шине SPI. Не работает. Что делать? Изучать исходники. Итак, оказывается, что для software spi, которая используется для обмена данными с экраном, скорость тупо игнорируется внутри прошивки. Т.е. хост шлет ее в команде, а прошивке глубоко на это фиолетово. Поэтому скорость шины зависит от скорости самого контроллера и на современных она зашкаливает.

В общем написал я небольшой патч и залил в свой гитхаб. Сами изменения можно посмотреть в реквесте, что я закинул в гитхаб Klipper. Смысл патча - начать учитывать скорость SPI и для software.

После изменений нужно перепрошить плату и, вуаля, все работает. Ничего дополнительно конфигурировать не надо, т.к. скорость по-умолчанию установлена в 100кГц.

Результат.

Немного о Klipper  и LCD

До изменений.

Немного о Klipper  и LCD

После изменений.Основной минус этого подхода, что при пере-установке Klipper придется опять ручками накатывать этот патч, если его не примут в основную ветку.

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

 

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

10
Комментарии к статье