Harmony 880 Remote on Linux

A few weeks ago I bought the Harmony 880 Remote from Logitech. The thing is amazing. I cannot run my home theater without it now.

You create an online profile and enter all your hardware from their database. Each hardware profile is fully configurable. If a hardware profile is missing a feature, the remote can “learn” from your OEM remote as it has an IR receiver. Essentially any IR device can be configured to work with the 880 remote. You can create virtual keys – 10 of which can be present in any order on the built in LCD at a time and you can page through more functions. Most features you need for home theater are actual keys on the remote and are organized very well.

Harmony 880 Remote

What’s really fantastic about it is the “Activities” feature. Here you create activity profiles. By this I mean, “Watch Cable DVR,” for example. This profile set my audio receiver to Aux 2, my TV to HDMI, turns my cable DVR to my favorite channel, etc. Audio commands are sent to the receiver, DVR commands to the cable DVR, TV commands to the TV. It’s perfect.

The power of the IR transmitter is tremendous. I can keep the remote with me at my desk, facing in the opposite direction of my audio receiver and another room away (granted, I do have a very open floorplan) and control volume levels. I can lay on my couch with the remote and not worry about pointing it anywhere. It has a motion sensor to detect when it should turn on the button and screen backlights. The thing is just nice.

The problem however, is in its update design. To configure all these settings and niceties you log in to your web-based configuration page and go to town. When you’re ready to update the device, you’re asked to download an EZHex file containing your changes in an XML+Binary blob sort of way. Here comes the trouble. You need to be using Windows or a Mac. I get away with this using my XP VMWare install under SLED, but it’s hardly optimal. Once the file is downloaded, you run it in the EZHex sync program, it contacts your remote over USB, and sends the file. Firmware updates are also delivered in the same way. The same program is also used to somehow read IR commands from the built in IR receiver when you ask the web-baesd configuration program to “learn” a command from an OEM device.

I would love to see a program under Linux that at least supports saving the EZHex dump to the remote. It’d be super-sweet if it could also do OEM IR command learning and firmware updates as well (firmware is probably in the same boat as configuration syncing).

So, I’m ready to donate a cash prize of US$75, which is about 1/2 the price of the 880 remote to the first person that can deliver on a Linux program that implements configuration syncing. Another US$15 if the program supports updating firmware on the device, and finally, another US$60 if the program allows OEM IR command learning. It needs to work with the 880 web-based configuration software of course. If all three features are implemented, I’ll essentially be reimbursing you for your 880 remote. I don’t really care about UI. A console program that does the job is fine with me. The code must be GPL, LGPL, or even better, MIT X11.

I suspect that some debugging/listening will reveal a lot, and it can be implemented fairly quickly using libusb or something. I just don’t have the time to really look into it. It would have been nice if the harmony was a mass storage device and you simply copied your configuration profile and firmware updates to it. Oh well. Maybe Logitech can be contacted and specs can be obtained. That’d be sweet.

That said, once you do get your perfect configuration for the remote, you really have no reason to boot Windows again to do anything with it. You will spend a couple of hours setting it up and tweaking though.

Oh well, I’m still a satisfied customer.

Update: The code must be original, and you of course must be the author. If a utility already exists to sync the 880, I’d appreciate the tip, but it won’t qualify for the prize. :-)

Update 2: Paul Cutler has generously offered to match my US$75 prize for step 1. That is, if step 1 is completed, the total prize is now US$150. Completion of steps 2 and 3 leave the total possible amount at US$225. Start hacking – it’s probably a day or two of work for a full 880 reimbursement!

openSUSE Build Service

The openSUSE Build Service is really rocking. A lot of great effort has gone into it, and I hope it’s close to being more publicly open for new packagers.

I tried a few weeks ago to start managing upstream Banshee builds within it, but there were a number of issues and it just didn’t work out too well.

However, after giving it another shot yesterday, I’m very pleased to announce now that the very latest release of Banshee is currently and will always be available on the openSUSE build service. I have added targets for openSUSE 10.1 and Factory (soon to be 10.2, which, by the way, is really shaping up to be an outstanding release).

So, openSUSE Banshee users, add the appropriate repository below for your distribution and enjoy the updates:

Note to SLED 10 users: the openSUSE 10.1 packages will work on SLED, but you will lose the Helix Banshee support (RealPlayer/AAC/MP3) that was shipped with the distribution. I am trying to figure out the best way to manage Helix Banshee/SLED specific builds. What’s in the openSUSE Build Service is strictly 100% open source/upstream and works only with GStreamer.

I also hope to soon be able to host builds/packages for other non-SUSE distributions such as Fedora, Mandriva, Debian, and Ubuntu. We’ll have the infrastructure in place within the build service to support this, so we’re definitely going to want to take advantage of it when the time comes! I think it’s important to note however that this would not replace packaging done by the excellent individual distribution packagers/contributors – it’d merely be a way to offer an official bleeding-edge (well, still stable) repository for users on a distribution that wish not to wait for the next distro release cycle to get a major update.

Finally, James Ogley also wrote about GNOME:Stable, GNOME:Unstable, and GNOME:Community pieces of the build service, effectively replacing his old usr-local-bin.org repositories. I’m really pleased with this new direction of what I’d like to see become more community-driven packaging.

Multimedia across the board

Multimedia in openSUSE 10.2 should also be a pleasant experience for users. Aside from getting the latest and greatest Banshee in, last week I spent time fixing and updating GStreamer and Totem and making sure we had all the right components selected by default to give the the potential for an awesome in-browser multimedia video streaming experience.

I’ve been testing 10.2 on all the Fluendo Commercial Beta plugins, and it’s quite nice to just be able visit any site with embedded video and have it play in your browser. All you’ll need to do is drop in the right GStreamer plugins – which is another topic altogether.

Cool stuff now in the wild

Quite the release, Mono 1.2 is ready for indulgence! Fantastic news also from the DBus camp – 1.0 “Blue Bird” was finally released upon us! Eexxccellent.

Modern cars – they all look like electric shavers

Without any further delay, I bring you the Podcast plugin for Banshee, thanks to the arduous work of Mike Urbanski.

Podcasting in Banshee Podcasting in Banshee

Interested parties should definitely check it out and test. Banshee HEAD is required, so update your checkouts. The plugin code has been merged into the banshee-official-plugins module in Banshee Subversion. Congratulations Mike!

In related news, I released Banshee 0.10.10 last week, which was the first official release from the stable branch. And speaking of the stable branch, I guess I should actually mention that too. I branched from HEAD shortly after 0.10.9 to create the stable branch. Any more releases from the 0.10.x series will be based on this branch (BANSHEE_0_10_9_SL in CVS). The first from HEAD will be 0.11.0, but I have no time frame set for that. In SUSE/SLED, we are keeping up with the stable branch, so no new features will be introduced. I urge other packagers to do the same. I think 0.10.10 is now at least available in Ubuntu Dapper; not sure about FC5, et. al.

To highlight some of the greatness from 0.10.10:

  • Fully working and improved NJB DAP support (Creative Nomad, Dell DJ, etc.)
  • Really beefed-up CD burning; I think three or four fairly serious bugs were closed here
  • A nice handful of other bugs resolved

I also wrote up a quick roadmap for 0.11.x for the curious. It needs some organization and review, but my basic ideas are layed out there.

Now, regarding banshee-official-plugins, here’s how it breaks down: currently everything in this module is under development, unstable, and unreleased. Some plugins work against the stable branch while some require the latest and greatest from HEAD, but the module itself will configure and build against anything 0.10.10+. For 0.11.x, some of the plugins (or at least DAAP) will be split out from core into this new module. Currently it contains:

  • Mike’s podcast plugin
  • Felipe’s Mini Mode plugin
  • Fredrik’s Recommendation plugin
  • Gabriel’s Smart Playlists plugin
  • My iRadio plugin

Once a release is made of this module (probably for the 0.11.0 core release), these plugins should be stable and supported. Right now, however, not everything is completely ready to come out and play.

AA-000 Car

This world is coated in cheese

