Monday, May 6, 2013

Research

Now it is time for the research. The purpose of this post is to illustrate the steps I went through to try to find a solution to controlling the ASUS Cube via infrared (IR).

The first thing I did was look at the Cube's remote end through my phone's camera since cameras are capable of seeing infrared. I pressed all the buttons on the remote and the only one that sent an IR signal was the power button. It makes sense for the power button to be IR since the remote becomes disconnected from the unit in standby.

This gave me hope, though. That means the unit has the capability of accepting IR. I then tried to dive into the files of the google tv system to see if there was an app that was controlling the IR capability. I could not find one.

I then researched the Logitech Revue sense it was the only Google TV device that could be controlled via IR. I dug into its files and noticed it had a system app named HarmonyControl.apk which controlled the IR. I was thinking that I could possibly take this app and sideload it to the Cube and be able to use Revue IR codes to control it. Then I thought this is too complicated and would probably require root on my device.

Then I had an epiphany. I was looking at this all wrong. The Cube already has the capability of accepting a USB keyboard. What if there is a remote that can act as a USB keyboard. I scoured the internet looking for one and found this: Windows 7 Vista XP Media Center MCE PC Remote Control and Infrared Receiver for Home, Premium and Ultimate Edition. It did not need drivers to be installed to work, and for only $16, I ordered it.

When it arrived, I hooked up the USB IR receiver to the Cube. I then started pushing buttons and the Cube started responding to my button pushes. This is because the remote and receiver are acting as a generic keyboard. The remote is converting keystrokes to IR. However, I only had limited control and the buttons were not mapped how I would want them too, but this gave me a starting point.

So how do I add the capability to add more functionality to the IR remote from amazon? I then found posts and articles on changing keymapping in android. This would let me change what would happen if, for example, a T was pressed on a keyboard. However, changing the keymapping also requires root. I wanted a solution without requiring root. So I searched for apps and found this: http://code.google.com/p/extkeyboardremapper/  This is exactly what I needed. This app installs another keyboard onto the android system that gives the ability to remap the keys through configuration files.

Now I am at the point of development and testing. I have to determine the scan codes being delivered by the remote so that I can implement into the config files how I want Android to react to those codes. I then have to learn the IR codes in Pronto Hex format from the remote so that it can be used for numerous universal remotes.

UPDATE:  I found an app in the Play Store that fit my needs better than the above app. External Keyboard Helper Pro. It is more refined, and it allows me to map apps to buttons for one button access.

Need

I just got the new ASUS Cube with Google TV device. I have really enjoyed the features. I also have a Roku attached to the same TV. Other devices in my system include a Yamaha A/V receiver, 42" LG LED TV, Dish Network Hopper DVR, LG Blu-ray player, and an XBox 360. I have this all controlled via a Control 4 system using a single remote.

All my devices can be controlled via infrared sent from a remote. This allows any universal remote to be able to control them. That is, with the exception of the ASUS Cube. I did some research and this is also the case with all 2nd generation Google TV devices. They are controlled via the supplied bluetooth remote or an IP-based remote such as your Android phone/tablet. The intent is to use the remote that came with the Google TV and use it as a universal remote which utilizes the IR blaster port on the back to send IR to your other devices. This would be great if the device didn't only come with a single IR emitter, and if it was capable of controller more than 2 devices. As it sits, if you use a 2nd generation Google TV device in your main entertainment system, you will need to use more than 1 remote to control your system.

To me, because the purpose of the Google TV device is to compliment your TV service, it should also have the ability to seemlessly integrate into your entertainment system. Right now, the only practical use for most people to be able to effectively use it, is to place it in a bedroom or office where you have a limited amount of equipment to control. Being a veteran of the custom home electronics industry for 10 years, this does not bode well for me. The Google TV device is a great device for complimenting your cable/satellite programming, and this feature was obviously overlooked by the manufacturers.

This brings me to my project of finding a way to control my ASUS Cube via infrared to be able to integrate it into my entertainment system.