HDMI CEC and XBMC


98 posts   Page 1 of 4   1, 2, 3, 4
by Paul Webster » Sat Jan 21, 2012 4:22 pm
I am planning to use R-Pi to replace an old Xbox1 running XBMC ... but I had hoped to do this without having to plug in a keyboard.
I had hoped to control it using the remote control of the TV and then use HDMI CEC controls (once mapping for Sony Bravia remote control pass-through via CEC is worked out).
However, although the forum FAQ says that CEC is supported, the wiki says that there are no drivers for it.
Can anyone (probably from R-Pi or TeamXBMC) comment on plans in this area?

I did some hunting around and found a couple of open source projects working on HDMI CEC - but also Pulse-Eight, who have built a small box to take HDMI and route the CEC signals to USB. Looks like Pulse-Eight and TeamXBMC have at least one shared person.
However, would be a shame to buy another box, around the same price as R-Pi just to control it.

Another route would be to plug in Infrared-USB device and control it using my Xbox remote - again a shame to have to plug in something extra.
User avatar
Posts: 425
Joined: Sat Jul 30, 2011 4:49 am
Location: London, UK
by jamesh » Sat Jan 21, 2012 4:46 pm
Paul Webster said:


I am planning to use R-Pi to replace an old Xbox1 running XBMC ... but I had hoped to do this without having to plug in a keyboard.
I had hoped to control it using the remote control of the TV and then use HDMI CEC controls (once mapping for Sony Bravia remote control pass-through via CEC is worked out).
However, although the forum FAQ says that CEC is supported, the wiki says that there are no drivers for it.
Can anyone (probably from R-Pi or TeamXBMC) comment on plans in this area?

I did some hunting around and found a couple of open source projects working on HDMI CEC - but also Pulse-Eight, who have built a small box to take HDMI and route the CEC signals to USB. Looks like Pulse-Eight and TeamXBMC have at least one shared person.
However, would be a shame to buy another box, around the same price as R-Pi just to control it.

Another route would be to plug in Infrared-USB device and control it using my Xbox remote - again a shame to have to plug in something extra.


I have seen a TV via its remote,  control the same GPU over HDMI CEC to get it to play, pause etc. However, I don't know how/if that functionality is on the Raspi. So best I can say is that it's technically feasible.
Soon to be employed engineer - Hurrah! Volunteer at the Raspberry Pi Foundation, helper at PiAcademy September 2014.
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11926
Joined: Sat Jul 30, 2011 7:41 pm
by Harley » Sat Jan 21, 2012 5:26 pm
You can find some information about coding CEC support for XBMC here

http://www.solid-run.com/mw/in....._over_HDMI

http://www.solid-run.com/phpbb.....#038;t=204

Pulse-Eight said at least that they would welcome patches to libCEC for other CEC hardware chips than their own in their upstream libCEC :)

http://blog.pulse-eight.com/20...../#comments

I asked Pulse-Eight this


Would you consider adding support for other third-party manufacturers CEC chips/modules that are not yourselves to libCEC so that software application developers such as XBMC and MythTV do not have to add different CEC libraries?


and I got this reply


We would accept any patches to the library made by other people or companies, but we have no plans to go and develop the support ourselves at this time


So you need to start by finding out which HDMI transmitter chip that Raspberry Pi uses so that you can get the display controller sample code and CEC module from the manufacturer.

Then you have to integrate that code into libCEC

https://github.com/Pulse-Eight/libcec

http://libcec.pulse-eight.com

Hopefully someone will code this up and submit as a pull request patch for libCEC upstream to Pulse-Eight on GitHub
Posts: 7
Joined: Wed Jan 04, 2012 3:32 pm
by Paul Webster » Sat Jan 21, 2012 6:27 pm
However, isn't libCEC looking at the USB side of their device rather than the HDMI CEC side?

If yes - then might be quite a lot of work both to put in GPU support and to make it work for top-level applications without using USB route.

I openly admit to not being an expert on this - and that while I have worked on device drivers ... it was for a totally different environment and long long ago (Macro-11 on RSX).

Others that I found that might be of use

http://www.arduino.cc/cgi-bin/.....237176/all

There is also a project that requires a Realtek SoC

http://sourceforge.net/apps/trac/cecd/

and perhaps something in SH4-duckbox

