Can't find dtbo file specified in documentation

I have a verdin development board with the dsi to lvds adapter installed. I have my 10.1" capacative screen attached to it. The documentation states that I need verdin-imx8mp_dsi-to-lvds_panel-cap-touch-10inch-lvds_overlay.dtbo but that says it’s starting at version 6.1. I’m using torizon-core 5. These are the dtbo files I have available to me:

torizon@verdin-imx8mp-14762939:~$ ls /sysroot/boot/ostree/torizon-d059ab4068a8626b311cab9118926b3f41ed3a2a6874c501225e9e8a1ef84f88/dtb/overlays/
display-dpi-lt170410_overlay.dtbo                         verdin-imx8mp_mezzanine-lvds-dual-channel_overlay.dtbo
display-edt5.7_overlay.dtbo                               verdin-imx8mp_mezzanine-lvds-single-channel_overlay.dtbo
display-edt7_overlay.dtbo                                 verdin-imx8mp_mezzanine-ov5640-2_overlay.dtbo
display-fullhd_overlay.dtbo                               verdin-imx8mp_mezzanine-ov5640_overlay.dtbo
display-lt161010_overlay.dtbo                             verdin-imx8mp_mezzanine-touch-atmel-mxt_overlay.dtbo
display-lt170410_overlay.dtbo                             verdin-imx8mp_native-hdmi_overlay.dtbo
display-vga_overlay.dtbo                                  verdin-imx8mp_ov5640_overlay.dtbo
touch-atmel-mxt_overlay.dtbo                              verdin-imx8mp_sn65dsi84-lt170410_overlay.dtbo
verdin-imx8mp_lt8912_overlay.dtbo                         verdin-imx8mp_sn65dsi84_overlay.dtbo

What do I actually need to configure to get this working?

Greetings @munderwoods,

Our documentation is versioned by software release, with it defaulting to the latest software release, which is 6 at the time of writing. Since you’re using 5 you want to make sure you’re referencing documentation for this version. To do this on the top right of our developer site there’s a drop down menu to select the version like so:

image

With the right version of the documentation the list of overlays you would need are:

touch-atmel-mxt_overlay.dtbo verdin-imx8mp_sn65dsi84-lt170410_overlay.dtbo verdin-imx8mp_sn65dsi84_overlay.dtbo

I hope this helps clear things up.

Best Regards,
Jeremias

torizon@verdin-imx8mp-14762939:/sysroot/boot/ostree/torizon-d059ab4068a8626b311cab9118926b3f41ed3a2a6874c50
1225e9e8a1ef84f88/dtb$ cat overlays.txt
touch-atmel-mxt_overlay.dtbo verdin-imx8mp_sn65dsi84-lt170410_overlay.dtbo verdin-imx8mp_sn65dsi84_overlay.dtbo

Tell me if this looks right to you, because the screen is still black. When I had the hdmi screen connected it would show a torizon-core 5 login screen. The screen flashes when I restart the board so it does appear to be functional.

The overlays are correct, I just double-checked this and the display works as expected. Looking at what you have I believe you omitted the fdt_overlays= in the beginning of the file. By default the file should look something like this:

fdt_overlays=verdin-imx8mp_hdmi_overlay.dtbo verdin-imx8mp_dsi-to-hdmi_overlay.dtbo verdin-imx8mp_spidev_overlay.dtbo

Perhaps you accidentally deleted this when editing the file.

Best Regards,
Jeremias

Ah nevermind! I had just directly copied the new line from your second post but that was incorrect. The values are different from your first post. Putting them together it works now. Thanks!

However, now the touch isn’t working. Can you confirm that this looks correct?

I’m running the touch calibrator and not able to use touch at all. This is the output:

Last login: Fri Jun  9 18:25:15 2023 from 10.0.0.22

** WARNING **
THIS DEVICE IS IN ENGINEERING MODE

torizon@verdin-imx8mp-14762939:~$ docker run -ti --rm -e ACCEPT_FSL_EULA=1 --privileged -v /dev:/dev -v /run/udev/:/run/udev/ -v /etc/udev/rules.d:/etc/udev/rules.d torizon/weston-touch-calibrator:$CT_TAG_WESTON_TOUCH_CALIBRATOR


NXP EULA has already been accepted.
Date: 2023-06-09 UTC
[18:32:21.731] weston 9.0.0
               https://wayland.freedesktop.org
               Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
               Build: 9.0.0
