Немного о Klipper и LCD
Решил поделиться своей эпопеей по модернизации старичка-принтера, а также решением одной проблемы, что "сожрала" у меня массу времени и нервов (на самом деле времени больше).
Итак, есть у меня принтер 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 придется опять ручками накатывать этот патч, если его не примут в основную ветку.
Надеюсь, что данная информация кому-то окажется полезной и сохранит время. Подобные проблемы могут быть не только с экраном, но и любой периферией, которая использует software spi.
Еще больше интересных статей
Подсветка для Ender 3 и Sprite Extruder с обдувом K3D
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Попросили меня подробнее написать про подсветку на моем Ender 3....
Охлаждение мотора директа
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Сопла и сопли
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Сколько раз этот вопрос поднимался. Сколько тем...
Комментарии и вопросы
"итоги 4 месячных тестов"((
Учитывая что отгибать будет по...
А вы в бане работаете? За пар....
Часто посматриваю на наборы су...
Всем доброго!В предверии покуп...
Помогите хто знает не могу нап...
При установке магнитной...