Last night I released Banshee 0.10.8. I started reworking how the player engines work last Monday. Access to the player engines are now fully abstracted so the interface is entirely passive. This means that plugins can now do anything in terms of playback that the UI has always been able to do. I also modeled the new event/state system after the wonderful message bus idea in GStreamer 0.10.

This is all leading somewhere: the upcoming podcasting, iRadio, and streaming plugins. The player engines will be enhanced to be better suited for streaming (will send buffering messages, etc. so the UI can let the user know what’s going on). To test this, I have added a simple new “Open Location” dialog. You can now listen to a single arbitrary URI. I will also start working on updating stored metadata from metadata found in the stream. That’ll be neat.

The other major new “thing” in 0.10.8 is the Helix playback engine. To allow for 64 bit builds of Banshee with Helix support, I have moved playback out of process. I started a new module, helix-dbus-server, that exports the Helix hxclientkit API over DBus. In Banshee I have implemented a HelixRemote PlayerEngine to act as a client. This will allow for 64 bit builds of Banshee and a 32 bit build of helix-dbus-server. Helix is of course not 64 bit ready.

In other news, I shared my heart-attack fries with Wendy at a party over the weekend. She was delighted to indulge, and I was… simply amazed. Unfortunately, no one else seems to share our enthusiasm.

Heart Attack Fries Heart Attack Fries

On Sunday I countered it all with a long early morning run (it’s been a while) and no food. Today I ate a really awesome salad with homemade dressing.

A week or two ago, I found out that the photo of me eating the Ruby Tuesday’s Ultimate Colossal burger was published on an article about the burger on SupersizedMeals.com. It was rather hilarious, though I don’t think the author really understood the expression on my face. I need to enter the timed contest.

Ah… time for some Colbert…

I am on a quest

A few weeks ago, some friends and I decided to have lunch at Ruby Tuesdays. My mission was clear: conqueror the 1 lb burger. Simple. It was amazing, and I am now on a quest for bigger, badder burgers. Perhaps one day, I will dominate this incredible hunk of heart-attack.

The 1lb RT burger

Earlier this week I was a bit spaztastic, obsessing over including SexyIconEntry as the search widget in Banshee, amazed by how much it had improved over the last few months. While this may happen in a future release, I’m holding off on comitting that patch as I really don’t want to make libsexy a dep right now. However, in the process I decided to write GAPI-based C# bindings to libsexy, which are now available in the libsexy-mono module Christian’s SVN repo.

Banshee with libsexy's SexyIconEntry

Jon has been doing some really cool work with a new Banshee source plugin. I’m sure there will be more on this later :-). Also, Fredrik has been hacking on Jon’s SharpMusique to create a Banshee plugin (SharpMusique is an iTms client, and allows purchasing music using your Apple account from the iTunes Music Store). He committed a first pass of the integration plugin (svn co svn://abock.org/trunk/banshee-itunes-plugin), for anyone who wishes to test. At the moment there is no menu integration, and you can only purchase one track at a time, and if you’ve used iTunes 6, your account is flagged, and will not allow purchases (yet). Nonetheless, this is an excellent start :-D

Banshee iTms Plugin

Also last week, I discovered X-Moto and have a new addiction to add to my collection.

X-Moto is super

That is all.

Ekiga and Diamond

This evening I decided to try out the new Ekiga. The build was very easy, no hiccups. After testing SIP support, which has never worked for me in old GnomeMeeting, I became quite excited. I then signed up for a Diamond account, and a few minutes later, was using Ekiga to call a land line.

Good-bye SkypeOut!

The Diamond quality is much better than Skype, and it’s all SIP/Asterisk-based… not to mention no more proprietary bloated static QT Skype client. Rock on Ekiga!

Banshee 0.9.11

For those who enjoy beating a Banshee, 0.9.11 is out. I have set a new record for working through the night, and am set to retire for the evening of the 9th at nearly 7:00 on the morning of the 10th?

Before this however, I must note: also of much interest is Nat’s super-duper type-to-tag patch for F-Spot. I propose a final touch (expand on enter), and am now totally addicted to this new method of tagging and organizing my photos. I highly recommend.