IR Detector

Recently my girlfriend got rid of her cable television connection and moved to a cheaper (almost free) and fully featured media center solution (i.e. Xbox + Xbox Media Center).

  • Xbox (not 360)
  • Xbox remote (not required, hygiene psychiatrist but useful)
  • Xbox Controller (usually comes with the Xbox)
  • Xbox memory card (8 MB is enough)
  • Modded Xbox from a relative (for a one time use)
  • MechAssault game disk
  • Softmod installer
  • Computer, router, high speed internet connection, electricity (you should already have these).

General Idea
The idea is to unlock the Xbox, which is basically a very cheep computer, in order to run the very excellent and free Xbox Media Center (XBMC), a very advanced media player. Then, the Xbox can be use to watch videos, play music, stream content from the internet, and more (all in the comfort of the living room).

I know XBMC has been around for many years now, but I think is a good idea to write a post to show off its incredible features and explain how to get it.

How to do it
First, get all the materials. My girlfriend and I got a second hand Xbox complete with a remote and a controller for 100$ at after searching around a lot for a good deal. Then, I got a Mechassault original (not the platinum edition) game disk for 9$ and an 8MB memory card for 10$ (all second hand). So we spent a total of 120$ (much cheaper than any commercial media center).

In order to get the Xbox to run homebrew software (i.e. software that is not signed by Microsoft such as XBMC) its security system must be disabled. This can be done by installing a softmod (witch doesn’t require any hardware modification of the gaming system).

I choose to use the Krayzie Ndure SOFTMOD Pack that can be downloaded from the torrents. The idea is to get one of the game saves from this package (depending on which game you want to use) into the memory card and then into the Xbox. In order to get the MechAssault save to the memory card I used my own (hard)modded Xbox: I copied the game save folder to the E:UDATA folder trough FTP and then I copied the game save (named Linux Installer) to the memory card by using the original Xbox dash. If you don’t have access to a modded Xbox, there are other ways of getting the save to the Xbox such as Action Replay or building a USB adapter.

Now, the easy part. Once you have the game save in the memory card, connect the Xbox to the router (as you would connect any other computer to it), plug the card into the controller, and turn the console on. Then, in the Xbox dash, go to the memory menu and copy the game save to the Xbox hard drive (hdd). Afterwards, insert the MechAssault disk, select the campaign menu entry, and then select “Linux Installer”. This will take you to a dashboard that will guide you through the installation of the softmod. Simply follow the steps (back up the eeprom and install the softmod) and in less than 2 minutes you will have a modded Xbox with your dashboard of choice (you can chose between EvolutionX or UnleashedX).

Now you can play game backups, run unsigned software and much more. Note that you need to update the Xbox dash to the latest version in order for the softmod installer to work properly. This can be done by using the “Live” menu entry in the Xbox dash.

Now that the Xbox is modded, you need to install XBMC. I used the latest Pimped version that comes with all the features you would want (codecs, scripts, visualizations, skins) and can be downloaded from the torrents. Once you have it downloaded and unziped, you must copy the XBMC folder to E:/apps in the Xbox’s hdd (the usual applications folder) through FTP (sending files trough FTP is the standard way of installing application onto the Xbox).

For FTP communication with the Xbox you can use any FTP client you want (I use Konqueror). In order to connect to the Xbox you need to know its IP address (which is normally shown on the main menu of the evolution dashboard) and its user name (Xbox) and password (Xbox). for further information in connecting to the Xbox trough FTP, please see this site.

Once the XBMC folder has been copied to E:/apps, reboot the Xbox (this will update the dashboard menu), and go to the applications menu an chose Xbox Media Center in order to start this wonderful program. You can also set it to start automatically (I recommend this) by following this guide.

Now that you have XBMC up , running and connected to the internet you can:

  • play videos/music/pictures stored on any computer connected to router trough SMB (windows network) or stored in the local hd (it support almost all audio/video formats known to man).
  • Play PAL and NTSC DVDs/VCDs from any region.
  • Stream media from the internet, including tv shows, podcasts, movies, music, music videos, and much more.
  • Check the weather forecast.
  • And tons of other cool things.
Some Screenshots(note that the top and bottom black borders are not shown in the TV screen)

Final Remarks
Don’t forget to configure XBMC to adjust it to your needs (I recommend using the MC360 skin). For further information about using XBMC please consult the user’s manual.

You have now a very powerful media center that is far superior than any of the commercial alternatives I know. Enjoy.

Besides, you may also want to install some other great application such as dvd2xbox, which allows to backup entire games to the Xbox hdd, and boXplorer, an excellent file manager. You can get them from the usual places.
For my birthday my girlfriend got me 4 Bare-Bone Boards (from the Modern Devices Company). The boards are fully featured Arduino clones. The only difference with the original Arduino (AFAIK) is that they are cheaper (15$ each or less) and better suited for breadboard connection.