[18:32:21.731] Command line: /usr/bin/weston
[18:32:21.731] OS: Linux, 5.4.193-5.7.2+git.b60d3160fd04, #1-TorizonCore SMP PREEMPT Fri Dec 23 15:47:24 UTC 2022, aarch64
[18:32:21.731] 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
http://www.freedesktop.org/wiki/Specifications/basedir-spec
on how to implement it.
[18:32:21.732] Using config file '/etc/xdg/weston/weston.ini'
[18:32:21.732] Output repaint window is 7 ms maximum.
[18:32:21.732] Loading module '/usr/lib/aarch64-linux-gnu/libweston-9/drm-backend.so'
[18:32:21.739] initializing drm backend
[18:32:21.740] logind: not running in a systemd session
[18:32:21.740] logind: cannot setup systemd-logind helper (-61), using legacy fallback
[18:32:21.743] using /dev/dri/card0
[18:32:21.743] DRM: supports atomic modesetting
[18:32:21.743] DRM: does not support GBM modifiers
[18:32:21.743] DRM: supports picture aspect ratio
[18:32:21.743] Loading module '/usr/lib/aarch64-linux-gnu/libweston-9/gl-renderer.so'
[18:32:21.751] EGL client extensions: EGL_EXT_client_extensions
               EGL_EXT_platform_base EGL_KHR_platform_wayland
               EGL_EXT_platform_wayland EGL_KHR_platform_gbm
[18:32:21.754] EGL version: 1.5
[18:32:21.754] EGL vendor: Vivante Corporation
[18:32:21.754] EGL client APIs: OpenGL_ES OpenVG
[18:32:21.754] 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
               EGL_EXT_image_dma_buf_import_modifiers EGL_KHR_lock_surface
               EGL_KHR_create_context EGL_KHR_no_config_context
               EGL_KHR_surfaceless_context EGL_KHR_get_all_proc_addresses
               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
               EGL_EXT_swap_buffers_with_damage
               EGL_KHR_swap_buffers_with_damage EGL_EXT_pixel_format_float
[18:32:21.755] EGL_KHR_surfaceless_context available
[18:32:21.758] GL version: OpenGL ES 3.1 V6.4.3.p1.305572
[18:32:21.759] GLSL version: OpenGL ES GLSL ES 3.10
[18:32:21.759] GL vendor: Vivante Corporation
[18:32:21.759] GL renderer: Vivante GC7000UL
[18:32:21.759] 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_ETC1_RGB8_texture
               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_image_external GL_OES_EGL_image_external_essl3
               GL_OES_EGL_sync GL_OES_texture_stencil8
               GL_OES_shader_image_atomic
               GL_OES_texture_storage_multisample_2d_array
               GL_OES_required_internalformat GL_OES_surfaceless_context
               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_KHR_robust_buffer_access_behavior
               GL_EXT_texture_type_2_10_10_10_REV
               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_multisampled_render_to_texture
               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_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
[18:32:21.759] GL ES 2 renderer features:
               read-back format: BGRA
               wl_shm sub-image to texture: yes
               EGL Wayland extension: yes
[18:32:21.770] event2  - Webcam C110: Webcam C110: is tagged by udev as: Keyboard
[18:32:21.770] event2  - Webcam C110: Webcam C110: device is a keyboard
[18:32:21.772] event1  - gpio-keys: is tagged by udev as: Keyboard
[18:32:21.773] event1  - gpio-keys: device is a keyboard
[18:32:21.776] event0  - 30370000.snvs:snvs-powerkey: is tagged by udev as: Keyboard
[18:32:21.776] event0  - 30370000.snvs:snvs-powerkey: device is a keyboard
[18:32:21.793] libinput: configuring device "Webcam C110: Webcam C110".
[18:32:21.793] libinput: configuring device "gpio-keys".
[18:32:21.793] libinput: configuring device "30370000.snvs:snvs-powerkey".
[18:32:21.794] DRM: head 'DSI-1' found, connector 35 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
[18:32:21.794] Registered plugin API 'weston_drm_output_api_v1' of size 24
[18:32:21.794] Registered plugin API 'weston_drm_virtual_output_api_v1' of size 48
[18:32:21.796] Chosen EGL config details: id:  41 rgba: 8 8 8 0 buf: 24 dep:  0 stcl: 0 int: 1-60 type: win|pix|pbf|swap_preserved vis_id: XRGB8888 (0x34325258)
[18:32:21.796] Output DSI-1 (crtc 33) video modes:
               1280x800@58.5, preferred, current, 69.3 MHz
