8

I recently bought a new raspberry pi model B with 4GB rams and I copy & paste Noobs in the micro SD card from macbook.

I plugged my HDMI cable from my raspberry pi to samsung TV but it always shows "No Signal". The HDMI works for sure (I use it for my switch), I also tested my raspberry in the office with a monitor and I can see the output.

I did a lot of search on internet, the most common suggest is to modify the "config.txt" file with hdmi_force_hotplug=1, config_hdmi_boost=4, ect, but there is no such file in the Noobs. Then I've tried to install the Raspbian and modified the file with the parameters above but nothing works.

I'm new on raspberry bi and I don't know which part I did wrong, could be the problem of TV or some signal settings? Does anyone have any solution for it? Thanks!

10
  • 1
    The "config.txt" is /boot/config.txt on the pi. To edit use "sudo nano /boot/config.txt", and you will have to reboot after changing. Try removing the # from the config,txt line for "#hdmi_safe=1" then reboot while plugged into your TV.
    – Don
    Commented Sep 29, 2019 at 16:35
  • 1
    Try swapping the HDMI from HDMI1 to HDMI0 (nearest the USB-C power connector). Try running sudo apt update; sudo dist-upgrade -y; sudo reboot to get the latest Raspbian fixes.
    – Dougie
    Commented Sep 29, 2019 at 17:11
  • @Don Thanks for the reply, I've tried to remove the comment # but it don't work, and I don't have any monitor but only TV to access to my pi :/
    – Terry
    Commented Sep 29, 2019 at 18:06
  • @Dougie Thank you but I've tried both HDMI ports and none of them works. I can't run these commands because I don't have other monitor to access to my pi...
    – Terry
    Commented Sep 29, 2019 at 18:07
  • Get a new SDCard, get Raspbian on it. Put your wpa_supplicant.conf and a blank ssh.txt in the /boot folder (you can do that on windows - as long as you ignore any prompts that encourage you to reformat the filesystem). Boot that and you can ssh in to your RPi (you may need to scan your network or look at your router's config pages to find the IP address). Then you can run those commands to see what's going wrong.
    – Dougie
    Commented Sep 29, 2019 at 18:56

7 Answers 7

4

I have been struggling with the same issue myself for a while, but I think I have a good idea how to fix this.

First, remove the PI from the casing

I know this is strange, but in my experience, this was the main issue. HDMI through the case was working fine with a desktop monitor, but not with the TV. I removed the PI from the case, and tried again, it worked right away. This is because some covers don't allow the mini HDMI cable to fully attach, and hence giving out a weaker signal through the HDMI cable.


If the first step didn't work, we still have a few options. I would list them here in order, so you can try them gradually.

Increase the outgoing signal

You can do that with the config_hdmi_boost=4 config property in /boot/config.txt, the maximum value that you can set for this option is 11, however, the documentation advises against using such a high power boost unnecessarily.

Force outputting HDMI

By using the property force_hotplug=1. Usually this option is already configured for you under /boot/config.txt. It forces the HDMI output even if the monitor was not detected as HDMI-ready.

Increase HDMI compatibility by running in "safe mode"

By using the option hdmi_safe=1 in /boot/config.txt. This runs the HDMI video output in a 'highly compatible' mode. It also changes the resolution to 640X480, but don't worry, we can change it later.

Manually configure the resolution and output mode

Under the HDMI specification, the monitor can 'negotiate' with the attached device, which resolutions and video modes it supports and which it 'prefers'. This is the so-called edid information. The PI should then be able to choose the correct resolution and mode to be outputted. However, this could be problematic in some cases, and it might be better to 'force' output a resolution and a mode if we already know it.

In short, you need to ssh into the RaspberryPi while it is connected to the monitor/tv, and using the commands tvservice -d /tmp/edid and edidparser /tmp/edid to figure out the preferred resolution and mode. You can then set these values using the properties hdmi_group and hdmi_mode in the /boot/config.txt file. You might also need to set the property hdmi_ignore_edid=0xa5000080 to ignore the edid negotiation. Here's a nice tutorial on how to do this.


Remember, you can always take a look at the documentation to understand better what each of these configuration parameters does

2

If both the Pi and the screen are working separately, the issue should be in the cable. Try getting a different one, and as short as practically possible. Get rid of any HDMI splitters/switches along the way (whey you say "switch" do you mean a port multiplexer or a gaming console?)

Note that config_hdmi_boost is not limited to 4, it can be set to as high as 11 which is necessary with very long or poor cables.

Note that with a single-screen setup you should use HDMI 0 port (the one next to the USB-C port).

2
  • Hey thanks for the reply. Yes I was talking about Nintendo Switch, I just changed config_hdmi_boost to 11 but it still doesn't work :(
    – Terry
    Commented Apr 19, 2020 at 9:40
  • Nintendo Switch works with 720p resolution, which corresponds to hdmi_group=1 and hdmi_mode=4 in config.txt. And don't keep config_hdmi_boost at 11 if it didn't help: it's stressing the electronics to the limits. FIY, when I got an RPi4, the first HDMI cable I got didn't work and I had to get a better one. Commented Apr 19, 2020 at 12:26
1

My experience is that only one of the two mini-HDMI shows the installation process, meaning, it probably installs but you only see the splash screen. I sent the raspberry back, assuming it was damaged. The replacement seemingly did not start either. After switching to the other HDMI the monitor displayed everything. This should be marked prominently on the box ...

1
  • I can confirm that it solved the problem for some users, at least on NixOs. The boot was actually shown an HDMI 0 and at some points the displayed TTY prompt switched to HDMI 1. github.com/NixOS/nixpkgs/issues/179701
    – tobiasBora
    Commented Sep 22, 2022 at 15:49
0

Try adding this to /boot/config.txt; I had a lot of trouble with a Hannspree HT161 that has a resolution of 1366x768 - this sets to closest HDMI res of 1360 x 768

hdmi_force_hotplug=1
hdmi_group=2
hdmi_mode=87
hdmi_cvt=1360 768 60 3
3
  • Thanks for the reply @Don, I've tried your settings but it still doesn't work :( My TV is Samsung bought in France (samsung.com/fr/support/model/UE32J4100AWXZF) I don't know if there is something like frequency that pi won't support or needed to add some additional settings...
    – Terry
    Commented Oct 15, 2019 at 19:36
  • @Terry I've looked up the specs for that TV and would expect it to work. Back to basics: try the other HDMI port on the TV (not the one used for Switch).
    – Don
    Commented Oct 16, 2019 at 9:20
  • I've already tried other HDMI port... and the HDMI cable and the adapter work fine on other devices...
    – Terry
    Commented Oct 16, 2019 at 9:36
0

I had 2 RPI 4's with this issue. SSH'ing and editing /boot/config.txt to un-comment the line below worked.

hdmi_safe=1

0

I cannot comment because I don't have enough reputation. There are several things to point out that were left out.

In my case, connecting to any monitor was fine, but the TV didn't have any signal.

Ahmed Sayed's answer solved most of my problems, and help me understand the issue better. However, there are several things I want to point out to.

  • Adding hdmi_safe=1 as an option overrides everything and I couldn't change the resolution from 640x480 at all.

  • Also, if you're using a short cable and there's no interference there's no point playing around with config_hdmi_boost it's not the reason.

  • Following tvservice and edidparser suggestion from above, I used:

    hdmi_force_hotplug=1
    hdmi_group=1
    hdmi_mode=16
    
  • I ended up having a large black border around. If you go over the config.txt file carefully, there's an option to disable it, disable_overscan=1 uncommenting it solved my problem.

  • If needed the overscan can be adjusted with the options overscan_left, overscan_right, overscan_top, overscan_bottom; positive values add borders and negative values remove borders.

-1

In case you are using Ubuntu Mate 20.04, what worked for me was editing /boot/firmware/usercfg.txt and adding:

hdmi_safe=1
hdmi_force_hotplug=1

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