Pink line on the left edge of 1024x768 HDMI display

Hello,

I have an issue with my 1024x768 HDMI display, there is always a vertical pink line at the left edge of my screen. My board is Apalis imx8 with Torizon os, and my carrier board is ixora.

This line still appears even if I changed os to another, like: Qt Multimedia image.
Also there is a faint flickering on the screen.

I checked this thread but I couldn’t benfit from it:
https://community.toradex.com/t/pink-line-on-edge-of-1280x800-hdmi-display/21521/12

I tested my screen with another boards from another companies, and I didn’t find any issue like this.

Do you have any ideas about this please? How can I solve this issue please?

Best regards,
Tarek

Hi, I’m the Toradex AI Assistant. I’m in early beta, and I would appreciate your feedback.
The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


Hello Tarek,

The issue you’re experiencing with the vertical pink line on the left edge of your 1024x768 HDMI display, alongside faint flickering, when using an Apalis iMX8 with Torizon OS and an Ixora carrier board, could be attributed to several factors. Given that the problem persists across different operating systems but does not appear when using other boards, we can narrow down the potential causes to a few areas.

  1. Display Configuration: The first area to investigate is the display configuration. Ensure that the display settings in Torizon are correctly configured for your specific HDMI display. This involves checking the resolution, refresh rate, and any specific timings that your display might require. Incorrect settings can lead to display artifacts, including pink lines or flickering.

  2. Cable and Connection Check: Since hardware is also a common source of such issues, verify the integrity of your HDMI cable and connections. A faulty cable or loose connection can cause color lines and flickering. Try using a different HDMI cable or reseating the cable connections to both the display and the Ixora carrier board.

  3. Driver and Kernel Configuration: Investigate the driver and kernel configuration for the iMX8 on Torizon. It’s possible that the driver or kernel version you are using has a bug or is not fully compatible with your specific HDMI display. Look for any available updates or patches that might address display-related issues.

  4. Custom EDID Settings: If your display has unique requirements not automatically detected, you might need to manually specify the Extended Display Identification Data (EDID) settings. This can be done through the operating system settings or by modifying the boot parameters to include the correct display information.

  5. Hardware Issue: Although less likely given the display works with other boards, there’s a small chance of a hardware compatibility issue between the Apalis iMX8 module, the Ixora carrier board, and your HDMI display. This could be related to signal timing or electrical characteristics specific to the HDMI interface on the board.

  6. Software Alternatives: As a temporary workaround, you might consider using software solutions that can adjust the display output, such as customizing the framebuffer settings or using utilities that can manipulate the display at the software level, potentially bypassing the issue.

Given the complexity of display-related issues, it may require a process of elimination to identify the exact cause. Start with the simpler checks like cables and settings, and then move on to more complex areas like driver updates or manual configuration adjustments

Please, also check if these links can help you solve your problem:

Run and Manage Containers with the Command-line on Torizon | Toradex Developer Center.

Dear @tarekmhnds,

Thank you so much for contacting us and creating a new thread on your issue. I have so far not been able to reproduce the issue, since I do not have a 10.1" display with HDMI at hand. I do however have a few questions to try and get closer to the culprit of this behaviour:

  • Which BSP/TorizonOS Version are you using?
  • What does your overlay look like? Could you send it to us?
  • Does this line on the display also appear when you load a for example Torizon OS Easy Pairing with BSP 6.7.0 from the Toradex Easy Installer?

Best regards
Collin

Dear Collin,

Thank you very much also for your support.

  • I’m using: Apalis imx8 main board, and Ixora carrier board. For the os, I’m using Torizon easy Pairing last version, which I downloaded using Toradex Easy Installer.

  • For the overlay, I uploaded a photo for my display:

  • Yes, its appear when I use Torizon Easy Pairing last version from Toradex Easy Installer.

Best regards,
Tarek

Hello,

Any ideas? Any help would be appreciated.

Best regards,
Tarek

Dear @tarekmhnds,

I want to apologize for the delay in replying. I am currently trying to get this to work myself and will write to you as soon as I have results. In the meantime, would you be able to send me the overlay files you are using?

Best regards
Collin

Dear Collin,

Don’t worry, thanks a lot for your support.

I tested the system also with 8 inch display, and I found the same vertical pink line at the left edge.

For overlay files, I’m not quite sure which files you mean sorry, can you please specify what files you need?

Best regards,
Tarek

Dear @tarekmhnds,

