HDMI-CEC through HDMI spdif splitter
#1
My TV did not support AC3/DTS passthrough and the amp did not have HDMI input so I bought a cheap chinese HDMI optical splitter. So now the connection is:

Pi (hdmi) <-> Splitter (hdmi) <-> TV (hdmi)
and
Splitter (optical) -> Amp

When I switch on the TV and then the Pi and change to HDMI 2 (where I have the Pi) I get CEC control. There is actually a dummy connection made HDMI-CEC (xbmc) but switching to HDMI 2 actually switches to HDMI-CEC (xbmc) and the remote functions correctly. Since the Pi could not understand the TV's edid this way because of the splitter being in between, it defaulted to 1280x720. So I changed the config.txt to:

hdmi_force_hotplug=1 (so that the Pi always sends a signal)
hdmi_mode=16 (my TV's native format)
hdmi_force_edid_audio=1 (so that passthrough works ok)

Whenever I switch from the Pi to the TV's tuner to watch channels and then back to the Pi by selecting HDMI 2, I cannot control xbmc. It seems that HDMI 2 does not map to HDMI-CEC (xbmc) anymore. I have to manually select the input HDMI-CEC (xbmc) by displaying the input list and selecting specifically that input.

Do I have to add something more to the config.txt? I am using Gotham beta 3. The same happens in the milhouse nightlies. I think they all use libcec 2.4. Any suggestions?
Reply
#2
So if you remove the splitter and connect Pi directly to TV then CEC continues working after an input switch?

I'd suggest you grab the real edid of the TV, by connecting it to the Pi (without the splitter).
Run "tvservice -d edid.dat" to capture the edid. Copy it to the boot partition of sdcard (alongside config.txt).

Put this in config.txt
Code:
hdmi_force_hotplug=1
hdmi_edid_file=1

Then run with splitter connected again. It should behave like it did without the splitter.l
Reply
#3
Worked! Thanks man!

One tip though: When I grabbed the edid.dat from the tv I had plugged in the pi directly into HDMI port 3 on the TV. This produced an edid.dat that when loaded through config.txt CEC always controlled HDMI input 3 in the TV! If the pi is connected to a different port than HDMI 3 in the TV, CEC binds port 3 anyways so when switching to HDMI port 2 on the TV will not control the Pi!

That means when you capture edid.dat ALWAYS connect the pi to the TV input you are going to use it with the splitter.
Reply
#4
Yes, edid will be different for each HDMI port.
The CEC physical address will be different (as that includes the HDMI port number), but also some TV's have slightly different behaviour for different ports
(e.g. one may be labelled PC which could report different colourspaces and resolutions).
Reply

Logout Mark Read Team Forum Stats Members Help
HDMI-CEC through HDMI spdif splitter0