Several weeks ago, I saw this post over on hackaday.com. This sent me down a path where I started to research this idea of software radios. You can buy these USB-connected antennas and pickup virtually any over-the-air signal, including AM, FM, broadcast TV, CB, marine-band, ham radio, police band, etc.
Well, that makes perfect sense. Instead of buying a hard-coded physical device, why not just hook a simple antenna to your computer, and do the “radio user interface” in software? This seems like the next logical progression of the traditional “radio” (radio here, meaning “device we use, to listen to music”).
So, I went to DealExtreme and got the generally-recommended EzCap EZTV668 for $19.
Using the device:
What is in the box is a small USB dongle, and a small antenna (perhaps 6″ tall), which connects to the USB dongle via a 3′ cord. It also comes with a disc that has a specific driver, a PVR (personal video recorder, to record tv), and a video encoder/decoder.
I still cannot use the built-in PVR software – I just get:
Now, this is the “most popular” USB tv dongle, yet I can’t even figure out who makes it. So, there is not manufacturer website to go to or anything like that. You get what you pay for though, and this was only $20, so it’s not the end of the world.
Programming against the device:
So, I couldn’t get the boxed-software to work – so I thought I’d try to connect to this programmatically. It looks like the drivers load correctly:
Using that library that is on GitHub (linked above), I tried some basic functionality. I realized though that I didn’t know what frequency to try to receive. I found this page on the National Telecommunications & Information Administration (NTIA) site, which is part of the Department of Commerce. That page shows what the ranges of radio frequencies are from 3kHz all the way to 300GHz.
OK – so to start simple: AM radio is 535kHz to 1605kHz and FM radio is 88MHz to 108MHz. I next needed to find the radio stations in my area – so I just googled for that on Bing and found these stations (AM and FM) for Tampa, FL.
That means that 860 AM should be a frequency of 860000, because AM is in kHz. 93.3FM should be frequency 93,300,000, because FM is in MHz – right?
Well, using my little test program, using that RadioLib library, I can get static – so I “think” that the device is working, but I can’t tune into a single station. I can’t pick up a single frequency that has anything other than pink noise. I noticed that some sample code seemed to assume starting from 1kHz, so I did also try those same station frequencies, divided by 1000. So, 860 instead of 860,000, and 93,300 instead of 93,300,000 – nothing. I then wrote some code to scan for frequencies. The underlying API does report a signal strength and ‘signal lock’. However again, I just pick up pink noise.
I talked with my brother and he mentioned that it could genuinely be a signal problem. He suggested I try my Zune radio and see which stations were the strongest. When I did that, I got several FM radio stations from the same location as my computer. 100.7 was the strongest, so trying:
I got nothin’! Brother did mention that the antenna may not be good enough, but my Zune, which has a tiny antenna can get several stations. This USB device gets absolutely nothing – just pure, pink noise.
So, unless or until I run across some new information, I think I’m back-burnering this. The idea is very interesting, and I have the hardware (and got it on-the-cheap) – so maybe I can loop back around as I learn more.