Question

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?

Was it helpful?

Solution

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 hobbyist 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

OTHER TIPS

"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

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.

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).

I suggest starting with a plain old c project that reads and parses NMEA from a serial port. You can do this in Windows or Linux.

I usually break down any project like this into a set of smaller projects like:

  1. read and parse NMEA from serial port
  2. establish a serial / network link from the remote device to the tracking system server
  3. integrate the components

Wikipedia has a good article on the NMEA protocol. As Adam points out it's actually pretty simple.

Circuit Cellar magazine often has projects like this as well.
Depending on what you want to do, there are various sizes of target to consider. Use Atmel AVR for small low power (battery) stuff. Perhapse use Linux on an old laptop if I just wanted to rough out the concept and needed WiFi (or cellular) for internet.

The laptop Linux prototype then could be trimmed down and ported to an embedded Cinux system for even lower battery usage and portability later on. (not as low as Atmel though).

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.

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.

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?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top