Bits about technology, gadgets, DIY and more!

Listening to HD Radio with an SDR

"HD Radio" is the technology by which US radio stations broadcast digital audio along with their regular analog signal. Standard FM radios only receive the analog signal and ignore the digital data. You need an HD Radio to listen to the digital audio. HD radios are most popular as features in newer automobiles, but adoption outside of car radios, as well as awareness by the public has been underwhelming.

The “HD” in HD Radio does not stand for "high definition." In fact, Ibiquity, the company that developed (and trademarked the name) HD Radio, claims that HD doesn’t stand for anything. For us hobbyists that routinely use SDR (software defined radio) to look at the waveforms of broadcast radio, we have seen the HD Radio signals as two rectangular blocks of data alongside a station’s main signal. However, since HD Radio uses a proprietary protocol, we have not been able to decode or listen to this data.

On June 9, 2017, a cybersecurity startup based in Austin, TX named Theori, posted a full description of how HD Radio works along with their open source software implementation using a $25 RTL-SDR radio. (They utilize the official government name for HD Radio, "NRSC-5.") Finally, the veil has been lifted on the mysterious encoding for this digital system, and it turns out that it is a slightly modified version of HE-AAC.

If you are looking for a fun two-hour project, you can use Theori’s code on GitHub to create your own NRSC-5 digital radio. I followed the instructions and with just a little extra troubleshooting, I was able to get it to work. Here is what the screen output looks like when you are successfully decoding NRSC-5 audio:

nrsc5 debug output

Here are some notes on my setup:

  1. I used Ubuntu Server 14.04 (no UI) on a VMWare virtual machine. 8GB of RAM and 2 processors. Make sure your machine (virtual or not) produces audio before proceeding with the setup. I used "speaker-test" for this purpose.
  2. Be sure to install all the dependencies first. You can use a package manager such as apt-get to do the installs.
  3. To do the build of nrsc5, first learn how to clone a repository on GitHub. I looked at a few examples and was able to make sense of the build instructions.
  4. When trying to run nrsc5, I received a "usb_claim_interface error -6" because my system was trying to load the SDR hardware as a TV device, so I had to blacklist that driver at boot so it would not interfere. Use these steps:
    a. Open your /etc/modprobe.d folder as an administrator.
    b. Create a new file 'blacklist-rtl.conf' and add this one line:
    blacklist dvb_usb_rtl28xxu
    c. Save the file, close the editor and restart the machine.
  5. A good antenna and strong signal are crucial. The digital signal is significantly lower in power than the main analog signal.

Good luck and I hope you enjoy the digital audio!

Getting Started with LoRa

LoRa is a radio technology for long range, low bit rate communication among sensors (temperature, light, location etc...) and other IOT devices. The sensors send their data to a radio receiver known as a gateway. The leading protocol used by sensors and gateways to manage communications, frequency, data rate and security is known as LoRaWAN. The gateway transfers the sensor data to the cloud so that web applications and end users can utilize the data.
A complete system includes one or more sensors (or nodes), one or more gateways, and a server or cloud-based app for interacting with all of the sensor data. Finding a complete working system out of the box from one source is challenging in these somewhat early days of the technology. Two full-featured kits that stand out are the Link Labs Development Kit (which uses a LoRaWAN alternative called "Symphony Link") and the MultiConnect Conduit IoT Starter Kit. Both of these include nodes, development boards and a gateway, along with instructions for connecting to various back end software and infrastructure.
The only downside to these kits are the price which is in the $1,000 or more range. That can be a lot for a hobbyist or sole experimenter to spend for evaluating a new technology. A less expensive route is to build the components on your own. Nodes, sensors and gateways can be built with readily available microcontrollers, radio modules and open source software. The downside to this approach is the typically poor documentation, compatibility issues and varied skills required to make the system work from end to end. The upside is that you (usually) learn quite a bit about the technology when you have to figure it all out yourself. (If you get frustrated easily or lack persistence this may not be the best route.)
With that in mind, I decided to build a gateway using a $289 kit sold by Seeed Studio, based on the RHF0M301 LoRa radio module by RisingHF and a bridge for connecting it to a Raspberry Pi. (The Pi is not included) It is a pretty good trade off of price and features. The Seeed is an eight channel gateway, meaning that it can receive on eight channels at the same time, which makes it LoRaWAN compatible. You could build a single-channel gateway for less than $50, but it would be of very limited use. See my post for a detailed step by step guide for successfully setting up this gateway to work on the Loriot system. The manufacturer's documentation is fair at best and the seller has limited information on their website.
Any LoRaWAN compatible node using the same frequency (The unlicensed 900 MHz band in the US) should work with the RisingHF gateway. I chose the $35 Adafruit Feather M0 with RFM95 LoRa radio. It is a very compact Arduino-compatible microcontroller that includes a LoRa radio transciever. The full LoRaWAN stack is not included, so to provide complete compatibility with the RisingHF gateway one has to do a bit of software configuration. However, the M0 has plenty of capacity and I have successfully transmitted from this node to the gateway. I will walk through my step-by-step setup process in a future post.
There are a lot of players with a lot of big plans in the wireless IOT space (check out SigFox!) and many predict a future with billions of nodes and hundreds of thousands of gateways. It will be interesting to see how it all pans out, and if all of these systems can coexist with each other.
LoRa and LoRaWAN are trademarks owned by Semtech and LoRa Alliance respectively. MultiConnect Conduit is a trademark of Mulit-Tech Systems.

