article

Markus avatar image
Markus Posted · · edited ·

HowTo: Use a HDMI Screen with USB Touch Panel and USB HID Buttons on a Raspberry Pi running Venus

If you are using a RaspberryPi running VenusOS and want to have a working local screen with USB touchpanel and USB HID buttons (like in the video), or standard USB keyboard, follow these steps to get this done:

1.) Install venus image on your Raspberry Pi

2.) set HDMI output resolution of the Pi to 480x272 by adding

framebuffer_width=480

framebuffer_height=272

to config.txt (located on the FAT Partition on Venus SD card)

3.) Enable Root Access and make sure you can access the VenusOS files

4.) install QT4 mouse driver package by entering:

opkg update

opkg install qt4-embedded-plugin-mousedriver-tslib

opkg install tslib-calibrate

opkg install tslib-tests

5.) check on which event file the USB touchscreen and the USB Keyboard is linked to:

Type: "ls /dev/input" on the console and see the event files present.

check all event files present by typing cat /dev/input/event1 (then event2 and 3 etc...) and do some presses on the touch panel and USB HID keyboard. When you have hit the right event file you see hex numbers on the console output. Notice on which event file the touchscreen and on which event file the USB HID keyboard is linked to. In the following description the touchscreen is on event1 and keyboard is on event2. Change this, to the event files matching your environment.

6.) Calibrate touch screen with: (enter into console)

TSLIB_FBDEVICE=/dev/fb0

TSLIB_TSDEVICE=/dev/input/event1

TSLIB_CALIBFILE=/etc/pointercal

TSLIB_CONFFILE=/etc/ts.conf

TSLIB_PLUGINDIR=/usr/lib/ts ts_calibrate

7.) Test touch screen with:

TSLIB_FBDEVICE=/dev/fb0 TSLIB_TSDEVICE=/dev/input/event1 ts_test

8.) modify /opt/victronenergy/gui/start-gui.sh

if [ -n "$QWS_MOUSE_PROTO" ]; then

mouse=-mouse

else

mouse=-mouse

fi

after scriptdir=$(dirname "$BASH_SOURCE") add following lines:

export TSLIB_TSEVENTTYPE=INPUT

export TSLIB_CONSOLEDEVICE=none

export TSLIB_FBDEVICE=/dev/fb0

export TSLIB_TSDEVICE=/dev/input/event1

export TSLIB_CALIBFILE=/etc/pointercal

export TSLIB_CONFFILE=/etc/ts.conf

export TSLIB_PLUGINDIR=/usr/lib/ts

export QWS_MOUSE_PROTO=usb:/dev/input/event1

export QWS_KEYBOARD=USB:/dev/input/event2

(if you don't want to use a keyboard skip that last line)

9.) delete or rename /etc/venus/headless file and have a full functioning USB touch panel and working USB keyboard


If you have exactly the Samsung screen like in the video above, with the 5 button USB HID you have to create a new File /etc/udev/rules.d/99-usppt-usb-touch.rules with following contents:

KERNEL=="hidraw*", ATTRS{idVendor}=="13ec", ATTRS{idProduct}=="f2f8", RUN+="/bin/sh -c 'echo 1 > /dev/%k'"

A standard USB keyboard works without this.


If you have further questions, I will be glad to help.

I have to say, I am not a professional programmer or coder, not even a Linux expert, so this can surely be optimized, improved or simplified somehow. Please contribute if you can.


Regards,

Markus

Venus OSRaspberry Pimodifications
2 comments
10 |3000 characters needed characters left characters exceeded

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

This is awesome Markus.


I am using a display with a native / physical resolution of 1024x600.


With the entries in config.txt, I have a large bar at the top and bottom. Any pointers?

@warwick

Ah yes, the resolution you choose in config.txt has to match aspect ratio of the Venus GUI.

look in the data sheet of your display which resolutions are supported, or just try.

I would try 800x480.

Regards,

Markus

Article

Contributors

Markus contributed to this article