[18:32:21.796] associating input device event2 with output DSI-1 (none by udev)
[18:32:21.796] associating input device event1 with output DSI-1 (none by udev)
[18:32:21.796] associating input device event0 with output DSI-1 (none by udev)
[18:32:21.796] Output 'DSI-1' enabled with head(s) DSI-1
[18:32:21.796] Compositor capabilities:
               arbitrary surface rotation: yes
               screen capture uses y-flip: yes
               presentation clock: CLOCK_MONOTONIC, id 1
               presentation clock resolution: 0.000000001 s
[18:32:21.797] Loading module '/usr/lib/aarch64-linux-gnu/weston/desktop-shell.so'
[18:32:21.798] launching '/usr/lib/aarch64-linux-gnu/weston-keyboard'
[18:32:21.803] Loading module '/usr/lib/aarch64-linux-gnu/libweston-9/xwayland.so'
[18:32:21.822] Registered plugin API 'weston_xwayland_v1' of size 32
[18:32:21.822] Registered plugin API 'weston_xwayland_surface_v1' of size 16
[18:32:21.822] xserver listening on display :0
[18:32:21.823] 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: ":0" was not found.

I followed the rest of the instructions and it looks like my only connector is “DSI-1”:

root@56fd19ec4e03:/home/torizon#     modetest -M imx-drm
Encoders:
id	crtc	type	possible crtcs	possible clones	
34	33	DSI	0x00000001	0xffffffff

Connectors:
id	encoder	status		name		size (mm)	modes	encoders
35	34	connected	DSI-1          	217x136		1	34
  modes:
	index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
  #0 1280x800 58.48 1280 1340 1380 1440 800 807 816 823 69300 flags: ; type: preferred, driver
  props:
	1 EDID:
		flags: immutable blob
		blobs:

		value:
	2 DPMS:
		flags: enum
		enums: On=0 Standby=1 Suspend=2 Off=3
		value: 0
	5 link-status:
		flags: enum
		enums: Good=0 Bad=1
		value: 0
	6 non-desktop:
		flags: immutable range
		values: 0 1
		value: 0
	4 TILE:
		flags: immutable blob
		blobs:

		value:

CRTCs:
id	fb	pos	size
33	36	(0,0)	(1280x800)
  #0 1280x800 58.48 1280 1340 1380 1440 800 807 816 823 69300 flags: ; type: preferred, driver
  props:
	24 VRR_ENABLED:
		flags: range
		values: 0 1
		value: 0

Planes:
id	crtc	fb	CRTC x,y	x,y	gamma size	possible crtcs
31	33	36	0,0		0,0	0       	0x00000001
  formats: XR24 AR24 RG16 XB24 AB24 AR15 XR15
  props:
	8 type:
		flags: immutable enum
		enums: Overlay=0 Primary=1 Cursor=2
		value: 1
	32 zpos:
		flags: immutable range
		values: 0 0
		value: 0

Frame buffers:
id	size	pitch

Although I don’t know why specifying a display connector would help. Now when I run the calibrator it ends with the error:

weston-touch-calibrator error: "DSI-1" was not found.

The desktop does display on the screen by the way, but there is no calibrator tool. It displayed whether I specified a DISPLAY in the docker command or not.

Based on your pictures it looks like you have both sides of the flat cable backwards. Meaning you have the end on the adapter and the end on the display side backwards.

Best Regards,
Jeremias

OK, that worked, thanks!

It seems pretty counter-intuitive that the blue pull tab is meant to be inaccessible on the bottom.

Alright so the touch doesn’t work on my app when I start it via the vs code plugin. I thought after I ran the calibration container it would be saved permanently? Is this not the case? Here is the bottom of the output from running the calibration container:

type or paste code here[19:58:34.261] libinput: configuring device "Atmel maXTouch Touchscreen".
[19:58:34.261] input device event2 has no enabled output associated (none named), skipping calibration for now.
[19:58:34.262] DRM: head 'DSI-1' found, connector 35 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
[19:58:34.262] Registered plugin API 'weston_drm_output_api_v1' of size 24
[19:58:34.262] Registered plugin API 'weston_drm_virtual_output_api_v1' of size 48
[19:58:34.264] Chosen EGL config details: id:  41 rgba: 8 8 8 0 buf: 24 dep:  0 stcl: 0 int: 1-60 type: win|pix|pbf|swap_preserved vis_id: XRGB8888 (0x3432
5258)                                                                        
[19:58:34.264] Output DSI-1 (crtc 33) video modes:
               1280x800@58.5, preferred, current, 69.3 MHz
