1

I have a Raspberry Pi 4B and have installed RetroPie on it (by flashing the image provided on the RetroPie site). In the beginning, connecting to my LG smart tv (43UM7600PLB) worked fine. After a while, I needed a couple of tries (it would say 'no signal', and then I'd fiddle with the cables, and in the end it would work). Bot nowadays, I can't get it to work at all. I keep getting 'no signal', no matter which HDMI port I choose on the tv, on the Raspberry Pi, and no matter in which order I plug the HDMI and power cables.

However, everything works perfectly fine on my 10 year old full-HD Panasonic "dumb" tv, and also on my cheap Acer computer screen. So the Raspberry Pi and RetroPie themselves seem to work just fine.

I've seen comments that not shutting down the device properly might break things, and to fix that I would need to re-install the SD card. But if that were the case, would things still work on these other displays?

I've googled around and tried all the things I could find. I connect the HDMI cable to the port closest to the power cable. I've tweaked config.txt in various different ways, including hdmi_safe=1, hdmi_force_hotplug=1, various combinations of hdmi_mode and hdmi_group that people recommended in various forums.

The other day I enabled SSH and looked at the output of tvservice:

pi@retropie:~ $ tvservice -l
1 attached device(s), display ID's are :
Display Number 2, type HDMI 0
pi@retropie:~ $ tvservice -n
[E] No device present
pi@retropie:~ $ tvservice -s
state 0x6 [DVI CUSTOM RGB full 4:3], 1024x768 @ 60.00Hz, progressive

So it looks like it doesn't recognise the tv at all, and now I'm at a loss for what to try next.

What could be the cause of this behaviour, and how can I fix it?


UPDATE after Dmitry's answer:

I have edited config.txt and set hdmi_force_hotplug=1 and config_hdmi_boost=9. Now, if I ssh into the device and do tvservice -n, it says device_name=GSM-LG_TV in the console.

The tv itself still says 'no signal', though.

3 Answers 3

2
+50

This sounds like a classic signal integrity problem.

If you have different cables, test those, perhaps you'll find one that your TV likes better than others. You may also consider buying a new one, especially if the ones you have are cheap, thin and no-name. As always, shorter cables work better than longer ones, especially if the cable is the root cause of signal distortion.

Technically, it's a question of impedance match between the Pi 4 output, the cable, and the TV input, as well as signal attenuation and delay in the cable, but you can't measure all those without expensive equipment.

The other place worth looking into is config.txt. Disable hdmi_safe (it forces default values on some parameters and may interfere with your manual settings), and then try increasing config_hdmi_boost (default value is 5, maximum is 11, a good test sequence is trying 7, 9 and 11, in that order). Note that it makes the signal stronger, not better, so it won't help with a mismatched cable, only with a cable with high attenuation. If the attenuation is low, boosting will only make the signal worse.

If the TV is not getting recognized via HDMI, hdmi_force_hotplug should be sufficient.

6
  • 1
    I don't have another cable, and I don't want to buy another one if I'm not reasonably sure it will work. I got it with my Raspberry Pi starter kit so one would think it would be a suitable cable? But maybe I'm naive to think that :). I tried both config_hdmi_boost and hdmi_force_hotplug before but I don't remember in combination with which other settings, so I'll try those again. What order would you recommend trying them?
    – jqno
    Jul 19, 2021 at 10:31
  • I've edited config.txt as you suggested. If I do tvservice -n, it now says device_name=GSM-LG_TV, so I suppose the Pi now recognises the tv. The tv itself still says 'no signal', though. I've updated the question to reflect this new information.
    – jqno
    Jul 20, 2021 at 7:18
  • @jqno I don't have any advice to give w.r.t. the cable from the starter kit. I bought a bunch of cheap cables from Amazon, one of them worked, and that's what I use. It's not so much a question of cable quality, more so a question of the match between cable and TV electrical parameters: if the TV input is not 100% HDMI-compliant, then a cheap non-compliant cable might work better than a fully compliant one. Jul 20, 2021 at 7:42
  • 1
    I've ordered a new cable, but I won't be able to try it out before the bounty deadline expires. Since your answer did move me forward, and yours is the only answer anyway, I'll give you the bounty.
    – jqno
    Jul 23, 2021 at 9:10
  • 1
    It did! I've accepted your answer.
    – jqno
    Jul 28, 2021 at 17:48
1