http://gitorious.org/open-duck.....roject-sh4

Also - RainShadow - similar device to Pulse-Eight (but more expensive)

http://rainshadowtech.com/defa.....CECUSB.htm
User avatar
Posts: 425
Joined: Sat Jul 30, 2011 4:49 am
Location: London, UK
by onejay09 » Sun Jan 22, 2012 2:01 pm
look if your planning on using it for xbmc then your obviously going to have it on a network, whats wrong with the xbmc remote on android or iphone?
Posts: 3
Joined: Sun Jan 22, 2012 1:51 pm
by Harley » Sun Jan 22, 2012 7:00 pm
onejay09 said:


look if your planning on using it for xbmc then your obviously going to have it on a network, whats wrong with the xbmc remote on android or iphone?



While using a smart phone with touchscreen is cool to show your friends it is not very practical for family use or in other citations with multiple people using it, then you want one dedicated remote control for media center / television.

Most people today also prefer to use a remote with physical buttons so that you can use it in the dark without looking at the screen to change volume, etc. as you can feel each button.
Posts: 7
Joined: Wed Jan 04, 2012 3:32 pm
by davka003 » Tue Jan 24, 2012 12:05 pm
Paul Webster said:


However, isn't libCEC looking at the USB side of their device rather than the HDMI CEC side?

If yes - then might be quite a lot of work both to put in GPU support and to make it work for top-level applications without using USB route.

I openly admit to not being an expert on this - and that while I have worked on device drivers ... it was for a totally different environment and long long ago (Macro-11 on RSX).

Others that I found that might be of use

http://www.arduino.cc/cgi-bin/.....237176/all

There is also a project that requires a Realtek SoC

http://sourceforge.net/apps/trac/cecd/

and perhaps something in SH4-duckbox

http://gitorious.org/open-duck.....roject-sh4

Also - RainShadow - similar device to Pulse-Eight (but more expensive)

http://rainshadowtech.com/defa.....CECUSB.htm


I cloned the gitrepo of libCEC yesterday and started to take a look. It basically is a thin layer of serial port handling that is done thru pulse-eight's USB-CEC adapter to actually send out the messages on the CEC line. libCEC also contains a lot of logic to actually compose messages and send them.

My goal is to make some modifications to libCEC so that I can replace the serialport customized for the pulse-eight adapter with something else. (In first step a network link to another computer having the pulse-eight adapter). But that work would fit well with connecting to a kernel driver for Raspberry Pi's CEC controller in GPU that is also something I am intressted in doing.

Now just waiting to get my hands on a RPi and some free time to code!
Posts: 12
Joined: Tue Jan 24, 2012 11:54 am
by dave3641 » Tue Jan 24, 2012 1:53 pm
Cec is already working on the raspberry pi, think this is on xbmc
http://m.youtube.com/index?des.....Bs7KaTK5Hk
Posts: 9
Joined: Sat Dec 24, 2011 6:55 pm
by davka003 » Tue Jan 24, 2012 8:03 pm
That sure looks interesting! My only concern is that there is noone speaking about its technical solution (drivers/interface) here. I can only see comments similar like in this thread:

"There are a hardware interface but no linux userland drivers nor documentation available on how to write a driver".
Posts: 12
Joined: Tue Jan 24, 2012 11:54 am
by Harley » Wed Jan 25, 2012 12:57 pm
dave3641 said:


Cec is already working on the raspberry pi, think this is on xbmc
http://m.youtube.com/index?des.....Bs7KaTK5Hk


That is cool if it is using the rPi's CEC support, but that is still not XBMC though, he said in that video it is only a "Qt demo using OpenGL ES" :/

Like davka003 noted, there is still no technical information available to help enable this in XBMC, there is no open source code, no API available , and no free documentation about the rPi's CEC support :(
Posts: 7
Joined: Wed Jan 04, 2012 3:32 pm
by Paul Webster » Wed Jan 25, 2012 2:16 pm
This is a great piece of news (video from 2 days ago). Given that someone from TeamSBMC has an alpha board then I"m very hopeful that this means that the info (even if private for now) is in their hands as well.
User avatar
Posts: 425
Joined: Sat Jul 30, 2011 4:49 am
Location: London, UK
by davka003 » Wed Jan 25, 2012 5:45 pm
XBMC dev team for sure have an alpha-board and I am realy supprised how well it seems to be running 1080p video and the XBMC GUI. That in it self is a great work and probably the focus of what those developers have done.

