Dragon board 410c not working with my screen

Hello. I am working with two dragon boards, one running debian and another running windows 10 iot core. I also have two screens which both have a DVI input. I also have a HDMI to DVI converter that i am using with the screens. With screen 1, when i connect the board running debian, everything is ok. When i connect the board running windows 10 iot core on screen 1, the image displayed flickers a lot. I read somewhere that this is because with windows 10 iot core, the screen resolution is fixed. All the same, both boards display something on the screen, regardless of the differences. When i switch to screen 2, nothing is displayed, regardless of which board is connected to it. Screen 2 is an LED screen (those used for outdoor advertisement) which has LED modules (each module has 3232 pixels(LEDs)) connected together to form a cabinet(each cabinet has 106 LED modules). The entire screen has 4 cabinets. Each cabinet has its own receiving card, therefore, there are 4 receiving cards. The receiving cards are connected to one sending card that has DVI input through which i connected my board. Screen 2 allows one to configure its settings and customize it to the needs of the computer(in my case the dragon board). I tested the screen with the rasberry pi (running raspbian) and had to switch to the DMT mode for it to display. My question is, is the dragon board limited to certain types of screen? If not, are there specific configuration settings associated with the dragon board that one should consider when configuring their screen? Also, could it be because of the DVI input?
I know that some of the things mentioned above are out of the scope of this forum but any help will be greatly appreciated.

The type of display is completely irrelevant to the board. The only real consideration for the board is if the display works using one of the interfaces available, and can operate with a display mode that the board is capable of outputting.

Now before we go too far, let us make sure that you understand that there are TWO types of DVI: DVI-A and DVI-D. For the most part, HDMI and DVI-D are the same. There are some variances in that the HDMI signal will also carry sound. In some rare cases, a DVI-D display will not be happy with this, however, you should be able to disable sound output to take care of this problem.

Now DVI-A on the other hand, is analog and therefore completely incompatible with HDMI, and therefore of course, Dragonboard.

So assuming that you have a DVI-D, then the next thing to deal with is the mode. Mode basically means resolution and signal timing. Most displays, whether they be a “more modern” analog, or just about any digital display connected with DVI, HDMI, DSUB, or DP, will send its EDID (which is a list of modes that it supports) to the controller. In this case, that means the modesetting facility of the Linux kernel (I will not address proprietary operating systems, you’re on you own with that). The kernel will then attempt to find a mode that it is capable of generating, starting with the mode that is flagged as preferred/native. If it doesn’t find a compatible mode, it will output nothing at all.

So there are a couple of possibilities here (and I mean besides the HDMI/DVI-D differences noted above);

  1. The display is not supplying an EDID at all.
  2. The display is supplying an EDID, but no compatible modes.

And what that means, is that you need to try forcing modes with the hopes that the monitor will accept something.

You can force a mode using the kernel parameter video=HDMI-A-1:1920x1080@60e, of course with adjustments to suit.

Hello,
Thanks for your reply. Just a follow up question, given screen 2, referred above, allows one to set the screen resolution as per the requirements of the computer connected to it, is there a way to set the signal timing? Once again,thank you for your help

The way DVI-D is designed to work is the monitor describes its multi-sync parameters (max pixel clock, min/max line timings, min/max vsync timings) together with a modeline describing its native resolution and best refresh rate. All this info is contained in the EDID.

The source device is supposed to parse the EDID and select a video mode. Normally it will pick the native resolution but if the source cannot support that it uses the multi-sync parameters to select a video mode that it can generate and that the display can support.

For that reason the idea of matching “the requirements of the computer connected to it” is really rather odd. The system was designed to work the other way around. To be honest I suspect this feature is more for working around software limitations than anything hardware related. Specifically I wonder if it allows the display hardware to scale images when running software that is not DPI aware.

Anyhow…

If you can arrange to access it via ssh then a couple of things are worth looking at:

cd /sys/class/drm/card0-HDMI-A-1
cat status
cat modes
cat enabled
# You may have to install this program using apt
edid-decode edid

That should give us some clue about what is passing between monitor and DB410C.

I apologize for my ignorance, but I do not seem to understand what you mean by this.

Software that does not know how big to draw itself (or is only capable of drawing itself at a fixed size).

Normally this is managed by looking up the dots-per-inch of the display (although for signage the DPI figure for the screen would need to be increased anyway to take into account the viewing distance).

Could this then mean that the ability to configure the screen mainly helps in scaling the images from the computer so as to fit the screen and may not have an effect on whether or not the computer/dragon board will display on the screen?

It could although, as mentioned, I am only guessing about why the display device chooses to provide these options.

Sharing the contents of the four files in /sys/class/drm/card0-HDMI-A-1 is a good first step into switching away from guess work and into proper debugging :wink: .

Thanks for the help.I’ll do that then get back to you.

This were the results i obtained after running the commands above:

So… that looks like the DB410C has received a sensible EDID and has probably enabled the video output and configured it for 1366x768-60.

I suspect the display device cannot sync to the output (although I’m afraid I cannot really tell you why).

One thing you can try is to install the modetest program and use that to temporarily experiment with different video modes. modetest isn’t very clearly documented but this doc (despite being for a different bit of silicon) is pretty clear: https://wiki.st.com/stm32mpu/wiki/DRM_KMS_overview

If in doubt just run modetest on its own and share the output.

PS Please don’t share the output as a screenshot… it is really cumbersome to work with (and will probably fly of the top of the screen anyway). Use Copy 'n Paste instead.

Ok. Will do that. Thanks for the help, and sorry about the screenshot.