Touch functionality on torizon


I´m trying to get the touch functionality working on the Toradex Capacitive Touch Display 7" Parallel with my Colibri IMX8 mounted on the Aster carrier board.

Currently, the display shows the screen of the IMX8 but with the wrong resolution (only a part of the screen lights up) and without the touch functionality. I have tried to modify the device tree with the device tree overlays according to this article without any success. We have modified the device tree by enabling CAN and disabled SPI and UART. I have also tried to do a touch screen calibration without getting a calibration screen on the display. This is the complete log of the container:

NXP EULA has already been accepted.
Date: 2020-10-28 UTC
[10:05:35.203] weston 5.0.0
               Bug reports to:
               Build: unknown (not built from git or tarball)
[10:05:35.203] Command line: /usr/bin/weston
[10:05:35.203] OS: Linux, 4.14.170-4.0.0-devel+git.be5c475bdaca, #1 SMP PREEMPT Tue Oct 20 13:21:53 UTC 2020, aarch64
[10:05:35.203] warning: XDG_RUNTIME_DIR "/tmp/weston-xdg" is not configured
correctly.  Unix access mode must be 0700 (current mode is 755),
and must be owned by the user (current owner is UID 0).
Refer to your distribution on how to get it, or
on how to implement it.
[10:05:35.205] Using config file '/etc/xdg/weston/weston.ini'
[10:05:35.209] Output repaint window is 16 ms maximum.
[10:05:35.211] Loading module '/usr/lib/aarch64-linux-gnu/libweston-5/'
[10:05:35.213] initializing drm backend
[10:05:35.219] using /dev/dri/card1
[10:05:35.220] DRM: supports universal planes
[10:05:35.220] DRM: supports atomic modesetting
[10:05:35.220] DRM: does not support picture aspect ratio
[10:05:35.221] Loading module '/usr/lib/aarch64-linux-gnu/libweston-5/'
[10:05:35.250] EGL client extensions: EGL_EXT_client_extensions
               EGL_EXT_platform_base EGL_KHR_platform_wayland
               EGL_EXT_platform_wayland EGL_KHR_platform_gbm
[10:05:35.259] warning: neither EGL_EXT_swap_buffers_with_damage or EGL_KHR_swap_buffers_with_damage is supported. Performance could be affected.
[10:05:35.259] EGL_KHR_surfaceless_context available
[10:05:35.273] EGL version: 1.5
[10:05:35.273] EGL vendor: Vivante Corporation
[10:05:35.273] EGL client APIs: OpenGL_ES
[10:05:35.274] EGL extensions: EGL_KHR_fence_sync EGL_KHR_reusable_sync
               EGL_KHR_wait_sync EGL_KHR_image EGL_KHR_image_base
               EGL_KHR_image_pixmap EGL_KHR_gl_texture_2D_image
               EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image
               EGL_EXT_image_dma_buf_import_modifiers EGL_KHR_lock_surface
               EGL_KHR_create_context EGL_KHR_surfaceless_context
               EGL_EXT_create_context_robustness EGL_EXT_protected_surface
               EGL_EXT_protected_content EGL_EXT_buffer_age
               EGL_ANDROID_native_fence_sync EGL_WL_bind_wayland_display
               EGL_WL_create_wayland_buffer_from_image EGL_KHR_partial_update
[10:05:35.274] GL version: OpenGL ES 3.1 V6.2.4.p4.190076
[10:05:35.274] GLSL version: OpenGL ES GLSL ES 3.10
[10:05:35.274] GL vendor: Vivante Corporation
[10:05:35.274] GL renderer: Vivante GC7000L
[10:05:35.274] GL extensions: GL_OES_vertex_type_10_10_10_2
               GL_OES_vertex_half_float GL_OES_element_index_uint
               GL_OES_mapbuffer GL_OES_vertex_array_object
               GL_OES_compressed_paletted_texture GL_OES_texture_npot
               GL_OES_rgb8_rgba8 GL_OES_depth_texture
               GL_OES_depth_texture_cube_map GL_OES_depth24 GL_OES_depth32
               GL_OES_packed_depth_stencil GL_OES_fbo_render_mipmap
               GL_OES_get_program_binary GL_OES_fragment_precision_high
               GL_OES_standard_derivatives GL_OES_EGL_image GL_OES_EGL_sync
               GL_OES_texture_stencil8 GL_OES_shader_image_atomic
               GL_OES_required_internalformat GL_OES_surfaceless_context
               GL_OES_copy_image GL_OES_draw_buffers_indexed
               GL_OES_texture_border_clamp GL_OES_texture_buffer
               GL_OES_texture_cube_map_array GL_OES_draw_elements_base_vertex
               GL_OES_texture_half_float GL_OES_texture_float
               GL_KHR_blend_equation_advanced GL_KHR_debug GL_KHR_robustness
               GL_EXT_texture_compression_dxt1 GL_EXT_texture_format_BGRA8888
               GL_EXT_texture_compression_s3tc GL_EXT_read_format_bgra
               GL_EXT_multi_draw_arrays GL_EXT_frag_depth
               GL_EXT_discard_framebuffer GL_EXT_blend_minmax
               GL_EXT_color_buffer_half_float GL_EXT_color_buffer_float
               GL_EXT_robustness GL_EXT_texture_sRGB_decode
               GL_EXT_draw_buffers_indexed GL_EXT_texture_border_clamp
               GL_EXT_texture_buffer GL_EXT_copy_image
               GL_EXT_texture_cube_map_array GL_EXT_multi_draw_indirect
               GL_EXT_draw_elements_base_vertex GL_EXT_texture_rg
               GL_EXT_protected_textures GL_EXT_sRGB GL_VIV_direct_texture