Ardmore, PA Radio Shack Closed

My local Radio Shack closed on June 27, 2017 after 50 years in operation. This was my go to place for electronic parts and occasional electronics since 1988 and it will be missed. Originally the store was listed as one that would remain open, but it was not to be. In addition to the store's longevity, some of the staff had been there for 15 and 30 years. Even though the inside was relatively modern, you can see from this photo that the building was old and gave off a kind of "general store" vibe you don't find very often in a national chain.

Temporarily Permanent

I remember when this sign was posted in the fall of 1989, visible from the commuter train window whenever I rode by. I was in college then, taking the train from Philadelphia to the suburbs every few months. It seemed strange to me that someone would go through the trouble to print a sign announcing that a gate was going to be locked on a certain date. I was also very dubious of anything described as "permanently."


In this case, "permanently" lasted until sometime in the 1990s when the gate was once again unlocked. I figured the sign would come down soon after, but up it stayed. Every time I took the train, I checked to see if it was there. By 1999, the gate had been unlocked longer than it had been locked and I thought the irony would make a great photo.

Try as I did, it was never convenient to walk to the spot where the sign was and it was impossible to get a decent picture from the train. I pretty much ignored the sign in the 2000s as I lived my life and got married. My interest renewed in 2009 when I realized that the sign had been up for 20 years, or half of my life so far. Finally, in 2017, almost 30 years after the sign went up and over 20 years since the gate was unlocked I got the shot above! 


Sniffing GSM with SDR

I've been fascinated by software defined radio (SDR) for years but investigating the GSM cellular network has always been just a little too challenging and slightly out of reach. All of that changed earlier this year when someone finally posted a workable, step-by-step guide for decoding (but not decrypting) cellular (GSM) radio traffic.
For those not familiar, SDR involves moving much of the functionality of a radio's circuitry into software rather than hardware. An SDR is a stripped down radio that outputs digital data to a host (usually a computer) where sophisticated programs decode the data into audio. For instance with an SDR and the proper software, you just need to change some code to make the radio play FM instead of AM. In recent years, cheap $20 SDR USB dongles have come onto the market replacing ones that used to cost thousands. (To get started, I suggest checking out
An SDR can easily pick up cellular phone transmissions but making sense of the data is complicated. Now you can read the detailed post here and make it happen. If you follow this EXACTLY, it will work!
UPDATE: Since the "2G Sunset" on 1/1/2017, I have been unable to find any local GSM transmissions in the 850 MHz band using "Kalibrate." I think the solution would be to search in the higher 1900 MHz band, but to do so would require a new more expensive SDR with a wider frequency range.

Displio Review