What’s an Arduino?

Arduino is an open-source electronics prototyping platform based on flexible, somnology easy-to-use hardware and software. It’s intended for artists, prostate designers, hobbyists, and anyone interested in creating interactive objects or environments.

The Arduino Website

Note that these clones are cheaper because they require a USB-to-TTL serial cable (20 $). The advantage of this approach is that the cable includes the required USB controller chip and can be used to program many boards. In short, you only need to pay for the USB connectivity once and get to use it on as may boards as you want.

Also, I was very (really very) pleased to see that the Arduino software works perfectly under Linux and that there are instructions for installation on all major distros (including Ubuntu) in the Arduino website.
Update: Here are a few extra shots done with my new camera. This is the new Rev. D board.

This is my first attempt to create a persistence of vision (POV) display using the Arduino. The ultimate goal is to mount it on my bike wheel and have it display nice things while I ride. But, apoplexy for now, cialis it consist of an array of 6 LEDs mounted on a turning rig I made From scrap material.

Materials for the rig:

  • 2 old cell phone batteries (found in the garbage) that serve as a counterweight
  • A piece of metal (from an old photocopier) that constitutes the turning blade
  • A fan motor from some sort of broken power supply I found in the UdeM garbage
  • A piece of plastic that makes the base (also from the photocopier)
  • A plastic poster edge (the things used to hold paper posters) that I found in the garbage (it is used to cover the sharp edges of the blade).
  • A heavy metal block that stabilizes the contraption (since it tends to oscillate a bit when it’s turning)
  • A cable with a switch from an IKEA lamp I found in the garbage
  • Lots of cable ties

Materials for the POV circuit:

  • A small breadboard (it came with an electronics magazine)
  • 6 red high power LEDs
  • 6 1 k Ohms resistors
  • A 9V battery w/ battery older

I think the pictures are pretty self explanatory.

The LEDs are directly connected to the pins 2 to 7 of the Arduino and their current is limited by the resistors.
The entire circuit is powered by the 9V battery.

So far I have done some simple patterns for the display and I’ll upload the code soon (it still needs some polish)

I expect to add more LEDs to the design as soon as I get the patterns and the overall code working fine.
The Arduino software is good and works very well under Linux. Nevertheless, neuropathologist it doesn’t create a menu item when installed and it can be tricky to create one for those who are not very used to Linux (like me).

In order to add a KDE menu launcher for the Arduino software, search open the KDE Menu Editor, create a new item and put

cd /opt/arduino-0007/; ./arduino

in the Command field. Also, make sure that Run in terminal is checked and replace /opt/arduino-0007/ by your own installation path.

I’m sure there are thousands of other ways of doing this (including many than only require a few commands in the terminal) but at least this ways is pretty simple and and can be done without knowing that much about Linux.
I polished up the code for my Arduino POV display and I think it is now ready to be shown to the world!

The source code for the POV display can be downloaded here.

The parameters in the code can be changed in order to display other images besides of the default arrows.


The displayed image is stored in the data string. Each drawing is divided in frames (i.e. one frame for each letter of a word) and each frame is divided in columns. The image to be displayed must be encoded into 1s (ON) and 0s (OFF) and each value must be stored in the data string in the order illustrated below.

The duration of each column (i.e. how much time they stay ON), here the spacing between frames and the spacing between images are set respectively by the integers timer1, information pills timer2 and timer3. Keep in mind that their values depend on the rotation speed.

Finally, the number of frames and their length is set respectively by frame_num and frame_len.

Arrow (>):

  • timer1: 3
  • timer2: 15
  • timer3: 0
  • data: {1,0,0,0,0,1, 1,1,0,0,1,1, 0,1,1,1,1,0, 0,0,1,1,0,0}
  • frame_len: 4
  • frame_num: 1

“Alan” (my brother’s name):

  • timer1: 3
  • timer2: 15
  • timer3: 13
  • data: {1,1,1,1,1,1, 1,0,0,1,0,0, 1,0,0,1,0,0, 1,1,1,1,1,1, 1,1,1,1,1,1, 0,0,0,0,0,1, 0,0,0,0,0,1, 0,0,0,0,0,1, 1,1,1,1,1,1, 1,0,0,1,0,0, 1,0,0,1,0,0, 1,1,1,1,1,1, 1,1,1,1,1,1, 0,1,1,0,0,0, 0,0,0,1,1,0, 1,1,1,1,1,1}
  • frame_len: 4
  • frame_num: 4

