3.5" SPI touch LCD na OrangePi Lite
Napsal: 09.03.2017 18:47
Po nějaké době jsem se k projektu vrátil a relativně jsem uspěl. Rozběhal jsem jak LCD, tak touch a nakonec i Repetier-server, zatím bez kamery, ale v tom nevidím asi problém
Osazeni LCD Oprange Pi Lite
Osazení Orange Pi 2
Použité a otestované "železo":
LCD http://www.waveshare.com/wiki/3.5inch_RPi_LCD_(A)
OrangePi Lite http://www.orangepi.org/orangepilite/
a
OrangePi 2 http://www.orangepi.org/orangepi2/
OS jsem použil aktuální Armbian s kernelem 4.14.xx https://www.armbian.com/orange-pi-lite/
# instalace OS: (zatím vynechám, to není nic nedohledatelného na netu)
# konfigurace wifi: (prozatím zjednodušeně) zdroj: http://www.orangepi.org/orangepibbsen/f ... d&tid=2544
-serova konzole, rychlost 115200
-login root/1234
-provotní bastavení heala pro roota a vytvoření nového usera
(přihlašte se jako root)
po následujícím příkazu se připojte k wifi
# Update/upgrade/install kernel header/desktop a nějaké ty prvotní konfigurace, jako časové pásmo atp:
instalovat kernel-header
instalovat desktop
přihlašte se jako root
# Rozchozeni LCD: zdroj https://blog.osakana.net/archives/8296
flexfb
fbtft
fbtft_device
options flexfb width=320 height=480 regwidth=16 init=-1,0xb0,0x0,-1,0x11,-2,250,-1,0x3A,0x55,-1,0xC2,0x44,-1,0xC5,0x00,0x00,0x00,0x00,-1,0xE0,0x0F,0x1F,0x1C,0x0C,0x0F,0x08,0x48,0x98,0x37,0x0A,0x13,0x04,0x11,0x0D,0x00,-1,0xE1,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0xE2,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0x36,0x28,-1,0x11,-1,0x29,-3
options fbtft_device debug=3 rotate=90 name=flexfb speed=16000000 gpios=reset:2,dc:71
overlays=spi-spidev spi-add-cs1
param_spidev_spi_bus=0
param_spidev_spi_cs=1
extraargs="fbcon=map:0"
login jako root
#Kompilace a instalace touch driveru ads7846: zdroj https://forum.armbian.com/topic/4837-gu ... 3-devices/
Vložit následující kód, pouze bez ---------- fórum przní formát toho odstavce, proto přikládám ještě v txt
options ads7846_device model=7846 cs=1 gpio_pendown=1 keep_vref_on=1 swap_xy=1 pressure_max=255 x_plate_ohms=60 x_min=200 x_max=3900 y_min=200 y_max=3900
ads7846
ads7846_device
přejmenovat, nebo zkopírovat /usr/share/X11/xorg.conf.d/10-evdev.conf >>> /usr/share/X11/xorg.conf.d/45-evdev.conf
#nasměrování X-ek na LCD
Section "Device"
Identifier "myfb"
Driver "fbdev"
Option "fbdev" "/dev/fb0"
EndSection
zde by měly naběhnout již Xka na LCD a dotyk by měl reagovaty
#Kalibrace dotykáče
výsledek vložit do souboru níže, tedy něco takového:
Section "InputClass"
Identifier "calibration"
MatchProduct "ADS7846 Touchscreen"
Option "Calibration" "3912 238 292 3860"
Option "SwapAxes" "0"
EndSection
Toť pro dnešek vše
Osazeni LCD Oprange Pi Lite
Osazení Orange Pi 2
Použité a otestované "železo":
LCD http://www.waveshare.com/wiki/3.5inch_RPi_LCD_(A)
OrangePi Lite http://www.orangepi.org/orangepilite/
a
OrangePi 2 http://www.orangepi.org/orangepi2/
OS jsem použil aktuální Armbian s kernelem 4.14.xx https://www.armbian.com/orange-pi-lite/
# instalace OS: (zatím vynechám, to není nic nedohledatelného na netu)
# konfigurace wifi: (prozatím zjednodušeně) zdroj: http://www.orangepi.org/orangepibbsen/f ... d&tid=2544
-serova konzole, rychlost 115200
-login root/1234
-provotní bastavení heala pro roota a vytvoření nového usera
(přihlašte se jako root)
po následujícím příkazu se připojte k wifi
- Kód: Vybrat vše
nmtui
# Update/upgrade/install kernel header/desktop a nějaké ty prvotní konfigurace, jako časové pásmo atp:
- Kód: Vybrat vše
apt update
apt upgrade
armbian-config
instalovat kernel-header
instalovat desktop
- Kód: Vybrat vše
reboot
přihlašte se jako root
# Rozchozeni LCD: zdroj https://blog.osakana.net/archives/8296
- Kód: Vybrat vše
nano /etc/modules-load.d/fbtft.conf
flexfb
fbtft
fbtft_device
- Kód: Vybrat vše
nano /etc/modprobe.d/fbtft.conf
options flexfb width=320 height=480 regwidth=16 init=-1,0xb0,0x0,-1,0x11,-2,250,-1,0x3A,0x55,-1,0xC2,0x44,-1,0xC5,0x00,0x00,0x00,0x00,-1,0xE0,0x0F,0x1F,0x1C,0x0C,0x0F,0x08,0x48,0x98,0x37,0x0A,0x13,0x04,0x11,0x0D,0x00,-1,0xE1,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0xE2,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0x36,0x28,-1,0x11,-1,0x29,-3
options fbtft_device debug=3 rotate=90 name=flexfb speed=16000000 gpios=reset:2,dc:71
- Kód: Vybrat vše
nano /boot/armbianEnv.txt
overlays=spi-spidev spi-add-cs1
param_spidev_spi_bus=0
param_spidev_spi_cs=1
extraargs="fbcon=map:0"
- Kód: Vybrat vše
reboot
login jako root
#Kompilace a instalace touch driveru ads7846: zdroj https://forum.armbian.com/topic/4837-gu ... 3-devices/
- Kód: Vybrat vše
cd
mkdir ds7846
cd ds7846
wget https://sourceforge.net/p/openipmi/linux-ipmi/ci/master/tree/drivers/input/touchscreen/ads7846.c?format=raw
mv ads7846.c?format=raw ads7846.c
- Kód: Vybrat vše
nano Makefile
Vložit následující kód, pouze bez ---------- fórum przní formát toho odstavce, proto přikládám ještě v txt
- Kód: Vybrat vše
Vložit bez ---------- (bohužel to nefunguje, vložte z přiloženého txt)
--------------------------------
obj-m := ads7846.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
all:
$(MAKE) -C $(KDIR) M=$(PWD) modules
clean:
$(MAKE) -C $(KDIR) M=$(PWD) clean
install:
$(MAKE) -C $(KDIR) M=$(PWD) modules_install
--------------------------------
- Kód: Vybrat vše
make
make install
depmod
cd ..
git clone https://github.com/notro/fbtft_tools/
cd fbtft_tools/ads7846_device
make
make install
depmod
- Kód: Vybrat vše
nano /etc/modprobe.d/fbtft.conf
options ads7846_device model=7846 cs=1 gpio_pendown=1 keep_vref_on=1 swap_xy=1 pressure_max=255 x_plate_ohms=60 x_min=200 x_max=3900 y_min=200 y_max=3900
- Kód: Vybrat vše
nano /etc/modules-load.d/ads7846.conf
ads7846
ads7846_device
- Kód: Vybrat vše
apt install xinput
apt install fbi
apt-get install xserver-xorg-input-evdev xinput-calibrator -y
přejmenovat, nebo zkopírovat /usr/share/X11/xorg.conf.d/10-evdev.conf >>> /usr/share/X11/xorg.conf.d/45-evdev.conf
- Kód: Vybrat vše
cp -rf /usr/share/X11/xorg.conf.d/10-evdev.conf /usr/share/X11/xorg.conf.d/45-evdev.conf
#nasměrování X-ek na LCD
- Kód: Vybrat vše
nano /usr/share/X11/xorg.conf.d/98-fbdev.conf
Section "Device"
Identifier "myfb"
Driver "fbdev"
Option "fbdev" "/dev/fb0"
EndSection
- Kód: Vybrat vše
reboot
zde by měly naběhnout již Xka na LCD a dotyk by měl reagovaty
#Kalibrace dotykáče
- Kód: Vybrat vše
DISPLAY=:0.0 xinput_calibrator
výsledek vložit do souboru níže, tedy něco takového:
Section "InputClass"
Identifier "calibration"
MatchProduct "ADS7846 Touchscreen"
Option "Calibration" "3912 238 292 3860"
Option "SwapAxes" "0"
EndSection
- Kód: Vybrat vše
nano /usr/share/X11/xorg.conf.d/99-calibration.conf
Toť pro dnešek vše