v1.390: cross compilation, SAM demodulators

edited April 2020 in KiwiSDR Discussion
From the "I'm not working on it except when it interests me" department:
v1.390  April 23, 2020
    Performance improvements:
        Suggested by @howardsu on Kiwi forum: remove -DDEBUG so assert()'s are not evaluated.
        	Added new "make debug" target to revert to compiling with -DDEBUG defined.

        Christoph's cross-compilation changes: added "make xc" target that allows cross-compiling on
            development host. Alternative to slow compiles on Beagle during development.
            See file CROSS_COMPILE for complete details.
    Added synchronous AM (SAM) demodulators from Warren Pratt's wdsp package via the
        Teensy-ConvolutionSDR implementation: github.com/DD4WH/Teensy-ConvolutionSDR
        See the Kiwi operation manual for more information: kiwisdr.com/quickstart/index.html#id-faq-sam
        Synchronous AM modes: SAM, SAL, SAU, SAS
    User interface changes:
        Use keyboard shortcut 'A' to toggle the SAM modes (sorry, 's' and 'S' were taken).
            As always type 'h' or '?' to see the list of all keyboard shortcuts.
        Bugfix: Adjusting the passband via a "/width" or "/low,high" entry in the
            frequency box is now "sticky" i.e. remembered when returning to the mode.
            Just like when changing the passband via the 'p' and 'P' keyboard shortcuts.
            Restore as usual by shift-clicking on the mode button.
I'm interested in feedback about the SAM demods from the BCB DX crowd. But remember that this code is just lifted from wdsp and I don't know much about it. There are some tunable PLL parameters that could potentially be optimized. Please read the Kiwi operation manual for full details: kiwisdr.com/quickstart/index.html#id-faq-sam


  • On the local AMBC here in my RF swamp... I find that starting in AM then switching to SAM works best, That may also be the case on other BC stuff. Worked great when I did it that way
  • Just tried SAM. Pretty impressed. Syncs like my old Sony 2010 did. One application that is handy is to pick a sideband. Right now 9420 has heavy rtty qrm in am, but is quite easy to copy on SAU, much better than on USB. The ability of synchronous to make it easier to listen to fadey signals is significant.
    Its fun to get close to a signal and hear the SAM tune in the frequency.
    I tried BCB, but can't find much to listen to...
    Thanks so much for the implementation. .
  • Excellent addition!

    Works great - a good test is to find a strong local MW BC station with a weak adjacent channel signal that is normally obliterated by the stronger local and then click on SAM or SAL (depending on which side of the stronger signal it is situated) and bingo there it is nice and clear!

    Thank you for the great update!

    -Zyg- AF4MP
  • SAM clears up distorted audio in AM caused by selective fading very well. Good job!
  • Github is down at the moment, which will affect Kiwis attempting to update.

    Nice job with the SAM inclusion.

    It'll be interesting to try the cross compilation as well, but that's a few weeks away for me.
  • edited April 2020
    Awesome! I have been looking forward to this for some time!

    It works perfectly tuned into a broadcast station in MW. Great sound, love it.

    If I listen to my own Talking House Part 15 Transmitter, I get an occasional clunk/glitch sound in the audio, which I notice coincides with a sudden shift in the carrier frequency of a few Hz. I assume this is the fault of the TH transmitter itself, its PLL is probably shifting the carrier frequency.
  • The Synchronous AM demodulator appears to work very well, being reasonably able to lock on to rather weak AM carriers.

    I did notice that the SAM frequency offset indicator on the "Stats" screen will sometimes not appear: Switching to AM and back to SAM will usually make the status indicator appear. Once in a while the offset indicator will stop updating - even though the demod is working fine - but in that case it sometimes seems to require a page reload to get it working again.

    Thanks for the great work!

  • edited April 2020
    Would it be possible to chop the opposite passband off when selecting SAL or SAU.... whoa, now I see it doing that. Would have swore it didn't at one point

    Update, wasn't imagining it... the yellow passband doesn't always update
  • The yellow passband is never changed explicitly by the SAM code.

    You'll only see it changed if you had previously altered the passband for the particular mode (all 4 SAM modes are treated independently in that regard just like e.g. AM and AMN). Remember that such a change is "sticky" until you undo it with shift-click on the mode button to restore the default passband (tooltip when you hover over mode button with shift depressed will say "restore passband").
  • ah! makes sense....
  • Also interesting is the Spectral noise reduction in the Teensy Convolution SDR software package...
  • jksjks
    edited April 2020
    I'm in the middle of porting all the noise reduction and noise blanking code from Teensy now. It's not quite as easy a job as SAM was however.
  • Alright, next release SAL & SAU will not display the opposite sideband in the passband image. They'll work just like LSB & USB do now. I'm not sure why I thought this wasn't the right thing to do..
  • John, I'd just like to say the KiwiSDR is the most enjoyable thing I've bought in recent years. It has re-ignited my interest in shortwave that started as a teen. I have a few SDR's but the Kiwi is my goto one. In my case the wide waterfall is the main feature being able to see signals (and noise) across the spectrum. I have learnt a lot directly because of the Kiwi. The steady development and intimate feel, yet open nature of the community is pleasing too. You avail yourself to the community and are open to ideas and this has in turn made a great device. Thank You!
  • +1 !!!
  • Just a note that recordings made in the SAS mode (currently my favorite mode, in fact :) ) are somehow slowed down in speed while playing them back, making them hard to listen to. Something odd happening there.
  • jksjks
    edited May 2020
    Ha, I know what this is. Because SAS is producing twice the data, like IQ mode, that fact needs to be taken into account by the internal recording code.

    Already fixed for the next release..
  • The synchronous AM mode is fantastic! I particularly like the SAS mode - it gives me spatial abilities on where interference resides so I can then select the proper lower or upper sideband of the AM transmission if needed. This mode is also a big hit with amateur AM mode community in the U.S. on the various AM windows, most notably 3885 and 7290 kHz. Thanks for including SAM and keep up the great work.
Sign In or Register to comment.