Writing a Linux driver for Harmony remotes
July 5th 2007 @ 4:32 pm Tech

For the last few months I’ve been on-and-off trying to write a Linux driver for my Logitech Harmony 880. Thanks to a few friends with windows boxes, I was able to get some USBSnoop data – enough to be able to dissect about half of the communications that happen with the device.

Once I got stuck, I submitted various tickets with Harmony (070322-000677 and 070520-000057) asking for hardware specs. The first time I was lucky enough to get my email forwarded to a developer (not on the Harmony team) who made an attempt to get ahold of someone on the Harmony team, but wasn’t successful.

My second ticket was given a response saying that they were not interested in a Linux driver and could not release confidential information.

I then tried to sign up for their developer program twice, but both times my application was silently dropped.

Today, one of the people who have been following my efforts sent me a link to Paul Cutler’s blog post offering a bounty for a Linux driver. Neat! Well – as I said in an email to him, I’ll gladly give up the bounty in lieu of some pressure on Logitech.

So, I decided to post about it. This is my official request for all of you interested in Linux, Harmonies, or open standards in general, to put pressure on Logitech to release communication specs for the Harmony class of remote controls. You can create support tickets and post in forums at their site, post on your blogs (trackback here, please), send email, snail-mail, or whatever else you think would help.

Thanks!

Update: I want to emphasize that by “put pressure on Logitech,” I do not mean be abusive. I’m not requesting, nor do I condone, attacks, DOSes, DDOSes, mail-bombs, or other such abusive behavior. Such things do not help the cause and only give the community a bad name. Thanks.

Update 2: Comments are fixed, sorry for the inconvenience. Also, I wanted to note a correction: Aaron Bock was actually who started the bounty. Paul Carter then added to it. Finally, I’ve been asked about what code I have. I have nothing functional, really. Just a few lines of C (w/libusb) to help test theories as I’ve tried to understand the binary blobs, and I inevitably freeze the remote. Most of my time has been comparing hex dumps of USB dump files and the binary blobs from the site. If/when I get enough data to write something even remotely resembling useful, I’ll release it. GPLv2.

Update 3: Several people recommended I contact the PR contacts for Harmony. So yesterday I sent an email to both PR contacts, and today one of them was able to get back to me. Tate Tran is going to look into getting me the info I need. I’m not holding my breath, but this is a good sign.

Update 4: A few days ago, Kevin Timmerman contacted me. He has lots of experience writing drivers for devices like these without having specs and had already gotten a lot of the basics working before he ran out of time to work on it. This post inspired him to continue his work, and as of tonight, it looks like we have some working code! We’re looking to get working (if somewhat rough) code that will configure, firmware update, and do IR learning – on both Linux and Windows – released on Monday! Yes, the 16th. We will probably post the code on one of the SourceForge/Googlecode type sites. This is very exciting! Thanks Kevin! On the Logitech front, they’re talking about getting me “a response” by the end of the week. I intend to keep pushing on them even though it looks like we have almost everything worked out.

Update 5: Code posted on a more recent blog post!

Digg this story   Slashdot this story

-phil
rss 15 comments
  1. jason [Visitor]
    July 7th, 2007 | 6:18 pm

    so stop using linux you poor sad lifeless prick.

  2. July 7th, 2007 | 6:24 pm
  3. July 7th, 2007 | 7:00 pm

    Those looking to apply pressure can e-mail or call the Logitec PR folks via the contact info at this link:
    http://www.logitech.com/index.cfm/press/&cl=us,en&allcontacts=1

    Don’t bother contacting the PR contact for Harmony, e-mail and voice mail do not work. His colleagues still have valid contact info though.

  4. July 7th, 2007 | 7:28 pm

    Why not GPLv3? You have my full backing on this and I’ll start a Binary Freedom action alert next week if the problem still hasn’t been resolved.
    Comrade Ringo Kamens

  5. July 7th, 2007 | 7:46 pm

    Good to think there are people out there that care enough to develop these drivers. I wasn’t very aware of logitechs lack of linux support and they will be a product I am cautious about if I need something they make.

  6. anon [Visitor]
    July 7th, 2007 | 8:13 pm

    Yah, this is why linux still isn’t mainstream, driver support and to easily be able to plug in whatever and have it work and refusal by companies to work on it. Don’t get me wrong, I want to see the best stuff getting created for linux but we shouldn’t have to fight these battles which is why linux will be a slow going OS as apposed to say Apple which have all the right things going for it right now but is still based on a linux variant. Windows however, will continue to loose users to mac and some to linux but its main competitor currently is not linux its mac.

  7. July 7th, 2007 | 9:03 pm
  8. Ron [Visitor]
    July 7th, 2007 | 11:58 pm

    I just visited the Harmonie website, they have a vista badge down at the bottom.

    Perhaps part of the price of being supported on Vista is that you are not allowed to support linux.

  9. José Fruta [Visitor]
    July 8th, 2007 | 12:58 am

    The Logitech people are so cool and dandy that they’re using Mark James’ (http://www.famfamfam.com/) without giving him credit. Morons.

  10. July 8th, 2007 | 1:50 pm

    My experience with Logitech and their Linux support is very very negative. I’ve tried to get programming spec for their USB WEB camera via different avenues (tech support, private channels). Nothing worked.I did not get anything from them.
    So, after this bad experience with them, I’ve stopped using Logitech products… because I do not want to have piece of hardware on my desktop used as a paper weight.

  11. tracyanne [Visitor]
    July 8th, 2007 | 5:16 pm

    Logitech have a page, in each language (here’s the Australian view) http://www.logitech.com/index.cfm/contact/&cl=au,en that has a New Business Idea secion

    Have a product idea?

    Learn how to submit your product or technology proposal here.

    in the bottom RH corner.

    Use this to send and Idea.

  12. July 12th, 2007 | 7:12 am

    Ooh. I just got a Harmony 525 today and I both hate the web-based setup as well as the reliance I now have on some Logitech web site (because unlike other remotes, this one seems to have no on-remote setup).

    Count me in as a Mac developer that’s interested in helping out.

  13. Phil [Member]
    July 12th, 2007 | 7:32 am

    a1291762: I actually like the web-based part of it. Building the config requires knowledge of every potential piece of home-theater equipment one could possibly own. This can’t possibly be all stored on a remote. The web-based part of it is completely cross-platform, which is the way it should be.

    The part that bothers me is that they take a nice cross-platform website to generate a config, and then don’t provide a cross-platform way to write that config to the remote!

    So the code that will be released on Monday will allow you to interact with website and program the remote control. But the website is still needed to build the config. It is C++ and will work on Windows and Linux. Since it uses libusb on Linux, it shouldn’t take much to make it work in Mac OS X, and we encourage and look forward to any help you can provide porting it.

    Kevin and I have been talking about the possibility of writing code to build those configs as well – but that’s not our current priority. My biggest priority was being able to use all the already-available-on-Windows-and-Mac features in UNIX, while Kevin’s priority was having a platform-independent small replacement for Logitech’s large Java client. The two meshed well together and the code on Monday should get us most of the way to solving both of those. We’ll then look at extending it even further!

  14. Xeor [Visitor]
    July 16th, 2007 | 3:22 pm

    Funny, I was going this week to supply for our company 9 wireless optical Logitech mouses for 8 windows computers and 1 linux. But since I am responsible for this and that I like and use Linux for development; I will have to find another brand for everybody. Now I check all the time if it’s going to be Linux compatible even if it’s going to work on a Windows computer before to buy. That’s why all our graphic cards are nVidia instead of ATI 🙂

  15. Igor
    April 20th, 2009 | 10:09 pm

    I fully support the author.
    Myself I try to use linux whenever possible and yes, all cards are nVidia because of proper drivers. Too bad I have Logitech webcam which I now should get rid of.

comment on this article

Notice: All comments are moderated. Your comment will appear once approved.