I don't have RetroPie but I did have the same screen problem after upgrading a Raspberry Pi 4B to Bullseye 64-bit on an LG42LV3550 screen, which had worked well with the official Buster. By amalgamating what's now the Buster Legacy & Bullseye's config.txt files, customising & pasting it as the new file in to Bullseye the LG screen now works. The text of my new config file is below. Watch only that #arm_boost=1 is commented out as otherwise the audio reproduction gaps/stutters. One can comment out the console size as well, if wished. Hope it's found useful. Oh yeah, & of course one has anyway to have the audio output pointing to the hdmi and not the audio jack, which can be done with the mouse on the desktop's GUI, speaker icon bottom right. CONFIG.TXT FOLLOWS:

# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment this if your display has a black border of unused pixels visible # and your display can output without overscan
#disable_overscan=1

# uncomment the following to adjust overscan. Use positive numbers if console # goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16

# uncomment to force a console size. By default it will be display's size minus # overscan.
framebuffer_width=1920
framebuffer_height=1080

# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1

# uncomment to force a HDMI mode rather than DVI. This can make audio work in # DMT (computer monitor) modes
#hdmi_drive=2

# uncomment to increase signal to HDMI, if you have interference, blanking, or # no display
#config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800

# Uncomment some or all of these to enable the optional hardware interfaces #dtparam=i2c_arm=on #dtparam=i2s=on #dtparam=spi=on

# Uncomment this to enable infrared communication.
#dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18

# Additional overlays and parameters are documented /boot/overlays/README

# Enable audio (loads snd_bcm2835)
dtparam=audio=on

# Automatically load overlays for detected cameras
camera_auto_detect=1

# Automatically load overlays for detected DSI displays
display_auto_detect=1

[pi4]
# Enable DRM VC4 V3D driver on top of the dispmanx display stack dtoverlay=vc4-fkms-v3d
max_framebuffers=2

# Run in 64-bit mode
arm_64bit=1

# Disable compensation for displays with overscan
disable_overscan=1

[cm4]
# Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required # (e.g. for USB device mode) or if USB support is not required.
otg_mode=1

[pi4]
# Run as fast as firmware / board allows
#arm_boost=1

[all]
#dtoverlay=vc4-fkms-v3d
-1

I don't have RetroPie but I did have the same screen problem after upgrading a Raspberry Pi 4B to Bullseye 64-bit on an LG42LV3550 screen, which had worked well with the official Buster. By amalgamating what's now the Buster Legacy & Bullseye's config.txt files, customizing & pasting it as the new file in to Bullseye the LG screen now works.

The text of my new config file is below. Watch only that #arm_boost=1 is commented out as otherwise the audio reproduction gaps/stutters. One can comment out the console size as well, if wished.

Hope it's found useful. Oh yeah, & of course one has anyway to have the audio output pointing to the hdmi and not the audio jack, which can be done with the mouse on the desktop's GUI, speaker icon bottom right.

CONFIG.TXT FOLLOWS:

# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment this if your display has a black border of unused pixels visible # and your display can output without overscan
#disable_overscan=1

# uncomment the following to adjust overscan. Use positive numbers if console # goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16

# uncomment to force a console size. By default it will be display's size minus # overscan.
framebuffer_width=1920
framebuffer_height=1080

# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1

# uncomment to force a HDMI mode rather than DVI. This can make audio work in # DMT (computer monitor) modes
#hdmi_drive=2

# uncomment to increase signal to HDMI, if you have interference, blanking, or # no display
#config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800

# Uncomment some or all of these to enable the optional hardware interfaces #dtparam=i2c_arm=on #dtparam=i2s=on #dtparam=spi=on

# Uncomment this to enable infrared communication.
#dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18

# Additional overlays and parameters are documented /boot/overlays/README

# Enable audio (loads snd_bcm2835)
dtparam=audio=on

# Automatically load overlays for detected cameras
camera_auto_detect=1

# Automatically load overlays for detected DSI displays
display_auto_detect=1

[pi4]
# Enable DRM VC4 V3D driver on top of the dispmanx display stack dtoverlay=vc4-fkms-v3d
max_framebuffers=2

# Run in 64-bit mode
arm_64bit=1

# Disable compensation for displays with overscan
disable_overscan=1

[cm4]
# Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required # (e.g. for USB device mode) or if USB support is not required.
otg_mode=1

[pi4]
# Run as fast as firmware / board allows
#arm_boost=1

[all]
#dtoverlay=vc4-fkms-v3d

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.