CEC Volume Broken After Update

I have the forward and reverse buttons on my Vero remote mapped to VolumeUp and VolumeDown, which used to control my receiver via CEC when watching videos. Since the last update, however, pressing up or down just brings up the “Volume 100%” display on Vero.

The normal behavior, before the latest update (Build date Aug 8) was always to adjust the audio on the receiver via CEC, now it always adjusts the internal audio on the Vero–i.e., when I watch shows with analog/stero sound tracks, it lowers the Volume below 100%, but with passthrough it says 100% no matter what.

As minor as this issue sounds, it is incredibly frustrating to have to go back to two remotes.

Here is the debug log on startup:

07:58:08 T:1956511744   DEBUG: LoadMappings - loaded node "Motorola Nyxboard Hybrid"
07:58:08 T:1956511744   DEBUG: LoadMappings - loaded node "CEC Adapter"
07:58:08 T:1956511744   DEBUG: LoadMappings - loaded node "Pulse-Eight CEC Adapter"
07:58:08 T:1956511744   DEBUG: LoadMappings - loaded node "iMON HID device"
07:58:08 T:1956511744   DEBUG: CPeripheralBusUSB - initialised udev monitor
07:58:08 T:1956511744   DEBUG: SECTION:LoadDLL(libcec.so.3.0)
07:58:08 T:1956511744   DEBUG: Loading: libcec.so.3.0
07:58:08 T:1956511744   DEBUG: GetMappingForDevice - device (0471:1001) mapped to CEC Adapter (type = cec)
07:58:08 T:1956511744   DEBUG: InitialiseFeature - using libCEC v3.0.1
07:58:08 T:1956511744   DEBUG: Initialise - initialised peripheral on 'i.MX' with 2 features and 0 sub devices
07:58:08 T:1909720096  NOTICE: Thread CECAdapter start, auto delete: false
07:58:08 T:1956511744  NOTICE: Register - new cec device registered on cec->i.MX: CEC Adapter (0471:1001)
07:58:08 T:1909720096   DEBUG: OpenConnection - opening a connection to the CEC adapter: i.MX
07:58:08 T:1901331488  NOTICE: Thread PeripBusCEC start, auto delete: false
07:58:08 T:1867777056  NOTICE: Thread PeripBusUSBUdev start, auto delete: false
07:58:08 T:1859388448  NOTICE: Thread RemoteControl start, auto delete: false
07:58:08 T:1859388448    INFO: LIRC Process: using: /var/run/lirc/lircd
07:58:08 T:1956511744    INFO: CKeyboardLayoutManager: loading keyboard layouts from special://xbmc/system/keyboardlayouts...
07:58:08 T:1859388448    INFO: LIRC Connect: successfully started
07:58:08 T:1859388448   DEBUG: Thread RemoteControl 1859388448 terminating
07:58:11 T:1909720096   DEBUG: OpenConnection - connection to the CEC adapter opened
07:58:11 T:1909720096   DEBUG: SetConfigurationFromLibCEC - settings updated by libCEC
07:58:11 T:1909720096   DEBUG: OpenConnection - SetConfigurationFromLibCEC OK
07:58:11 T:1379370016  NOTICE: Thread CECAdapterUpdate start, auto delete: false
07:58:11 T:1379370016   DEBUG: Process - cec Updaterprocess started OK
07:58:11 T:1379370016   DEBUG: SetInitialConfiguration - cec going to ActivateSource()
07:58:11 T:1379370016   DEBUG: SetInitialConfiguration - cec going to WaitReady()
07:58:11 T:1379370016   DEBUG: WaitReady - cec entered WaitReady
07:58:11 T:1379370016   DEBUG: WaitReady - cec before ProcessActivateSource
07:58:11 T:1379370016   DEBUG: WaitReady - cec LOOP
07:58:11 T:1379370016   DEBUG: WaitReady - cec LOOP in
07:58:11 T:1379370016   DEBUG: WaitReady - cec LOOP powerstatus 2
07:58:12 T:1379370016   DEBUG: WaitReady - cec LOOP bContinue 1
07:58:12 T:1379370016   DEBUG: WaitReady - cec LOOP in
07:58:12 T:1379370016   DEBUG: WaitReady - cec LOOP powerstatus 2
07:58:13 T:1379370016   DEBUG: WaitReady - cec LOOP bContinue 1
07:58:13 T:1379370016   DEBUG: WaitReady - cec LOOP in
07:58:13 T:1379370016   DEBUG: WaitReady - cec LOOP powerstatus 2
07:58:14 T:1379370016   DEBUG: WaitReady - cec LOOP bContinue 1
07:58:14 T:1379370016   DEBUG: WaitReady - cec LOOP in
07:58:17 T:1379370016   DEBUG: WaitReady - cec LOOP powerstatus 153
07:58:17 T:1379370016   DEBUG: WaitReady - cec LOOP bContinue 0
07:58:17 T:1379370016   DEBUG: Thread CECAdapterUpdate 1379370016 terminating

