[4.1.0 Unstable] Using 7TFT no HDMI image on TV (but I got sound)
I'm using a RPi 3 with a 7'' TFT screen (this one: Element 14 7 Inches TFT Screen )
Screen works perfectly, has a terrific image quality, sound output is flawless through audio jack.
Problem is when I plug the HDMI cable I've been using before to the TV, when I turn the RPi on I just see a black screen on the TV, and the image comes from the 7'' TFT.
Only thing I get from the TV is sound.
What am I doing wrong?
Can I configure config.txt to "autodetect" when I plug HDMI and switch between HDMI and 7TFT? Or is there any script available for that?
Thanks a lot in advance.
Here's a copy of my current config.txt
uncomment if you get no picture on HDMI for a default "safe" mode
uncomment to force a specific HDMI mode (this will force VGA)
#comment to get jack audio
force hdmi while the tv can take time before sending the signal on the hdmi output
#uncomment for composite PAL
uncomment for lirc-rpi
if you plug your tv at the same time as your rpi and that the rpi switches from the hdmi or give a low resolution because tv had no enough time to initialize it
#uncomment if you don't want the rainbow at startup
NOOBS Auto-generated Settings:
Tried tvservice while the HDMI cable is plugged and it detects the TV, but just that.
It won't let me try -m or -M commands.
-s says this:
/recalbox/share_init/system$ tvservice -s
state 0x400000 [LCD], 800x480 @ 60.00Hz, progressive
-n says this:
/recalbox/share_init/system$ tvservice -n
-a says this:
/recalbox/share_init/system$ tvservice -a
PCM supported: Max channels: 2, Max samplerate: 192kHz, Max samplesize 24 bits.
AC3 supported: Max channels: 6, Max samplerate: 48kHz, Max rate 640 kb/s.
You're not the first one having troubles with a DSI screen. Such feeling that it gets drtected befire HDMI, therefore this screen is set as first. Have you tried
tvserice -e "CEA 16 HDMI"? You may have yo stoo ES first
tvserice -e "CEA 16 HDMI"
I haven't, but I will right now.
I just didn't know I had to use ""s and always got an error message, thanks for the tip.
So... I just did.
Turned off then on with CEA 16 HDMI
Just got sound, no image. The TV detects it as 16:9 1080/60p so it gets the signal right, only there's no image.
Just to confirm the HDMI is working, I added "ignore_lcd=1" to config.txt
Then I rebooted and as expected, I got image and sound from the TV, the RPi LCD is off now.
I used display_default_lcd=0 on the config.txt
HDMI works fine on TV, no image on LCD screen. When rebooted without the HDMI cable plugged, still no image on LCD :(
@defiant ok, i didn't think about those LCD options in the config.txt. I've been working on my side for some autoconfiguration stuff. I'm not really sure of the rule, but this is how i think it goes :
- look for HDMI
- if no HDMI, go composite
Now, how I solved that (to use a geekworm DPI screen which is very handy) :
- default forces lcd
- if my monitor (and for now, only my monitor) is found, disable lcd and turn on HDMI
This is all explained in the doc of raspverry : https://www.raspberrypi.org/documentation/configuration/config-txt/video.md + https://www.raspberrypi.org/documentation/configuration/config-txt/conditional.md
Thanks for the info @Substring , I'll be doing some reading on these articles and as soon as I figure out a way to make this work with my config.txt I'll be posting the results here for future reference.
@defiant don't forget that recalbox sets 720p on emulators, so you should probably set config.videomode to default in recalbox.conf to avoid that. I have worked on a auto mode for the videomode, but it won't make it to 4.1 (despite it works just great)
@substring I already thought of that, so I set config.videomode to default.
Now, I'm still having trouble getting it to work. I'm a bit lost at this point.
I can't get it to pick HDMI over LCD if HDMI is connected :/
Well, I got it to work but only partially.
I added this to the config.txt:
Now when the HDMI from my TV is connected before boot, it will detect and prefer HDMI and it works fine, and if HDMI is not plugged in, the LCD will come up as usual.
Problem is it only works with my TV... How do I make that work for example if I take it to a friends house?
@defiant I'm stuck at the same step ... It only works in very few cases (i.e. known TVs). I couldn't find any way to make it generic
@substring I think the answer is finding a way to have it detect HDMI and if detected run ignore_lcd=1 and if not detected, don't run it or change it to ignore_lcd=0
@defiant indeed but there is no generic hdmi filter, unless we can put a * in the section name ... That's somethinh we should ask on the official pi forum
@substring That's not entirely crazy! I'll test that and see how it goes when I come back from work.
In the meantime, can you give me a link to the official Pi forum? Thanks!
While searching, I wonder if these may be of interest :
Ok I confirm [EDID=*] doesn't work.
I hope I just got the syntax wrong, or there's something similar.
@defiant You need to dig in the rasp forum ...