Home/Support/Support Forum/HDMI output not working properly with ConnectCore 8M Nano Dev Kit
Welcome to Digi Forum, where you can ask questions and receive answers from other members of the community.

HDMI output not working properly with ConnectCore 8M Nano Dev Kit

0 votes
I'm working with a ConnectCore 8M Nano Development Kit and a raspberry-compatible touch screen. For now I'm only using it as video output. I've followed all instructions from:
https://www.digi.com/resources/documentation/digidocs/embedded/dey/3.0/cc8mnano/yocto-gs_t_program-fw

and got the downloadable "imx-boot-ccimx8mn-dvk.bin" image working. With it, once I powered on the dev board I got my video output with a desktop with the Digi logo as background and all weston demos and utilities were working, like weston-flower or weston-terminal.

I then compiled my own DEY 3.0 image following these instructions: https://www.digi.com/resources/documentation/digidocs/embedded/dey/3.0/cc8mnano/yocto_t_create-build-projects
and it was also working fine.

However, since yesterday whenever I program a new image to the board, either by using fastboot or with a swu loaded in the SD card it will boot the first time and load the desktop interface, but after that, whenever I restart, the screen will stay black, no video output nor desktop, even if I try executing any of the weston apps.

So far, I've tried executing 'weston' and obtained:
fatal: drm backend should be run using weston-launch binary, or your system should provide the logind D-Bus API.

And weston-launch, which says:
weston: weston-launch must be run from a virtual terminal

I have also run:

root@ccimx8mn-dvk:~# ps | grep weston
854 root 320m S /usr/bin/weston --log=/run/user/0/weston.log
869 root 36320 S /usr/libexec/weston-keyboard
870 root 41488 S /usr/libexec/weston-desktop-shell

So it seems to be running. Any idea of what might be wrong or what should I check?
Thank you for any help or pointer for this issue.

PS: I have set the S1.4 micro-switch to OFF for using the MIPI-to-HDMI bridge
asked Oct 22 in Linux by sergiompopoli New to the Community (2 points)

Please log in or register to answer this question.

2 Answers

0 votes
 
Best answer
So, thanks to LeonidM suggestions we were able to determine the issue: for some reason, the system was not automatically managing the HDMI input configuration. So, the solution was to force the resolution we know works properly by editing the
/etc/xdg/weston/weston.ini like this:

(...)
[output]
name=HDMI-A-1
mode=1024x768
(...)

"weston-info" command helped diagnose the issue.
answered Oct 27 by sergiompopoli New to the Community (2 points)
selected Oct 27 by LeonidM
0 votes
does it matter if you powercycle or simply reboot? does reflashing just the rootfs image makes it work again?
answered Oct 23 by LeonidM Veteran of the Digi Community (3,727 points)
Hello Leonid, thank you for your answer. I have tried both powercycling and rebooting from CLI, and nothing. Even more, it's inconsistent: I have just flashed again and no output.
I had success using my desktop computer screen, it almost always seems to work. The issue is with the raspberry touchscreen.
I have just tried booting with the HDMI cable from the touchscreen disconnected and connecting it AFTER I get:
Digi Embedded Yocto 3.0-r1 ccimx8mn-dvk ttymxc0
ccimx8mn-dvk login:

and it seems to work! I get the Digi desktop background with all weston features working this way. I have tried this method thrice and seems consistent.
However, if I leave the HDMI cable connected and reboot, I get the black screen, and it stays black even if a disconnect and reconnect the cable.

Could be some initialization issue? Does this give you any hint?

