Any way to force the RPi 4B output to FULLHD instead of 4K?

Hi all,

Recently I added a new RPi 4 to my current Screenly project (the first one in the project because the rest are RPi3).
It seems there’s no way to force the output to the desired resolution (1920x1080) modyfing the config.txt file as every time the RPi4 restarts, the config file returns to its original content.

The content I added to change this behaviour:

hdmi_group=0
hdmi_mode=16

These parameters come from this link:

When I insert the microSD with this configuration and switch on the RPi, I can see the changes because the wellcome screen is showed in FULLHD. Then the RPi restarts itself and the next time I see the wellcome screen it shows in 4K. Checking the config.txt file, the configuration I made dissapeared.

My TV not supports 4K and is very frustating. Could you please help?

Thanks in advance.

Hi David,

have you tried adding those variables from the Dashboard directly? By doing that, they will be added to the device on boot

BALENA_HOST_CONFIG_hdmi_group=0
BALENA_HOST_CONFIG_hdmi_mode=16

there is some Documentation here on env variables : https://www.balena.io/docs/learn/manage/configuration/

let us know how it goes

Thanks for your reply Juan.

Unfortunately I tried what you suggested and the image still comes out at 4K.

DEVICE --> DEVICE CONFIGURATION --> CUSTOM CONFIGURATION VARIABLES [ADD CUSTOM VARIABLE]

Added: BALENA_HOST_CONFIG_hdmi_group with value 0
Added: BALENA_HOST_CONFIG_hdmi_mode with value 16

Is this correct? Am I missing a step…?

Thanks again for your help.

Hi @DavidGED, what you did looks right to me. So the device is running fine, besides this issue right? Have you seen the device restart as you applied the configuration variables?

I wonder if the device fails to retrieve these values you set on the dashboard.

Do you see any errors on device logs? How about the Device Diagnostics page? Any errors or warnings there?

If everything is looking fine, let us know. We will look into reproducing the issue on our side.

Hi @gelbal ,

The RPi works fine.

os_version: balenaOS 2.65.0+rev1
supervisor_version: 12.3.0

I executed all the diagnostics from the web panel:

  • Device health checks: All succeeded
  • Device diagnostics: I downloaded the log but I don’t know what exactly to search for
  • Supervisor state: These are the first lines:

Target supervisor state:
{

  • “local”: {*

  • “config”: {*

  •  "RESIN_HOST_CONFIG_gpu_mem": "256",*
    
  •  "RESIN_SUPERVISOR_NATIVE_LOGGER": "true",*
    
  •  "BALENA_HOST_CONFIG_hdmi_group": "0",*
    
  •  "BALENA_HOST_CONFIG_hdmi_mode": "16",*
    
  •  "RESIN_HOST_CONFIG_arm_64bit": "1",*
    
  •  "RESIN_HOST_CONFIG_avoid_warnings": "1",*
    
  •  "RESIN_HOST_CONFIG_disable_splash": "1",*
    
  •  "RESIN_HOST_CONFIG_dtoverlay": "\"vc4-fkms-v3d\"",*
    
  •  "RESIN_HOST_CONFIG_dtparam": "\"i2c_arm=on\",\"spi=on\",\"audio=on\"",*
    
  •  "RESIN_HOST_FIREWALL_MODE": "",*
    
  •  "RESIN_SUPERVISOR_DELTA": "1",*
    
  •  "RESIN_SUPERVISOR_DELTA_VERSION": "3",*
    
  •  "RESIN_SUPERVISOR_LOG_CONTROL": "true",*
    
  •  "RESIN_SUPERVISOR_POLL_INTERVAL": "900000"*
    
  • },*

During the startup I can only see the Balena and Screenly logos (no text). After that, the configured images start to be displayed.

Please, let me know any information you need. I don’t know balenaOS as well as I would like to and I feel very limited.

UPDATE: I’ve just set value 1 to “BALENA_HOST_CONFIG_hdmi_group” variable and now the output is the desired one (FULLHD).

Seems that the 0 value (Auto-detect from EDID) is not being recognized?.
Let me carry out further tests and report back with results.

Thanks for the update @davidged, I was just about to suggest forcing the hdmi_group and maybe going as far as a custom hdmi_mode. I know for my small screens I go the manual route and set something like the following:

BALENA_HOST_CONFIG_hdmi_cvt=480 360 60 1 0 0 0
BALENA_HOST_CONFIG_hdmi_group=2
BALENA_HOST_CONFIG_hdmi_mode=87

This is probably overkill in your case, but trial and error is definitely an option as EDID varies between screens and HDMI standards.

Let us know how it works out!

Hi all,

I’ve checked the configuration in several TV’s / RPi and works as expected. Thanks for your help!

We want to do the same thing (Limit output when connected to 4K screens) but having the same issue when trying to use the Balena Browser Block and we also tried the new WPE Browser Block

Added: BALENA_HOST_CONFIG_hdmi_group with value 1
Added: BALENA_HOST_CONFIG_hdmi_mode with value 16

The Balena Browser Block (Chromium based) just places a 1920X1080 window in the upper left corner of the screen. The TV is still detecting a 4K signal.

The WPE block doesn’t seem to respond at all.

We have seen solutions on RPi 4B where the TV sees only 1920X1080 signal from the Pi4 which help with video performance. What we are looking for.

Anyone know how to do this on Balena?

Yes, you can configure the Raspberry Pi 4B to output at Full HD (1920x1080) resolution instead of 4K. This can be done by modifying the configuration file for the Raspberry Pi’s display settings.