The Displio is described by its creators as a "WiFi display that tracks what's important to you." It caught my eye as a Kickstarter campaign back in January 2015 as a neat, compact device for displaying custom data on my desktop. The delivery date slipped a few times but my Displio finally arrived in April 2016, about a year late. Not a huge deal, considering the complexity of manufacturing such a device and the fact that it is a "nice to have" and not a mission critical item.

The Displio

The hardware is exactly what was promised: a small plastic case, about 2.25 inches wide 3 inches high and a depth of about 1 inch, with an e-ink display. The back of the case has a micro USB connector for power and charging. There are no buttons on the Displio; all interactions are via tapping, shaking or rotating the device.

Upon receiving the device, I immediately set up an account and selected to display the weather widget. All administration is accomplished through a web page, and the Displio currently depends on the manufacturer's servers, so if their cloud is down, the Displio performance will be degraded. Luckily, I have not noticed this as being an issue.

Since the display is monochrome e-ink, it uses very little power, so the expectation is that it will run a long time on its internal battery, untethered sitting on a desk or shelf. However, I was initially getting a few hours at best. I found that the default setting for my selected widget was to refresh "live." (In other words, constantly) The expected battery life is listed under the refresh setting and changes interactively, so changing it to five minutes gave me an expected 15 days of life on a full charge, which seems pretty accurate.

I've been using the weather widget for a few weeks to evaluate the performance of the Displio. Overall I'm pleased, but a few things are mildly annoying. The smaller text such as wind speed and humidity are fairly small and difficult to read, even up close. The humidity was stuck on 58% for a long time, and looked a lot like the word "SEX." (More than one co-worker asked me why it says sex at the bottom.) For the last few weeks, regardless of the current weather, the widget displays a rain icon, which seems to indicate something is broken.

The real draw for me with this device was the ability to create my own widgets connected to my own data. Unfortunately, that is where the device has fallen short so far. A beautiful widget maker with a sleek UI has been teased on the Displio website for months, however it is nowhere to be found. The "developer documentation" link is also a dead end. I submitted a bug report through the site but never heard back. I did eventually receive a reply to a support email. I was told that documentation would be forthcoming, in addition to IOS and Android mobile apps. That was two months ago.

As it stands with the existing widgets, the Displio is certainly useable but not particularly ground breaking. The killer app (killer widget?) for this platform has yet to be made, and probably won't until the fully functional developer tools are available. So I give the Displio a guarded thumbs up recommendation, hoping that the makers get the software finished and under control because the hardware is very good. (Note: As expected, the price has gone up since the "early bird" campaign on Kickstarter. It is a lot easier to recommend at $79 or $99. $140 seems a bit steep.)

Tile Review

The Tile is a small, matchbook-sized Bluetooth device that works in conjunction with a mobile app to provide its location. The main purpose of the Tile is to help you keep track of the items to which it is attached. It is small enough to place on your key chain or put on your pet's collar. (My dog has one.) The device is waterproof and permanently sealed, so replacing the battery is not possible. The manufacturer promises a one year battery life, and as my set of tiles is approaching the one year mark, this appears to be accurate. The company has a "reTile" program to replace and recycle tiles at a discount after 11 months.

Setup is easy - the IOS or Android app walks you through the process. Using the app, you can monitor the location of the tiles - with a few restrictions. Mainly, the Tile needs to be within about 100 feet of your phone, although mine seems to top off at about half that distance. You can instruct the Tile to play a tune to aid you in locating it, however the sound is not very loud. 

One interesting note is that the Tile can utilize a sort of "mesh" network to locate missing tiles. In this mode, any mobile device that is running the Tile app will report the location of your Tile if it gets within range, without telling the device's user about your Tile. The effectiveness of this feature of course depends on how many people in the vicinity of your lost Tile are running the app. Luckily, I've never had to test this. Another feature I like is the ability to share Tile locations with another user.

Tiles run about $15 - $25 each depending on the quantity ordered. They work well for finding an item misplaced in your home or within a defined area. If you are trying to locate a Tile lost a few towns away, your success will depend on whether someone running Tile app comes close enough to your Tile to detect it. In many places that may never happen. Visit

