External HDMI touch screen stays black

@ChrisCompo Need to download code, modify code, compile firmware, and upgrade firmware.
I have specially modified and uploaded the firmware for you to test and verify.

--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -575,6 +575,10 @@ static const struct drm_display_mode drm_dmt_modes[] = {
        { DRM_MODE("4096x2160", DRM_MODE_TYPE_DRIVER, 556188, 4096, 4104,
                   4136, 4176, 0, 2160, 2208, 2216, 2222, 0,
                   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_NVSYNC) },
+       /* 0x59 - 1024x600@60Hz */
+       { DRM_MODE("1024x600", DRM_MODE_TYPE_DRIVER, 51200, 1024, 1192,
+                  1224, 1344, 0, 600, 615, 621, 635, 0,
+                  DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
 };

@goenjoy Onfortunately it doesn’t work. The build number in Android info is:
v20231108. Hence, the update did work. Display remains black. It would be great to solve this issue for us, because we want to integrate your hardware in a kiosk, with this display.

Output now:

Video Port0: ACTIVE
    Connector: HDMI-A-1
        bus_format[100a]: RGB888_1X24
        overlay_mode[0] output_mode[f] color_space[0], eotf:0
    Display mode: 1024x600p60
        clk[51200] real_clk[51200] type[48] flag[a]
        H: 1024 1192 1224 1344
        V: 600 615 621 635
    Esmart0-win0: ACTIVE
        win_id: 8
        format: AB24 little-endian (0x34324241) SDR[0] color_space[0] glb_alpha[0xff]
        rotate: xmirror: 0 ymirror: 0 rotate_90: 0 rotate_270: 0
        csc: y2r[0] r2y[0] csc mode[0]
        zpos: 2
        src: pos[0, 0] rect[1920 x 36]
        dst: pos[0, 0] rect[1024 x 20]
        buf[0]: addr: 0x00000000ee855000 pitch: 7680 offset: 0
    Cluster0-win0: ACTIVE
        win_id: 0
    Esmart0-win1: ACTIVE
        win_id: 8
        format: AB24 little-endian (0x34324241) SDR[0] color_space[0] glb_alpha[0xff]
        rotate: xmirror: 0 ymirror: 0 rotate_90: 0 rotate_270: 0
        csc: y2r[0] r2y[0] csc mode[0]
        zpos: 2
        src: pos[0, 0] rect[1920 x 72]
        dst: pos[0, 560] rect[1024 x 40]
        buf[0]: addr: 0x00000000f0652000 pitch: 7680 offset: 0
Video Port1: DISABLED
Video Port2: DISABLED
Video Port3: DISABLED

@ChrisCompo Please execute the following command and send me the generated file.

adb shell dmesg > dmesg.log

@goenjoy https://www.composoftware.eu/dmesg.zip

@ChrisCompo By the way, adding 1920x510 special resolution to another customer in the same way is okay, indicating that the added code is not a problem. Currently, from the log, there is an issue with reading the HPD status.

  1. Can you upgrade the Ubuntu system to see if it can be displayed?
  2. Can other HDMI screens be displayed normally on this motherboard?
  3. Can this HDMI screen display normally on other motherboards?
[   25.775705] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: bus_width:0x7d000,bit_rate:512000
[   25.780852] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy lane can't ready!

@goenjoy

  1. I have to install ubuntu, to check if the display works in ubuntu? Is that correct? Currently we have Android 13 installed, the test version you provided.

  2. Yes, the Khadas Edge 2 works with a 1920x1080 display hdmi connected

  3. Yes, the display works on a Android 11 box of another manufacturer, with a rockchip rk3399.
    We want to upgrade to your box, because the design and newer SOC
    The display works also with a hdmi to usb/c converter on the Khadas Edge 2. But we don’t want the additional converters, because we need the ports and save the additional costs (also for our customers in the end).
    Also the display works via HDMI with Windows 10 - 11

But like said before, when I connect with the Edge2 via HDMI, nothing happens, remains black

this is the ouput of de android 11 box:

VOP [ff900000.vop]: ACTIVE
    Connector: HDMI-A
        bus_format[100a]: RGB888_1X24
        overlay_mode[0] output_mode[f] color_space[0]
    Display mode: 1024x600p60
        clk[51200] real_clk[51200] type[48] flag[a]
        H: 1024 1192 1224 1344
        V: 600 615 621 635
    win0-0: ACTIVE
        format: AB24 little-endian (0x34324241) SDR[0] color_space[0]
        csc: y2r[0] r2r[0] r2y[0] csc mode[1]
        zpos: 0
        src: pos[0x0] rect[1920x1080]
        dst: pos[0x0] rect[1024x600]
        buf[0]: addr: 0x00000000017bb000 pitch: 7680 offset: 0

Yes. By the way, is there no display when connecting to HDMI from startup to system entry?

no not displaying anything. It remains black. No khadas logo or whatsoever

ubuntu installed. Same problem. Black screen, no display.

If i connect the display in oowow, i have display, but only lines, in different colors.

@ChrisCompo Do you have a purchase link for this HDMI screen? We want to buy one for validation and analysis.

@goenjoy I will ask our supplier where you can order the touchscreen. I’ll send you PM. To which country should it be shipped?

Alternative idea: Maybe we can schedule a live debug session? You can then use TeamViewer to connect to a Windows PC that is connected to the Khadas Edge2 and touchscreen in combination with ADB.

@gloaguen @ChrisCompo Could you please help confirm if this HDMI screen supports other resolutions first? You can install software to control Android device applications on your computer, and then directly control and operate Edge2 devices on your computer. Then check the HDMI resolution support in the settings and switch to other resolutions to see if they can be displayed?

@goenjoy when the touchscreen is connected there are 3 resolutions visible

1024x600p59.99 => not working (black screen)
640x480p60.00 => working !!, but screen ration is not correct (see screenshot)
640x480p59.94 => working !!, but screen ration is not correct (see screenshot)

3 questions:

  • how can we force a resolution, default setting is “auto” and not working (black screen)
  • can you fix the ration for this screen?
  • do you have enough data for also fixing 1024x600p59.99


@gloaguen You can upgrade the firmware linked below and switch to a different resolution through your computer. Then restart the device again, so that the system UI resolution will also switch to screen resolution. As for the resolution of 1024X600, I will continue to follow up on this issue and have already provided feedback to Rockchip.

@goenjoy. It’s important to know that the screen was working with an Android Box, with a RK3399 inside.

@goenjoy

I tried both firmware versions

  • edge2-android-13-v231108-1024x600-test.img
  • edge2-android-13-v231113-1920x510-test.img

I run into troubles, if I start the system without the (1024 x 600) display connected, Android starts. Then I connect the display, with the HDMI port. I use the remote management software to set the resolution, 640 x 480. I see the display, it look strange. Like the screenshot from Mark.
If I restart the system with the display connected, the sytem hangs. I’m not able to connect with Android with the remote software, or connect another display.
If I unplug the HDMI cable and restart the system, the system boots and I can access Android via the remote management software. If I connect the display after booting, it works, with the resolution I saved before.

But starting or restarting with the display connected is not possible, I have to unplug the display first. This is of course not an option in a kiosk.

@ChrisCompo @gloaguen Do you two know each other? Or do you both not know each other, come from different companies, and have encountered the issue of 1024x600 resolution?