MKS TFT35 V1.0 на RaspberryPi
Posted: 27 Jun 2022 22:33
Есть у меня 3D принтер (Two Trees Sapphire Plus v 1.1), и при переезде на klipper возникло неудобство, которое пришлось преодолевать дополнительными вложениями - родной экран принтера не может быть использован для отображения информации о печати и управления принтером. Klipper просто не умеет выводить информацию на SPI экраны. У меня всё решилось приобретением 5-ти дюймового экрана (BIGTREETECH BTT PI TFT50V2.0), но это дополнительно $50 USD. И всё это время, меня, как и других пользователей принтеров Two Trees Sapphire (в Flying bear ghost такие же экранчики)), мучает вопрос: "как же заставить родной экран отображать информацию, хоть и не очень удобно, т.к. мелкий".
Тут была найдена информация по подключению похожего экрана. Но в TS35 используется ЖКИ с драйвером ILI9486, а в TFT35 v1.0 применён ЖКИ с драйвером ILI9488. Хоть они и очень близки, но есть одно существенное отличие, которое не позволяет использовать TFT35 в режиме SPI - стандартная библиотека не умеет передавать информацию в формате RGB666 (18 bit), только RGB565 (16 bit), в ili9488 не умеет принимать RGB565 (16 bit) в SPI режиме... Надеюсь не запутались?
Поэтому месяц поисков решений, аппаратная доработка экрана MKS TFT35 v1.0 для работы в режиме SPI, попытки компиляции своей библиотеки для работы в формате RGB666 (18 bit), осознание, что рядовой пользователь это не осилит (как впрочем и я не до конца смог)... В итоге пришёл к решению, что проще собрать переходник-конвертер SPI-parallel, как это делают на многих дешевых экранчиках типа Waveshare MPI3501 и многих других. Зато это позволит использовать только стандартные библиотеки.
Ну а раз будет какая-то плата-переходник, то почему бы на ней не разместить удобные разъёмы, которые часто применяются для подключений в 3D принтере UARTa, управление питанием принтера, акселерометра, вентилятора обдува малинки и т.д.
В итоге родилась вот такая Схема. 04.07.2022 г. Выглядит страшно, но как её нарисовать более компактно и красиво - я не знаю. Есть отличие от "стандартных" конвертеров - использование инверторов U4.3-U4.6 для задержки сигнала, что позволило "разогнать" экран до 30Мгц. Теперь 20 кадров в секунду - легко.
Разъёмы:
1) 32pin FFC/FPC с шагом 1мм, нижние контакты. для подключения шлейфа экрана. Aliexpress.
2) FAN (2pin XH2.54) - подключение 5В вентилятора обдува малины.
3) PRINTER (4pin XH2.54) - подключение платы принтера по UART (Rx/Tx) и питание 5В.
4) POWER (5pin XH2.54) - подключение питания малины через GPIO (ВНИМАНИЕ, опасно!!! защиты малины не работают)
5) SPI_0 (6pin XH2.54) - SPI0 с питанием 5В.
6) AUX (6pin XH2.54) - оставшиеся gpio и 5В на всякий случай.
7) SPI_1 (6pin XH2.54) - SPI1 с питанием 5В.
8) GPIO 40pin (2*20) PBD-40 - подключение к gpio малины.
BOM in Excel sheet. link. Зато печатная плата получилась довольно компактной (H 52 * W 51 мм). В ревизии 0.4 (на фото ниже) я решил оставить кучку перемычек вокруг U4 для экспериментов, чтобы не резать дорожки, а на скринах версия платы v0.6 - уже без этих перемычек, зато с кучкой других, позволяет подключать экран к SPI_0 или SPI_1. Соответственно для подключения к SPI_0 запаиваем 5 перемычек 0603 в места маркированные "0", а для SPI_1 - "1". Все конденсаторы "С" - 0603 0,1mkF. UPD 11.07.2022
По просьбе добавил на плату микросхему RTC (Real Time Clock) - DS3231 c обвязкой и резервной батарейкой CR2032. Теперь малина может быть дату и время не из интернета, при автономной работе. Других отличий на плате нет. RTC можно не распаивать - на остальной функционал не влияет. Скачать плату в формате Gerber, пригодную для заказа, можно во вложениях converter_tft35_v0.6.rar, или новая версия - converter_tft35_v0.7.rar пароль на архивы: Платы версии 0.6 и 0.7 не изготавливались (не проверялись). Если найдёте ошибки визуально - пишите, исправлю.
Платы v0.4 собраны, протестированы и выявлено следующее:
При подключении экрана к SPI0 частота обновлений экрана почти совпадает с задаваемой в параметрах оверлея (20 FPS), но тогда некуда подключать акселерометр ADXL345 - на SPI1 он работать отказался (на 4й малине можно победить).
При подключении экрана к SPI1 частота обновлений экрана падает в 2 раза и становится не совсем комфортно работать, хотя экран обновляется по ощущениям, как на Marlin FW.
В причинах такого поведения я не совсем разобрался, знаю только что SPI1 в 3B и 3B+ какой-то немного урезанный, не работает в режимах 0 и 3 (из-за чего и не работает акселерометр на клиппере на SPI1). Поэтому делал возможность выбора при сборке платы.
Пока пара фото собранной платы (старая ревизия - 0.4) и работающего экрана (тач тоже работает - пока поверьте, видео будет позже). За качество пайки прошу не пинать - собирал в промежутках между работой, поэтому спаяно не очень аккуратно - "для проверки макета - пойдёт".
Доработка на плате экрана.
Не знаю почему, но в экранчике MKS TFT35 V1.0 не распаян выход прерывания от тачскрина. Это легко исправить всего одной перемычкой. Справится даже ребёнок. Без этой доработки опроса сенсора не будет, соответственно тач не работает в системе. На плате перемычка выглядит вот так: Удалось проверить экран FlyingBear Reborn-TS V3.0 от Flyingbear Ghost 5.
Отлично работает, доработка такая же, за исключением того, что разъём FFC перевёрнут... Сути это не меняет, подключается своим родным шлейфом без проблем. Видео для оценки скорости работы интерфейса. Тач не тормозит - просто дисплейный модуль фактически ни на что не опирается - не удобно тыкать в него одной рукой, а второй снимать...
Ещё одно видео снял, установив экран на место. Для оценки удобства использования. И таки я хочу вам сказать - вполне можно пользоваться. Конечно, на 5 дюймовом можно обойтись без стилуса, но зато тут сохранён внешний вид принтера и затрачено минимум средств на такую модернизацию.
В подвале принтера это может выглядеть вот так: Экран на родном месте, для подключения используется родной шлейф.
А в моём случае экран стоит другой - 5 дюймов. При этом плата используется как плата коммутации, в том числе для удобного подключения акселерометра ADXL345, питания вентилятора и другой периферии. Как реализовано питание, лучше посмотреть в отдельной теме.
Тут была найдена информация по подключению похожего экрана. Но в TS35 используется ЖКИ с драйвером ILI9486, а в TFT35 v1.0 применён ЖКИ с драйвером ILI9488. Хоть они и очень близки, но есть одно существенное отличие, которое не позволяет использовать TFT35 в режиме SPI - стандартная библиотека не умеет передавать информацию в формате RGB666 (18 bit), только RGB565 (16 bit), в ili9488 не умеет принимать RGB565 (16 bit) в SPI режиме... Надеюсь не запутались?
Поэтому месяц поисков решений, аппаратная доработка экрана MKS TFT35 v1.0 для работы в режиме SPI, попытки компиляции своей библиотеки для работы в формате RGB666 (18 bit), осознание, что рядовой пользователь это не осилит (как впрочем и я не до конца смог)... В итоге пришёл к решению, что проще собрать переходник-конвертер SPI-parallel, как это делают на многих дешевых экранчиках типа Waveshare MPI3501 и многих других. Зато это позволит использовать только стандартные библиотеки.
Ну а раз будет какая-то плата-переходник, то почему бы на ней не разместить удобные разъёмы, которые часто применяются для подключений в 3D принтере UARTa, управление питанием принтера, акселерометра, вентилятора обдува малинки и т.д.
В итоге родилась вот такая Схема. 04.07.2022 г. Выглядит страшно, но как её нарисовать более компактно и красиво - я не знаю. Есть отличие от "стандартных" конвертеров - использование инверторов U4.3-U4.6 для задержки сигнала, что позволило "разогнать" экран до 30Мгц. Теперь 20 кадров в секунду - легко.
Разъёмы:
1) 32pin FFC/FPC с шагом 1мм, нижние контакты. для подключения шлейфа экрана. Aliexpress.
2) FAN (2pin XH2.54) - подключение 5В вентилятора обдува малины.
3) PRINTER (4pin XH2.54) - подключение платы принтера по UART (Rx/Tx) и питание 5В.
4) POWER (5pin XH2.54) - подключение питания малины через GPIO (ВНИМАНИЕ, опасно!!! защиты малины не работают)
5) SPI_0 (6pin XH2.54) - SPI0 с питанием 5В.
6) AUX (6pin XH2.54) - оставшиеся gpio и 5В на всякий случай.
7) SPI_1 (6pin XH2.54) - SPI1 с питанием 5В.
8) GPIO 40pin (2*20) PBD-40 - подключение к gpio малины.
BOM in Excel sheet. link. Зато печатная плата получилась довольно компактной (H 52 * W 51 мм). В ревизии 0.4 (на фото ниже) я решил оставить кучку перемычек вокруг U4 для экспериментов, чтобы не резать дорожки, а на скринах версия платы v0.6 - уже без этих перемычек, зато с кучкой других, позволяет подключать экран к SPI_0 или SPI_1. Соответственно для подключения к SPI_0 запаиваем 5 перемычек 0603 в места маркированные "0", а для SPI_1 - "1". Все конденсаторы "С" - 0603 0,1mkF. UPD 11.07.2022
По просьбе добавил на плату микросхему RTC (Real Time Clock) - DS3231 c обвязкой и резервной батарейкой CR2032. Теперь малина может быть дату и время не из интернета, при автономной работе. Других отличий на плате нет. RTC можно не распаивать - на остальной функционал не влияет. Скачать плату в формате Gerber, пригодную для заказа, можно во вложениях converter_tft35_v0.6.rar, или новая версия - converter_tft35_v0.7.rar пароль на архивы: Платы версии 0.6 и 0.7 не изготавливались (не проверялись). Если найдёте ошибки визуально - пишите, исправлю.
Платы v0.4 собраны, протестированы и выявлено следующее:
При подключении экрана к SPI0 частота обновлений экрана почти совпадает с задаваемой в параметрах оверлея (20 FPS), но тогда некуда подключать акселерометр ADXL345 - на SPI1 он работать отказался (на 4й малине можно победить).
При подключении экрана к SPI1 частота обновлений экрана падает в 2 раза и становится не совсем комфортно работать, хотя экран обновляется по ощущениям, как на Marlin FW.
В причинах такого поведения я не совсем разобрался, знаю только что SPI1 в 3B и 3B+ какой-то немного урезанный, не работает в режимах 0 и 3 (из-за чего и не работает акселерометр на клиппере на SPI1). Поэтому делал возможность выбора при сборке платы.
Пока пара фото собранной платы (старая ревизия - 0.4) и работающего экрана (тач тоже работает - пока поверьте, видео будет позже). За качество пайки прошу не пинать - собирал в промежутках между работой, поэтому спаяно не очень аккуратно - "для проверки макета - пойдёт".
Доработка на плате экрана.
Не знаю почему, но в экранчике MKS TFT35 V1.0 не распаян выход прерывания от тачскрина. Это легко исправить всего одной перемычкой. Справится даже ребёнок. Без этой доработки опроса сенсора не будет, соответственно тач не работает в системе. На плате перемычка выглядит вот так: Удалось проверить экран FlyingBear Reborn-TS V3.0 от Flyingbear Ghost 5.
Отлично работает, доработка такая же, за исключением того, что разъём FFC перевёрнут... Сути это не меняет, подключается своим родным шлейфом без проблем. Видео для оценки скорости работы интерфейса. Тач не тормозит - просто дисплейный модуль фактически ни на что не опирается - не удобно тыкать в него одной рукой, а второй снимать...
Ещё одно видео снял, установив экран на место. Для оценки удобства использования. И таки я хочу вам сказать - вполне можно пользоваться. Конечно, на 5 дюймовом можно обойтись без стилуса, но зато тут сохранён внешний вид принтера и затрачено минимум средств на такую модернизацию.
В подвале принтера это может выглядеть вот так: Экран на родном месте, для подключения используется родной шлейф.
А в моём случае экран стоит другой - 5 дюймов. При этом плата используется как плата коммутации, в том числе для удобного подключения акселерометра ADXL345, питания вентилятора и другой периферии. Как реализовано питание, лучше посмотреть в отдельной теме.