Newhaven LVDS Capacitive Display Set
This section shows information about the Newhaven LVDS Capacitive Display Set. The iMX8M Industrial Development Kit in this configuration is equipped with Yocto dunfell, kernel 5.4 to support LVDS display with a touchscreen layer. In this case the display is installed on the top of the iMX8M Development Baseboard.
Mechanical connection
When combined with the complete iMX8M Industrial Kit, the Display Set creates a compact, ready-to-use solution. To assemble them together, the following mechanical and electrical accessories were designed and selected to be part of the Display set:
- TFT LCD 1024x600 Pixels display with LVDS interface and Capacitive Touch with SiS9509 controller
- 4x Hex Standoff Threaded M3 30.00mm long [Manufacturer PN: 971300321]
- 40 Position flat flex cable 50.80mm long [Manufacturer PN: 0150200427]
- 6 pin touchscreen flat flex cable
- necessary spacers
Hardware connection
To enable smooth communication between the board and the display, connect the 40 Position FFC cable for LCD and 6 pin touchscreen FFC cable. To implement the display capabilities, following connections need to be made:
- connection between LVDS Display and iMX8M Development Baseboard connector LVDS0 NHD (J12) using a 40 Position FFC cable
- touchscreen connection between iMX8M Development Baseboard connector NHD Touch (J13) and Touchscreen 6 pin FFC cable
LVDS and Touchscreen cable
Hardware jumpers Newhaven LVDS
Make sure that configurable 0R resistor are moved to Newhaven LVDS0 interface
Software instructions
iMX8M Industrial kit is preinstalled with Yocto dunfell operation system enabling LVDS and touchscreen capabilities by default. Manual configuration is necessary, Devicetree in U-Boot have to by set to NHD LVDS0 LCD.
LVDS0 NHD Devicetree in U-Boot
Manually booting with LVDS interface as a primary source for video output:
Fastboot: Normal Normal Boot Hit any key to stop autoboot: 0 u-boot=> u-boot=> u-boot=> u-boot=> u-boot=> u-boot=> fatls mmc 0:1 27787776 Image 48586 imx8mq-evk-voipac-dp.dtb 48793 imx8mq-evk-voipac-hdmi.dtb 49194 imx8mq-evk-voipac-lvds-koe.dtb 49198 imx8mq-evk-voipac-lvds-newhaven.dtb 5 file(s), 0 dir(s) u-boot=> setenv fdt_file imx8mq-evk-voipac-lvds-newhaven.dtb u-boot=> saveenv Saving Environment to MMC... Writing to MMC(0)... OK u-boot=> u-boot=> boot .
Touchscreen test
Default Voipac iMX8M Image contain evtest utility to catch touchscreen events. Make sure SiS9509 controller is detected and bound as input device. Select the device event number 1 (generic ft5x06 (79)):
root@imx8mq-voipac:~# evtest No device specified, trying to scan all of /dev/input/event* Available devices: /dev/input/event0: 30370000.snvs:snvs-powerkey /dev/input/event1: generic ft5x06 (79) /dev/input/event2: gpio-buttons /dev/input/event3: bd718xx-pwrkey /dev/input/event4: Logitech USB Receiver /dev/input/event5: Logitech USB Receiver Mouse /dev/input/event6: Logitech USB Receiver Consumer Control /dev/input/event7: Logitech USB Receiver System Control Select the device event number [0-7]: 1 Input driver version is 1.0.1 Input device ID: bus 0x18 vendor 0x0 product 0x0 version 0x0 Input device name: "generic ft5x06 (79)" Supported events: Event type 0 (EV_SYN) Event type 1 (EV_KEY) Event code 330 (BTN_TOUCH) Event type 3 (EV_ABS) Event code 0 (ABS_X) Value 308 Min 0 Max 1023 Event code 1 (ABS_Y) Value 211 Min 0 Max 799 Event code 47 (ABS_MT_SLOT) Value 0 Min 0 Max 4 Event code 53 (ABS_MT_POSITION_X) Value 0 Min 0 Max 1023 Event code 54 (ABS_MT_POSITION_Y) Value 0 Min 0 Max 799 Event code 57 (ABS_MT_TRACKING_ID) Value 0 Min 0 Max 65535 Properties: Property type 1 (INPUT_PROP_DIRECT)
Touchscreen events are generated after touching capacitive touch screen.
Testing ... (interrupt to exit) Event: time 1658851286.1658851286, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 40 Event: time 1658851286.1658851286, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 506 Event: time 1658851286.1658851286, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 478 Event: time 1658851286.1658851286, -------------- SYN_REPORT ------------ Event: time 1658851286.1658851286, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1 Event: time 1658851286.1658851286, -------------- SYN_REPORT ------------ Event: time 1658851532.1658851532, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 41 Event: time 1658851532.1658851532, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 453 Event: time 1658851532.1658851532, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 447 Event: time 1658851532.1658851532, -------------- SYN_REPORT ------------ Event: time 1658851532.1658851532, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 456 Event: time 1658851532.1658851532, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 449 Event: time 1658851532.1658851532, -------------- SYN_REPORT ------------ Event: time 1658851533.1658851533, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 460 Event: time 1658851533.1658851533, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 451 Event: time 1658851533.1658851533, -------------- SYN_REPORT ------------ Event: time 1658851533.1658851533, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 468 Event: time 1658851533.1658851533, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 456 Event: time 1658851533.1658851533, -------------- SYN_REPORT ------------ Event: time 1658851533.1658851533, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 471 Event: time 1658851533.1658851533, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 458 Event: time 1658851533.1658851533, -------------- SYN_REPORT ------------ Event: time 1658851533.1658851533, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 482 Event: time 1658851533.1658851533, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 461 Event: time 1658851533.1658851533, -------------- SYN_REPORT ------------ Event: time 1658851533.1658851533, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 489 Event: time 1658851533.1658851533, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 463 Event: time 1658851533.1658851533, -------------- SYN_REPORT ------------ Event: time 1658851533.1658851533, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 492 Event: time 1658851533.1658851533, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 464 Event: time 1658851533.1658851533, -------------- SYN_REPORT ------------ Event: time 1658851533.1658851533, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 495 Event: time 1658851533.1658851533, -------------- SYN_REPORT ------------ Event: time 1658851533.1658851533, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 497 Event: time 1658851533.1658851533, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 467 Event: time 1658851533.1658851533, -------------- SYN_REPORT ------------ Event: time 1658851533.1658851533, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 499 Event: time 1658851533.1658851533, -------------- SYN_REPORT ------------ Event: time 1658851533.1658851533, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 506 Event: time 1658851533.1658851533, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 468 Event: time 1658851533.1658851533, -------------- SYN_REPORT ------------ Event: time 1658851533.1658851533, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 512 Event: time 1658851533.1658851533, -------------- SYN_REPORT ------------ Event: time 1658851533.1658851533, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 520 Event: time 1658851533.1658851533, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 466 Event: time 1658851533.1658851533, -------------- SYN_REPORT ------------ Event: time 1658851533.1658851533, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 528 Event: time 1658851533.1658851533, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 465