Difference between revisions of "KOE LVDS Capacitive Display Set"Voipac webshop

From Voipac Wiki
Jump to navigation Jump to search
 
(18 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:iMX8M Industial Development Kit]]
+
[[Category:iMX8M Industrial Development Kit]]
[[Category:iMX8M Industial Peripherals]]
+
[[Category:iMX8M Industrial Peripherals]]
 
<!-- -->
 
<!-- -->
 
<div style="float:right">__TOC__</div>
 
<div style="float:right">__TOC__</div>
  
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 iMX8M Development Baseboard.<br />
+
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.<br />
[[image:iMX6_Rex_Development_Kit-LVDS_EDT_display_adapter-Overview.jpg|800px]]
+
[[image:iMX8M Industrial Dev Kit KOE LCD.jpg|800px]]
  
 
== Mechanical connection ==
 
== Mechanical connection ==
When combined with the complete iMX6 Rex Development Kit, the iMX6 Rex 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:
+
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 EDT display with LVDS interface and resistive touchscreen
+
* TFT LCD 1920 x 1080 Pixels display (TX18D200VM0EAA) with LVDS interface and Capacitive Touch with SIS9509 controller
* H-shaped auxiliary aluminum holder
+
* 4x Hex Standoff Threaded M3 35.00mm long [Manufacturer PN: 971350321]
* display adapter board
+
* custom 20-pins LVDS cable, 180mm long. The cable is supply with LCD as set
* flat flex 33-wire cable, 127mm long
+
* custom 2-pins cable for LCD back light, 150mm long. The cable is supply with LCD as set
* 20-wire display + touchscreen cable
+
* necessary spacers
* necessary connectors, screws, nuts and spacers
+
[[image:iMX8M Industrial Dev Kit KOE LCD Side view.jpg|800px]]
* touch pen
 
[[image:iMX6_Rex_Development_Kit-LVDS_EDT_display_adapter-Side_view.jpg|800px]]
 
  
 
== Hardware connection ==
 
== Hardware connection ==
To enable smooth communication between the board and the display, [https://downloads.voipac.com/files/iMX6_Rex_Development_Kit/accessories/LVDS_EDT_display_adapter/iMX6_Rex_Development_Kit-LVDS_EDT_display_adapter_schematic.pdf iMX6 Rex Adapter] was designed to connect the set together. To implement the display capabilities, following connections need to be made:
+
 
* connection between LVDS Display and LVDS Adapter J1 (using a flexible flat cable)
+
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:
* LVDS Interface and power connection between iMX6 Rex Development Kit J41 and LVDS Adapter J2 (using LVDS and Touchscreen cable)
+
* connection between LVDS Display and iMX Development Baseboard connector LVDS0 KOE (J14) using a 20 Position LVDS cable
* touchscreen connection between iMX6 Rex Development Kit J40 and LVDS Adapter J3 (using LVDS and Touchscreen 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 ===
 
=== LVDS and Touchscreen cable ===
[[image:iMX6_Rex_LVDS_with_touchscreen_cable_for_ETV570G6DHU.jpg|800px]]
+
[[image:imx8m LVDS with touchscreen cable for KOE.jpg|800px]]
 +
 
 +
=== Hardware jumpers KOE LVDS ===
 +
Make sure that configurable 0R resistors are moved to support the KOE LVDS0 interface. <br />
 +
'''''Note:''''' The iMX Development Baseboard in standard configuration is assembled to support the Newhaven / BOE displays by default. <br />
 +
 
 +
[[image:LVDS0 KOE jumpers.png|800px]]<br />
  
 
== Software instructions ==
 
== Software instructions ==
iMX6 Rex Display Set is preinstalled with Android operation system enabling LVDS and touchscreen capabilities by default. Manual configuration is not necessary, but might be useful in individual cases.  
+
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.  
=== LVDS manual booting ===
+
=== LVDS0 KOE Devicetree in U-Boot ===
 
Manually booting with LVDS interface as a primary source for video output:
 
Manually booting with LVDS interface as a primary source for video output:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Rex U-Boot > setenv video 'video=mxcfb0:dev=ldb,edt570,if=RGB666 video=mxcfb1:off'
+
Fastboot: Normal
Rex U-Boot > boot
+
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
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
=== Touchscreen test ===
 
=== Touchscreen test ===
Make sure TSC2007 chip is detected and bound as input device:
+
Default Voipac iMX8M Image contain evtest utility to catch touchscreen events. Make sure SiS9509 controller is detected and bound as input device:  
 +
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
root@imx6-rexultra:~# dmesg | grep -i tsc2007
+
root@imx8mq-voipac:~# dmesg | grep -i SiS
input: TSC2007 Touchscreen as /devices/soc0/soc.0/2100000.aips-bus/21a4000.i2c/i2c-1/1-0048/input/input0
+
[    1.566249] usbserial: USB Serial support registered for libtransistor
evbug: Connected device: input0 (TSC2007 Touchscreen at 1-0048/input0)
+
[    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:~#
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Touchscreen events are generated after pressing the resistive layer:
+
Touchscreen events are generated after touching capacitive touch screen.
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
root@imx6-rexultra:~# evtest /dev/input/by-path/platform-21a4000.i2c-event  
+
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 driver version is 1.0.1
 
Input device ID: bus 0x18 vendor 0x0 product 0x0 version 0x0
 
Input device ID: bus 0x18 vendor 0x0 product 0x0 version 0x0
Input device name: "TSC2007 Touchscreen"
+
Input device name: "SiS Touch"
 
Supported events:
 
Supported events:
 
   Event type 0 (EV_SYN)
 
   Event type 0 (EV_SYN)
Line 55: Line 91:
 
   Event type 3 (EV_ABS)
 
   Event type 3 (EV_ABS)
 
     Event code 0 (ABS_X)
 
     Event code 0 (ABS_X)
       Value   3529
+
       Value     0
 
       Min        0
 
       Min        0
       Max    4095
+
       Max    4096
 
     Event code 1 (ABS_Y)
 
     Event code 1 (ABS_Y)
       Value   375
+
       Value     0
 
       Min        0
 
       Min        0
       Max    4095
+
       Max    4096
 
     Event code 24 (ABS_PRESSURE)
 
     Event code 24 (ABS_PRESSURE)
 
       Value      0
 
       Value      0
 
       Min        0
 
       Min        0
       Max    4095
+
       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:
 
Properties:
 +
  Property type 1 (INPUT_PROP_DIRECT)
 
Testing ... (interrupt to exit)
 
Testing ... (interrupt to exit)
Event: time 1457899907.959665, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
+
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time 1457899907.959665, type 3 (EV_ABS), code 0 (ABS_X), value 1657
+
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1981
Event: time 1457899907.959665, type 3 (EV_ABS), code 1 (ABS_Y), value 2486
+
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 2921
Event: time 1457899907.959665, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 3268
+
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 1
Event: time 1457899907.959665, -------------- EV_SYN ------------
+
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1
Event: time 1457899907.969094, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
+
Event: time 1738746899.1738746899, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1457899907.969094, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 0
+
Event: time 1738746899.1738746899, type 3 (EV_ABS), code 0 (ABS_X), value 1981
Event: time 1457899907.969094, -------------- EV_SYN ------------
+
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 ------------
 +
 
 +
</syntaxhighlight>
 +
 
 +
== Backlight setting ==
 +
Backlight can be controlled by following command (highest brightness):
 +
<syntaxhighlight lang="bash">
 +
echo 1 > /sys/class/backlight/backlight-koe/brightness
 
</syntaxhighlight>
 
</syntaxhighlight>

Latest revision as of 18:21, 27 February 2025

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