Pi Zero format boards that are supported.

1280 x 720 looks like the fallback resolution if the code does not like what it gets from edid

How to know if code likes 960x544 ? maybe if I find a 5 inches HDMI display which works at 1280x720 I have fixed this situation. But I suspect that 1280 goes beyond the 5 inches display. How hard is to change the fallback resolution to 720x720 :D ?

What could happen writing something like this ?

Code:
HDMI_DISPLAY_TIMING mPreferredTimings;

/* Fallback to 720p when DDC fails */
STATIC HDMI_DISPLAY_TIMING mDefaultTimings = {
    .Vic = 4,
    .FrequencyKHz = 74250,
    .HDisplay = 720, .HSyncStart = 725, .HSyncEnd = 730, .HTotal = 750, .HSyncPol = TRUE,
    .VDisplay = 720,  .VSyncStart = 725,  .VSyncEnd = 730,  .VTotal = 750,  .VSyncPol = TRUE,
};
 
boot linux on the board / 4" monitor and extract edit info from it like
in fact its no necessary to be on that board, edid should be the same on any hdmi

Thanks. But this job is too much complicated to be completed and understood by myself only.
 
why ? just connect the monitor to a linux box and execute the commands. xrandr and edid-decode are available on freebsd too
 
Ok. I'm trying. The problem that I have is that I can't read anything on FreeBSD because the resolution is wrong and the screen is blur and it turns around. And Linux is able to boot,but at some point the system freezes itself. Is this the classic X;Y problem. I should fix Linux before to be able to fix FreeBSD.
 
