February 1, 2012
The IR Shield

The primary component of my media center is an HTPC with boxee on it. One neat feature of boxee is that you can use a web or android based remote to control it, which I do. The problem though, is that my television and sound system both use IR for remote communication. So with that problem in mind I set about making a link between a web-based interface and my IR controlled components. Here’s the video showing what I made, followed by the article showing how I did it.

Bread-board IR Shield prototype

I like to do my part to be green so I cram way more components than will comfortably fit onto a tiny bread-board to save resources.

The prototype of my shield consisted of an IR LED and Receiver diode break-out boards from Sparkfun.com, an RGB LED, an Atmel EEPROM, and a Peizo sensor. The prototype then connects to an Arduino ethernet shield and an Arduino Duemilanove. An Arduino sketch sets up a web server that listens for http requests to send or delete an IR code, and outputs CSV data for an Android or web-based app to parse out and use. The sketch is also using the IR receiver diode to constantly ‘listen’ for new IR codes from almost any type of remote. Once received, the codes are stored to a large eeprom. The RGB led has one common color to show that the device is running and uses green and red to show whether action is being taken or something is being recorded, respectively.

Shot of unpopulated IR Shield board

The board is only at v0.1, the next version will feature a hilarious, pithy in-joke on the white silk-screen layer.

After a successful prototype, I designed a board in eagle and sent it off to Laen‘s PCB service. Which turned out to be an excellent decision, the boards were high quality, cheap and it only took about two weeks! Even more importantly, the board was correct! After checking over the final design and soldering all the components on, there were no jumpers or cuts needed. Though I did manage to order one of the resistors from mouser in the wrong size. Assembly was very easy, novice level difficulty. But I do have one construction tip to share. These peizo sensors from sparkfun are difficult to connect. As EliTheIceMan explains,

Some advice on these. DO NOT SOLDER THEM! (Especially top side soldering -haha) You might get away with regular through hole soldering if your very fast but I somewhat melted mine in about a second. Use a 3 pin female header.

Shot of peizo sensor.

Meas-Spec.con is middle earth elf language meaning magic paper that senses vibration.

Well, ElitheIceman is wise but also not the boss of me; I wanted it soldered. The solution that I came up with was holding the peizo lead onto a header lead on one side with an alligator clip so that the other side is aligned and ready to solder. Then, I filled a small glass full of water very full and submerged the peizo sensor completely with only the lead sticking out. I then soldered one side, you could hear a quick sizzle as the metal and plastic heated up and were immediately cooled. This trick worked and I didn’t notice any warping at all on the sensor. :)

With the board assembled, it gets plugged into some stacking headers, then onto an ethernet shield, then onto the arduino and the entire thing is plugged into power and cat5, then placed onto a suitable coffee table in front of your media center.

Side shot of arduino stack.

If there were just one more shield attached, it'd be tall enough to ditch the coffee table and just use the arduino stack.

IR Shield sitting on coffee table

I don't own a coffee table to put this on, yet. Don't judge me.

On the software side of things, the functionality list goes like this:

Web based app

I realize that the colored theme part is pointless frippery, but it's fun, dammnit.

  • The theme color selector at the bottom will change the background image as well as the status color of the RGB LED, which is saved to non-volatile memory.
  • The IR receiver is constantly listening for commands and will work with almost any remote type as it will record in ‘raw’ mode for codes that it doesn’t know about, thanks to Ken Shirriff’s amazing IR library.
  • After receiving codes you can see them listed in the interface, where you can click them to replay a code or check the ‘Options’ checkbox at the bottom, after that clicking a code button will bring up a modal dialog that will let you relabel, delete or signify as the knock button
  • The firmware is constantly listening for vibration (with a fairly high tolerance) from the peizo sensor. The software will let you select which code a ‘knock’ will activate.

Alright, here’s the goods. This zip will contain:

  • Arduino sketch
  • Web app code (.html, .php, .css, .js)
  • Eagle board and schematic
  • README.txt with a MOUSER.com parts list and some installation advice

Download weur.zip

Besides being a web enabled remote, I think this shield could have some other interesting possibilities. You could essentially reverse the situation and make it easy to access a desktop computer or HTPC through a remote control, if you preferred those over tablets and phones. Or, lots of neat, minature toys have come out lately that are using IR for communication to save on weight and cost. The Infrared Shield would allow you to control them with your computer with new firmware and software.


  • IR Receiver and LED breakout were purchased at Sparkfun and their schematic’s were used in my designs. (Thanks Sparkfun, you rock, so much.)
  • I bought my Arduino and ethernet sheild at Adafruit (Hi Lady Ada!)
  • Liudr’s blog helped me get my code working after I finally figured out it wasn’t working because I ran out of ram
  • Ken Sheriff’s amazing IR library sees and transmits codes.
  • I used the EDB Library to store codes onto the eeprom
  • This fun RGB library by Raymund Blum powers the mood lighting