Here is the debug log output when I press the volume keys on the Vero remote:

07:55:41 T:1955971072   DEBUG: LIRC: Update - NEW at 201285279:d0 0 KEY_FASTFORWARD linux-input-layer (KEY_FASTFORWARD)
07:55:41 T:1955971072   DEBUG: OnKey: red (0xe3) pressed, action is VolumeUp
07:55:41 T:1955971072   DEBUG: CAnnouncementManager - Announcement: OnVolumeChanged from xbmc
07:55:41 T:1955971072   DEBUG: GOT ANNOUNCEMENT, type: 64, from xbmc, message OnVolumeChanged
07:55:41 T:1955971072   DEBUG: ------ Window Init (DialogVolumeBar.xml) ------
07:55:41 T:1955971072   DEBUG: LIRC: Update - NEW at 201285508:d0 0 KEY_FASTFORWARD_UP linux-input-layer (KEY_FASTFORWARD_UP)
07:55:42 T:1955971072   DEBUG: ------ Window Deinit (DialogVolumeBar.xml) ------

I have not touched any settings on any devices. Changing the audio from HDMI-analog (the default) to HDMI-soc has no effect.

I have no idea where to begin looking for a problem, but the latest update definitely triggered the problem. CEC is working on the receiver; the projector powers it on and off just like normal.

How exactly were you re-mapping the forward and reverse buttons on your vero remote to adjust your receivers volume via CEC ?

If you remap the buttons to control volume (KEY_VOLUMEUP and KEY_VOLUMEDOWN) that will control the Kodi internal volume, not send commands to your AV receiver, so to be honest I don’t know how you had it controlling your AV volume in the first place…

I also believe I’ve been affected by this issue (though it took me a while to realise).

My Vero is connected to my Onkyo amp, which is connected to my Samsung TV. Until around the last update, I’ve always been able to use my TV remote to control the Vero (and also the Amp’s volume).
This also used to work fine with RaspBMC on my Pi.

If you need any further info, please let me know. :wink:

Hi

We have upgraded to libCEC 3.0 which is a substantial change. This is a requirement to running Kodi 15 (Isengard).

My guess is that some keymaps have changed.

There were also some changes to how the devices list is populated and in what order this is done.

Sam

Not the same issue as the original poster - you’re saying you’re using your TV’s remote via CEC, the OP was saying he was using the vero/osmc remote and remapping the forward and reverse buttons to act as volume buttons. (Something I have done before myself)

The vero remote and a CEC (TV) remote use two totally different input paths in the software that bear no similarity.

Ok fair point. My bad, thought it could be related.

Since at least Frodo, “VolumeUp” and “VolumeDown” have controlled either the internal volume in xbmc/kodi or, when a CEC amplifier is connected, the CEC volume. It is the same behavior as when a TV says “external amplifier active” and adjusting the TV volume controls the receiver via CEC. I used to be able to adjust the volume from basically any remote control for any device connected by HDMI to my Onkyo amp–it worked in Linux with a CEC usb dongle in Frodo/Gotham, on a Pi with and Vero with Helix, but has stopped working with the latest Vero update.

If you know of a different key mapping that I am supposed to use with Isengard, please let me know. I haven’t found anything on the kodi forums as of yet.

For what it’s worth, CEC control is broken in both directions for me–that is, my projector and receiver remotes no longer control Kodi either. But I only real care about the Vero remote controlling the volume on the receiver. I also have an Onkyo receiver, so perhaps libCEC 3.0 broke something with Onkyo apms… in which case I think we’re SOL.

UPDATE: It seems that I am experiencing some variant of this problem in which the CEC HDMI address setting is forgotten and CEC randomly starts/stops working between reboots. On the first, second, and fourth reboots, no CEC, but on the third it worked like before. The logs look identical each time. Someone tried to post a bug report at libCEC and they said it was a Kodi problem, but on the Kodi forums they think it is a libCEC problem… Apparently the “fix” is to reboot Vero a bunch of times until CEC works :confused:

Reading that thread it does look a bit like a bug in libcec 3.0.

Unfortunately Kodi 15 (Isengard) requires libcec 3.x, so there is no way to revert to the previous version of libcec that was being used previously, besides downgrading Kodi as well. (Which has it’s own issues since the database version is different)

If it is indeed a libcec bug then we are probably stuck waiting for a fix by the libcec developers.

It would not be the first time a bug in libCEC has broken CEC in xbmc/kodi. I used to have to enter the HDMI address manually to fix pretty much this same behavior–having to reboot until it decided to work–which I guess is technically fixed now because it will not even remember a manual HDMI address. Of course, now I am back to rebooting until the remote works.