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!

Terry
  • 89
  • 1
  • 1
  • 2

7 Answers7

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

Ahmed Sayed
  • 141
  • 2
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).

Dmitry Grigoryev
  • 28,277
  • 6
  • 54
  • 147
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 ...

rlinner
  • 11
  • 1
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
Don
  • 109
  • 3
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
Rexcirus
  • 119
  • 1
  • 6