Thanks again
>The issue is with the raspberry touchscreen.
What interface the TS is using on 8M nano?
From the documentation, its using the Lontium LT8912 MIPI-to-HDMI bridge (S1.4 to OFF position). I'm connecting the screen to the DevKit via HDMI connector.
I'm not sure if that's what you meant by "interface".
JUst for reference, the TS I'm using is a 4.3inch HDMI LCD (B) from Waveshare.
Your display consists of two parts, video and TouchScreen. HDMI is only responsible for the video, not the touchscreen part. Is TS connected to the board separately? Do you see the issue if you connect the board to a regular HDMI screen?
Ok, I see what you mean. The touch interface goes via USB to the DevKit board and works fine if connected.
However, the issue happens both if I have the touch interface connected to the DevKit as if I don't.
Also, I can confirm that with a standard commercial HDMI screen it works perfectly well, even after rebooting with the HDMI cable connected.
This is inconvenient, but this touchscreen is only for testing and at least I've found the workaround of booting with the HDMI disconnected and then connecting it. The definitive screen for our device has not yet arrived, which is why we're trying with this one. However, I would like to understand this issue in case something similar happens with the definitive screen.
Thank you
I suspect that the SBC is setting some resolution/frequency that your LCD does not support so from SBC/Linux perspective everything is running, but you see no image on LCD because it get's signal out of scope of what it supports. normally both sides can negotiate what is supported via HDMI, but in your case something is going wrong. Once you in the "stuck" mode, if you connect it to the commercial LCD monitor, does the image appear?
Ok, I've tried connecting the commercial screen after I get into "stuck" mode and no image appears. If then I reboot the system, the commercial screen gets the output properly. Finally, if from this point I switch back to the touchscreen, it displays the desktop correctly.

Also, I've made some tests inspired by your insight on the problem.
When the TS is working properly, weston-info shows this:

------------------------------------------------------------------
interface: 'zxdg_output_manager_v1', version: 2, name: 4                                                                                                                                                    
    xdg_output_v1                                                                                                                                                                                       
    output: 20                                                                                                                                                                                  
    name: 'HDMI-A-1'                                                                                                                                                                            
    logical_x: 0, logical_y: 0                                                                                                                                                                  
    logical_width: 1024, logical_height: 768  
(...)

interface: 'wl_output', version: 3, name: 20                                                                                                                                                                
    x: 0, y: 0, scale: 1,                                                                                                                                                                               
    physical_width: 0 mm, physical_height: 0 mm,                                                                                                                                                        
    make: 'unknown', model: 'unknown',                                                                                                                                                                  
    subpixel_orientation: unknown, output_transform: normal,                                                                                                                                            
    mode:                                                                                                                                                                                               
        width: 1024 px, height: 768 px, refresh: 60.004 Hz,                                                                                                                                         
        flags: current
------------------------------------------------------------------

And when it's "stuck", it shows this:

------------------------------------------------------------------
interface: 'zxdg_output_manager_v1', version: 2, name: 4                                                                                                                                                    
    xdg_output_v1                                                                                                                                                                                       
    output: 20                                                                                                                                                                                  
    name: 'HDMI-A-1'                                                                                                                                                                            
    logical_x: 0, logical_y: 0                                                                                                                                                                  
    logical_width: 800, logical_height: 480   

(...)   
           
interface: 'wl_output', version: 3, name: 20                                                                                                                                                                
    x: 0, y: 0, scale: 1,                                                                                                                                                                               
    physical_width: 470 mm, physical_height: 260 mm,                                                                                                                                                    
    make: 'DWE', model: 'HDMI',                                                                                                                                                                         
    subpixel_orientation: unknown, output_transform: normal,                                                                                                                                            
    mode:                                                                                                                                                                                               
        width: 800 px, height: 480 px, refresh: 60.004 Hz,                                                                                                                                          
        flags: current preferred                   
------------------------------------------------------------------

Which shows the default dimensions (800x600).
So, since we know it works with 1024x768, I've forced that in /etc/xdg/weston/weston.ini like this:

------------------
(...)
[output]
name=HDMI-A-1
mode=1024x768
(...)
------------------

And it's working now!! If I reboot with this setting, even with the touchscreen connected, it properly displays the desktop. So, it must be what you thought: for some reason it's not able to dynamically manage the resolution change. Thank you very much.

(PD: I've explained all I did in case it might be useful for someone)
Good news! Hardcoding the resolution was going to be my next suggestion but you have already figured it out
...