[10:05:35.276] GL ES 2 renderer features:
               read-back format: BGRA
               wl_shm sub-image to texture: yes
               EGL Wayland extension: yes
[10:05:35.303] event2  - Dell Dell USB Keyboard: is tagged by udev as: Keyboard
[10:05:35.303] event2  - Dell Dell USB Keyboard: device is a keyboard
[10:05:35.307] event1  - gpio-keys: is tagged by udev as: Keyboard
[10:05:35.307] event1  - gpio-keys: device is a keyboard
[10:05:35.310] event0  - sc-powerkey: is tagged by udev as: Keyboard
[10:05:35.310] event0  - sc-powerkey: device is a keyboard
[10:05:35.355] DRM: head 'DPI-1' found, connector 29 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
[10:05:35.355] Registered plugin API 'weston_drm_output_api_v1' of size 24
[10:05:35.356] Chosen EGL config details:
               RGBA bits: 8 8 8 0
               swap interval range: 1 - 60
[10:05:35.357] No backlight control for output 'DPI-1'
[10:05:35.357] Output DPI-1 (crtc 31) video modes:
               640x480@60.1, preferred, current, 25.2 MHz
[10:05:35.357] associating input device event2 with output DPI-1 (none by udev)
[10:05:35.357] associating input device event1 with output DPI-1 (none by udev)
[10:05:35.357] associating input device event0 with output DPI-1 (none by udev)
[10:05:35.357] Output 'DPI-1' enabled with head(s) DPI-1
[10:05:35.357] Compositor capabilities:
               arbitrary surface rotation: yes
               screen capture uses y-flip: yes
               presentation clock: CLOCK_MONOTONIC, id 1
               presentation clock resolution: 0.000000001 s
[10:05:35.358] Loading module '/usr/lib/aarch64-linux-gnu/weston/'
[10:05:35.362] launching '/usr/lib/aarch64-linux-gnu/weston-keyboard'
[10:05:35.370] Loading module '/usr/lib/aarch64-linux-gnu/libweston-5/'
[10:05:35.397] Registered plugin API 'weston_xwayland_v1' of size 32
[10:05:35.398] Registered plugin API 'weston_xwayland_surface_v1' of size 16
[10:05:35.398] xserver listening on display :0
[10:05:35.399] launching '/usr/lib/aarch64-linux-gnu/weston-desktop-shell'
could not load cursor 'dnd-move'
could not load cursor 'dnd-move'
could not load cursor 'dnd-copy'
could not load cursor 'dnd-copy'
could not load cursor 'dnd-none'
could not load cursor 'dnd-none'
could not load cursor 'dnd-move'
could not load cursor 'dnd-copy'
could not load cursor 'dnd-none'
weston-touch-calibrator error: "DPI-1" was not found.

What are we missing in order to get the touch functionality working and light up the whole screen?

Greetings @Jacmo,

Could you provide all the overlays you have applied on your system thus far?

I believe for this display you need two overlays. One for the timings/resolution and another to enable the touch controller.

We already have these overlays premade here:

Best Regards,

Yes, I’ve used those two overlays. They are the only ones I have applied to my system.

Were the CAN, UART, and SPI changes you mentioned made to the device tree directly then and not via overlay? Furthermore just to clarify in addition to touch being off, your resolution isn’t right either with these overlays?

Could you provide the output of fbset and dmesg please.

Best Regards,

Were the CAN, UART, and SPI changes you mentioned made to the device tree directly then and not via overlay? Furthermore just to clarify in addition to touch being off, your resolution isn’t right either with these overlays?

  • Yes, that’s correct.

This is the output of dmesg and fbset.

This was the output when we tried to activate the overlay inside the Developer Tools Container:

Device is colibri imx8(0038)
Building colibri-imx8x-display-lt161010-overlay.dts
Successfully built device tree
Validating ./colibri-imx8x-display-lt161010-overlay.dts.dtbo
expected str, bytes or os.PathLike object, not NoneType

However, we managed to solve the problem by building the overlay and enable it instead of activating it according to your guide. The touch functionality is working and the screen resolution is now correct. Thank you!

That is odd according to your fbset output the display interface is still configured for the default 640x480 resolution. This would lead me to believe that perhaps the overlay wasn’t applied correctly.

Could you double-check this? Maybe try disabling then reapplying it. Otherwise perhaps walk me through how you went about enabling these overlays.

Glad you were able to resolve this issue!