I wouldn't hold my breath waiting for CEC support from them. Not saying that they dont do a great work but hey they are only humans (I belive).
Posts: 12
Joined: Tue Jan 24, 2012 11:54 am
by Harley » Thu Jan 26, 2012 4:09 pm
AnandTech have posted a review of the Pulse-Eight USB - CEC Adapter here:

http://www.anandtech.com/show/.....ter-review

It should give a good idea of what could be done with libCEC support ;)

"XBMC is not the only software capable of benefiting from the USB CEC adapter. Pulse-Eight also provides libCEC for download. It is a open source library designed for softwares to communicate with the USB CEC adapter. You can find more information about libCEC here. In this review, we chose not to cover libCEC in detail. libCEC makes a lot of sense for home theater integrators / home automation developers. In fact, any situation involving the need to reliably connect to the correct video source in a HDMI based system can benefit from libCEC. Apart from home entertainment, this includes video conferencing systems and Point of Sale control. But, detailed coverage of these types of applications is beyond the scope of this review. Coming back to HTPC applications, MythTV has already adopted libCEC in their unreleased 0.25 build."

"Support for the USB CEC adapter is currently available to the public only through XBMC Eden. However, Pulse-Eight indicated that Windows Media Center, Event Ghost and MediaPortal would also be able to take advantage of the USB CEC adapter by the end of February along with support for wake from standby through the adapter."

"The bigger picture is the home automation and control scene. It is up to the software community to come up with interesting applications using the adapter, but there is nothing of note in the market right now in that area. There is a lot of scope in the CEC protocol and its potential lies untapped."
Posts: 7
Joined: Wed Jan 04, 2012 3:32 pm
by Paul Webster » Fri Jan 27, 2012 2:16 pm
I"ve had a reply from the Pulse-Eight people … and the good news is that it is their intention to add CEC support into libcec – going to the native RPi hardware (ie no external device needed).

http://forums.pulse-eight.com/.....4#post1824
User avatar
Posts: 425
Joined: Sat Jul 30, 2011 4:49 am
Location: London, UK
by dom » Fri Jan 27, 2012 6:47 pm
Cool. We're quite keen to support libCEC and have bought a couple their dongles to evaluate. If they are keen too, then I guess it will happen.

For a Raspberry Pi CEC demo:



(not using libCEC)
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 4042
Joined: Wed Aug 17, 2011 7:41 pm
Location: Cambridge
by davka003 » Sat Jan 28, 2012 6:03 am
If the "keen":ness is not enogh from both sides I might add some as I am also keen on seeing this happen :-)

But all this is hard to do without access to documentation on how to control the low level CEC-hardware in the GPU. If that is just available I do think I can make libCEC run against it. (Even thou I can think of other that is better on the hardware driver part of the work).
Posts: 12
Joined: Tue Jan 24, 2012 11:54 am
by Harley » Fri Feb 03, 2012 3:04 pm
http://www.raspberrypi.org/archives/592


You may think it’s high priority, but compared with lots of other stuff that needs doing – not so much.


I got this reply from JamesH of the Raspberry Pi Foundation in the comments to the above linked news post when I asked if the Raspberry Pi Foundation have replied to Pulse-Eight with this requested information yet, and that I thought that Raspberry Pi Foundation should prioritize posting the CEC code and API to the public as soon as possible in any case so everyone can access it.

