The last major milestone has arrived for the powerline QRM monitor, and one serendipitous bonus feature is now available as well.

Inexpensive RTL-SDR devices are now supported as monitoring sources. Specifically tested and supported is the popular RTL-SDR.com v4 USB dongle, though the new v4lite should also work fine. These have built-in up-converters for HF tuning. SDRplay support is planned for the next improvement.

Note: do not replace any .dll or .so files when utilizing RTL-SDR support; the v4 family of devices is already supported by pyrtlsdr/librtlsdr, and replacing the library files will cause things to break.

One challenge with the RTL-SDR family of devices is that the analog-to-digital converter is an only 8-bit device, which provides less than 50dB of dynamic range and a good deal of self-noise. To mitigate this somewhat, the setup tool provides gain auto-calibration which tries to match the noise seen by your antenna system to the self-noise of the device. This in turn requires negating the gain in software to produce reasonably accurate estimates of signal strength.

The actual gain relative to the requested gain with these inexpensive RTLSDR devices is somewhat nonlinear and unpredictable, so the software gain adjustment can also be modified by the operator; for example, my receiver hardware gain is set to 22.9dB, but my software negation is set to -25.2 to get general agreement with the values published from my KX3 and sound card, because the gain provided at 22.9dB exceeds the requested gain by a small amount.

Other goodies in this release:

  • The power grid frequency estimate graph can now be enabled.
  • A free disk space threshold can be applied to throttle automatic recording of events when free space drops below a threshold (defaults to 10%).
  • In addition to recording event audio, users of SDR devices may also record the raw I/Q data for later analysis in tools like SDR# or GNURadio.

The next big thing coming will be SDRPlay support. Because of some refactoring to the codebase that was done to enable RTL-SDR devices, adding SDRPlay should be a much faster and easier proposition with most of the time spent on waiting to receive such a device from HRO!

Special thanks to Aaron AK6IM for his suggestion of the feature to record I/Q files and for verifying the correctness of an I/Q file once I’d produced one.

As always, Claude was my minion for refactoring and generating some code, but never my architect, and all user-facing documentation continues to be written by hand.