01 Sep

RFiDJ

0

The RFiDJ project is my first attempt at an application in Imperceptible Computing. After work I like to listen to music/radio for a bit to unwind. This usually involves logging into my HTPC and selecting a playlist. For this project I attempted to change how I interact with my music and HTPC. Using RFID tags and photo frame coasters I am attempting to simplify the interface to my music.

 

[flickr-photo:id=4087056386,size=m,style=margin:10px]
The architecture of this build is very simple. It starts with the USB RFID Reader.

 

[flickr-photo:id=4087561356,size=m,style=margin:10px]
The reader is powered via USB and uses a virtual comport driver for communication.

 

[flickr-photo:id=4086804563,size=m,style=margin:10px]
[flickr-photo:id=4087856506,size=m,style=margin:10px]
The RFID tags are 50mm Round Tags that fit perfectly into photo coasters I found a Target.

 

The included source was developed with Visual Studio 2008. It opens the comport and waits for registered IDs. Once an ID is received and compared to the registered list, it sends a command to the Squeezebox Server and the music starts playing. The last piece of the puzzle is that the Squeezebox Server doesn't include a local player. To add that functionality I am using Softsqueeze.

 

[flickr-photo:id=4087099971,size=m,style=margin:10px]
The coasters I have defined for RFiDJ play the following:

- WTOP Radio Station
- KFI Radio Station
- This Week in Science Podcast
- This Week in Tech Podcast
- Scientific American Podcast
- SpaceVidCast Podcast
- Jack Johnson Album

 

[flickr-photo:id=4087100283,size=m,style=margin:10px]
One of my favorite coasters is defined as Random Play. It will generate and play a random playlist from my music collection.

 

Here is RFiDJ in action! Works great. Checking out the morning traffic report or keeping up with my favorite podcasts couldn't be simpler.

 

This is code is functional but could use a few features to make it easier to use. If I were to continue development the following features would be a must.

1) ASCII config file
2) Small GUI that can be minimized to system tray
3) Start on Windows option
4) Variable keep alive timer when coaster is removed
5) Timeouts for when the reader or server are not responding