Bluetooth + GPS + ActionScript - Part 1 - Hardware

16 Mar 2008

Overview For this project, my goal was to get GPS data into my Mac for some visualization experiments with ActionScript. After some initial prototypes that worked well using an RS232-to-USB converter, I decided that wasn't slick enough and had it too many wires. I like things nice and clean around my desk, so I opted for adding Bluetooth in place of a USB converter.

After experimenting with some different methods, some using microprocessors and some not, I opted for the simpler route, eliminating the microprocessor. A microprocessor doesn't add anything other than cost for the basic purpose of this project. Although stay tuned for another posting about integrating a similar configuration with the Make Controller and Arduino microprocessors.

Parts List

5v Power Supply Select a 5V power supply to use. In this case, I'm using a switchable 3.3V/5V power supply kit that I picked up from SparkFun. I made a slight modification to it and soldered a 9V battery adaptor to it to make it a bit more flexible and truly wireless rather than using the standard 9V DC wall adaptor. This is just my preference for prototyping. When I get down to a final design, I generally switch it up in favor of a simple voltage regulator to save space and weight.

BlueSMiRF Embedded Bluetooth Serial RF Link The BlueSMiRF module is sweet little device, providing an easy way to link any project using a serial interface to a computer (or another BlueSMiRF module). Simply connect the TX, RX to another serial device along with vcc (4.5V-5.5V) and ground and it is ready to pair.

EM406A GPS Board This small board uses the SiRF Star III chipset, which is a nice chipset that is relatively stingy on power supply and can fix its position - known as TTFF (Time To First Fix), even in indoor environments, in a matter of 30 seconds or so. Just keep in mind that the odd peach-colored ceramic part is the antenna and should point towards the sky. Many other chipsets offer significantly less in terms of performance and most are unable to fix a position unless outside. I was sold on it since happens to be the same chipset that I have in my Garmin CS60x, a considerably more expensive device.

Besides all that, the EM406A is a perfect candidate for integration with physical computing projects because it's output is serial. It starts outputting NMEA strings at 4800 baud once its position is fixed. NMEA 0183 is a standard with which GPS data is transmitted from a device using comma-delimited strings. For more information on NMEA, consult this resource.

The documentation for the board itself is well done. In addition to the NMEA strings that are broadcast from the board itself, the EM406A can have commands sent to it via its serial interface to get specific NMEA data back.  The only catch is be sure to get an 6-pin extra interface cable along with the board itself.  I cut the interface cable in half and then soldered the wires some headers to make prototyping easier. Otherwise it's going to be impossible to do anything useful with it.

Schematic Now that we have all that down, here's a little schematic of how everything is hooked up together:


Next Article In the next post, I'll be working through the software aspects of this project.