Экран MKS TS35 V2.0 используется с платами Robin Nano 2.0 На принтерах Flying Bear6 установлен аналогичный экран, но без энкодера.
Экран сделан на контроллере Sitronix st7796s. Контроллер может работать в различных режимах (параллельный, последовательный), но на плате установлены настройки для работы по SPI. Тач сделан на аналоге xpt2046, подключен к этой же шине SPI.
Для подключения используются две колодки экрана, обозначенные как EXP1 и EXP2. Назначение контактов:
Уровни на всех выводах 3.3В. На плате установлен понижающий преобразователь, питание 5В.
Схема подключения, если будут вопросы: пишите в личку
Далее фото подключения от нашего хорошего друга Артема Григорьева:
Так же обращаем ваше внимание на “помеченный” черной полоской/маркером проводник. В силу цветопередачи камеры телефона на фото не видно разницы в сером и белом цвете. !!!!БУДЬТЕ ОЧЕНЬ ВНИМАТЕЛЬНЫ при подключении, так как при не верном подключении есть шанс спалить одноплатник или модуль дисплея!!
Подключение экрана
Подключение Orange Pi 3 LTS:
На текущий момент мы считаем, что у вас принтер подключен по UART, а драйвера принтера распаяны на UART (об этом отлично рассказывал Виталий, канал “Уголок Технаря”), если все так – то продолжаем
Итак, будем считать, что у Вас все подключено по UART и мы готовы запустить стоковый экран FB Ghost 6
На всякий случай распишу порядок подключения по названию пинов:
MOSI PH5 SPI1_MOSI
MISO PH6 SPI1_MISO
CLK PH4 SPI1_CLK
TFT_CS PL8
DC PD15
RST PD16
TOUCH_CS PH3
TOUCH_IRQ PL10
LED 3.3V
В ядре нет подходящего драйвера для контроллера st7796s. Однако в mainline ядре такого драйвера нет, и сам автор говорит, что “This guide have been archived due some kernel changes on raspbian mainline kernel”.
Сам по себе чипсет достаточно типовой, отличается только инициализация экрана. Поэтому можно собрать драйвер в виде внешнего модуля ядра.
Для сборки модуля понадобится пакет build-essential и linux-headers. В Debian linux-headers ужу установлен, по-этому выполняем команду:
uname -a
Устанавливаем необходимый пакет:
sudo apt install git build-essential
Клонируем репозиторий
cd ~
git clone https://github.com/Datastore24Kirill/FBGhost6_klipperScreen.git
cd FBGhost6_klipperScreen/kernel_module/
Выполняем команды по строчкам:
make
sudo make install
make clean
sudo depmod -A
При копировании драйвера (команда make install) компилятор сообщит об ошибках “SSL error”. Их можно игнорировать.
Для того, чтобы драйвер загружался при старте системы, его нужно добавить в initramfs.
Для этого нужно добавить название драйвера в /etc/initramfs-tools/modules и обновить сжатый образ initramfs:
sudo bash -c 'echo "fb_st7796s" >> /etc/initramfs-tools/modules'
sudo update-initramfs -u
Проверить, что драйвер был добавлен:
Что бы не определять версию вашего ядра, идем на хитрость. Прописываем в консоле (НЕ НАЖИМАЯ Enter):
sudo lsinitramfs /boot/initrd.img-
нажимаем клавишу TAB и ОС допишет за нас нужную версию, в конце дописываем:
| grep fb
Для загрузки драйвера нужно указать ядру к каким ногам подключен экран и тач, а так же включить SPI. Делается это через device tree. Для Orange Pi 3 LTS есть готовый файл:
cd ../dts/
sudo orangepi-add-overlay sun50i-h6-st7796s.dts
На этом можно перезагрузить систему и убедиться, что экран работает:
sudo reboot
После перезагрузки на стоков экране побегут строчки запуска Debian.
Устанавливаем ПЕРВЫЙ раз KlipperScreen
cd kiauh
./kiauh.sh
Нажимаем цифру 1 и Enter
Нажимаем цифру 5 и Enter
Дожидаемся окончания установки
Выполняем команды:
mkdir x11-config
cd x11-config
git clone https://github.com/Datastore24Kirill/KlipperScreen_x11_config.git
cd KlipperScreen_x11_config
sudo mv 50-fbdev.conf /etc/X11/xorg.conf.d/50-fbdev.conf
sudo mv 51-touch.conf /etc/X11/xorg.conf.d/51-touch.conf
При вводе командо SUDO запросит пароль Вашего пользователя
Настроем X11 для отображения:
В конец файл Xwrapper.config добавляем строчку. Для этого
sudo nano /etc/X11/Xwrapper.config
В конец добавляем строчку:
needs_root_rights=yes
Запускаем установку нужно пакета:
sudo apt-get install xserver-xorg-video-fbdev
И снова переустанваливаем KlpperScreen через Kiauh:
cd ~
cd kiauh
./kiauh.sh
Нажимаем цифру 1 и Enter
Нажимаем цифру 5 и Enter
Дожидаемся окончания установки
Настройка тач
Данная строка сразу меняет расположение и можно поиграться с матрицами перед тем как делать что то.
DISPLAY=:0 xinput set-prop "wch.cn USB2IIC_CTP_CONTROL" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
если после этого начало работать правим: sudo nano /etc/X11/xorg.conf.d/51-touch.conf
и вписываем правильную матрицу тача.
sudo nano /etc/X11/xorg.conf.d/51-touch.conf
Прописываем:
Section "InputClass"
Identifier "ADS7846 Touchscreen"
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
Option "TransformationMatrix" "1 0 0 0 1 0 0 0 1"
Option "SwapXY" "1"
Option "InvertX" "1"
Option "InvertY" "1"
EndSection
Получаем рабочий экран: