KOE LVDS Capacitive Display SetVoipac webshop

From Voipac Wiki
Jump to navigation Jump to search

This section shows information about the KOE 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 iMX Development Baseboard.
iMX8M Industrial Dev Kit KOE LCD.jpg

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 1920 x 1080 Pixels display (TX18D200VM0EAA) with LVDS interface and Capacitive Touch with SIS9509 controller
  • 4x Hex Standoff Threaded M3 35.00mm long [Manufacturer PN: 971350321]
  • custom 20-pins LVDS cable, 180mm long. The cable is supply with LCD as set
  • custom 2-pins cable for LCD back light, 150mm long. The cable is supply with LCD as set
  • necessary spacers

iMX8M Industrial Dev Kit KOE LCD Side view.jpg

Hardware connection

To enable smooth communication between the board and the display, connect the 20 Position LVDS 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 iMX Development Baseboard connector LVDS0 KOE (J14) using a 20 Position LVDS cable
  • 2 position back light cable connect to connector J15
  • touchscreen connection between iMX Development Baseboard connector KOE Touch (J40) and Touchscreen 6 pin FFC cable

LVDS and Touchscreen cable

imx8m LVDS with touchscreen cable for KOE.jpg

Hardware jumpers KOE LVDS

Make sure that configurable 0R resistors are moved to support the KOE LVDS0 interface.
Note: The iMX Development Baseboard in standard configuration is assembled to support the Newhaven / BOE displays by default.

LVDS0 KOE jumpers.png

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 KOE LVDS0 LCD.

LVDS0 KOE 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-koe.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:

root@imx8mq-voipac:~# dmesg | grep -i SiS
[    1.566249] usbserial: USB Serial support registered for libtransistor
[    2.402108] sis_i2c_95xx_ts 1-005c: i2c-1-005c
[    2.462458] input: SiS Touch as /devices/platform/soc@0/soc@0:bus@30800000/30a30000.i2c/i2c-1/1-005c/input/input1
root@imx8mq-voipac:~#

Touchscreen events are generated after touching capacitive touch screen.

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:      SiS Touch
/dev/input/event2:      gpio-buttons
/dev/input/event3:      bd718xx-pwrkey
Select the device event number [0-3]: 1
Input driver version is 1.0.1
Input device ID: bus 0x18 vendor 0x0 product 0x0 version 0x0
Input device name: "SiS Touch"
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      0
      Min        0
      Max     4096
    Event code 1 (ABS_Y)
      Value      0
      Min        0
      Max     4096
    Event code 24 (ABS_PRESSURE)
      Value      0
      Min        0
      Max      255
    Event code 47 (ABS_MT_SLOT)
      Value      0
      Min        0
      Max        9
    Event code 48 (ABS_MT_TOUCH_MAJOR)
      Value      0
      Min        0
      Max      255
    Event code 53 (ABS_MT_POSITION_X)
      Value      0
      Min        0
      Max     4096
    Event code 54 (ABS_MT_POSITION_Y)
      Value      0
      Min        0
      Max     4096
    Event code 57 (ABS_MT_TRACKING_ID)
      Value      0
      Min        0
      Max    65535
    Event code 58 (ABS_MT_PRESSURE)
      Value      0
      Min        0
      Max      255
Properties:
  Property type 1 (INPUT_PROP_DIRECT)
Testing ... (interrupt to exit)
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1981
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 2921
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 1
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1
Event: time 1738746899.1738746899, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 0 (ABS_X), value 1981
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 1 (ABS_Y), value 2921
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 1
Event: time 1738746899.1738746899, -------------- SYN_REPORT ------------
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 1
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1389
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 2835
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 1
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 0 (ABS_X), value 1389
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 1 (ABS_Y), value 2835
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 0 (ABS_X), value 1981
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 1 (ABS_Y), value 2921
Event: time 1738746899.1738746899, -------------- SYN_REPORT ------------
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 0 (ABS_X), value 1389
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 1 (ABS_Y), value 2835
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 0 (ABS_X), value 1981
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 1 (ABS_Y), value 2921
Event: time 1738746899.1738746899, -------------- SYN_REPORT ------------
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 0 (ABS_X), value 1389
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 1 (ABS_Y), value 2835
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 0 (ABS_X), value 1981
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 1 (ABS_Y), value 2921
Event: time 1738746899.1738746899, -------------- SYN_REPORT ------------

Backlight setting

Backlight can be controlled by following command (highest brightness):

echo 1 > /sys/class/backlight/backlight-koe/brightness