Original Link: http://www.anandtech.com/show/5463/pulseeight-usb-cec-adapter-review
Pulse-Eight USB CEC Adapter Reviewby Ganesh T S on January 24, 2012 7:45 PM EST
Pulse-Eight traces its roots to XBMC and concentrates on hardware products (such as pre-built XBMC-based HTPCs and HTPC accessories). One of their most attractive products is the USB CEC adapter, aimed at providing PCs with HDMI CEC functionality. While almost all HTPC oriented GPU cards have HDMI outputs, none of them have CEC functionality. There are a number of CEC solutions for PCs, but none of them are as affordable as the Pulse-Eight USB CEC Adapter that we will be talking about.
Before going into the details, let us have a small detour to talk about HDMI's CEC feature.
HDMI CEC - A Primer
CEC stands for Consumer Electronics Control. It is implemented as a single wire bus in the HDMI connector (pin 13). It allows various HDMI-enabled products to connect and communicate with each other. The intent is to enable one remote control to interface with all the A/V components. Before we go into further details, let us get the Wikipedia link out of the way. It provides a very high level view of what CEC can do for the end user, and the various names under which it is advertised by the TV manufacturers. Various message opcodes can be exchanged between the connected systems in order to do device specific actions (like recording on a STB/DVR) or get general information across (like transferring remote control key press details).
In any HDMI setup, the display is considered to be the root, and gets allocated two special tags, a physical address of 0.0.0.0 and a logical address of 0. In any given system, all CEC enabled devices have both physical and logical addresses, while the non-CEC devices have only physical addresses. Physical addresses are taken up based on the position of the device with respect to the root. For example, if an A/V receiver's output is connected to HDMI1 of the TV, it gets the physical address 188.8.131.52. A device connected to the first HDMI input port of the A/V receiver would get the address 184.108.40.206, while one connected to the second HDMI port would get 220.127.116.11. Logical addresses are taken on by the devices depending on their functionality (as mandated by the CEC specifications document). When the HDMI device menu is brought up on the display (On a Sony KDL46EX720, this is achieved by pressing the Sync Menu button), the display sends a broadcast over the CEC wire to all the downstream devices. It then collects the responses arriving over the CEC wire and presents the user with a list of CEC enabled devices. Choosing one of them ensures that future remote key presses are transferred by the TV to that particular address.
If you are interested in learning about the bus protocol and a bit more in-depth overview, I suggest taking a look at QuantumData's excellent CEC whitepaper (PDF). For more details on the various messages which can be exchanged between the devices, the full CEC specifications from the official HDMI documentation may be perused (PDF).
CEC Solutions for HTPCs
CEC is more popular in consumer electronics equipment compared to HTPCs. As of December 2011, none of the video cards with HDMI output support it. The closest we have come to a big vendor officially supporting HDMI CEC is the Intel DH61AG mini-ITX board with its HTPC header, but it still requires a third party board (something that is not available in the market yet). The HTPC header provides a number of useful features such as a recording LED pin and a CEC pin which can be used by third party boards to implement CEC functionality. You can find out more about the DH61AG itself on MissingRemote.
CEC functionality has been an oft-requested feature from home automation solution developers as well. The first step towards getting CEC functionality in PCs involved some hardware mods as described in this link. A few companies built upon this solution and offered plug-and-play gadgets currently priced around $75. RCAware and RainShadow Tech are the players in that price range. Kwikwai's HDMI CEC-Ethernet-USB-Serial bridge is for high end home automation and is appropriately priced around $370. Kwikwai also runs the CEC-O-Matic website, which helps developers in decoding and creating CEC frames for communication. For the general user, it also gives an idea as to what can be achieved in a home automation system using CEC.
Pulse-Eight's solution, coming in at $48 is the cheapest and most recent option to come up. Since Pulse-Eight works closely with XBMC, support for the CEC adapter comes built into XBMC Eden. In the remainder of the review, we will take a look at the USB CEC adapter package, a description of our testbed, and how we went about installing the drivers. Following this, we take a look at how the adapter works in conjunction with XBMC Eden. In the final section, we will see what lies ahead for Pulse-Eight and its CEC initiative.
The Pulse-Eight USB CEC adapter comes in a spartan package with just three components:
- USB - CEC Adapter
- 15cm USB to mini-USB Cable
- 10cm HDMI Cable
The adapter is pretty much self-explanatory in terms of getting the wiring right, but Pulse-Eight does provide a video demonstration of how to integrate the adapter into the setup
I had to use a different mini-USB cable since the one supplied in my review unit was damaged in transit.
For testing purposes, I used the ASRock Vision 3D 252B, running Windows 7 Ultimate x64. The HTPC is a compact 2.5L box with a mini-ITX motherboard housing a Core i5-2520M CPU and a NVIDIA GT540M GPU. The HDMI output was routed to HDMI1 input of a Pioneer Elite VSX-32 A/V receiver, and its output was connected to HDMI1 of a Sony KDL46EX720 television.
On connecting the adapter as shown in the picture above, the Windows Device Manager initially reported an Unknown Device. Manually installing the INF driver through the Device Manager was straightforward (though I had to put up with the unsigned driver warning) as shown in the gallery below.
In the first pass, I installed XBMC Eden Beta 1 downloaded from the official website. XBMC Eden has built-in support for the Pulse-Eight USB CEC adapter. Unfortunately, CEC wouldn't work except when the HDMI output from the adapter was connected directly to the television. A quick exchange with Pulse-Eight revealed that support for CEC through AVRs was only available in Pulse-Eight's custom Eden builds. Since the custom builds are built periodically and are functionally no different from the standard Eden build except for the CEC improvements, there should be no issue with users installing Pulse-Eight's version.
After the successful installation of the driver and the custom Eden build, I started up XBMC. The adapter was recognized in a few seconds and a helpful message popped up on the bottom right of the screen.
Navigating through System > Input Devices > Peripherals presented the Pulse-Eight CEC Adapter details. Various settings of the CEC adapter could be configured by selecting the peripheral.
It is essential that care be taken while setting 'HDMI port number' and 'Connected to HDMI device' in particular. The A/V receiver in our testbed, Pioneer Elite VSX-32 has a BD HDMI input, followed by HDMI1 through HDMI5. The HTPC setup was connected to HDMI1, which had to be indicated as Device 1 and not Device 0 in the settings for the 'Connected to HDMI device' field. The puzzling aspect was that CEC seemed to work even with the other setting. However, when the TV was turned off and on through the remote and the Sync Menu was later used to access XBMC on the HTPC (still running in the background), the receiver just shifted to the BD input and failed to deliver any picture to the display. I realized later that the two settings corresponded to the first two fields of the physical address that was discussed on the first page. Pulse-Eight would do well to just merge these two settings into one with valid inputs ranging from 18.104.22.168 to 22.214.171.124. In the current settings format, it appears that the CEC control scheme would choke if there were a couple of switches cascading through to the AVR and then onto the display, and the HTPC happened to be the farthest node from the display. Pulse-Eight informed us that the two settings would be made redundant in due course and the physical address automatically inferred through EDID detection. The current implementation also seems to reset the two address settings to default randomly between display power cycles / XBMC restarts. On this account, I am not too keen on automatic EDID detection and would rather let the end user have the ability to manually override the automatically deciphered settings.
The gallery below shows CEC in action in our testbed.
On the TV remote, the direction keys worked for basic menu navigation and selection. The Return key was used to go back to the previous screen, and the Display button was used to bring up the XBMC OSD as shown in the soccer screenshot in the above gallery. All in all, the ability to use the TV remote to control XBMC was pretty nifty and well worth the effort to get the CEC adapter up and running.
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.
At CES, Pulse-Eight showed me a new product based on the USB CEC adapter. The board inside the adapter (which happens to have an Atmel microcontroller as the main component) was taken out and the connectors modified a bit to to interface with the HTPC header on the Intel DH61AG motherboard that we talked about earlier. The HTPC header with the CEC pin is also available in the Intel DN2800MT board.
One set of pins connects to the HTPC header, while the other set connects to an internal USB header. All the HDMI pin 13 routing is handled internally on the motherboard. This makes the system self-contained and the end-user doesn't need to deal with external adapters and the whole setup process we discussed earlier. The removal of the HDMI connectors, casing and cables is also bound to dramatically lower the cost of the adapter.
Of course, the above internal adapter can be used only if the motherboard has the appropriate HTPC header. Intel has already taken the initiative and I really don't see any reason why other HTPC friendly motherboard manufacturers like ASRock and Zotac shouldn't implement this. The cost of putting in a CEC header on-board should be pretty minimal (as it just involves rerouting some HDMI wires), and they can always leave it up to the end-user to decide whether they want the CEC functionality or not. If needed, the user can just purchase the internal CEC adapter from Pulse-Eight directly. In this way, the cost of the motherboard also doesn't increase. For pre-built HTPCs like the ASRock Core series or Vision 3D series / Zotac ZBox series, the manufacturers could get rid of the MCE remotes and integrate CEC functionality in the system (for control through the TV remote). In the higher end systems, they could optionally bundle in the Motorola Nyxboard Remote for full home theater control through the HTPC.
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.
In summary, the USB CEC adapter works as advertised. Yes, there are certain quirks / issues as described earlier, but nothing which a HTPC enthusiast experimenting with new gadgets is not accustomed to. From a home theater perspective, the adapter is priced right for a standalone entertainment system, but, if the user does a lot of YouTube searches etc. in XBMC, it might be worthwhile investing in a RF / Bluetooth mini-keyboard / trackpad combo also (Most TV remotes aren't optimized for interactions of that sort). 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. That said, things seem to be moving in the right direction for Pulse-Eight. Being a small and driven company, they seem to be ready to put in the extra effort to ensure the success of the CEC adapter. With regular updates in the pipeline in terms of supported programs and ease of setup, the USB CEC adapter is bound to become popular with HTPC enthusiasts.