[Solved] I can't set custom resolutions

Hi,
I need help with custom resolution settings. With the new version of info beamer hosted 14 (stable) I can no longer set the values ​​in config/userconfig.txt. It simply does not take the resolution, it is as if it were only in autodetect video mode, for example I need to work with these resolutions:

hdmi_group=2
hdmi_mode=9

either

hdmi_cvt=1920 1170 60 3 0 0 0
hdmi_group=2
hdmi_mode=87

Unfortunately I can’t go back to the info beamer 13 version with which it worked correctly.

I need to fix it as soon as possible or at least the option of returning to version 13.

Thank you

There is a way (for the first time) to go back to a previous release: Shift-Click the manage button to reveal a „Activate old-stable release…“. It’s a bit wonky at the moment as doing so signals the backend to allow version updates, so it will install the current stable again in the background after the download.

Of course using the old version isn’t viable long term solution. The info-beamer program itself can already be told to use a modeline style video mode (with precise clocks and all) but having some kind of backwards compatible way for hdmi_cvt seems more useful. Nothing related to this will happen this week, but I’ll see how to do that next week.

You can also try one thing with the new stable release. Any of the INFOBEAMER_* environment variables can also be set by creating the corresponding file in /config and there is a way to specify a custom mode:

Create /config/HDMI_PRIMARY_MODE /config/INFOBEAMER_PRIMARY_MODE with content

CVT 141.12 1920 1928 1960 2000 1170 1190 1198 1204 +HSync -VSync

(I copied that line from Video Timings Calculator after entering your values, not sure if they fit or correspond to what hdmi_cvt did, but it’s worth a try)

Thinking about it: these should get applied, but only it these settings are in /config/screen-settings.txt, a file normally controlled by the resolution selector in the config editor. Right now the code that does this backwards compatibility handling doesn’t look into userconfig.txt. It probably should.

Thanks Florian, for now I went back to the previous release, since I cannot access the SD card to edit it, and ssh does not allow editing since they are deleted after the reboot.
When I can access the card I will try the environment variables and/or screen-settings.txt in /config.

When the OS is running, /config is mostly symlinks. The real files are on /sd/config. There is a command in the shell’s history to remount that rw.

Looking forward to your tests. If that works it would be easy to add full backwards compatibility with the old hdmi_cvt lines.

Hi florian,

Thanks for the commands, I didn’t know they were in the shell history.

Ok, testing to obtain the 800x600 60Hz resolution, what did work was creating screen-settings.txt in /sd/config with:
hdmi_group=2
hdmi_mode=9

which enables “custom modes” in the video resolution settings with “Mode DMT 9”.

Trying to get 1920x1170 60Hz with the info beamer environment variable by creating sd/config/HDMI_PRIMARY_MODE with:
CVT 141.12 1920 1928 1960 2000 1170 1190 1198 1204 +HSync -VSync

no change was observed.

Also testing screen-settings.txt with:
hdmi_cvt=1920 1170 60 3 0 0 0
hdmi_group=2
hdmi_mode=87

this also made no change.

So for now I only have to achieve the 1920x1170 60Hz resolution with the new version 14 of infobeamer. Also note that rolling back the version sometimes reboots and reverts to stable version 14.

Hopefully a solution can be found to get the benefits of the new infobeamer version 14.

PS: The 1920x1170 60Hz resolution is necessary for a 360° circular LED screen (without sendingcard processor).

Thank you.

Hm. Hope I didn’t miss any important detail. (Edited a few days later: yes I did: must be INFOBEAMER_PRIMARY_MODE, not HDMI_PRIMARY_MODE)

Do you have a way to provide me via email the debug log for that from the Toolbox menu within the Manage dropdown on its detail page? When the info-beamer process starts the log should show it trying to use that mode.

I 99% sure that there will be a way. I already set weird modes my display could show when implementing the CVT code. What’s missing is integration with the rest of the system.

This is expected for the Pi4/5 as there no longer is any code in the Pi’s firmware that understands these settings. For backwards compatibility (in case older cards get reused in newer devices for example and to unify the way devices are configured), the script starting info-beamer now has to parse this and forward the resulting values to the info-beamer tool. It doesn’t for hdmi_cvt right now. It does now: See next comment.

The new testing release of the OS from today now has support for directly using older hdmi_cvt values set in either /config/screen-settings.txt or in /config/userconfig.txt. In both cases the existing hdmi_cvt line is detected and forwarded to the info-beamer process which converts that into a usable KMS/DRM video mode.

From your example resolution: In /config/userconfig.txt:

hdmi_group=2
hdmi_mode=87
hdmi_cvt=1920 1170 60

This is detected while starting the info-beamer process and forwarded as environment variable

INFOBEAMER_PRIMARY_MODE="hdmi_cvt=1920 1170 60"

The mode is then converted to a KMS/DRM mode:

[surface_kms.c]  Parsing legacy hdmi_cvt mode specification:
[surface_kms.c]   hdmi_cvt=1920 1170 60.000000 0 0 0 0
[surface_kms.c]   Modeline "1920x1170_60.00"  188.50  1920 2048 2255 2590  1170 1173 1183 1214 -hsync +vsync
[surface_kms.c]   Generated mode: 1920x1170: 59.9518Hz name: 1920x1170, clock: 188504 (flag:0x6 -hsync +vsync) - user defined

I think the modeline I initially gave you used “reduced blanking”, which from what I understand avoids extra video clock cycles being used to move a virtual cathode ray around and instead quicker moves from line to line. If you can use that for your display, the following hdmi_cvt should work:

hdmi_cvt=1920 1170 60 0 0 0 1
1 Like

Thanks for this implementation in testing, now it works at the correct frequency (with the previous modeline it was at 59hz and showed 100hz in telemetry, now it works correctly at 60hz), in addition to being able to customize the resolution in userconfig.txt

Very nice. Thanks for testing! There’s some minor things that I still want to integrate with the current testing release, but it will soon get merged back into stable again.

1 Like