The Internet Button


While perusing the various channels on IFTTT recently, I came across one for something called "" My curiosity led me to a Finnish site that sells a very interesting product: a large pushbutton that can control anything that is connected to the internet. The comes in various colors and has both Wi-Fi and cellular models.


The operation from a user's perspective could not be simpler. You push the spring loaded button down and it pops back up. LEDs placed around the button let you know that the button press has been transmitted successfully.


It is what happens behind the scenes that makes the so versatile. Your button press can trigger an API or for the less programming-inclined, generate a trigger on IFTTT that can activate any one of hundreds of existing IFTTT channels. The possibilities are almost endless.


For instance, I have one that when pressed turns off all the Z-Wave controlled lights in my house. Another I have programmed sends an e-mail to one of our vendors with a required attachment. You could also use a to operate electronic door locks, summon a taxi, or take a temperature reading and save it to a database. It provides a simple physical input to the connected world.


As much as I like this product, I do have a few small criticisms. The price is a little steep, at about $70 each with $18 shipping from Finland, although there are other options for quantity purchases. For almost $100 I expected a more solid unit. My first button was too loose and felt too much like a toy. The second I purchased was noticeably tighter. The device is attractive but could use a bit more heft to give it a more professional feel.


Overall I’m impressed with the device and looking for more unique and interesting ways to put it to use. For more information, FAQ and to order, check out


Video Arbor is Back

Nam Jun Paik (1932 – 2006) was an artist who used video displays and electronic parts in his art to comment on technology, culture, and mass communications. In 1990, the builders of One Franklin Town Apartments in downtown Philadelphia chose Paik to fulfill their city mandated requirement of including original public art in their development project.

The installation that Paik created consists of three rows of 20 televisions suspended by trellises covered in vines, hence the name “Video Arbor.” Each screen displays one of two fast moving videos consisting of colorful images that can best be described as “video graffiti.”

Due to the unusual and abstract nature of Paik’s piece, many observers (at least the people I questioned over the years I lived down the block from it ) and passers-by weren’t quite sure what to make of the flashing screens and did not realize it was an art installation. Personally, I’m a huge fan of Paik’s intersection of art and technology and I enjoyed an awesome exhibit of his work at the Pennsylvania Academy of the Fine Arts in 1996.

Unfortunately, the technical complexity of Video Arbor made it difficult to maintain in working order and over the years there were long stretches of time when the display did not operate at all. Inevitably some of the CRT monitors became distorted or stopped working altogether. I’m assuming that the video source was multiple LaserDisc players, the only technology at the time that could withstand years of repeated playback, long before hard disk or solid state systems were practical.

Recently one evening I had occasion to pass by Video Arbor and I was pleasantly surprised to find all screens clearly operating with what appeared to be the original video playback. It looked to me like all of the original CRTs were replaced with modern flat screen displays and the video playback system was upgraded as well. Now that it appears to be restored and operating regularly, I encourage you to learn more about Paik’s work and check out Video Arbor for yourself!

Getting Started with Wearables... in 1983

It seems like every electronics company from large to small is introducing a wearable device these days. As seen at CES 2015, it is all the rage to connect some kind of bodily sensor to the internet, pair it with an app and strap it to oneself. Most of these are fitness trackers that detect some combination of distance, speed, or heart rate.

I started using wearable technology in 1983. That was the year I bought a Casio TS1000, the world's first LCD digital watch with a built-in thermometer. Unfortunately, in those days such technology was seen as more nerdy than trendy. I recall lots of positive interest in this device from my 9th grade science teacher but not so much from my classmates.

The reason I consider this device a true wearable is because it was actually affected by the wearer's body heat and had a special setting to compensate. So although it could not "take your temperature" it could tell you when you were relatively overheated. However, it was most useful for measuring the ambient temperature.

I was very disappointed when the case broke after a few years of use. By that time, I had moved on to the data bank variety of Casio watches, a distant relative of the modern smart watch. 

Today I use a FitBit Flex and I may upgrade to the FitBit Charge HR later this year. I really like the simplicity of these devices and their companion app. However, neither will tell me the room temperature!