Jump to content

OrangePi One/Lite підключення дісплею MKS TS35


Recommended Posts

Стартові вимоги 🙂
- Маєте дісплейчик з тачскріном від MKS TS35 (наприклад Robin Nano V3 працює з таким)

- Є одноплатний компьютер Orange Pi One/Lite (підозрюю, Orange Pi Zero також підійде)

- Дуже кортить мати локальне керування вашим 3д принтером, яке відпало після встановлення прошивки Klipper на той самий принтер.
Саме найперше, що треба зробити — встановити останній armbian під свою плату. Припустимо, це Orange Pi One. Завантажили образ (я використовую Armbian 22.05 Bullseye/cli , без всіляких домішок — напхати усякого хламу встигнемо ще. Записати можно balena etcher

Завантажились перший раз, побачили страшну чорну консольку, змінили пароль рута (за замовченням root / 1234 ) Так. хм. Виключаємо, та ліземо за дротами. Без купки дротів дісплейчик чогось працювати не хоче.
Дивимось на картинку с призначенням гребінки i/o Orange Pi One, Lite, PC, PC2, PC Plus, Plus, Plus 2, Plus 2E, Prime

(картинка з https://pcminipro.ru/orangepi/raspinovka-razemov-gpio-orange-pi/ )

orange-header.thumb.png.34e676f566e28427c30946383aab37c0.png

 

 

 

а також на роз’єми MKS TS35
(картинка з https://github.com/willngton/3DPrinterConfig/blob/main/mks_ts35/mks_ts35_guide_archived.md )

ts35.thumb.png.9dfde04341791c3029ea76cdb47c8280.png

У нашого одноплатника є два SPI, мені подобається більше SPI0, на нього буду чіпляти(для SPI1 метода така ж сама, різниця тільки у налаштуваннях). Сам MKS TS35 зроблений фактично з двух різних залізяк — контролер дисплею (Ilitek IL9341) та контролер тачскріну (ADS7846). Обидва для керування використовують SPI шину, керуючий компьютер смикає їх по черзі за необхідності.

 

Зробимо табличку, куди треба втикнути:

Пин на одноплатнику

Пин на TS35

Функція

PC0 (SPI0-MOSI)

MOSI

Передача даних

PC1 (SPI0-MISO)

MISO

Приймання даних

PC2 (SPI0-SCK)

SCK

Тактовий сигнал

PC3 (SPI0-CS)

LCD_CS

Робота с дісплеем

PA0

LCD_RS

Дісплей: Дані/Команда

PA1

TOUCH_CS

Робота з тачскріном

PA3

LCD_RST

Дісплей: скидання

PA6

TOUCH_INT

Тачскрін: Подія натискання

+5V

BOARD_5V

Живлення

Ground

GND

Загальний

+3.3V

LCD_BLK

Підсвічування дісплею

 

Згідно с табличкой з’єднуємо девайси дротами. Можна спаяти, можна ардуінівскими перемичками, за бажанням.

Згодом війде десь такий жах:

wires.thumb.png.503f203b239cb5f8ee9810faab68acd7.png

Дуже уважно перевірити підключення живлення — якщо переплутати, є неабиякий шанс випускання магічного диму, після цього — або одноплатник, або дісплейчик піде впевненними кроками до смітника. Не заважить два, три рази пересвідчитися, що підключено як треба.

Теперь треба закинути на одноплатник файли с конфігурациєю дісплея. (у вкладенні). Це звичайний текстовичок, який описує що, як, куди підключено.

Закидуємо их в /boot/overlay-user будь-яким зручнім методом (наприклад, far manager або WinSCP. Це программи для ОС Windows, лінуксоїди i так знають, як це зробити 🙂

Далі треба сходити в консольку, та виконати декілька команд. (або взяти зразу відкомпільовані файліки)

 

cd /boot/overlay_user
dtc -O dtb sun8i-h3-ads7628.dts -o sun8i-h3-ads7628.dtbo
dtc -O dtb sun8i-h3-ili9341.dts -o sun8i-h3-ili9341.dtbo
dtc -O dtb sun8i-h3-csPA01.dts -o sun8i-h3-csPA01.dtbo


Це компілятор текстового файла dts с описом конфігурации в бінарний вид, який більше підходить для завантаження ядром. Якщо все добре, отримаете три файли *.dtbo, які слід закинути в /boot/dtb/overlay
Теперь виконуемо штатний конфігуратор от армбиана

armbian-config

 

Завантажится программулька, System → Hardware дасть список оверлеев, доступних для системи. Там треба відмітити ads7628, ili9341, csPA01, spi-spidev, spi-add-cs1

overlay.thumb.png.4b75a967552b90bd24940f3c56e462dd.png

 

Зберігаємо, перезавантажувати поки не потрібно, відкриваємо на редагування файл /boot/armbianEnv.txt
там серед усього побачите рядочок с назвами того, що нещодавно вмикали:

overlays=spi-add-cs1 spi-spidev csPA01 ili9341 ads7846

якщо оверлеї вмикаются не в тому порядку, треба відредагувати. (Робочий варіант вище, в експеріментах тач в мене не працював, доки не поправив порядок)

після неї додаємо три нових:

param_spidev_spi_bus=1
param_spidev_spi_cs=1
param_spidev_max_freq=48000000

 

зберігаємо, тепер можна і перезавантажувати. Якщо все раніше зроблено вірно — профіт, на дісплейчику повинні побігти рядочки завантаження системи та запрошення входу до системи.

console.thumb.png.cc4a5c1b2719fd0032e1a4fd87d506d0.png

 

Останній крок — встановити графічну систему xorg

apt install xorg xfce4 xserver-xorg-video-fbdev

(останній пакет потрібен саме для alwinner систем)


за шляхом /etc/X11/xorg.conf/d кладемо файлік 98-fbdev.conf з таким змістом:

Section "Device"
Identifier "myfb"
Driver "fbdev"
Option "fbdev" "/dev/fb0"
EndSection

 

та запускаемо x-сервер

startx

 

радіємо картинці:

test.thumb.png.6f92aa1966a0e23cb0a6944fc7bf6f23.png

 

Сразу у вас майже 100 відсотків тач буде працювати не там, де треба. Калібруємо!

cd /opt
git clone https://github.com/kreijack/xlibinput_calibrator.git
apt install libxi-dev libx11-dev libxrandr-dev
cd /opt/xlibinput_calibrator/
make
cd src
DISPLAY=:0 ./xlibinput_calibrator –output-file-x11-config=test


останню команду слід вводити в окремій консольці, коли x-server працює - на дісплеї картинка така як вище і вона повинна замінитися на калібровочну:
calibrator.thumb.png.a357b1e86f6821b7e2fe02cc3540fc0c.png

 

Треба потикати олівцем у червоній хрестік, він буде переміщуватись по кутам. Отримаете вивід калібровочної таблиці типу:
Section "InputClass"

Identifier "calibration"

MatchProduct "ADS7846 Touchscreen"

Option "CalibrationMatrix" "-0.859279 0.004338 0.914957 -0.017730 0.897817 0.063206 0.000000 0.000000 1.000000 "

EndSection

це треба закинути в файлік
99-calibration.conf за шляхом /etc/X11/xorg-conf.d та перезавантажити x-сервер.

 

Усе, теперь можна потестити графичну оболонку 🙂

sun8i-h3-ads7846.dtbo sun8i-h3-ads7846.dts sun8i-h3-csPA01.dtbo sun8i-h3-csPA01.dts sun8i-h3-ili9341.dtbo sun8i-h3-ili9341.dts

  • Like 1
  • Thanks 1
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...