harmon25
USB Touch Screen with Nerves Kiosk
Hi all,
Looking for some help setting up a nerves rpi3 kiosk using an asus touch screen
I am starting with this system - GitHub - nerves-web-kiosk/kiosk_system_rpi3: Nerves QtWebEngine Kiosk system for Raspberry Pi 3 · GitHub.
I have one problem, the display is oriented in portrait, I have it rotated correctly via display_rotate=1 in config.txt but the touch input is now off.
I was able to solve this with an x11 debian based system using the following command
xinput set-prop 'ILITEK ILITEK Multi-Touch' 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1
Here is a link to pretty much the same problem - solved in a similar way:
https://www.raspberrypi.org/forums/viewtopic.php?t=205592
Any idea how I could go about solving this with a nerves system? Is it possible?
Thanks for the help!
EDIT:
This a similar thread,
https://forum.elixirforum.com/t/nerves-connecting-a-touch-screen
I am unsure how to apply that advice though…
Marked As Solved
harmon25
Thanks @mobileoverlord, I have been using the example app as reference, and the screen does work well by default!
My problem is operating the display vertically, I need to rotate the touch input.
I have come up with a solution that seems to work, albeit does not perform as well as the monitor in its default orientation…
I am running the following before launching the WebengineKiosk
:os.cmd('udevd -d')
:os.cmd('udevadm trigger --type=subsystems --action=add')
:os.cmd('udevadm trigger --type=devices --action=add')
:os.cmd('udevadm settle --timeout=30')
System.put_env("QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS", "/dev/input/event0:rotate=270")
System.put_env("QTWEBENGINE_CHROMIUM_FLAGS", "--disable-gpu")
QT_QPA_EGLFS_ROTATION
actually just rotates the display but has no impact on touch input, -90 is what i need based on the orientation of my display - might be able to rotate the display normally and just leverage the next step…
Rotating the display via config.txt - and tweaking the below parameter seems to have worked well!
This is the solution! woo
QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS
event0 is the device name for my touch screen events, and setting rotate=270 gets the touch input oriented as needed
When not messing with the orientation and just having udevd enabled, the touch screen works very well. Things like swiping to scroll, and pinch to zoom are accurate. after tweaking the settings as above those functions are a bit shaky and the touch does not seem as responsive.
Here is a link to the relevant QT documentation:
Also Liked
mobileoverlord
We used the kiosk_system_rpi3 Nerves system with Dell touch screen devices. The system has some generic support for USB touch screens enabled but getting QT (webengine_kiosk) to recognize the hot plug events for the USB touch screen required udev. There is room for improvement in this area, but here is an example of how we started udev as part of our application initialization. kiosk_system_rpi3/example/lib/example/application.ex at main · nerves-web-kiosk/kiosk_system_rpi3 · GitHub
Popular in Questions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance









