Hi all. Been hacking a bit on rtl_fm again. My repository is at
https://github.com/keenerd/rtl-sdr
Pretty much everything has been overhauled. The first year of
rtl_fm's life saw a lot of features jammed into dumb places in the
code. There was no organization and a lot of problems stemmed from
that. Now the code is cleaner, faster and should be much simpler for
future features such as multiple dongle/demodulator support.
Major fixes: The most common complaint that people have had is poor
selectivity. Rtl_fm was great for strong signals but could not pick
up weak signals. This was from shoddy (but very fast) filters. Now
there are better filters available. Access them with '-F 0' and '-F
9'. These will use more cpu but still run fine on low end ARMs.
There is some more headroom for optimization, but nothing to be
premature about. Rtl_power has these same filters if you'd like a
visual comparison of how they work.
Due to some stupid misunderstandings on my part, data modes were
completely broken. These work again.
New features: You can choose devices by the text in the serial eeprom.
This is overloaded onto the existing -d (device index number) option.
If it looks like a simple int, do the traditional -d behavior. If it
looks like a string, check the eeproms of all devices for exact
matches, prefix matches and suffix matches. If your rtl dongles don't
have eeproms, my apologies.
Minor improvements: All of the rtl_* utilities have these features,
including metric/standard units as well as nearest-gain values and the
serial matching.
Going Further: There are also a lot of patches to add various features
to rtl_fm. With the new overhaul it should be much easier to add
features, but the patches will have to be re-written first. If there
are patch sets you you'd to see merged sooner rather than later,
please mention them so I can gauge interest.
-Kyle
http://kmkeen.com