argilo
argilo on Hacker News
An SDR's sample rate only limits its bandwidth. Most devices include a mixer, which allows the transmitted or received signal to be shifted in frequency by an amount much larger than the bandwidth.
It's definitely possible to transmit multiple TV channels at once, and I have experimented with that in the past. Since TV channels are 6 to 8 MHz wide (depending on what part of the world you're in) there are practical limits to how many channels can be transmitted at once. Consumer-grade SDR boards are limited to about 56 MHz total bandwidth, which would be enough for 7-9 channels.
The cars on the map are the locations of people who are hunting for balloons after they have fallen back to earth. SondeHub's "chase mode" allows you to announce your position so that others will know you're in the area and will possibly soon collect a nearby balloon.
The code of nrsc5 (and my transmitter project,
https://github.com/argilo/gr-nrsc5) would be the best source of information for the undocumented parts. I do have some private notes, but the useful information has already gone into the code.
There's an issue open for this:
https://github.com/gqrx-sdr/gqrx/issues/1104I could really use some help from a software build expert. Gqrx and all its dependencies would need to be built in CI with Apple silicon support, and I don't know how to do that.
I am also the maintainer of Gqrx and I would love for it to have a built-in NRSC-5 receiver. The trouble is that some aspects of NRSC-5 are still patent-encumbered, which makes software distribution problematic. For that reason, nrsc5 is only provided in source form today. The situation may change once the relevant patents have expired.
Also, all of those stream types seem to be used across multiple stations. I haven't seen any weird one-off streams.
That decision was made by the original author (Andrew Wesie), but I think it makes sense because nrsc5 only needs a tiny fraction of the functionality that GNU Radio provides. Implementing the functionality directly in nrsc5 avoids the need for a large and complex dependency.
One downside is that we don't get the broad hardware support that GNU Radio provides, but maybe we'll someday take another crack at integrating SoapySDR. (See https://github.com/theori-io/nrsc5/pull/131 for an earlier experiment with that.)
It would only be possible if the tuner exposed raw RF samples, the way RTL-SDR dongles do. I'm not sure whether any of the integrated FM receivers do that.
I'm not aware of any digital-only FM stations either. But there are a handful of digital-only AM stations, like WWFD.
Some stations have "HD TMC" (traffic message channel) streams. The others that I've encountered are "HERE Images" (traffic & weather radar images, discussed and mostly reverse engineered in
https://github.com/theori-io/nrsc5/pull/308), "HERE TPEG", "TTN TPEG", "TTN STM", "NavteqAdmin" and "NavteqPacketData1."
At present, nrsc5 makes these streams available through its API, but doesn't otherwise do anything useful with them. I don't believe any of the GUIs process them either. Some reverse engineering work is needed.
Also, I should mention that Python is not a requirement. The GUIs that people have created so far were written in Python, but the nrsc5 project itself is built entirely in C, and it exposes a C API.
Models targeting the SDR market (e.g. from RTL-SDR Blog or NooElec) do have some improvements compared to models sold as TV tuners. Most importantly, they often include a more accurate crystal oscillator, which is useful when receiving narrow-band signals.
I haven't investigated the CPU and RAM requirements in depth, but I have used nrsc5 on a Pi 3B without issue.
I suspect a Pi Pico would be too small.
RTL-SDR tuners usually have very good reception between 50 and 1000 MHz, which includes the FM broadcast band. It is easy to overload the analog-to-digital converter, so it's important to make sure the gain is not set too high. Setting the gain too low could also prevent reception if you're far from the transmitter. If you're receiving from indoors, interference from electronics in your house can cause trouble, and walls attenuate radio signals. You could try moving the antenna, or check whether it works better outdoors.
Yes, it is similar. It is used primarily in North America, while DAB is used primarily in Europe.
It might be possible, but I'm not sure whether a typical router would have enough CPU horsepower to do the processing required to demodulate the signal.
My preferred dongle is the RTL-SDR Blog V3:
https://www.rtl-sdr.com/buy-rtl-sdr-dvb-t-dongles/They also have a new V4 version, but it requires updated drivers that will take a bit of time to percolate out to Linux distributions and the like.
NooElec also has a line of RTL-SDR dongles that I would recommend: https://www.nooelec.com/store/sdr/sdr-receivers.html
The best antenna will depend on what you're trying to receive. Different antennas are optimized for different frequency ranges, and may be either omnidirectional (receiving equally well from many directions) or favour reception in one particular direction. To get started, you could buy a dongle that comes with an antenna included, but you may eventually want to switch to something targeted to the particular application you have in mind.
As for the computational cost, it depends a lot on what you're trying to do. As a general rule, the wider the bandwidth of the signal, the more processing power it will take to demodulate. HD Radio is relatively narrow-band (400 kHz), so it doesn't require much CPU power to receive it.
I'm happy to hear you found it useful!
If you live within the coverage area of an FM radio station that's sending weather radar, it will probably be easier to receive than NOAA satellites.
I'm a co-maintainer of this project. If anyone has questions, I'd be happy to answer them.