Busting GPS Exercise Data Out Of Its Garmin-controlled IoT Prison

If you take to the outdoors for your exercise, rather than walking the Sisyphusian stair machine, it’s nice to grab some GPS-packed electronics to quantify your workout. [Bunnie Huang] enjoys paddling the outrigger canoe through the Singapore Strait and recently figured out how to unpack and visualize GPS data from his own Garmin watch.

By now you’ve likely heard that Garmin’s systems were down due to a ransomware attack last Thursday, July 23rd. On the one hand, it’s a minor inconvenience to not be able to see your workout visualized because of the system outage. On the other hand, the services have a lot of your personal data: dates, locations, and biometrics like heart rate. [Bunnie] looked around to see if he could unpack the data stored on his Garmin watch without pledging his privacy to computers in the sky.

Obviously this isn’t [Bunnie’s] first rodeo, but in the end you don’t need to be a 1337 haxor to pull this one off. An Open Source program called GPSBabel lets you convert proprietary data formats from a hundred or so different GPS receivers into .GPX files that are then easy to work with. From there he whipped up less than 200 lines of Python to plot the GPS data on a map and display it as a webpage. The key libraries at work here are Folium which provides the pretty browsable map data, and Matplotlib to plot the data.

These IoT devices are by all accounts amazing, listening for satellite pings to show us how far and how fast we’ve gone on web-based interfaces that are sharable, searchable, and any number of other good things ending in “able”. But the flip side is that you may not be the only person seeing the data. Two years ago Strava exposed military locations because of an opt-out policy for public data sharing of exercise trackers. Now Garmin says they don’t have any indications that data was stolen in the ransomware attack, but it’s not a stretch to think there was a potential there for such a data breach. It’s nice to see there are Open Source options for those who want access to exercise analytics and visualizations without being required to first hand over the data.

Not Just GPS: New Options For Global Positioning

A few weeks ago, China launched the final satellite in its BeiDou-3 satellite positioning system. Didn’t know that China had its own GPS? How about Europe’s Galileo, Russia’s GLONASS, or Japan’s QZSS? There’s a whole world of GPS-alikes out there. Let’s take a look.

Continue reading “Not Just GPS: New Options For Global Positioning”

Number Crunching GPS For The DIYer

Many of us have had cause to add GPS to a project, whether it’s because we need an accurate timebase or just want to know where the bloody thing is. Normally, this consists of plugging in a cheap module and making sure the antenna has a good view of the sky. [Mike] wanted to dig deeper, however, and figure out just what goes into decoding a GPS signal and calculating a location fix.

[Mike]’s investigation combined several avenues of investigation. In terms of decoding live radio signals, he selected a KiwiSDR software defined radio. Combined with a Digilent Nexys 2 FPGA, it was now possible to get live data off the air and into the PC quickly for decoding. In concert with this, [Mike] used a sample of raw GPS data captured in Nottingham, UK in order to test his code. After much experimentation, [Mike] was able to get the data decoded with 700 lines of C code. Decoding three minutes worth of data took all night, but further development allowed things to be sped up over 200 times. For the curious, the code is up on Github to convert raw ADC samples into actual location fixes.

Armed with the wealth of resources online and the right hardware, [Mike] was sucessfully able to achieve his goal, and figure out just precisely where his house is, to boot. As a bonus, the whole project was inspired by a similar project posted in these very pages back in 2013! If you’re working on your own satellite-based projects, be sure to drop us a line.

Tracking The Satellites That Keep Us On Track; Monitoring GPS, Galileo, BeiDou, And GLONASS

We may not always be aware of it, but the daily function of the technological world around us is extremely dependent on satellite navigations systems. It helps the DHL guy deliver those parts you were waiting for, and keeps the global financial and communication systems running with precision timing. So, when these systems have a bad day, they can spread misery across the globe. To keep an eye on these critical constellations, [Bert Hubert] and friends set up a global open source monitoring network that aims to track every satellite in the GPS, Galileo, BeiDou and GLONASS constellations.

Local azimuth and local elevation of GPS, Galileo, and BeiDou satellites passing overhead [via @GalileoSats]
Off-the-shelf GNSS receivers are used to feed navigation messages to a machine running Linux/OSX/OpenBSD. The messages are processed to calculate the position (ephemeris), extract atomic clock timings and status codes of each satellite. Publicly available orbital data is then used to make an informed guess regarding the identity of the satellite in question.

All this data enables [Bert] to determine ephemeris discontinuities, time offsets, and atomic clock jumps. The project’s twitter feed, @GalileoSats, is very active with interesting updates. Go check it out! All the collected data is available for research purposes and the software is up on Github.

GPS hacks are never in short supply around here and another open source satellite network, SatNOGS has been featured a number of times on Hackaday after it won the 2014 Hackaday Prize.

Thanks for the tip [DarkSideDave]!

Building A GPS With Bug Eyes And Ancient Wisdom

The Global Positioning System (GPS) is so ingrained into our modern life that it’s easy to forget the system was created for, and is still operated by, the United States military. While there are competing technologies, such as GLONASS and Galileo, they are still operated by the governments of their respective countries. So what do you do if you want to know your position on the globe without relying on any government-operated infrastructure?

According to the team behind [Aweigh], all you have to do is take a cue from ancient mariners and insects and look up. Using two light polarization sensors, a compass, and a bit of math, their device can calculate your latitude and longitude by looking at the daytime sky. With their custom Raspberry Pi shield and open source Python 3 software, the team envisions a future where fully-independent global positioning can be tacked onto all sorts of projects.

The concept relies on the Rayleigh model, which is essentially a polarization map of the sky. As light from the sun is scattered in the Earth’s atmosphere, it creates bands of polarization which can be identified from the ground. Essentially it’s the same principle that makes the sky appear blue when viewed with human eyes, but if you have two light sensors looking at the proper wavelengths, you can use the effect to figure out where the sun is; which the team says is precisely how some insects navigate. Once the position of the sun is known, [Aweigh] operates like a modernized, automatic, sextant.

Naturally, this is not an ideal solution in all possible situations. In an urban environment, a clear view of the sky isn’t always possible, and of course the system won’t work at all once the sun goes down. In theory you could switch over to navigating by stars at night, but then you run into the same problems in urban areas. Still, it’s a fascinating project and one that we’re eager to see develop further.

Incidentally, we’ve seen automated sextants before, if you’re looking for a similar solution that still retains that Horatio Hornblower vibe.

Running Doom On A Doomed GPS

What’s the first thing you think of when you see an old GPS navigation system for sale cheap at a garage sale? Our research indicates that 100% of people would wonder if it could run Doom; at least that’s what we conclude from the single data point we have, anyway. [Jason Gin] asked and answered the question — with a resounding yes — about his recent acquisition.

The unit in question is a Magellan RoadMate 1412 running Windows CE. After some playing, [Jason] found that simply connecting the unit to a computer via USB caused all the application files to appear as a FAT-formatted volume. Replacing the obviously-named “MapNavigator.exe” with a copy of TotalCommander/CE allowed browsing around the filesystem.

This revealed that much was missing from the CE install, including the Explorer shell and command prompt. Either could be used to launch Doom with the required command-line arguments. Luckily, [Jason] had another trick ready, namely using MortScript (a scripting engine) to launch the Doom executable. This worked like a charm, and after a few tweaks, he now has a dedicated demo box.

We say “demo box” instead of “Doom machine” because without a keyboard, you can’t actually play the game — only view the demo. In a valiant attempt, he connected a USB OTG connector, but the GPS doesn’t seem to recognize input devices, only USB storage devices. Keep at it, [Jason], we’d love to see you crack this one!

[Jason] is no stranger to hacking Windows CE devices. Last time we checked in, the target was a KeySight DSO1102G oscilloscope.

Continue reading “Running Doom On A Doomed GPS”

GPS And ADS-B Problems Cause Cancelled Flights

Something strange has been going on in the friendly skies over the last day or so. Flights are being canceled. Aircraft are grounded. Passengers are understandably upset. The core of the issue is GPS and ADS-B systems. The ADS-B system depends on GPS data to function properly, but over this weekend a problem with the quality of the GPS data has disrupted normal ADS-B features on some planes, leading to the cancellations.

What is ADS-B and Why Is It Having Trouble?

Automatic Dependent Surveillance-Broadcast (ADS-B) is a communication system used in aircraft worldwide. Planes transmit location, speed, flight number, and other information on 1090 MHz. This data is picked up by ground stations and eventually displayed on air traffic controller screens. Aircraft also receive this data from each other as part of the Traffic Collision Avoidance System (TCAS).

ADS-B isn’t a complex or encrypted signal. In fact, anyone with a cheap RTL-SDR can receive the signal. Aviation buffs know how cool it is to see a map of all the aircraft flying above your house. Plenty of hackers have worked on these systems, and we’ve covered that here on Hackaday. In the USA, the FAA will effectively require all aircraft to carry ADS-B transponders by January 1st, 2020. So as you can imagine, most aircraft already have the systems installed.

The ADS-B system in a plane needs to get position data before it can transmit. These days, that data comes from a global satellite navigation system. In the USA, that means GPS. GPS is currently having some problems though. This is where Receiver autonomous integrity monitoring (RAIM) comes in. Safety-critical GPS systems (those in planes and ships) cross-check their current position. If GPS is sending degraded or incorrect data, it is sent to the FAA who displays it on their website. The non-precision approach current outage map is showing degraded service all over the US Eastern seaboard, as well as the North. The cause of this signal degradation is currently unknown.

What Hardware is Affected?

GPS isn’t down though — you can walk outside with your cell phone to verify that. However, it is degraded. How a plane’s GPS system reacts to that depends on the software built into the GPS receiver. If the system fails, the pilots will have to rely on older systems like VOR to navigate. But ADS-B will have even more problems. An aircraft ADS-B system needs position data to operate.  If you can’t transmit your position information, air traffic controllers need to rely on old fashioned radar to determine position. All of this adds up to a safety of flight problem, which means grounding the aircraft.

Digging through canceled flight lists, one can glean which aircraft are having issues. From the early reports, it seems like Bombardier CRJ 700 and 900 have problems. Folks on Airliners.net are speculating that any aircraft with Rockwell Collins flight management systems are having problems.

This is not a small issue, there are hundreds or thousands of canceled flights. The FAA set up a teleconference to assess the issue. Since then, the FAA has issued a blanket waiver to all affected flights. They can fly, but only up to 28,000 feet.

This is a developing story, and we’ll be keeping an eye on it. Seeing how the industry handles major problems is always educational, and there will be much to learn in the coming days.