Project Abstract

Our project is an mp3 player which broadcasts to FM radio.  The Intel Personal Server is used as the player, which broadcasts its signal to any car, home, or portable radio which can receive an FM signal.  Since the Personal Server has no external interface, a Bluetooth capable cell phone will be used to control the song playback.  The cell phone will be used to display a list of music files and provide all the usual control functions.  (play, stop, next, etc.)  The benefit of such a device is portability.  A user can take their music with them wherever they go and play on most any stereo with no extra hardware or configuration.  Everybody today has a cell phone, and soon they will all have Bluetooth capability as well.  Why not also use this device to control the playback?

 

Project Scenario

            Joe gets out of the shower in the morning.  He’s getting ready for work as usual.  As he gets dressed, he clips his cell phone and personal server to his belt.  He turns on the stereo as he passes through the living room to the kitchen.  It seems that Joe forgot to tune in a radio station because the stereo is playing static.  In the kitchen Joe sets his brief case down and grabs his cell phone.  He accesses a play list of his favorite music and hits play.  Suddenly, the noise that the stereo was making turns to music.  Joe finishes his morning routine and leaves for work.

            In his car, Joe turns on the radio.  Just as he puts the car in gear, Joe remembers that he downloaded a bunch of new songs to his personal server the day before.  He wants to listen to them on the way to work so he grabs his cell phone.  He creates a new play list and adds the new songs to it.  When he loads the new play list the music on the radio stops.  He hits play and his new music starts playing.  On his drive to work, he skips through the songs so he can hear a little of them all.

            Joe enters his office at work and fires up the radio.  It’s the same new music that he was listening to a few minutes ago in his car.  After hearing all of the new songs he downloaded, Joe decides he really likes a couple of the songs, so, again, he grabs his cell phone.  He opens the folder that contains all of his play lists and opens his favorites play list.  He adds the two songs to it, loads the play list, hits shuffle and then play.  Joe puts his phone away and goes about the rest of his day listening to his favorite music.

 

Design Strategy

            There are two major pieces to our project.  The first is the cell phone – personal server interface and the second is the generating an FM radio signal from an MP3 file on the personal server.  We are going to tackle these two areas separately starting with the cell phone – personal server interface.  There are a couple of reasons for this.  The first is these are two distinctly different tasks that have very little overlap.  The two can essentially be implemented separately.  The second reason is that we are not going to have the slappy audio card for a few weeks.  These two pieces are much too large to implement all at once.  So our first major task will be to break each piece into smaller, more manageable tasks.  We will then begin implementing each of these small pieces and test each one thoroughly before we begin the next.

            The most important aspect of the cell phone – personal server interface is the Bluetooth protocol.  The first program we write for the cell phone will be a Bluetooth discovery program.  From there, we will extend the program to actually open a connection with a personal server.  At this point, we will implement a program on the personal server which will listen to data coming in over the Bluetooth serial protocol.  We are going to use the serial Bluetooth protocol because we want to keep this piece of the project as simple as possible.  Once we are able to get reliable communication between the two devices we will turn our attention to writing audio player application to run on the cell phone.  That application is the last major element in the cell phone – personal server interface.

            Turning an MP3 file into an FM radio signal on the personal server can be broken down into three major pieces.  The first is the application which accepts commands over the Bluetooth radio and controls everything, the second is decoding the MP3, the third is using the audio card to convert the digital audio into analog, and the final piece is using the FM radio to broadcast the analog audio signal.  We plan on using freeware MP3 software to do the decoding for us.  That will be our first task.  We will write a simple program that takes an MP3 file as input and returns a WAV file.  The MP3 decoder will plug into this program.  Next, we will extend the program to push the WAV file into the audio chip on the slappy card.  Finally, we will incorporate the FM radio into the program so that it streams the audio out as an FM radio signal.  The last task will be combining this program with the Bluetooth communication program so that it can control playback of the MP3 files.

 

Design Unknowns

The first major unknown to us is Bluetooth.  Neither of us has ever worked with it, and we know next to nothing about how it works.  Our main interface with the server, the cell phone, will communicate with the server via Bluetooth, so understanding of this protocol is vital to our success.  Fortunately, we are meeting with someone next week who can show us the basics of how it works.  The second unknown is not as major of a concern, since it should be straightforward, but FM radio is something we have no experience with.  We assume the interface to this should be easy to throw information to, but it is, nonetheless, an unknown.  A third unknown is mp3 codecs.  We all know about mp3 playback, but we have no idea how the codecs work.  Michael looked at this briefly in the past, but never implemented anything.  We are probably going to need a freeware mp3 decoder that we can run in the personal server for playback, so we will need to find out about how to go about this.  The final unknowns are with the Intel Personal Server.  We have seen the specs and interfaced with it a little at the tutorial, but before the last couple weeks, we had no prior experience with the Personal Server, and still know little about it.  We have plenty of Unix experience, and some Linux experience, so this shouldn’t be too much of a problem.  Finally, there is the Slappy card for the Personal Server.  We still have no knowledge about this sound add-on other than it’s on its way.  We will need to learn about and integrate this card to complete our project.

 

Implementation Plan and Schedule

Our project gets divided into two main parts.  The first part will be the phone interface.  We need to learn Bluetooth and develop the interface application for the phone.  The second part is the music side of things.  The personal server will use the Slappy card to broadcast an mp3 music stream across FM radio.  Since the Slappy card won’t be here for some weeks still, the phone part will come first.  Our skills also naturally divide the work up.  Richard has Java experience, so is better suited for phone development, and Michael has briefly touched on mp3 work, as well as has audio processing experience, so he can work on the Personal Server and Slappy side of things.

 

Here is a rough ordering to how our project will unfold:

-         Learn Bluetooth and dev environment for cell phone

-         Use computer emulators and cell phone to develop cell application

-         Interface cell phone with Personal Server

-         Develop Personal Server application to manage files and playback

-         Integrate Slappy Card

-         Broadcast file playback through Slappy

-         Test, test, test

 

 

 

As for a time schedule, this is as close an estimate as we can make right now:

 

            Week 1 – Wedding Vows

            Week 2 – Project idea decided

            Week 3 – Project strategy and planning, Proposal paper complete

Week 4 – Phone received, play with dev. Environment.  Meeting with Nick Livic to discuss Bluetooth and cell phone development.  Personal Server Received.  Play with PS.

Week 5 – Work on mp3 playback.  Emulate somehow?  Update 1

Week 6 – More of the same. 

Week 7 – Slappy Received?  Better get that phone working!

Week 8 – Everything is put together and starting to look good.  Update 2

Week 9 – Working device!  First Draft of Final Paper

Week 10 – Test, test, test!

Week 11 – Project Due

 

 

 

Resource Requirements

 

            Hardware

·        Intel personal server

·        Nokia 6600 cell phone

·        802.11 WiFi compact flash card

·        1 GB compact flash memory card

·        PC with Bluetooth

·        Personal server daughter board

·        Personal server Slappy card

·        FM radio

 

Software

·        Wireless tool kit (WTK) – J2ME

·        Series 60 MIDP SDK 2.0 for Symbian OS

·        Bluetooth API (JSR-82)