You can use the specific overlays for your displays in two ways. Either by applying the device tree overlay to an image using tcb command or by applying the device tree overlay directly to the device. Information to the two options can be found on this developer page. I assume you’d have to alter the resolution according to your display specs in the overlay itself. If you are using the first approach, we would have to look into the specific .dts files used to generate the .dtb file. Should you apply the overlays directly to the device we should check the content of overlays.txt and the content of the mentioned files within.

Best regards
Collin

Dear Collin,

I didn’t change any device tree overlay for my display, I just used Torizon cloud service to install:
kirkstone/apalis-imx8/torizon/torizon-core-docker/release

And I started to test my software via Toradex extension in VS code.

I will check these 2 ways, to make a new Torizon image and applying overlays to my display, and let you know about the results.

Best regards,
Tarek

Dear @tarekmhnds,

I have discussed your issue internally and it is possible that the EEPROM of your display may not contain a suitable firmware and thus settings. This would result in incompatible timings and/or data packages.

To try and find out if our assumption is correct I would like to ask, if you can please try modetest on your module. This will show the set parameters in the firmware under modes. It should look somewhat like this:

Connectors:
id	encoder	status		name		size (mm)	modes	encoders
148	147	connected	HDMI-A-1       	0x0		3	147
  modes:
	index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
  #0 1024x600 60.02 1024 1072 1104 1370 600 603 609 630 51800 flags: phsync, pvsync; type: driver
  #1 640x480 60.00 640 656 752 800 480 490 492 525 25200 flags: nhsync, nvsync; type: driver
  #2 640x480 59.94 640 656 752 800 480 490 492 525 25175 flags: nhsync, nvsync; type: driver
  props:
	1 EDID:
		flags: immutable blob
		blobs:

		value:
			00ffffffffffff0004721800db8d1020
			0116010380000078086760a25a499e23
			13505400000001010101010101010101
			0101010101013c14005a41581e203020
			360000000000001e0000001000000000
			00000000000000000000000000fc004c
			4e553038303031343231340a000000fd
			003741232806000a20202020202001b2
			02031660410123090707830100006703
			0c002000800c00000000000000000000
			00000000000000000000000000000000
			00000000000000000000000000000000
			00000000000000000000000000000000
			00000000000000000000000000000000
			00000000000000000000000000000000
			00000000000000000000000000000000
	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

Now you can check the values in modes and compare them to the requirements of your display. One way to play around with this is to use the binary (under value:) or the settings (under mode:) in a generator like this one.
From there on you will have to inject a binary edid blob, to which a developer page can be found here.
As a further resource I would like to drop this edid generator repo here.

Please let me know how you fare with this.
Best regards
Collin

Dear Collin,

Sorry for my basic questions, I’m new with Toradex/Torizon products, and I have a little experience with Docker/Containers.

So, to run a linux command like modetest on my module, I couldn’t find any command line terminal like: wayland terminal on my module, or I don’t know how to run it on my module, so I checked the VS code extension, I found these 2 containers:

Containers

I right clicked on them and choosed: Attach shell, both do not have the modetest command,
so I tried to install it using: sudo apt install libdrm-tests:

At the first container 192.168.0.49:5002/van_sys_container it asked me for torizon user password, I tried: torizon as password but it failed, so I don’t know what password was set.

For the second container torizon/weston-vivante, with root user it said:
root@apalis-imx8-06677480:/home/torizon# sudo apt install libdrm-tests sudo: unable to resolve host apalis-imx8-06677480: Name or service not known Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package libdrm-tests

So, what to do please? How can I run a command on my module please? Is what I did right?

Best regards,
Tarek

Hello @tarekmhnds,

Unfortunately modeset is not directly available on Torizon OS.
You could install it in a container and run it there, but you could also get the relevant display information from the EDID binary.

For this, please go through the following steps:

To get into a terminal in the device you can use the following button on the Torizon IDE extension:

After a few moments, a terminal will appear on the bottom:

On the device’s terminal, dump the edid firmware from the HDMI display:

cat /sys/class/drm/card0-HDMI-A-1/edid > edid.bin

Now, you should have the edid.bin file with the edid contents:

torizon@verdin-imx8mm-06898561:~$ ls
edid.bin

To get this file into your pc, you will need to open a terminal locally.
This can be done inside or outside of VSCode, as long as the scp command is available.
Here is how you can do it inside VSCode:

Now, you should have a terminal open in your PC in the project’s directory.
From here you can copy the edid.bin file to your PC, remember to replace the module’s serial number in the following command:

 scp torizon@verdin-imx8mm-06898561.local:/home/root/edid.bin .

With that, you will have the edid.bin file in your PC.
Can you send this file here so I can check if there is some issue with it?
You can also use the following utility to view its decoded contents: EDID Decode