Hey thanks for reading this far! Maybe you'll be interested in more of my projects? Check out my homepage :)


  1. lukrativ
    Posted Feb 01 at 3:54 pm | Permalink

    I feel embarrassed now that I even told you about my project idea. Pales in comparison to the awesomeness of the almighty Falldeaf!

  2. John
    Posted Feb 01 at 4:23 pm | Permalink

    Any chance you could post your parts list / order invoice so we could have the exact part numbers? I’m probably going to build one of these and having the part numbers would make this easy.

  3. John
    Posted Feb 01 at 4:27 pm | Permalink

    Oh, nevermind! Thank you for putting the parts list in the README.txt file :)

    • Posted Feb 01 at 4:30 pm | Permalink

      Hey no problem! :)
      Beware though, it’s missing the 330 resistor (I already had it)

      I think it’s awesome that you’re going to build this, please shoot me an email if you need any help. :)

  4. Posted Feb 03 at 11:10 am | Permalink

    Really nice idea, I was thinkink about something similar but not so good :)

    Just a question, why not give it a try with the IR Toy from dangerousprototypes ? (ask my friend, always and .. always..)

  5. Posted Mar 04 at 9:25 am | Permalink

    Falldeaf- thanks for the kit!
    Nice job on the IR shield design- it went together perfectly. I am going to get an IR toy to play with this.

    • Posted Mar 05 at 11:12 am | Permalink

      My pleasure! That’s so awesome that the kit worked for you. Let me know if you make anything cool! :)

  6. Steve
    Posted May 05 at 7:48 pm | Permalink

    I think this is amazing. Amazing because I have been designing a truly universal remote control system, and a part of it was exactly this!! I’d like to help grow this project, so guess I’d better build one. IS there a maxium amount of buttons, and can one allocate a button to a function in one of several of yoru IP connected devices?

    For those of you who would want WI-FI connection, the neccesary dongle is about 15quid off ebay including deivery and it works a treat on every other ethernet device that I have connected it to, despite it’s horrible purple plastic box…

    If I want to incorporate your work into a larger commercial product, would that be something you’d be interested in talking about?

    Cheers, Steve C.

    • Posted May 10 at 10:17 am | Permalink

      Hey Steve, thanks for the compliment! :)

      Excellent advice for getting it onto a wireless network, thanks for the tip.

      I’d certainly be willing to discuss your ideas. Feel free to shoot me an email or IM.

  7. Jeff Berezin
    Posted Aug 29 at 11:10 am | Permalink

    This is an excellent design. I have a question however as I am going to build one of these. You use a web based application on a real webserver to manage the user interface. Is there anyway to get this all on one board an use the arduino as the webserver? Or, maybe two arduinos, one as the server and one as the IR interface? If not, would it be possible to place the webserver component out on the Internet if broadband is used without much speed degradation?


    • Posted Aug 29 at 11:50 am | Permalink

      Hi Jeff!

      That’s an excellent question. Originally, I was going to build the entire interface into the arduino as you suggested. Part of the problem with that is the code I wrote, along with the libraries I used for controlling the shield; are really stretching the limitations of memory on the arduino. I think there’s a couple solutions here, you could try using an arduino mega, which has less limitations in terms of both speed and storage capacity. As far as completely offloading the web functionality to an internet site, I think that’s an excellent solution. I was considering doing that myself once I had the time. Further, besides offloading just the web interface, I was planning on possibly offloading code storage as well. Which would add the benefit of *all* your codes being available to all remotes or even sharing of codes between users so that you didn’t have to manually input codes. The hardware that I’ve designed here would work for this solution without modification, though. Plus the added flexibility of an eeprom for still saving local preferences. And the piezo sensor is a really fun way to control your media. If you have any more questions or comments or need some advice with your build feel free to post another comment or email me directly at falldeaf@gmail.com Also, if you are able to successfully make a shield, would you do me a favor and send me a pic or post one online? I’d be really excited to see someone else’s build. :)

      Thanks for reading and good luck!

9 Trackbacks

  1. […] them back in order to control the devices. This functionality is really nothing new, but we think the user interface he developed for the system is absolutely […]

  2. […] them back in order to control the devices. This functionality is really nothing new, but we think the user interface he developed for the system is absolutely […]

  3. […] them back in order to control the devices. This functionality is really nothing new, but we think the user interface he developed for the system is absolutely […]

  4. […] The IR Shield. falldeaf writes – Hi Lady Ada! I designed and built a custom Arduino shield and wrote some firmware and software that turn it into a web-connected universal remote… Filed under: arduino,open source hardware — by adafruit, posted February 1, 2012 at 3:27 pm Comments (0) hr{display:none} .in_the_store{background-image: url("https://www.adafruit.com/includes/templates/adafruit/images/side_back.jpg"); background-repeat: repeat-x;width:634px;border: 1px solid #CCCCCC; float:left;} In the Adafruit Store: CR1220 Replacement Battery for iCufflinks/iNecklace Ice Tube replacement side-PCB and male header Electroluminescent (EL) Panel Starter Pack – 10cm x 10cm Aqua […]

  5. […] them back in order to control the devices. This functionality is really nothing new, but we think the user interface he developed for the system is absolutely […]

  6. […] them back in order to control the devices. This functionality is really nothing new, but we think the user interface he developed for the system is absolutely […]

  7. […] them back in order to control the devices. This functionality is really nothing new, but we think the user interface he developed for the system is absolutely […]

  8. […] them back in order to control the devices. This functionality is really nothing new, but we think the user interface he developed for the system is absolutely […]

  9. […] of the most interesting features in boxee is that it allows you to control devices through a web or android based remote. Nevertheless, most of our electronics are not configured for this kind of interaction […]

Post a Reply to John

Your email is never published nor shared. Required fields are marked *