Difference between revisions of "KOE LVDS Capacitive Display Set"Voipac webshop
(11 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | [[Category:iMX8M | + | [[Category:iMX8M Industrial Development Kit]] |
− | [[Category:iMX8M | + | [[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 | + | 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:iMX8M Industrial Dev Kit KOE LCD.jpg|800px]] | [[image:iMX8M Industrial Dev Kit KOE LCD.jpg|800px]] | ||
Line 19: | Line 19: | ||
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: | 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 | + | * 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 | * 2 position back light cable connect to connector J15 | ||
− | * touchscreen connection between | + | * touchscreen connection between iMX Development Baseboard connector KOE Touch (J40) and Touchscreen 6 pin FFC cable |
=== LVDS and Touchscreen cable === | === LVDS and Touchscreen cable === | ||
Line 27: | Line 27: | ||
=== Hardware jumpers KOE LVDS === | === Hardware jumpers KOE LVDS === | ||
− | Make sure that configurable 0R | + | 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 /> | [[image:LVDS0 KOE jumpers.png|800px]]<br /> | ||
Line 61: | Line 63: | ||
=== Touchscreen test === | === Touchscreen test === | ||
Default Voipac iMX8M Image contain evtest utility to catch touchscreen events. Make sure SiS9509 controller 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"> | ||
+ | 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:~# | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Touchscreen events are generated after touching capacitive touch screen. | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | root@imx8mq-voipac:~# | + | root@imx8mq-voipac:~# evtest |
− | input: ---------- | + | 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 ------------ | ||
+ | |||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | == Backlight setting == | |
+ | Backlight can be controlled by following command (highest brightness): | ||
<syntaxhighlight lang="bash"> | <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.
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
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
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.
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