rx_tools icon indicating copy to clipboard operation
rx_tools copied to clipboard

Review feature requests & commits from kmkeen's RTL-SDR IndieGoGo sprint

Open rxseger opened this issue 9 years ago • 2 comments

Via http://kmkeen.com/igg-report/ - list of feature requests from kmkeen's "RTL-SDR IndieGoGo sprint": http://igg.kmkeen.com - lots of interesting ideas there, some since implemented, many relevant to rtl_fm, rtl_power, or rtl_sdr tools.

Also check commits: some are in experimental branch https://github.com/keenerd/rtl-sdr only ("This branch is 129 commits ahead of https://github.com/keenerd/rtl-sdr"): https://github.com/keenerd/rtl-sdr/commits/master


rtl_sdr

Last common commit https://github.com/rxseger/rx_tools/commit/89f73b183f2dac9c0dd75beca4cf2f77f20c4a36 lib: change default number of transfers to 15 Feb 10, 2014 keenerd's commits https://github.com/keenerd/rtl-sdr/commits/master/src/rtl_sdr.c

  • [x] utils: tejeez's no-mod direct sampling https://github.com/keenerd/rtl-sdr/commit/7d70b00792d581334bc5b02a108f130467497e72 - adds -E no-mod to rtl_fm, calling verbose_direct_sampling(3), and in rtl_sdr/rtl_power, -D with 1=I, 2=Q, 3=no-mod - SoapySDR - merged in https://github.com/rxseger/rx_tools/commit/a28a3aafd7a78925a525a463a66a4067d128d6ba
  • [ ] r82xx: set_dithering() https://github.com/keenerd/rtl-sdr/commit/3f2632dcaf5ea2c2f28af99a94c64b804a063bfd - adds -N flag for no dithering, default sets dithering, rtlsdr_set_dithering(). This function is not in librtlsdr/librtlsdr! Here we see the divergence in librtlsdr.. not all installs of it have dithering. SoapySDR/RTLSDR/librtlsdr?
  • [x] rtl_sdr: units on -n https://github.com/keenerd/rtl-sdr/commit/00a74f0f3e38dbe020e0bd27f15b121af6d4a42b - small bugfix, atof() to atofs(), accepts standard suffixes - merged in https://github.com/rxseger/rx_tools/commit/e1a2067b3fec37087dc400673c7ca86520ae4fcd

rtl_fm

Last common commit is also (same as rtl_sdr) https://github.com/rxseger/rx_tools/commit/89f73b183f2dac9c0dd75beca4cf2f77f20c4a36 lib: change default number of transfers to 15 Feb 10, 2014 keenerd's commits https://github.com/keenerd/rtl-sdr/commits/master/src/rtl_sdr.c

  • [x] same as rtl_sdr) utils: tejeez's no-mod direct sampling https://github.com/keenerd/rtl-sdr/commit/7d70b00792d581334bc5b02a108f130467497e72 - adds -E no-mod to rtl_fm, calling verbose_direct_sampling(3), and in rtl_sdr/rtl_power, -D with 1=I, 2=Q, 3=no-mod - SoapySDR - merged in https://github.com/rxseger/rx_tools/commit/a28a3aafd7a78925a525a463a66a4067d128d6ba
  • [ ] utils: rebase ppm in eeprom prototype https://github.com/keenerd/rtl-sdr/commit/389de6d8ed7e6c34e570bbac04c6007b4a19cc34 - adds verbose_ppm_eeprom() if !custom_ppm passed, probably should be handled lower layer. Extracts PPM from EEPROM, requires librtlsdr support.
  • [x] rtl_fm: esbensen's discriminant https://github.com/keenerd/rtl-sdr/commit/3dfa4add72969500f874f0ada99efdeec6fa0a06 - adds new esbensen() -A ale, should take it merged in 0a302879c5545c01ec39913421cccc9eaae1fa0c
  • [ ] rtl_fm: half working AGC https://github.com/keenerd/rtl-sdr/commit/588b673a5f9a9deb366406c29de5a431374cae97 - adds -A swagc, other half?
  • [x] rtl_fm: rtl_fm: wav header https://github.com/keenerd/rtl-sdr/commit/6d5cd1619acead8caf16b13c5f86b6b586ca3a2e - definitely wanted this - merged in 3e04c2bf67caac0e533f3efb7e4f4a523d29452a - also a10ee761d75905b8e1942f94c02b80e972622376
  • [ ] rtl_fm: mostly working AGC https://github.com/keenerd/rtl-sdr/commit/42d8f12c6ee95a78011de78dcb358c01f018802e - other half, small fix
  • [ ] rtl_fm: proportional squelch https://github.com/keenerd/rtl-sdr/commit/3cb8bd6aa87c0a9f412c19c0984a2ac7e7162c8d - isolated but important change, different -l values
  • [x] rtl_fm, power: stay open through broken pipes https://github.com/keenerd/rtl-sdr/commit/08889eecb5cc00290a641bd67423ab15821f05a5 - 1-line fixes - merged 3707b543dbf8ae67d28e41afc57df410ad452ba9
  • [ ] rtl_fm: half finished stream padding https://github.com/keenerd/rtl-sdr/commit/e98ab40414ae2e6549293f6ebd5a3b6326a63b82 -E pad, but says broken. See also from https://github.com/rxseger/rx_tools/issues/5 "-E nullsquelch"
  • [x] rtl_fm: bugfix from M. Curtis https://github.com/keenerd/rtl-sdr/commit/ebb5f2a4cfa995efa2420853e36d96697e02ef63 - output.rate = 32000 - merged 539abee6708caefacf797aa76fc4d3cffbb93fdc
  • [ ] rtl_fm: in-place demodulators https://github.com/keenerd/rtl-sdr/commit/e23b92c9102f3e68c59178a097014eafac4dbc83 - big change, has a comment about not working after? risky
  • [ ] rtl_fm: no-copy architecture https://github.com/keenerd/rtl-sdr/commit/34ab4ac13a61ee0b8b8fb4338fecbb249fc6244e - large comment string 7, but has bug fixes
  • [ ] rtl_fm: fix lockup on squelch https://github.com/keenerd/rtl-sdr/commit/15bb16bd9b2fe4450a02a9c88b3d0f1e2b5f5bb3 - bugfix 1-line, but needs unmark_shared_buffer()
  • [ ] rtl_fm: handle no available buffers https://github.com/keenerd/rtl-sdr/commit/05bee3455a4e859cae89414ab1636efc2a9e5623 - medium-sized bugfix
  • [ ] rtl_fm: arbitrary translation prototype https://github.com/keenerd/rtl-sdr/commit/6bcea884a72f76ca1b086eaa8f9ea1e6ff89887b - pre_rotate, enables by default but disables with offset tuning (but don't have E4K), hmm
  • [x] rtl_fm: remove unused resamplers https://github.com/keenerd/rtl-sdr/commit/90706d40989a3d33c32bc9dcfcdd0f24e0b04658 - cleans up arbitrary_upsample(), arbitrary_downsample(), arbitrary_resample() - merged 73db0ffdda249fd775a65291669ba34bac891794
  • [ ] rtl_fm: software agc https://github.com/keenerd/rtl-sdr/commit/df2a9c06dfd51db8d6f56b15d92c99250f967b9b - fixes agc prototype
  • [ ] rtl_fm: sw-agc quantization correction https://github.com/keenerd/rtl-sdr/commit/88244c041cb9eb03b84822d71666a94f65e1d7be - small fix for swagc
  • [ ] rtl_fm: pad out single channel underruns https://github.com/keenerd/rtl-sdr/commit/581b6b63b28cda24505f14364096175fef58a08d - 2-line bugfix
  • [ ] rtl_fm: stream padding https://github.com/keenerd/rtl-sdr/commit/c813134536ef26e46cd18549f2a61bb1bca99f00 - fixes -E pad which was broken earlier, but see also -E nullsquelch again https://github.com/rxseger/rx_tools/issues/5
  • [ ] rtl_fm: half finished dual-channel mode https://github.com/keenerd/rtl-sdr/commit/53d212d8a0cdd9a27b919210705da6bba98fd0b7 - neat feature, but big change, and for large-bandwidth SDRs probably want more than dual?
  • [ ] rtl_fm: arbitrary translation https://github.com/keenerd/rtl-sdr/commit/0037e5ffdcd39f15abbd0659c82c7090ad4cdf92 - big, what for?
  • [ ] rtl_fm: three-quarters of dual channel https://github.com/keenerd/rtl-sdr/commit/8ad17c2c9580662c4fa6804fa6ff5c57c5543d02 - continuation of half finished
  • [ ] rtl_fm: Support output padding on Windows. https://github.com/keenerd/rtl-sdr/commit/61e2b669de174cb5526df0fbdc872aba9ff7e181 - Windows bugfix, timing
  • [x] rtl_fm: Avoid possible null pointer dereference. https://github.com/keenerd/rtl-sdr/commit/a2d23c590ff97821127d04c18009fab16f964d6f - bugfix - merged in c01565d99907085fe804662521e62fcab0153edf, but for one target
  • [ ] Variable cleanup and corrections. https://github.com/keenerd/rtl-sdr/commit/6aa5f175890b03f619c125fd5712481b444a4822 - cast and unused in rtl_fm, other misc
  • [ ] build: Fix compilation on VS2013, Cygwin and MinGW. https://github.com/keenerd/rtl-sdr/commit/5ba889896f27a08d7f0a6a952f6c1dea7456058b - smal #ifdef fixes
  • [ ] rtl_fm: add swagc-aggressive https://github.com/keenerd/rtl-sdr/commit/86f950389ab58529f24e8ee6e06cb071585bc513 - contributed feature

rtl_power

  • [ ] TODO rtl_power

rxseger avatar Jul 16 '16 05:07 rxseger

Comparing https://github.com/keenerd/rtl-sdr/tree/master to https://github.com/rxseger/rx_tools/tree/librtlsdr-only which I branched from https://github.com/rxseger/librtlsdr/tree/rpc_ir (mostly irrelevant rtl_ir/rtl_rpcd) from https://github.com/librtlsdr/librtlsdr/tree/development 45 files changed, 12949 insertions(+), 732 deletions(-) - of those, relevant to rx_tools:

 b/src/rtl_fm.c                    | 1136 +++++++++++++--------
 b/src/rtl_power.c                 |  704 +++++++++----
 b/src/rtl_sdr.c                   |   29 

(List moved to top of issue)

rxseger avatar Jul 18 '16 02:07 rxseger

Quite a few nice enhancements here, merged the -E wav option, now instead of:

./rx_fm -M fm -s 12k -l 25 -f  … | play -r 12k -t raw -e s -b 16 -c 1 -V1 -

can pass -t wav, and sox/play gets all of the audio format parameters from the .wav/RIFF header:

./rx_fm -E wav -M fm -s 12k -l 25 -f | play -t wav -

Merged in a few other small straightforward fixes, others will require more work.

rxseger avatar Jul 18 '16 03:07 rxseger