• Home
  • Projects
  • Scavenger Hunt Beacon Decoder and AVR Programmer
  • Featured User: kurt


    Open-source hardware project hosting is my passion. I spend most of my free time building neat gadgets or planning what I'll build next. I love building things, and I want to make Open Hardware Hub a place that inspires others to build, ...

    Learn More

  • Updates 2013 February 18

    It's been a while, hasn't it? Well, that's ok because we've got a lot of updates to talk about. Most of these have been effective on the site fora couple weeks now. A few may or may not be active when this article gets posted, but they'll certainly be applied in the ...

    Find Out More

Scavenger Hunt Beacon Decoder and AVR Programmer

Download this project


By: kurt

Use this to decode the messages broadcast by a Scavenger Hunt Beacon. The messages are displayed on an LCD screen when the Beacon's IR beam hits the Decoder's receiver. This project also doubles as an AVR Programmer Shield for an Arduino.

Download project description w/o images
Download project description w/ images


Download all project files

Bill of Materials

Qty Part # Description Schematic ID Source
1 B10fcd91e54061e9748ca26c34782bc79400bf95 WP7113LID 5MM LOW CURRENT RED LED, LAMP THOLE, BULK LED_ERR Source
1 A07eb5fb7179fcbce523adfc0ee2b1bbb3e21729 WP7113CGCK 5mm Green LED,Water Clear/Domed Lens, PB Free LED_PROG Source
1 736f650fde788a7f97f135acb7b8b69d6b07413f OVLGY0C9B9 LED, 5MM, TAPERED, YELLOW LED_HB Source
3 8d17dc6357d99d17730430c3718a0a959d650925 CF14JT100R 1/4w 100 ohms 5% Carbon Film Resistors R1, R2, R3 Source
1 B801d8f05b0d95575730424193bbc52a2a7a4aa0 CF14JT4K70 1/4w 4.7K ohms 5% Carbon Film Resistors R4 Source
1 Cf767e5ea21f9ba1ad6d170149edf00a529c7fbd CT6EP103 TRIMMER 10K OHM 0.5W TH P1 Source
1 64b0354d81db0a86f34f3cc0b5ff21d1a27b0677 LCD Display 20 x 4 Blue LCD Character Display Source
loading total from bomfire.com...

Download BOM w/o images
Download BOM w/ images


1. Gather Parts

Make sure you've got everything in the parts list above.


2. Solder Resistors

Solder the four resistors in place. You may have to prop them up on one side because the footprints on the PCB (printed circuit board) are too small.


3. Solder Large IC Sockets

Solder the two IC sockets down. By putting two sockets back-to-back like this, we can program any size AVR microcontroller with this board.


4. Solder Small IC Socket

Solder the small IC socket. This socket is designed to be used when programming an ATTiny13. It can also program any other 8-pin AVR microcontroller provided that the pins are the same for MISO, MOSI, VCC, GND, and RESET.


5. Solder Phototransistor

The black phototransistor should have the flattened side facing in towards the middle of the board. (The collector and emitter of the phototransistor are marked on the board if you wish to double check.)


6. Solder LEDs

The LEDs should line up with their outlines on the board. The LEDs I used look different from the ones in the parts list, but any LED should work.


7. Solder Female Headers

Solder the female headers on either side of the two big IC sockets. These headers connect directly to the IC pins closest to each socket. Wires should be soldered into the 6 holes marked "Wires". The free ends of these wires can be inserted into these female headers to configure the board so that it can program any AVR microcontroller inserted into the large IC sockets.


8. Solder ICSP Header

Solder two 3-pin male header strips where the board is labeled ISP. (It should be labeled ICSP. That is a typo on the board artwork.)


9. Solder Female Header and Potentiometer

Solder another female header strip across the top of the board. This header strip is where the LCD screen will plug in. Solder the potentiometer in place. You will probably have to bend the legs of the potentiometer to get them to fit in the holes. This potentiometer adjusts the contrast of the LCD screen. If you can't see any characters on the LCD screen, try adjusting this to make them show up.


10. Solder Male Headers

Solder the make headers on both sides of the board. The headers should point down so that they can be inserted into the female headers on the Arduino.

Img_0515 Img_0521

11. Use it! AVR Programmer

Plug your ATTiny13 into the socket marked "ATTiny13". Then plug the Decoder board into your Arduino. Connect your Arduino to your PC and download the ArduinoISP sketch to the Arduino. You can find this sketch by going to File -> Examples -> ArduinoISP as shown in the image to the left.

Once the ArduinoISP program is uploaded, the yellow heart beat LED should begin pulsing. This shows that the Arduino is ready to program an AVR microcontroller.

Next, program the AVR microcontroller. Navigate to the folder that holds your .hex file in a command prompt window. (Open the Start Menu, type cmd, and press enter to open a command prompt in Windows 7.) Execute the command below.
C:\WinAVR-20100110\bin\avrdude.exe -p t13 -P com5 -c avrisp -b 19200 -U flash:w:"Scavenger Beacon.hex"

You will have to modify some things in the above command. Change com5 to whatever port your Arduino is on. (In Windows you can find this by opening up Device Manager.) Also, replace Scavenger Beacon.hex with the name of the .hex file you want to program. If you want to program a microcontroller other than an ATTiny13, then you will have to change the t13 to match your new micrcontroller. You might also have to change the path to avrdude.exe depending on where you installed it. The path shown is where AVR Studio installed avrdude.exe for me.

Img_0558 Img_0556 Arduino%20icsp

12. Use it! Beacon Decoder

Plug your 16-pin LCD into the female header at the top of the board. Plug the Decoder into an Arduino. Connect the Arduino to your computer. Download the Scavenger_Beacon_Decoder.pde sketch. Upload it to your Arduino. To decode messages from a beacon, line up the IR LED on the Beacon with the black phototransistor on the Decoder. Watch the demo movie at the top of this page to see the decoder in action.

Img_0562 Img_0563

Download steps w/o images
Download steps w/ images


2 -
1 - Initial project release
Add revision

blog comments powered by Disqus