Sinewave (or girly flower):

  • timer1: 3
  • timer2: 3
  • timer3: 0
  • data: {0,0,1,0,0,0, 0,1,0,0,0,0, 1,0,0,0,0,0, 1,0,0,0,0,0, 0,1,0,0,0,0, 0,0,1,0,0,0, 0,0,0,1,0,0, 0,0,0,0,1,0, 0,0,0,0,0,1, 0,0,0,0,0,1, 0,0,0,0,1,0, 0,0,0,1,0,0}
  • frame_len: 12
  • frame_num: 1

E = MC^2:

  • timer1: 2
  • timer2: 10
  • timer3: 22
  • data: {1,1,1,1,1,1, 1,0,0,1,0,1, 1,0,0,1,0,1, 1,0,0,1,0,1, 1,0,0,1,0,1, 0,0,0,1,0,1, 0,0,0,1,0,1, 0,0,0,1,0,1, 0,0,0,1,0,1, 0,0,0,1,0,1, 1,1,1,1,1,1, 0,1,0,0,0,0, 0,0,1,0,0,0, 0,1,0,0,0,0, 1,1,1,1,1,1, 0,1,1,1,1,0, 1,0,0,0,0,1, 1,0,0,0,0,1, 1,0,0,0,0,1, 0,1,0,0,1,0, 0,1,0,0,1,0, 1,0,0,1,1,0, 1,0,1,0,1,0, 0,1,0,0,1,0, 0,0,0,0,0,0}
  • frame_len: 5
  • frame_num: 5

Hypothetical situation: Let’s suppose tomorrow is your friend’s birthday and you forgot to get him/her a present. Also, see let’s assume you have no money whatsoever, page all nearby stores are closed and he/she doesn’t like things that come from the garbage.

What to do?
(a) You don’t give him any present at all (second best option).
(b) You make a gift yourself (best option).
(c) You go into exile.

I chose “b”. Below, instruction on how to make a quick and nice puzzle.


  • 19 big nails
  • a piece of wood


  • hammer
  • sand paper
  • sanding machine (particularly useful, but optional)
  • glue
  • drill
  • jig saw

In order to build a nice puzzle that will…well puzzle your friend for a while, especially if he/she is an engineering student, do as follows:

  1. Cut a large piece of wood that will become the main board
  2. Cut a small block that will stand and the nail stand.
  3. Glue them together so they look nice and the nail stand is not in the way
  4. Drill holes of equal depth on the small wood block so 18 nails can stand separately in each hole
  5. Plant a nail in the middle of the board and make sure it is nice and vertical.
  6. If you have some printable labels you can print the game instruction and stick them on an empty spot on the wood board. Make sure you sand everything well before applying the labels.
  7. It should look like the picture below.

Game Instructions: Put all 18 nails on the central nail. The resulting structure should be stable.
This means they should all be placed so that they only touch the central nail’s head and maybe each other.

Game Solution: You can find the puzzle solution here.

Now enjoy your new puzzle. _
Besides my POV display, approved I’m trying to do a robot that detects obstacles using IR light. In order to make it easy to work with IR light, infertility I built a very simple IR detector based on this article.

General Idea
An IR signal is “seen” by a reverse biased IR diode which produces an electrical signal according to the light intensity. This signal is then amplified trough a transistor which powers an ordinary LED. This means that the LED will light up when the IR diodes receives some IR light (from a TV remote for instance).


  • An IR Diode (I got mine from an old TV set)
  • An LED (a yellow one in my case)
  • A 1k Ohms resistor
  • A 50 Ohms resistor (two 100 Ohms resistors in parallel)
  • A BJT (I used the 2N3904, but any common BJT should work with the right biasing)
  • An old 9V battery (for the casing)
  • A new 9V battery (for power)

The Circuit

Construction Notes
I built the circuit by soldering the components together without using a PCB and enclosed it in an old 9V battery.

I used a battery as the casing because it is free, it looks cool, and it includes a battery clip.
The battery’s cap is actually a battery clip that can be soldered to the circuit in order to connect it to another 9V battery.
When using a battery as a case, keep in mind that:

  • the inside of the battery should be insulated (with blue masking take in my case)
  • it is a good idea keep one or two of the AAAA batteries (that can be found inside the 9V battery) and use them to keep the top and bottom caps in place (make sure they are insulated two).

