Getting Lost in the Internet of Things: How to Build a Personal Locator Beacon
For over 20 years I’ve been exploring the woods and mountains across North America with a wide array of nearly disastrous results. I’ve had frostbite, hypothermia, heat stroke, giardia, and a near-constant expression of dumb-foundedness on my face. For a short while, I was a member of of the Western State College Mountain Rescue group and saw that my mistakes were not entirely unique to me. Knowing how important these issues are first hand, some co-workers and I decided to try and tackle these issues as part of a Pebble Smartwatch hackathon in Boulder last month.
Let’s start off with the basics.
Personal Locator Beacons are high-frequency radios that emit a signal that can be picked up by aircraft or satellites and direct rescue personnel to the user’s location. A collection of nations provides the satellites and maintains the network, and as a result nearly everywhere on earth has some degree of coverage. PLBs are used by sailors, explorers, climbers, and the military. They run from a few hundred dollars all the way up to thousands of dollars.
The units contain a GPS antenna to determine the user’s location, a battery and a radio to emit the signal. Given the simplicity, my colleagues and I decided to try to make one for the Pebble Rocks Boulder Hackathon, beginning with a personal locator beacon application for the phone and watch.
You can view our presentation for the finals here.
One of the issues with most PLBs is that they are bulky. They are about the size of a large walkie-talkie, and this causes them to frequently get left behind. Breitling, a high end watch manufacturer, makes a watch called Emergency which contains a small emergency transmitter built into the watch itself. It’s pretty cool since you’re unlikely to leave the PLB at home… the only downside is that it costs $18,000. When we got invited to the Pebble Hackathon we decided to see if we could replicate the expensive Breitling watch for far less money.
The Pebble Time is a smartwatch that uses a color e-ink display rather than an LCD, it also has a slower processor than most other smartwatches and is less expensive than most. It has 7–10 days worth of battery life, which is critical to the needs of a PLB. In order for an emergency beacon to work correctly, it needs to be left on - sometimes for days at a time. It transmits in short bursts hoping to catch a satellite or aircraft within its range and to notify them when someone needs help. Most smartwatches like the Apple Watch and the Android Wear watches will be lucky to get a full day’s worth of battery life if it’s constantly trying to read GPS data and also transmit a rescue signal.
Another feature that the Pebble Time brings is the smart strap connector. There is a small magnetic serial port on the back of the watch that allows data to get passed back and forth to connected devices.
Typically, a smartwatch can only receive and send data to devices via bluetooth which requires more power than is needed to send a simple signal to a nearby transmitter. The serial port allows the watch to communicate with the transmitter for a longer time before the battery runs down.
The first step of this project was to make sure we could send a signal. Mike Cassano, our C expert grabbed an Arduino Uno and used a small 434mhz transmitter to see if we could use the Arduino to transmit data to the transmitter and have it get picked up using a USB antenna analyzer.
Below is a list of the products you need to do this. You will spend approximately $75-100 on the below items. If you need to purchase a Pebble Time, it will be an additional $200+.
- Arduino Uno
- 434mhz Transmitter
- Misc Jumper Wires
- Software Defined Radio Antenna (This is a radio antenna for a computer that allows you to tune to a specific frequency it’s ideal for testing out low power radio projects)
We used a 434mhz transmitter because a 406mhz transmitter is reserved for emergency use only. It is possible to build a 406mhz transmitter, but few are available on the commercial market. To avoid creating false signals we used a civilian band that is commonly used for helping users locate downed RC aircraft or weather balloons.
Here is how you wire the Arduino.
With this setup, we fired up the SDR (Software Defined Radio) and tuned to 434mhz and had meaningless noise being broadcasted on that frequency.
The next step was to figure out how to pass data to the Arduino so we could transmit something more important than just a screech of loud static. We decided to take a fixed set of GPS coordinates and encode them into hexadecimal digits, convert them into binary and then passed it to the Arduino so it would broadcast that signal once every other second.
A typical PLB will do this less frequently, but for testing we got tired of firing the message once every five minutes. This worked like a charm, but next, we needed to pull in real data.
Now that we were able to pass a static set of GPS coordinates to the transmitter, we needed to be able to send a real set of coordinates to the watch and have that hand off to the transmitter.
Using the bluetooth connection to the smart phone, we passed the GPS coordinates to the watch, and then using the smart strap serial connector, we fed that to the serial input on the Uno. Since the Uno was already programmed to receive data from the USB connection, we had to change so that it would off the serial instead.
PLBs are not meant to be used for scenarios where you can contact assistance using another means like a cell phone or flagging down help on a busy road, like getting a flat tire. They’re meant to save people from life or death situations where they have no other means to get help. Even though cell service is sporadic in the mountains of Colorado, I frequently bring a smart phone with me so that I can use its GPS antenna to map my location and identify landmarks.
While a PLB can save your bacon in a desperate situation, it’s not instant. There could be atmospheric effects that prevent your signal from getting out, tree cover, or just the unfortunate luck that a low earth orbit satellite isn’t directly overhead. That being said, the transmitter needs to keep broadcasting and you need to make sure you can survive long enough to get rescued. Taking this into consideration, we decided to make the strap itself out of parachute cord and use a pre-made buckle that included a ferrorod fire starter.
Assuming that most users wouldn’t know how to build a survival shelter or know how to start a fire with these basic implements, and since the instructions themselves were short enough, we had them load directly onto the watch so that they’re always available. Additionally, we created a control that would allow the user to turn the beacon on and off and show that it’s reading GPS coordinates from the phone.
We came up with a really basic layout just to get the information across and wrote some guides on how best to use the cord and fire starter to stay alive for several days.
You can download the C code that Mike Cassano, Tyler Merry, and Scott Owen wrote here.
By the end of the 48-hour hackathon, what we ended up with was a very large and bulky Arduino Uno that was tethered pretty loosely to a magnetic serial port, broadcasting a signal on a civilian band that has a range of up to 500 feet or so.
With more time, a handful of improvements could be made to make an even more powerful beacon.
One quick improvement is to simply replace the Uno with an Arduino Teensy. The Teensy is a small thumb knuckle sized Arduino that requires you to solder your wires directly to the board rather than using simple jumpers. This decreases the footprint of the device dramatically and allows you to wrap it up in electrical tape and attach it to the strap itself. The serial port for the Pebble Time doesn’t push enough power to power the Teensy so instead, you’ll want to use a pair of coin batteries (CR2302) and a voltage step down regulator to bring the voltage to what the Teensy and the transmitter need.
Another worthwhile improvement would be to increase the range. Range is a big part of what’s needed for a PLB to work effectively. With the short on-board antenna, we could pretty easily reach 500 feet but we need to go MUCH further than that to hit planes and even further to reach low earth orbit. Commercial PLBs broadcast at 5 Watts (which is possible with a pair of coin batteries), but you need a good antenna to really reach out. Keep in mind, the bigger the antenna, the harder it is to stuff it into a watch band. Using a 1/4 wave antenna, you can get an antenna that’s about 10” long but sufficient to reach geo-sync orbit with a 5 Watt transmitter. By threading the antenna through the paracord bracelet, it can be stowed until it’s needed. Simply unthread the bracelet and extend the antenna and begin broadcasting.
Lastly, double down on the transmitters. 406mhz is the mainstay of PLB beacons since it broadcasts a digital signal that carries not only the GPS coordinates of the user but also broadcasts its device ID that can be cross-referenced if the device was registered with the FCC. This not only shows where the user is, but who they are and can assist rescuers with medical information as well as the user’s plans and intentions when they got lost. There is another frequency less commonly used but very helpful when in dense terrain, the 121.5mhz frequency. Typically, this frequency is used by planes and ships and sends a repeating tone that rescuers can hone in on, but the process takes longer. This is a great backup frequency since the 406mhz frequency is rather high and needs direct line of sight to work correctly, therefore, if you’re in a narrow canyon or under dense foliage it can get disrupted. 121.5mhz can typically punch through such obstacles, but it lacks the ability to carry GPS data.
We really hope that someday, we can build this through to the finish. In its current state, it could work as a handy way to create a small beacon that could be carried by an RC plane or drone and used to recover it. If you have transmitter building experience or know somebody who does, and would like to work on how best to build a small 406mhz transmitter, we’d love to talk. Moving forward, once we get a small enough transmitter, we’ll be in good shape to pair it with either a wi-fi shield, or bluetooth shield so that it would be compatible with other smart watches or as a stand alone device.