A slightly abbreviated post today – we’ve just driven 380 miles to Phoenix from LA for Intel ISEF, where Eben’s talking tomorrow, and we’re ready to drop. But I was mailed this amazing piece of work this morning, and it really deserves your attention.

Andrew Holme is a member of the Systems Group at Broadcom Cambridge. He’s friends with several of Raspberry Pi’s engineers, and he’s been working on a homemade GPS receiver in the evenings for the last few years. Recently, he’s added a Pi to create a truly portable, battery-powered receiver.

It’s a remarkable piece of work. It shouldn’t be possible to build a GPS receiver like this out off-the-shelf parts. There is no custom silicon in this build; it’s all very, very clever use of an FPGA (field-programmable gate array) to implement the digital logic sections of the pipeline. My electronics isn’t good enough to really understand much of what’s going on here: all I can really tell you is that there’s an analogue front end and 1-bit ADC (analogue to digital converter) followed by all kinds of mad-clever digital stuff. So I’m not going to summarise what Andrew has done, but fortunately for us all he’s written the project up in incredible detail, so you can have a poke around yourself. Please do visit the link; this is one of the most impressive projects we’ve ever seen attempted with the Pi.

A bit of housekeeping: please be aware that posts this week will be a bit (or, as today, a lot) later in the day that you’re used to, because I’m several thousand miles further to the left than normal. There also won’t be quite as much Twitter activity from us as usual while we’re travelling, but the official Facebook and G+ pages will be forging ahead as normal. (Thanks Lorna!)

I don’t think cutting PCBs is necessarily a problem from that point of view – if you’re restricting yourself to only things that go on veroboard you’re not going to be able to build anything that’s a recognisably modern IC!

The fact that he still has a demon.co.uk website after all these years, tells you everything you need to know. I’m going to hazard a guess at hand-crafted HTML a ballsy trust in FTP and a ham radio handle, too. These kinds of people make Britain great.

Actually CBer’s “handles” may have come from a lame imitation of hams. The first time I heard the term was as a kid back before CB was around, visiting a ham shack. It wasn’t some silly made up CB nickname, it was his real name, as in, “Hi, the handle’s Bob.” — just a colorful word for “name”. Maybe this was just something people (not only hams) said in casual conversation with strangers back then. But I think it was part of the ham lingo, like OM (old man), YL (young lady), XYL (wife), CQ, and 73. Amateur radio is a great hobby and has made important contributions to technology and to the public in times of emergency.

That’s pretty neat.
Lucky Andrew’s in the UK. If he hasn’t coded in limitations to operations above 18000m and 515 metres/second, that receiver is classified as a munition by the US and subject to ITAR export restrictions.
Should be a boon to high-altitude balloon-launchers sick of having GPSes stop functioning at altitude.

Note that you can buy GPS units without altitude restrictions, for example http://www.adafruit.com/products/746 The ITAR limit is on BOTH altitude and velocity at the same time (although it is true many mfr. implement an either-or limit). Most balloons do not exceed 515 m/s (1854 km/h) !

If all you want is basic GPS functionality then it is almost certainly cheaper to buy a $25 USB GPS, but if you want a better performing model with an antenna then that is going to be a bit more. But that ignores the cost of acquiring the knowhow/expertise that has gone into this project, which is what makes it so brilliant.

Having said that it is a great project, its Pi-ness is somewhat limited, being a port of work already done on a PC, which I suspect is the case with many of the more impressive projects so far. Nothing wrong with that because in most cases the Pi is a more convenient host for the project (and I must admit that most of the coding that I have done to date has been reworkings of stuff already coded for PC’s and handhelds), but I look forward to seeing some all-original Pi-based projects tat will start showing up with the new camera boards.

Anything that can listen to a constantly-changing flock of up to a dozen satellites that are each no closer than about 12,000 miles (and always seem to be going below the horizon, despite the statistics and orbital dynamics that say that’s impossible) is a pretty neat trick. Add to that figuring out the time-difference-of-arrival to establish isochrones (lines of a simultaneous arrival time), then calculate where those isochrones intersect – in three dimensions (break out the conversion table for steradians, Mr. Chekov!). At that point you’ve got a project certain to drive you completely batty as you push on a problem in one place, and another pops up over there … where you juuuust can’t quite reach!

Most EEs I grew up with have long since moved to software development full-time, but this is one of those few remaining disciplines where RF propagation, signal detection, processing, quantization, 3-D trigonometry, and good ol’ engineering approximations abound as challenges. It’s loads of “fun”, especially when you add to the mix the problem of being in an aircraft or on a ship far over the horizon from land in any direction, and no one happens to have a sextant and a copy handy of something like the six volumes of H.O. (Hydrography Office) Publication 229, aka the celestial navigation tables. I’ve done a three-celestial-body fix to within one nautical mile accuracy in under a minute, but that was a lonnnnng time ago in a galaxy far, far away!

This ranks right up there with the best of any electronic projects, let alone Pi projects, and I can’t wait to see what comes along to top this – it’s going to be a tall order, that’s for sure! Could a Pi-powered Honda ASIMO-style robot that can do forward flips while running be far off? :D

As Liz hinted at in the introduction, by using highly specialised (i.e. single-purpose) silicon chips.
Miniaturisation similar to the way that modern CPUs now have over a billion transistors! http://en.wikipedia.org/wiki/Transistor_count