CEC issue with RPi 3B+ and Pioneer Kuro

Over the last week I must have spent nearly 3 days trying to sort out this problem and I’ve finally got to the point that I feel like I must have tried everything I can think of so it’s time to ask the experts.

Last week, after functioning fine for ages, my OSMC install on a Pi 3B+ suddenly stopped responding to remote button control via CEC. It’s on latest March update and one night I was using it to play some music, the next day it refused to accept any input other than via USB keyboard.

I have a Pioneer Kuro PDP-4280 connected to a Pioneer VSX-930 amp via HDMI input 1 . There are various other devices also connected to the amp (Blu-Ray, PS4, Xbox 360, Chromecast, Steam Link) which all function as you would expect. No other HDMI devices are attached to the TV. All settings for CEC control on the amp are activated. (Main CEC enable, Allow control, ARC enable and a setting to use the Pi as the default feed passed to the TV when the amp is in standby.

Similarly, all settings on the TV relating to CEC (which appears to be the master device as far as CEC is concerned) are enabled.

Today I have started with a fresh disk image of the March OSMC release and have tried to troubleshoot things further with the default CEC peripheral settings.

If I boot the Pi with the TV already on, then I have control via CEC. If I turn the TV off and back on then I have no control unless I either use the TV remote to test the Power On CEC option for the “Kodi” device. Or use the “CEC activate” option in Yatse. From this point on until the TV is turned off, HDMI CEC control is faultless.

Obviously I have read similar cases to mine on the forums and have tried the resolutions suggested in those threads such as swapping out HDMI cables, disabling CEC on the amp and setting the Pi to ignore CEC. As far as I can understand things the TV just does not seem to send a CEC activate command to the devices attached to the amp when it is turned on, or something on the amp is preventing it reaching the Pi.

Again, obviously I realise this will require logs to diagnose and hopefully fix which is the part of this problem I’m not so good with, so first off please could someone tell me, with the info I already have provided, which logs are going to be the most useful? I’m aware there’s a way to monitor to the CEC bus which I presume if i was able to do while the TV was turning on, might be a good place to start?

Thanks for any assistance.

This should fix it.

https://kodi.wiki/view/Raspberry_Pi_FAQ#TV_is_not_detected_unless_powered_on_first

Thank you for the idea, but exactly the same with the edid.dat file copied to /boot and the 2 edits made to config.txt.

With the TV turned on first, when the Pi has booted, control via CEC is always possible.

When the TV is turned off and back on, there is no CEC and either doing the power on test from the TV menu, or "CEC Activate from Yatse is required.

Did you create the edid.dat file while the TV and AVR were on and CEC was in a functioning state?

Yes, AVR on, TV on, Power on Test via CEC menu performed on TV beforehand. Created edid.dat and replaced old version.

CEC control still ends after TV turned off then on again.

As I test I used the “tvservice -n” command to show the name of the EDID device ID. This shows the amp rather than the TV, even though it seems to be the TV that is controlling things.

I took the amp out of the equation, so using the same HDMI cable from the TV, connected it directly to the Pi. The device ID still shows the amp even though it was disconnected, so I flashed a new OSMC image, confirmed that the ID was now from the TV (It is) and then dumped an new edid.dat and set up the config.txt as before.

Same issue.

Have you removed power from the mains for 10 min on the TV, AVR, and pi before staring them all up again? I can’t really see any reason why behavior would change after working fine.

I’ve tried that the other day with no success, but I’m willing to give it another go.

As I mentioned in my 1st post, I do have other HDMI devices plugged into the amp, do you think it’s best to remove them while trying to get OSMC working?

It could indicate a conflict if you can return to normal operation without other devices connected.

Left TV, amp and Pi unplugged overnight. Disconnected all other hdmi inputs on amp and turned back on TV and amp, then Pi.

Same behaviour as before. When Pi boots with TV already on, CEC control is possible. Control remains if amp is put into standby.

As soon as the TV is turned back on from standby or off, CEC control stops.

The TV CEC menu reports the correct devices.

Any other thoughts on getting required logs to see what’s going on in the background?

Debug enabled logs with CEC specific logging should show something.

OK, I’ve uploaded a log file with component level logging for CEC enabled. It should show me rebooting OSMC, using the remote to move up / down then switching off the TV, then switching the TV back on, losing CEC control, then using the TV menu to do a power on test to regain CEC operation.

https://paste.osmc.tv/bohehoyamo

I’ve re-uploaded log now if anyone would be kind enough to take a look, thanks!

Bump! Can anyone lend a hand please?

I would unplug the AVR from the TV and plug only the RPi into the TV and see if you can reproduce the behavior. This might help narrow things down a bit.

I’ve tried exactly that today. The TV connected to the Pi via a different cable shows exactly the same behaviour. The only difference is there’s no CEC list shown on the TV (possibly because there’s only one HDMI device connected) but using the power on test function is still required to activate CEC.

Could be worth mentioning that on my TV’s HDMI Control Menu, the Pi is shown as a recorder, rather than a player. This is very likely to have always been the case, as until this problem mysteriously happened all by itself I never had any reason to use that menu.

I have tried to edit the rpi_2708_1001_CEC_Adapter.xml file in the .kodi/userdata/peripheral_data directory and change “type” to 4 but no actual change has ever occurred as far as I can see.

The default is for osmc boxes to be seen as recorders by design. This is not new behavior and as your TV used to work and then suddenly developed this problem you have, this fact certainly has no bearing on your issue. I know it can be tempting to assume your problem is the same others but unless you are searching specifically for issues with CEC on Pioneer brand Plasma TV’s that were produced between ~10-14 years ago, your probably not going to be seeing the same as others.

As your problem still manifests being the only device attached to the TV I think we can probably assume there is not an issue with device conflicts, and as it works when you give it a kick we can probably assume there is not a bad connection on pin 13. I think at this point it would probably be good to test with only the RPi and the TV but with a complete stock OSMC install (no modified config.txt or anything else). It would probably also be good if you have another device that can be controlled over CEC if you could plug that into the TV in isolation to make sure it is not acting the same way. I suspect that it is actually the TV that has developed a fault.

This is a long-shot but when the fault is happening, if you ssh in and run…

kodi-send -a CECActivateSource

does that make it start working?

Yes, using that command activates CEC.

I have tried a stock install of the latest version of OSMC and one from April last year. Both of them showed the same behaviour. No edits made to the CEC adapter seemed to have any bearing on its operation either.

I’m trying to think of another device that I have which doesn’t just use its own IR sensor, perhaps a Firestick? Leave that one with me.

If that command makes it start working then I think the TV, for whatever reason, is not automatically picking up the RPi as the active source when it is turned on. When the TV is first switched on and the RPi does not get control, if you switch the TV to another input, and then switch back to the RPi’s input, does it start working? Are you using default settings in Kodi’s settings>system>input>peripherals>CEC adapter>?

You’re doing well! Thank you for the assistance, it’s very gratefully received.

With CEC inactive, switching to another input and then back to the RPi does cause it to be activated.

The CEC adapter setttings are now set at default. There were some options set as I thought they needed to be, but to be honest I never noticed them have an effect.

From testing just now I have noted that if I make sure CEC is active, then reboot the RPi and put the TV into standby mode before the reboot occurs, the RPi will bring the TV out of standby and CEC will be active. However, if I then cycle in / out of standby, I lose CEC control.