Fail of the Week: GPS module design

fail-of-the-week-gps-receiver-design

GPS is really fun to play with in your projects. But when [Trax] decided to build a GPS chip into his design the fun ended abruptly. Above you can see the section of the board devoted to the hardware. Unfortunately this PCB fails to provide any GPS location data whatsoever.

[Read more...]

Centimeter-level precision GPS for $900

back

[Colin] and [Fergus] have been working with GPS for years now, and like most builders of really cool things, they’re often limited by the precision of off-the-shelf GPS units. While a GPS receiver is usually good for meters of accuracy,  this just isn’t good enough for a lot of projects. What you need is centimeter-level accuracy, something the guys have managed to do with their Piksi GPS receiver.

Where most GPS receivers only look at the data coming from the GPS satellites orbiting overhead, the Piksi uses another technique, real-time kinematics (RTK), to determine the receiver’s location with exacting precision. The basic idea behind RTK is to look at the carrier frequency of the GPS signals at 1575.42 MHz. This frequency has a wavelength of 19 cm, compared to the alternating 1s and 0s of the that are transmitted at around 1 MHz, or about 300 meters between each bit. While centimeter-level precision isn’t possible with only one receiver, two of these Piksi boards – one base station and one on a vehicle, connected via radio link – can make for a very exacting high-accuracy GPS receiver.

Previously, commercial RTK GPS systems have cost thousands of dollars – making a quadcopter or other homebrew project that relies on this level of precision nonsensical. [Colin] and [Fergus] have built hardware that can bring the price of this setup to under $1000. As a bonus, the Piksi board can also receive from other constellations such as Galileo and GLONASS. A very impressive piece of hardware, and we can’t wait to see the applications.

Homebrew GPS gets ±1 meter resolution with a Raspberry Pi

GPS

We’ve been following the work of [Andrew Holme] and his homebrew GPS receiver for a while now. A few years ago, [Andrew] built a four-channel GPS receiver from scratch, but apparently that wasn’t enough for him. He expanded his build last year to track up to eight satellites, and this month added a Raspberry Pi for a 12-channel, battery-powered homebrew GPS receiver that has an accuracy of about 3 feet.

The Raspi is attached to an FPGA board that handles the local oscillator, real-time events, and tracks satellites automatically. The Pi handles the difficult but not time-critical math through an SPI interface. Because the Pi is attached to the FPGA through an SPI interface, it can also load up the FPGA with even more custom code, potentially turning this 12-channel receiver into a 16- or 18-channel one.

An LCD display attached to the FPGA board shows the current latitude, longitude, and other miscellaneous data like the number of satellites received. With a large Li-ion battery, the entire system can be powered for about 5 hours; an impressively portable GPS system that rivals the best commercial options out there.

This GPS logger is so small…

small-gps-logger

How small is it? Two things should give you a good sense of scale, the SD card slot on the lower right, and the slide switch on the upper left. This minuscule module is an all-in-one GPS logger which [J3tstream] built.

Main system control is provided by a Teens 2.0 board. If you look really closely you’ll see the SD card slot is actually a breakout board which mounts on top of the Teensy’s pinheaders. Also on the board is a PA6B GPS module with a few passive components to support it. The back side of the board hosts a Lithium Ion battery from an old phone. Note the mangled pin header which works as connectors for the battery. [J3tstream] even built a charger into the project. He’s using an LTC4054 chip to handle the charging. We were a bit confused at first because we didn’t see a way to connect external power. But he goes on to explain that the USB port on the Teensy board is used for charging. Just plug in USB and press the button to get things started.

FAA GPS data formatted for your use

faa-gps-data-formatted-with-vb

[Michael] posted up-to-date GPS data sets in the GPX format.  These data sets are an alternative to paid updates. Since GPX is a published standard which uses an XML style formatting for location data [Michael's] time was spent getting the original sets and finding a way to translate them for his Garmin EXTREX GPS.

The original data comes from — hang on, this is a mouthful — the US Federal Aviation Administration’s Facility Aeronautical Data Distribution System (FADDS). He had to apply for permission to download it and to use it in producing a custom GPS build. He grabbed the Airport waypoints and navaid sets, then studied accompanying files detailing the data structure before writing his own Visual Basic 2010 program to spit out the GPX files. He says he wanted to make them available in the spirit of the Open Hardware/Software movement. This may be most interesting for pilots (the kind that put Nooks on the dashboard, not the kind who watch the aircraft from the ground), but we’re sure there’s a myriad of uses for non-pilots alike.

Brute forcing a GPS PIN

pin

[JJ] picked up a Garmin Nuvi 780 GPS from an auction recently. One of the more frustrating features [JJ] ran into is it’s PIN code; this GPS can’t be unlocked unless a four-digit code is entered, or it’s taken to a ‘safe location’. Not wanting to let his auction windfall go to waste, [JJ] rigged up an automated brute force cracking robot to unlock this GPS.

The robot is built around an old HP scanner and a DVD drive sled to move the GPS in the X and Y axes. A clever little device made out of an eraser tip and a servo taps out every code from 0000 to 9999 and waits a bit to see if the device unlocks. It takes around 8 seconds for [JJ]‘s robot to enter a single code, so entering all 10,000 PINs will take about a day and a half.

Fortunately, the people who enter these codes don’t care too much about the security of their GPS devices. The code used to unlock [JJ]‘s GPS was 0248. It only took a couple of hours for the robot to enter the right code; we’d call that time well spent.

You can check out the brute force robot in action after the break.

[Read more...]

UPDATE: Roll your own GPS can now track twice as many satellites

diy-gps-module

[Andrew Holme] wrote in to tell us about some work he’s done to improve his scratch-built GPS receiver. He figured out a way to use the same hardware but double the number of satellites it can track to a total of eight. When we looked at the original hardware about a year ago it was limited to monitoring just four satellites. That’s the bare minimum for calculating position data. This will not only help increase the accuracy, but remove the problems that would have been cause if just one satellite was dropped because of an obstruction or other issue.

His solution is based entirely on using the FPGA in a different way. He had taken up almost all of the gates available in the Xilinx Spartan 3 chip. Now he’s implemented a CPU on the chip and is able take some of the work off of the hardware gate design by running code on it. He also found and squashed a bug in how the data was processed. He says his original work wasn’t taking into account the rotation of the earth when determining position. All of these improvements put his accuracy at +/- five meters even when he’s not tracking all eight satellites!

Follow

Get every new post delivered to your Inbox.

Join 92,295 other followers