Sad to hear when when Pulse-Eight said that they will do all the work on libCEC themselves for Raspberry Pi if they just get the technical information from Broadcom via the Raspberry Pi Foundation, as that does not sound like too much work on their partfor this :(

I for one will not buy a Raspberry Pi until CEC works with XBMC in it :P
Posts: 7
Joined: Wed Jan 04, 2012 3:32 pm
by jamesh » Fri Feb 03, 2012 3:06 pm
Harley said:


http://www.raspberrypi.org/archives/592


You may think it’s high priority, but compared with lots of other stuff that needs doing – not so much.


I got this reply from JamesH of the Raspberry Pi Foundation in the comments to the above linked news post when I asked if the Raspberry Pi Foundation have replied to Pulse-Eight with this requested information yet, and that I thought that Raspberry Pi Foundation should prioritize posting the CEC code and API to the public as soon as possible in any case so everyone can access it.

Sad to hear when when Pulse-Eight said that they will do all the work on libCEC themselves for Raspberry Pi if they just get the technical information from Broadcom via the Raspberry Pi Foundation, as that does not sound like too much work on their partfor this :(

I for one will not buy a Raspberry Pi until CEC works with XBMC in it :P


OK.
Soon to be employed engineer - Hurrah! Volunteer at the Raspberry Pi Foundation, helper at PiAcademy September 2014.
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11926
Joined: Sat Jul 30, 2011 7:41 pm
by welshblob » Fri Feb 03, 2012 3:17 pm
JamesH said:


Harley said:


I for one will not buy a Raspberry Pi until CEC works with XBMC in it :P


OK.


Oh he set himself up for that one.

I'd love to see CEC work with xbmc but I can wait.
Posts: 131
Joined: Sat Jan 21, 2012 9:31 am
by abishur » Fri Feb 03, 2012 3:21 pm
Harley said:



I for one will not buy a Raspberry Pi until CEC works with XBMC in it :P



Whew, that's a relief, one less person I have to worry about competing with to get a spot in the first batch line :-p
Dear forum: Play nice ;-)
User avatar
Forum Moderator
Forum Moderator
Posts: 4298
Joined: Thu Jul 28, 2011 4:10 am
Location: USA
by stormy1 » Fri Feb 03, 2012 5:10 pm
Abishur said:


Harley said:



I for one will not buy a Raspberry Pi until CEC works with XBMC in it :P


Whew, that's a relief, one less person I have to worry about competing with to get a spot in the first batch line :-p



rofl!!!!!!!
Posts: 60
Joined: Fri Jan 06, 2012 3:44 am
by XploD » Tue Apr 17, 2012 10:02 pm
Hello!

I have one question that is not directly related to topic and I'm sorry for that but I don't know who other to ask :/ I have Sony TV with BRAVIA Sync and a laptop with HDMI CEC and this works well but I wan't to premapp some buttons.

If somebody can help me, please send me a PM or a e-mail on randy2841(at)hotmail(dot)com

Thank you very much and I'm sorry for offtopic :/
Posts: 23
Joined: Sat Mar 17, 2012 12:14 pm
by davka003 » Wed Apr 18, 2012 5:18 am
Do you have a laptop with HDMI or with HDMI and CEC support? If CEC support you need to have some software that uses the laptop driver for CEC. How to configure that piece of software without knowing its name is probably impossible.

Other alternatives are that you have an external HDMI-CEC device from for example pulse-eight and they provide the software to control things. But then you should ask at their forum.

My guess is that you dont have CEC support, just HDMI on your laptop. I have only seen one Toshiba laptop that actually have built in CEC support (and I have been investigating this subject).

Good luck!
Posts: 12
Joined: Tue Jan 24, 2012 11:54 am
by Paul Webster » Thu May 10, 2012 1:24 pm
Latest update from Pulse8 - 3rd-May


"The r-pi has CEC support in the chip and we are working with broadcom to bring libCEC support for that chip, however it does not support wake-on-cec due the way the chip itself is designed, therefore the adapter still serves a purpose in terms of being able to wake the pi back up"


http://forums.pulse-eight.com/.....9#post3469

The reference to "adapter" is the hardware dongle from Pulse8. It won't be essential to have the dongle but looks like they might be able to justify it for extra ease of use.

In my case - the TV supplies power to the USB socket, that my Pi is powered from,after the screen has started up (and I presume HDMI is ready to talk).

If the Pi is still connected to the TV when the TV is soft-powered down then it leaves the USB power up for quite a long time (> 30 mins - and might be configurable) but does eventually turn the power off so not a good place for a permanently running Pi (I haven't yet checked to see if this action is configurable in the TV).
User avatar
Posts: 425
Joined: Sat Jul 30, 2011 4:49 am
Location: London, UK
by olajep » Wed Jun 06, 2012 10:24 am
Hello

I've written a quick hack which enables me to control OpenElec/XBMC with a TV remote control.
It's up on github:

https://github.com/olajep/rpi-cecd
Posts: 2
Joined: Wed Jun 06, 2012 10:19 am