Best Regards,
Bruno

Hi Bruno,

Thank you very much for your clear explanation.

I followed the steps you wrote:

First, in /sys/class/drm there is no card0-HDMI-A-1, I found card1-HDMI-A-1, the contents of this folder are:
ls /sys/class/drm/
card0 card1 card1-HDMI-A-1 renderD128 renderD129 version
I executed the cat command on it, and I copied the edid.bin file to my computer:
edid.bin (256 Bytes)
Also I decoded it:
edid-decode.txt (7.8 KB)

I made this test on 8 inch display, from TOPWILLING company, Model: OP804.

I hope this helps solve the problem.

Thank you very much.

Best regards,
Tarek

Hello @tarekmhnds,

This can vary a bit between modules, but you were able to get the correct edid.

I took a look at the edid file and it does not seem to contain timings that are too different from usual timings.
However, it may still make sense to try to force other timings to be loaded.
I added some more time to the back porch and hsync to your edid file. This can be enough or more tweaking with an edid editor may be needed.
edid.bin (256 Bytes)

To load the custom edid, you can follow these steps:

In a terminal in your host system, copy the attached file to the device, remember to replace the module’s serial number in the following command:

scp edid.bin torizon@verdin-imx8mm-06898561.local:/home/torizon/

In a terminal in the device, copy the new edid.bin file to /ostree/deploy/torizon/deploy/<ostree hash>/lib/firmware. Please note that the will be specific to your configuration:

sudo cp /home/torizon/edid.bin /ostree/deploy/torizon/deploy/<ostree hash>/lib/firmware

Still in a terminal in the device, add the following kernel argument to load the EDID and reboot the board:

sudo fw_setenv tdxargs drm.edid_firmware=edid.bin
sudo reboot now

After these changes, it should be possible to check if they were applied correctly using dmesg:

torizon@apalis-imx8-06980202:~$ dmesg | grep -i edid
[    0.000000] Kernel command line: root=LABEL=otaroot rootfstype=ext4 quiet logo.nologo vt.global_cursor_default=0 plymouth.ignore-serial-consoles splash fbcon=map:3 ostree=/ostree/boot.1/torizon/b6e48327d73784f6f47816e5ba8bd37c091b741df26b17a311765ba87b9c1015/0 drm.edid_firmware=edid.bin
[    8.193972] [drm] Got external EDID base block and 1 extension from "edid.bin" for connector "HDMI-A-1"

Best Regards,
Bruno

Hello Bruno,

At /ostree/deploy/torizon/deploy/ I found 2 ostree hash:
3d8130c4a10b8b9f0e90be673ff184eb4cb98544a6291ac070d0b6b73cc19f55.0 86648d68fec30477fa8b89b222e1fddc74711a1a90b4b0240183ddff88b7cdb4.0

I copied the edid.bin file to both of them, and I ran the command: fw_setenv.

I checked dmesgs, they are:

[ 0.000000] Kernel command line: root=LABEL=otaroot rootfstype=ext4 quiet logo.nologo vt.global_cursor_default=0 plymouth.ignore-serial-consoles splash fbcon=map:3 ostree=/ostree/boot.0/torizon/cbfcc0c7f70a88c0fb5b53089b53f01c25e8499d639d0ce24644ff0ab8b3d3d1/0 drm.edid_firmware=edid.bin
[ 7.118803] [drm] Got external EDID base block and 1 extension from “edid.bin” for connector “HDMI-A-1”
[ 30.028974] [drm] Got external EDID base block and 1 extension from “edid.bin” for connector “HDMI-A-1”

and I rebooted the board, after that the pink line is still appear at the left edge of the display, and the problem was not solved.

Do you have another ideas and solutions please?

Best Regards,
Tarek

Hello @tarekmhnds,

That is unfortunate.
I would still recommend that you try some other changes to the edid from your display, as you may require some additional adjustments.
Display manufacturers often do not implement HDMI correctly, and this can lead to certain incompatibilities. Other displays should not have this issue when paired with the Apalis iMX8.
This can be done with the edid-generator or a tool such as the AW EDID Editor.

The following picture is a good illustration of the timings:

Best Regards,
Bruno

Hello Bruno,

After many tries with different edid files, my problem solved with one of them, and the pink line no longer appears now.

I uploaded this file may be it can help to figure out the problem:
1024x768.bin (128 Bytes)

And I decoded it:
edid-decode.txt (2.2 KB)

Thanks a lot for your support.

Best regards,
Tarek

Hello @tarekmhnds,

That is great, thanks for the update.

Best Regards,
Bruno