views:

809

answers:

9

I'm just starting to design some embedded devices, and am looking for resources.

What I want to be able to do is to connect a GPS receiver to a lightweight SBC or mini-ITX, x86-based computer, and track a remote-controlled vehicle's location/progress.

Ideally, this could morph into building some hobby, semi-autonomous vehicles.

But what I need to start with is a development board for GPS programming.

What boards/packages have you used, and where can I find [preferably open source] development for them?

+3  A: 

"NMEA" is the keyword to be searching for when looking for this stuff. While I haven't done anything with this in a long, long time, here is a good source for some boards and other hardware:

http://www.sparkfun.com/commerce/categories.php?c=4

busse
+2  A: 

We have had good luck with Holux GPS recievers (designed for samsung q1). A farily simple connect over serial port and you can read the NMEA string.

Adam Lerman
+1  A: 

What OS are you targeting? If it's Linux there are a lot of GPS libraries available (here's a good list). GPSd and GpsDrive are two of the more popular ones I've seen.

I haven't see any GPS devices specifically for lightweight/embedded use, but many of the consumer GPS devices have USB hookups available that could probably work (watch out for low end ones, they usually don't have the computer interface).

John Meagher
+3  A: 

OpenEmbedded is a good place to go to get started. A lot of embedded products use ARM and other processors, so cross-compiling is a big deal. Buildroot is another resource for building custom linux kernels for small systems.

You can also find lots of manufacturers with Single Board Computers (SBCs) that have tools to do what you want - do a google search for "SBC Linux" and you should have a gold mine.

LinuxDevices keeps a pulse on the linux embedded community and you should find several good articles there that lead you to products or software to help you.

Debian has an embedded build, but I haven't explored that.

There are several books on embedded linux available if you want to go that route.

The GPS receiver simply connects to a serial or USB port, and present an NMEA stream of data, which you can parse with GPSD and several programs can access it through GPSD. It's a very simple text based format.

I've used regular PC motherboards, and Atmel AT91 processors for embedded systems (with GPS, cellular, etc). There's a lot of information out there right now, and it's not expensive to get into. If I were to start a new project, I'd look at the AVR32 processors from Atmel - they are very hobbiest friendly, and provide a lot of community support for linux on the AVR32 architecture. They provide free GCC compilers and significant framework and examples if you want to go the OS-less route and have a single program running on the processer as well.

Good luck!

Adam Davis
A: 

@john I haven't picked an OS yet. At this point I'm more than willing to go with what makes sense. If it makes sense, I can work on something like the basicstamp (for example), where I'd be writing the control app and the communication between the gps device and the computer and the servos

warren
+2  A: 
JeffV
+2  A: 

If you are comfortable with programming in Linux I would recommend the Gumstix range of small computers - http://www.gumstix.com/

You could pair the vedex motherboard with the GPSstix expansion board tp make a tiny GPS receiver with a well supported programming environment.

geometrikal
A: 

Some people here have suggested devices like the gumstix - embedded devices which cost $149 without GPS. I don't understand that bit. A off-the-shelf TomTom comes with running Linux on ARM, built-in GPS, lots of flash, battery and screen. It's hard to beat the price advantage that comes with mass production. For your hobby project, the map included is not needed, but who cares?

MSalters
+1  A: 

I suggest GPSBabel to communicate with your GPS receiver.

GPSBabel

  • Handles waypoints, tracks, and routes,
  • Knows lots of format (this explains the name Babel),
  • Runs on Windows, Linux, OSX,
  • Free.
rics