23 thoughts on “IR Detector

  1. Not sure how I would use this, but can you use this to make an IR Repeater? I purchsed a repeater from Radio Shack, but it is a peice o’crap. I was thinking of making something that would transmit/send through CAT5. Do you know how it wouldeb done?

  2. if your idea is to have an IR detector at one end of a cable and an IR transmitter at the other, then this circuit could certainly work.

    But this circuit is set so to have a very low range (so it doesn’t pick up ambient noise). In order to adjust it to a decent range you need to tweak the resistors, specially the lKOms one.

    Finally if you want to transmit IR, simply replace the yellow LED with an IR LED.

    About the cable, I think you could use pretty much any cable, since the IR signals for remotes are usually in the kHz range so the frequency response of the cable is not an issue.

  3. stendall, thats a very interesting idea! I never thought of that.

    Doing so would require:
    1- not using a dead battery (obviously).
    2- modifying the bjt’s biasing or maybe even replacing it altogether.
    3- modifying the form factor of the circuit so it fits in the battery along with as many cells as possible.

    Overall, it could be a bit difficult but definitely feasible.

  4. Have you thought about keep some cells of the 9V batery, and use the to provide energy to the circuit?

  5. I’m a little confused. In the picture of the bread board circuit, the Clear LED appears to be indicating led and the Blue the IR, because of the way they are in the circuit. However in the last picture you show the blue led facing out as if it is the indicating LED. What am I missing here?

  6. I see why you’re confused Anonymous. The blue LED is used to detect the IR light and the clear LED is a standard yellow LED.

    However, in the last picture the LED sticking out from the top of the battery case seems to be blue. This is caused (I guess) by something blue on the environment reflecting on the clear LED.

    In short, the LED coming out from the top of the battery case is the clear one but it looks blue for some strange reason.

  7. I often find it easier to just use a TSOP variety of IR demodulators. This is the one I use in the UK:

    All it does it receive a 38kHz IR signal in, like that from a remote, and produce a a logic one output. Obviously much more noise resistant than a simple photodiode that react’s to all sorts! (There are other frequencies available)


    P.s. On a simple robot I i did a while ago, I did exactly the same thing you are about to. Take a look

  8. Thanks for the tip Phill. Now I finally know how those three-legged “IR diodes” work. I think I have some of those laying around so I’ll give that a try for sure.

  9. Anonymous, on the fist picture, I placed one of the AAAA batteries underneath the detector so it would be at the same height as the remote (which is thicker than most remotes)

  10. I was curious about the first picture, the one with the remote. What are the two prongs sticking out of the sides of the project battery?

  11. Thankyou very much. Early today I started this project, I have my project battery ready. After a trip to Radio Shack tomorrow I’ll be ready to finish it up. It’s a very neat project.

  12. The IR diode is basically an IR light. If you forward bias it, it will light up (of course you won’t be able to see the light with the naked eye)

  13. dude i want to know…..wat will happen if i use a forward biased ir diode….cn u just explain me why not we use the forward biased case…sorry for the trouble

  14. hey if that is so….then cn an ir diode detect ir rays too?????i mean u r using it for detecting ir rays right….but a diode cn only emit right not detect….i mean is ir diode and ir sensor the same????

  15. hey dude help me here…i think i’ve lost my basics here…i just wanna ask howcome an led meant to emit rays absorbs them to generate electric signals….pls reply …cn i get ur yahoo or orkut id..maybe we cn chat sumtime

  16. LED emit light when a current passes trough them in a certain way. Similarly, they allow current to pass trough them when when an appropriate light is shined to them.

  17. Hi there. I’m interested in using this ciruit to power a small hobby motor (1.5-3v) in addition to the L.E.D. Due to the nature of the project, I also need to power the circuit with 3 volts only instead of 9. Can you tell me what I’d need to do for these modifications? Thanks!

  18. rbarberian,
    You will have to build a similar circuit (that is, one that uses a transistor as a switch) but you need to use a transistor that will work under your voltage requirements and you’ll have to figure the correct biasing for your circuit to work.

    Here you can find a simple guide about using a transistor as a switch.

    Good luck with your project.

  19. hi there,
    do u have a circuit or project ( IR photo detector circuit that can function when the dark)using 24 VAC?do u have any idea?thank you..

  20. I am developing tv remote for seniors, I need techie to simulate the functions for a PCB on an Arduino board? = proof of concept to show my SETUP and OPERATING environments! Can you help?
    Larry 514-898-3199

  21. Carlitos, this is a great fun circuit. Thanks for posting it. I’m trying to adapt this for use as a soldering project for kids where basically they would make badges that they wear and when they get close to another badge then it would illuminate their LEDs. Your circuit seems perfect for the detection side of this project except that I can’t get it to work unless the IR light is very close to the IR LED. Any tips for how to make this work in a 2′ to 3′ range? I’ve tried various values from 56K to 10K in place of the 1K resistor with little effect. Thanks!

Leave a Comment

Your email address will not be published. Required fields are marked *