Life is hard here. I've connected the little 4 inches display to my nvidia RTX 2080 ti and I saw that it does not support the resolution. As soon it is turned on,It flickers. I've also tried to passthru the nvidia RTX 2080 ti to a Windows and to a Linux vm,attaching the 4 inches display to the GPU and trying different resolutions with bhyve : the signal does not arrive to the 4 inches display : I only see a black screen. (on Windows I see the infamous error 43 that I don't see anymore if I use my regular monitor).
 
On FreeBSD, you can obtain EDID by x11/nvidia-settings if you're using nvidia GPU on the computer and decode it to be readable by sysutils/edid-decode.
Code:
% edid-decode edid.bin.TP-P52.bin
edid-decode (hex):

00 ff ff ff ff ff ff 00 4d 10 a1 14 00 00 00 00
16 1c 01 04 a5 22 13 78 06 df 50 a3 54 35 b5 26
0f 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 50 d0 00 a0 f0 70 3e 80 30 20
35 00 58 c2 10 00 00 18 00 00 00 10 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fe
00 4c 51 31 35 36 44 31 4a 57 34 32 0a 20 00 ca

----------------

Block 0, Base EDID:
  EDID Structure Version & Revision: 1.4
  Vendor & Product Identification:
    Manufacturer: SHP
    Model: 5281
    Made in: week 22 of 2018
  Basic Display Parameters & Features:
    Digital display
    Bits per primary color channel: 8
    DisplayPort interface
    Maximum image size: 34 cm x 19 cm
    Gamma: 2.20
    Supported color formats: RGB 4:4:4
    Default (sRGB) color space is primary color space
    First detailed timing includes the native pixel format and preferred refresh rate
  Color Characteristics:
    Red  : 0.6396, 0.3291
    Green: 0.2099, 0.7099
    Blue : 0.1494, 0.0595
    White: 0.3125, 0.3281
  Established Timings I & II: none
  Standard Timings: none
  Detailed Timing Descriptors:
    DTD 1:  3840x2160   60.000000 Hz  16:9    133.320 kHz    533.280000 MHz (344 mm x 194 mm)
                 Hfront   48 Hsync  32 Hback   80 Hpol N
                 Vfront    3 Vsync   5 Vback   54 Vpol N
    Dummy Descriptor:
    Dummy Descriptor:
    Alphanumeric Data String: 'LQ156D1JW42'
Checksum: 0xca
 

Attachments

  • nvidia-settings_2025-05-20_07-12-25.png
    nvidia-settings_2025-05-20_07-12-25.png
    398.6 KB · Views: 19
On FreeBSD, you can obtain EDID by x11/nvidia-settings if you're using nvidia GPU on the computer and decode it to be readable by sysutils/edid-decode.
Code:
% edid-decode edid.bin.TP-P52.bin
edid-decode (hex):

00 ff ff ff ff ff ff 00 4d 10 a1 14 00 00 00 00
16 1c 01 04 a5 22 13 78 06 df 50 a3 54 35 b5 26
0f 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 50 d0 00 a0 f0 70 3e 80 30 20
35 00 58 c2 10 00 00 18 00 00 00 10 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fe
00 4c 51 31 35 36 44 31 4a 57 34 32 0a 20 00 ca

----------------

Block 0, Base EDID:
  EDID Structure Version & Revision: 1.4
  Vendor & Product Identification:
    Manufacturer: SHP
    Model: 5281
    Made in: week 22 of 2018
  Basic Display Parameters & Features:
    Digital display
    Bits per primary color channel: 8
    DisplayPort interface
    Maximum image size: 34 cm x 19 cm
    Gamma: 2.20
    Supported color formats: RGB 4:4:4
    Default (sRGB) color space is primary color space
    First detailed timing includes the native pixel format and preferred refresh rate
  Color Characteristics:
    Red  : 0.6396, 0.3291
    Green: 0.2099, 0.7099
    Blue : 0.1494, 0.0595
    White: 0.3125, 0.3281
  Established Timings I & II: none
  Standard Timings: none
  Detailed Timing Descriptors:
    DTD 1:  3840x2160   60.000000 Hz  16:9    133.320 kHz    533.280000 MHz (344 mm x 194 mm)
                 Hfront   48 Hsync  32 Hback   80 Hpol N
                 Vfront    3 Vsync   5 Vback   54 Vpol N
    Dummy Descriptor:
    Dummy Descriptor:
    Alphanumeric Data String: 'LQ156D1JW42'
Checksum: 0xca

I can do the procedure even if the screen is black and not recognized ?
 
I can do the procedure even if the screen is black and not recognized ?
Not sure as I don't have multi-display environment, but "possibly" nvidia-settigs can acquire and save EDID for another monitor other than you're viewing.
But I suspect the monitor doesn't exposing EDID properly even on "working" GPU and X11 (or Wayland) if it is still "black" screen there, too.
In this case, you need to obtain the datasheet of the monitor and configure manually according to it.
 
i built an image and hdmi read edid does not work and it always go to the predefined mode of 1280x800
i have orange pi 3b
Code:
**EDID n[125] => 00
**EDID n[126] => 00
**EDID n[127] => 00
HDMI: Read 0 extention blocks (of possible 0)
HDMI: EDID is not valid
 
1280x800 ? its not good for me. Before you talked about the fallback resolution that would been 1280x720 and for this reason,I've found this screen as plan B,just in case the developer that I hired was not able to add the 720x720 resolution :


now you tell me that the fallback resolution is 1280x800 and so,now I'm scared that my plan B could fail.
 
OK here is the bad news. You hired a developer to write a HDMI driver.

Think about it. What kinda portable handset uses HDMI. You should consider LVDS or MIPI if you are going to outlay capital. Study what other devices use.
 
1280x800 was bad
this is actual output

Type '?' for a list of commands, 'help' for more detailed help.
OK gop list
mode 0: 1280x720x32, stride=1280
 
something is wrong with the i2c read data for hdmi edid, everything read is 0
dunno if this particular to my board all or the code has a problem
i can provide "debug images" for the supported boards (needs serial console for debug info)
 
OK here is the bad news. You hired a developer to write a HDMI driver.

Think about it. What kinda portable handset uses HDMI. You should consider LVDS or MIPI if you are going to outlay capital. Study what other devices use.

I didn't hire a developer to write a HDMI driver. The HDMI driver already exists. He should only enable the 720x720 resolution.

I don't like LVDS or MIPI. I like HDMI because I like the idea of being able to attach and detach the display easily. Easier and more comfortable than doing it through tricky cables like those.

And I'm not spending a capital.
 
something is wrong with the i2c read data for hdmi edid, everything read is 0
dunno if this particular to my board all or the code has a problem
i can provide "debug images" for the supported boards (needs serial console for debug info)

Can you produce an image for the Radxa 3W ? :D
 
yes, but you need a serial console connected as debug msgs appear on the serial console
you can control the efi menu from the serial console too so you don't need the keyboard on the board
 
Back
Top