Instrucciones para una instalación básica del Touchscreen Kuman 3.5″ con chip XPT2046 en Raspberry Pi 3 B+, con Venus de Victron Energy

Intenté activar mi touchscreen que vemos en esta foto después de haber arrancado Venus en mi RPi y fracasé. Tras varios fracasos descubrí que el truco era, tras grabar la imagen de Venus, y sin quitar la SDcard de mi laptop, hacer los puntos 1 y 2 siguientes:
1. Copiar el driver adecuado para mi touchscreen dentro del directorio /u-boot/overlays/ de la SDcard. Lo conseguí dentro del directorio /usr de este LCD-show oficial.
2. Editar el archivo /u-boot/config.txt en la sección all:
[all]
dtparam=spi=on
dtoverlay=tft35a, rotate=270
display_default_lcd=1 <– sin esto no cargará la GUI de Venus
3. Puse la SDcard en mi RPi y cargó esta pantalla de solo comandos, confirmando que el driver era el correcto.

*Las siguientes configuraciones las hice por ssh, para activar el acceso:
Entra por Remote Console (Aquí explico cómo) a Settings–>General–>Access level. Estará resaltado User & Installer, presiona y no sueltes la tecla direccional derecha de tu teclado hasta que cambie a Superuser.
Asigna un password para Superuser.
Activa SSH on LAN.
4. Desde un terminal:
ssh root@ipdeturaspi (te pedirá el password que asignaste)
5. Sería bueno que pruebes que la interfaz gráfica de Venus se muestre en la pantalla, aunque todavía no tendrá función touch:
-Deshabilita el mode headless (renombrando el archivo correspondiente) para que la interfaz de Venus se muestre en tu touscreen:
mv /etc/venus/headless /etc/venus/headless.off
reboot
Si todo va bien, verás la interfaz de Venus. A menos que quieras dejar la pantalla solo como monitor, sin la función touch, aquí terminó todo, sino continúa al paso 6.
6. mv /etc/venus/headless.off /etc/venus/headless <– luego del reboot la pantalla volverá a modo comandos
reboot
7. Calibrar la pantalla es requisito indispensable para que funcione el touch, así que instala este paquete:
(Actualización: si surge una falla hay que editar nano /etc/opkg/venus.conf y cambiar la ruta de los paquetes por “dunfell”)
opkg update
opkg install tslib-calibrate
Y luego corre estos comandos:
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/touchscreen0
ts_calibrate
Toca los 5 puntos que aparecen en tu touchscreen.

8. Vuelve a deshabilitar headless:
mv /etc/venus/headless /etc/venus/headless.off
reboot
Luego del reboot volverá a cargar la interfaz de Venus y ya responderá a los toques.

Después de darle mil vueltas y comprobar aquí y allá… lo que ha marcado la diferencia para que me funcione la salida de la consola por la pantalla es agregar estos dos parámetros en el cmdline.txt dentro de /boot/
En /boot/cmdline.txt debe aparecer en el comando estos dos parámetros
fbcon=map:10 fbcon=font:ProFont6x11
El fbcon o Framebuffer Console lo mapeamos para que salga la consola por la pantalla.
Con el comando: cat /proc/fb
0 BCM2708 FB
1 fb_ili9486
Obtenemos las consolas disponibles. La fb_ili9486 es nuestra pantalla. La BCM2708 FB es la salida HDMI
fbcon=map:
This is an interesting option. It tells which driver gets mapped to
which console. The value ‘0123’ is a sequence that gets repeated until
the total length is 64 which is the number of consoles available. In
the above example, it is expanded to 012301230123… and the mapping
will be:
tty | 1 2 3 4 5 6 7 8 9 …
fb | 0 1 2 3 0 1 2 3 0 …
(‘cat /proc/fb’ should tell you what the fb numbers are)
One side effect that may be useful is using a map value that exceeds
the number of loaded fb drivers. For example, if only one driver is
available, fb0, adding fbcon=map:1 tells fbcon not to take over the
console.
Later on, when you want to map the console the to the framebuffer
device, you can use the con2fbmap utility.
Y por otro lado definimos el tipo de fuente que vamos a utilizar, con el que mejor lo veas. El ProFont6x11 está bien.
fbcon=font:
Select the initial font to use. The value ‘name’ can be any of the
compiled-in fonts: 10×18, 6×10, 7×14, Acorn8x8, MINI4x6,
PEARL8x8, ProFont6x11, SUN12x22, SUN8x16, TER16x32, VGA8x16, VGA8x8.
Para terminar indicarles que para mí no ha sido determinante la secuencia de comandos en el /boot/config.txt
dtparam=spi=on
dtoverlay=tft35a, rotate=270
display_default_lcd=1
Ya durante la instalación (ejecutando el sudo ./LCD-show/LCD35-show) se han agregado los comandos:
[all]
#dtoverlay=vc4-fkms-v3d
hdmi_force_hotplug=1
dtparam=i2c_arm=on
dtparam=spi=on
enable_uart=1
dtoverlay=tft35a:rotate=90
hdmi_group=2
hdmi_mode=1
hdmi_mode=87
hdmi_cvt 480 320 60 6 0 0 0
hdmi_drive=2
No lo he conseguido yo ni siquiera con script que se apague la pantalla del todo. Te dejo mi mail y si averiguas como me dices por favor.
jjpinozgz@gmail.com
Muchas gracias por responder.
A ver si descubrimos como.
hola como puedo apagar la pantalla tactil desde ssh? dejarla sin luz para minimizar gastos.Gracias
Hola, una forma sería crear un script, pero solo funcionaría reiniciando el Raspi, lo cual no es lo deseable. Intento descubrir la forma de hacerlo desde la misma pantalla táctil. Hasta donde he investigado, con otros modelos se puede.
Hola,
gracias por la rápida información. Con una pantalla con xpt2046 funciona muy bien. Pero mi pantalla de 3.5 “de kedei se mueve. La pantalla funciona y el controlador táctil está cargado. Pero la calibración no funciona. Pero no hay problema, ahora estoy usando la pantalla RPI. Si aparece otro consejo para el kedei, tampoco estaría mal .
Saludos a españa
Wolfgang
Hola,
Me detengo en el archivo del controlador táctil. ¿Tiene un nombre específico para el archivo del controlador para el toque?
LCD-show-170708
tft35a