[19:58:34.264] associating input device event1 with output DSI-1 (none by udev)
[19:58:34.264] associating input device event0 with output DSI-1 (none by udev)
[19:58:34.264] associating input device event2 with output DSI-1 (none by udev)
[19:58:34.265] Output 'DSI-1' enabled with head(s) DSI-1
[19:58:34.265] Compositor capabilities:
               arbitrary surface rotation: yes
               screen capture uses y-flip: yes
               presentation clock: CLOCK_MONOTONIC, id 1
               presentation clock resolution: 0.000000001 s
[19:58:34.266] Loading module '/usr/lib/aarch64-linux-gnu/weston/desktop-shell.so'
[19:58:34.268] launching '/usr/lib/aarch64-linux-gnu/weston-keyboard'
[19:58:34.273] Loading module '/usr/lib/aarch64-linux-gnu/libweston-9/xwayland.so'
[19:58:34.349] Registered plugin API 'weston_xwayland_v1' of size 32
[19:58:34.349] Registered plugin API 'weston_xwayland_surface_v1' of size 16
[19:58:34.350] xserver listening on display :0
[19:58:34.350] launching '/usr/lib/aarch64-linux-gnu/weston-desktop-shell'
could not load cursor 'dnd-move'
could not load cursor 'dnd-copy'
could not load cursor 'dnd-none'
could not load cursor 'dnd-move'
could not load cursor 'dnd-copy'
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: "LVDS-1" was not found.
could not load cursor 'dnd-move'
could not load cursor 'dnd-copy'
could not load cursor 'dnd-none'
Unknown parameter: ?2004
^C[19:59:42.364] caught signal 2
[19:59:42.420] output for input device event1 removed
[19:59:42.420] output for input device event0 removed
[19:59:42.420] output for input device event2 removed
[19:59:42.422] event1  - gpio-keys: device removed
[19:59:42.422] event0  - 30370000.snvs:snvs-powerkey: device removed
[19:59:42.422] event2  - Atmel maXTouch Touchscreen: device removed

My understanding is that I should see some additional information here:

torizon@verdin-imx8mp-14762939:~$ udevadm info /dev/input/event1
P: /devices/platform/gpio-keys/input/input1/event1
N: input/event1
L: 0
S: input/by-path/platform-gpio-keys-event
E: DEVPATH=/devices/platform/gpio-keys/input/input1/event1
E: DEVNAME=/dev/input/event1
E: MAJOR=13
E: MINOR=65
E: SUBSYSTEM=input
E: USEC_INITIALIZED=6332187
E: ID_INPUT=1
E: ID_INPUT_KEY=1
E: ID_PATH=platform-gpio-keys
E: ID_PATH_TAG=platform-gpio-keys
E: UDISKS_FILESYSTEM_SHARED=1
E: DEVLINKS=/dev/input/by-path/platform-gpio-keys-event
E: TAGS=:power-switch:

Touch works generically on my side without any need for calibration. Calibration is really only needed on resistive touch screens, capacitive screens typically don’t need this.

Now is it just your application where touch isn’t working? And it works with other things?

I’m not sure if Qt applications need anything special for touchscreen capability or not.

Best Regards,
Jeremias

Touch works fine when the torizon-core login prompt appears at first boot. It just doesn’t work in my QT app. I’ve run it on two other touch screens on different devices without issues. I have it running on a raspberry pi as we speak that’s over hdmi/usb.

Hmm I just switched over to the hdmi/usb display on my verdin and it behaves identically. The touch works in the torizon-core 5 login screen but not in the wayland/qt container. I don’t really know what to try from here.

What kind of Qt app are you trying to run here? I did a test with a touch screen. I tried a basic Qt Widgets, and then a QML type applications. I was able to drag around the created tested window in both cases using touch. Now I’m not sure if this applies to every Qt application, but at least it seems this should work on a basic level.

Best Regards,
Jeremias

Sorry, you are right. My touch screen was just EXTREMELY uncalibrated I guess. It is actually working. I’m going to try and calibrate it now.

Glad to hear you have something going now.

Best Regards,
Jeremias