Unsolved rapsberry pi + 2.8'' capacitive tft + qt5.8
-
Hi All,
i recently bought capacitvie 2.8 TFT from adafruit (https://www.adafruit.com/product/242)
TFT is connected to RPI using SPI.
Im able to see application running on display only when platform is linuxfb. Once i change it to elgfs i see blank screen. Im suspecting that this is due to hardware limitations (SPI instead of HDMI).
Here is the output of my app with all possible debug informations:
QT_QPA_EGLFS_DEBUG=1 ./testrpi -platform eglfs
start
qt.qpa.egldeviceintegration: EGL device integration plugin keys: ("eglfs_brcm")
qt.qpa.egldeviceintegration: EGL device integration plugin keys (sorted): ("eglfs_brcm")
qt.qpa.egldeviceintegration: Trying to load device EGL integration "eglfs_brcm"
qt.qpa.egldeviceintegration: Using EGL device integration "eglfs_brcm"
qt.qpa.input: evdevkeyboard: Using device discovery
qt.qpa.input: static device discovery for type QFlags(0x8)
qt.qpa.input: doing static device discovery for "/dev/input/event0"
qt.qpa.input: doing static device discovery for "/dev/input/mice"
qt.qpa.input: doing static device discovery for "/dev/input/mouse0"
qt.qpa.input: doing static device discovery for "/dev/input/touchscreen"
qt.qpa.input: Found matching devices ()
qt.qpa.input: evdevmouse: Using device discovery
qt.qpa.input: static device discovery for type QFlags(0x1|0x2)
qt.qpa.input: doing static device discovery for "/dev/input/event0"
qt.qpa.input: doing static device discovery for "/dev/input/mice"
qt.qpa.input: doing static device discovery for "/dev/input/mouse0"
qt.qpa.input: doing static device discovery for "/dev/input/touchscreen"
qt.qpa.input: Found matching devices ()
qt.qpa.input: evdevtouch: Using device discovery
qt.qpa.input: static device discovery for type QFlags(0x2|0x4)
qt.qpa.input: doing static device discovery for "/dev/input/event0"
qt.qpa.input: Found touchscreen at "/dev/input/event0"
qt.qpa.input: doing static device discovery for "/dev/input/mice"
qt.qpa.input: doing static device discovery for "/dev/input/mouse0"
qt.qpa.input: doing static device discovery for "/dev/input/touchscreen"
qt.qpa.input: Found touchscreen at "/dev/input/touchscreen"
qt.qpa.input: Found matching devices ("/dev/input/event0", "/dev/input/touchscreen")
qt.qpa.input: evdevtouch: Adding device at "/dev/input/event0"
qt.qpa.input: evdevtouch: Adding device at "/dev/input/touchscreen"
qt.qpa.input: evdevtouch: Using device /dev/input/event0
qt.qpa.input: evdevtouch: /dev/input/event0: Protocol type A (multi)
qt.qpa.input: evdevtouch: /dev/input/event0: min X: 0 max X: 4095
qt.qpa.input: evdevtouch: /dev/input/event0: min Y: 0 max Y: 4095
qt.qpa.input: evdevtouch: /dev/input/event0: min pressure: 0 max pressure: 255
qt.qpa.input: evdevtouch: /dev/input/event0: device name: ft6x06_ts
qt.qpa.input: evdevtouch: Using device /dev/input/touchscreen
qt.qpa.input: evdevtouch: /dev/input/touchscreen: Protocol type A (multi)
qt.qpa.input: evdevtouch: /dev/input/touchscreen: min X: 0 max X: 4095
qt.qpa.input: evdevtouch: /dev/input/touchscreen: min Y: 0 max Y: 4095
qt.qpa.input: evdevtouch: /dev/input/touchscreen: min pressure: 0 max pressure: 255
qt.qpa.input: evdevtouch: /dev/input/touchscreen: device name: ft6x06_ts
Created context for format QSurfaceFormat(version 2.0, options QFlagsQSurfaceFormat::FormatOption(), depthBufferSize 0, redBufferSize 5, greenBufferSize 6, blueBufferSize 5, alphaBufferSize 0, stencilBufferSize 0, samples 0, swapBehavior QSurfaceFormat::SwapBehavior(DefaultSwapBehavior), swapInterval 1, profile QSurfaceFormat::OpenGLContextProfile(NoProfile)) with config:
EGL_BUFFER_SIZE: 16
EGL_ALPHA_SIZE: 0
EGL_BLUE_SIZE: 5
EGL_GREEN_SIZE: 6
EGL_RED_SIZE: 5
EGL_DEPTH_SIZE: 0
EGL_STENCIL_SIZE: 0
EGL_CONFIG_CAVEAT: 12344
EGL_CONFIG_ID: 20
EGL_LEVEL: 0
EGL_MAX_PBUFFER_HEIGHT: 2048
EGL_MAX_PBUFFER_PIXELS: 4194304
EGL_MAX_PBUFFER_WIDTH: 2048
EGL_NATIVE_RENDERABLE: 1
EGL_NATIVE_VISUAL_ID: 107544
EGL_NATIVE_VISUAL_TYPE: 12344
EGL_SAMPLES: 0
EGL_SAMPLE_BUFFERS: 0
EGL_SURFACE_TYPE: 1639
EGL_TRANSPARENT_TYPE: 12344
EGL_TRANSPARENT_BLUE_VALUE: 0
EGL_TRANSPARENT_GREEN_VALUE: 0
EGL_TRANSPARENT_RED_VALUE: 0
EGL_BIND_TO_TEXTURE_RGB: 1
EGL_BIND_TO_TEXTURE_RGBA: 1
EGL_MIN_SWAP_INTERVAL: 0
EGL_MAX_SWAP_INTERVAL: 2147483647
qt.qpa.input: evdevtouch: Updating QInputDeviceManager device count: 1 touch devices, 1 pending handler(s)
qt.qpa.input: evdevtouch: Updating QInputDeviceManager device count: 2 touch devices, 0 pending handler(s)<blank scrren>
and output once ran with linuxfb as platform:
QT_QPA_EGLFS_DEBUG=1 ./testrpi -platform linuxfb:fb=/dev/fb1
start
qt.qpa.input: evdevkeyboard: Using device discovery
qt.qpa.input: static device discovery for type QFlags(0x8)
qt.qpa.input: doing static device discovery for "/dev/input/event0"
qt.qpa.input: doing static device discovery for "/dev/input/mice"
qt.qpa.input: doing static device discovery for "/dev/input/mouse0"
qt.qpa.input: doing static device discovery for "/dev/input/touchscreen"
qt.qpa.input: Found matching devices ()
qt.qpa.input: evdevmouse: Using device discovery
qt.qpa.input: static device discovery for type QFlags(0x1|0x2)
qt.qpa.input: doing static device discovery for "/dev/input/event0"
qt.qpa.input: doing static device discovery for "/dev/input/mice"
qt.qpa.input: doing static device discovery for "/dev/input/mouse0"
qt.qpa.input: doing static device discovery for "/dev/input/touchscreen"
qt.qpa.input: Found matching devices ()
qt.qpa.input: evdevtouch: Using device discovery
qt.qpa.input: static device discovery for type QFlags(0x2|0x4)
qt.qpa.input: doing static device discovery for "/dev/input/event0"
qt.qpa.input: Found touchscreen at "/dev/input/event0"
qt.qpa.input: doing static device discovery for "/dev/input/mice"
qt.qpa.input: doing static device discovery for "/dev/input/mouse0"
qt.qpa.input: doing static device discovery for "/dev/input/touchscreen"
qt.qpa.input: Found touchscreen at "/dev/input/touchscreen"
qt.qpa.input: Found matching devices ("/dev/input/event0", "/dev/input/touchscreen")
qt.qpa.input: evdevtouch: Adding device at "/dev/input/event0"
qt.qpa.input: evdevtouch: Adding device at "/dev/input/touchscreen"
qt.qpa.input: evdevtouch: Using device /dev/input/event0
qt.qpa.input: evdevtouch: /dev/input/event0: Protocol type A (multi)
qt.qpa.input: evdevtouch: /dev/input/event0: min X: 0 max X: 4095
qt.qpa.input: evdevtouch: /dev/input/event0: min Y: 0 max Y: 4095
qt.qpa.input: evdevtouch: /dev/input/event0: min pressure: 0 max pressure: 255
qt.qpa.input: evdevtouch: /dev/input/event0: device name: ft6x06_ts
qt.qpa.input: evdevtouch: Using device /dev/input/touchscreen
qt.qpa.input: evdevtouch: /dev/input/touchscreen: Protocol type A (multi)
qt.qpa.input: evdevtouch: /dev/input/touchscreen: min X: 0 max X: 4095
qt.qpa.input: evdevtouch: /dev/input/touchscreen: min Y: 0 max Y: 4095
qt.qpa.input: evdevtouch: /dev/input/touchscreen: min pressure: 0 max pressure: 255
qt.qpa.input: evdevtouch: /dev/input/touchscreen: device name: ft6x06_ts
qt.qpa.input: evdevtouch: Updating QInputDeviceManager device count: 1 touch devices, 1 pending handler(s)
qt.qpa.input: evdevtouch: Updating QInputDeviceManager device count: 2 touch devices, 0 pending handler(s)
<APP on screen>Any ideas why is this happening?
regards
s. -
Hi
Never used a PI,
but im wondering if you checked that
ALL dependencies of the eglfs platform plugin are installed.
But it does seems to load so might not be that.
Is the openGL ok ? -
acutally i dont have a clue how to test openGL itsefl. I wanted to start with it using QT. All libs are ok, no missing, all symlinks are OK, etc etc
-
@sieciech
The linux running on the board
can it do
http://www.upubuntu.com/2013/11/how-to-check-3d-acceleration-fps-in.htmlif its a debian child, maybe it has
glxgears ? -
I'd suggest go carefully thru
https://wiki.qt.io/RaspberryPi2EGLFS
pay attention to step 11. may be this is a reason -
Re: rapsberry pi + 2.8'' capacitive tft + qt5.8
The tutorial @mrjj mentioned is excellent and works. I had similar problems and removed the installed version of libts that comes with Raspian Jessie. I used the version of libts from GitHub and compiled it on a fresh install of Jessie Lite. Then I followed the tutorial. Except for the installation of libts-dev. Another important fact is, that the touch-panel should be installed and calibrated correctly.