Hacker News new | past | comments | ask | show | jobs | submit login
Capture and Decode FM Radio (poly.edu)
117 points by alfonsodev 10 months ago | hide | past | web | favorite | 20 comments



Very nice article. Implementing something commonly known yourself with instructions tends to be enlightening. The instructions save you maybe 80% of your time, but you still have the chance to learn how everything works if you focus. It also gives you confidence.

Some of the best resources I've seen in that regard are nand2tetris and make-a-lisp.

The SDR community seems to mainly consist of people interested in using existing software and focusing on the received signals. There's still a lot to be discovered if more people start writing software to decode the signals.


>There's still a lot to be discovered if more people start writing software to decode the signals.

You might be interested in the GNU Radio project, a modular suite of tools for building software receivers.

https://wiki.gnuradio.org/index.php/What_is_GNU_Radio%3F

You may also be interested in WSJT (ultra-efficient data modes) and FreeDV (ultra-low-bandwidth voice). A number of people in the amateur radio community are working on modern modulation and codec systems.

https://www.physics.princeton.edu/pulsar/K1JT/

https://freedv.org/


Yes, I've been planning to learn GNU Radio. Thanks for pointing me to other interesting projects, too. I feel like I'll need to gain a better understanding of radio technology, though.


Agree with this. I was up to my eyeballs in SDR stuff back when the RTL first came out. Wrote some plugins for SDRSharp doing little auto-tuners and lookups and whatnot, but then started digging into the actual DSP stuff and learned a TON in the process. It's also incredibly helpful to have expert folks around that can connect the dots for you when it gets weird.


Very cool introductory article that will leave you knowing more about SDR signal processing than you might have expected when you first clicked on the link.

As usual in this business, setting up the development environment will be 90% of the hassle. But it looks like it'd be well worthwhile for those just getting started in the field, especially if you're already comfortable with Python and Linux.

GENI also sounds extremely interesting. Being a Windows-dweller for the most part, I'd never heard of that before.


Just a few hours back I was checking whether I could capture audio via 3.5mm from iPad nano, to stream FM radio channels to my smartphone.

I was thinking like 3.5 mm from ipod to RCA & then RCA to Raspberry pi Mic. Then processing the mic input for streaming.

I think I'll loose the dual channel & also not sure whether I would be able to control the channels without creating a breakout switch in the line to ipod's 3.5 mm.

Can anyone suggest a better way to do this? There's no Internet Radio in India & smartphones doesn't have FM radios now a days.


You can get a software defined radio for around $25 (see rtl-sdr.com), allowing you to capture many kinds of radio signals (including FM radio, amateur radio etc). But I'm sure there are also dedicated FM radio usb dongles for much cheaper.


Thanks. I guess, that would be the sane way to do it. The OP article talks about Mono channel, does dual channel stereo work just as seamless with RTL-SDR?


Probably. The stereo separation is encoded in the signal, and I think mainstream SDR software has it working out of the box (but I don't listen to WBFM). Not decoding in stereo was probably just a simplification for the article.

Then again, an SDR is overkill if all you'll ever want is FM radio. A dedicated FM receiver will use less power, take less space and hopefully have better usability.


You're correct. Due to fudged up electronics prices here, DVB-T is cheaper.


Yes. The RTL just captures RF signals and feeds them to the computer over USB. All of the processing after that is done in software.


Yep, you can capture everything about the FM station that way. The only things not available are the "HD Radio" digital signals because there's no open way to decrypt them.

Edited to add: Since this is a digitally controlled tuner, you can also change the station remotely if you'/re using the right setup. The websdr project, http://www.websdr.org/ , is a really nice way to do this and there are plenty of other setups.


Thanks for the heads up regarding HD Radio, I think couple of channels here do broadcast in HD.


Just to clarify, Internet Radio does exist in India for major cities; just not for small cities & amateur radio.

HN reader messaged me that there's even Gnome extension for some.


I've never been able to get clear FM reception through an RTL SDR. I ended up buying an Arduino powered radio that I should be able to modify to use as a base for an FM to DLNA project.


Do you mean a radio receiver for Arduino? can you provide link for the same, I would like to check whether it works for RPi.


No, I was on a phone so probably a bit too terse.

What I bought was https://www.tindie.com/products/microwavemont/dsp-radio-vers... - I'll be hooking this up to a Pi with some kind of audio capture and hopefully modifying the firmware so the frequency can be set via UART.

What I'd really like to know is how hard it would be to hook up the same kind of chip/circuit to another chip that does USB Class Audio so there's no extra capture step to get audio to a Pi.


thanks, though it will be fun to try that; RTL-SDR method suggest by others seems reasonable & cost-effective.


Great article. I love SDR, and this kind of tutorial really brings it into the home accessibly.

For more, there's another really nice SDR basics course online you can find at Great Scott Gadgets (https://greatscottgadgets.com/sdr/) associated with the HackRF One open-source SDR hardware. It goes into it a bit with GNU Radio, which is a really incredible project.


I've always wanted to learn more about SDR especially when you think about just how many signals are present in the air. Thanks for the good introduction!




Applications are open for YC Summer 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: