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)