Portsdown Band Viewer

From BATC Wiki
Jump to navigation Jump to search


The "Band Viewer" software is included with the Portsdown 4 and Portsdown 2020 and can be used to provide a basic spectrum display of band occupancy using the receive section of a LimeSDR, Pluto (Portsdown 4 only), SDRPlay RSPdx (Portsdown 4 only), Airspy R2 or RTL-SDR. It only works effectively with the specified SDRs and the 7 inch screen (or the DSI-connected 5 inch screen). It has a limited capability with the Waveshare 3.5 inch screen on the Portsdown 2020, but only with the RTL-SDR. See here for details.


To start the software, connect the SDR by USB select Menu 2, Band Viewer. The capabilities of each SDR are as follows:

SDR Characteristics
SDR Frequency Coverage Span Widths Notes
LimeSDR 30 MHz - 3.5 GHz 100, 200, 500 kHz, 1, 2, 5, 10, 20 MHz LimeSDR Mini, LimeSDR USB or LimeNET Micro
Pluto 70 MHz - 6 GHz 2, 5, 10, 20, 50 MHz Portsdown 4 only
Pluto 5th 6 GHz - 30 GHz 2, 5, 10, 20, 50 MHz Much Reduced Sensitivity
RSPdx 1 kHz - 2 GHz 100, 200, 500 kHz, 1, 2, 5, 10 MHz Portsdown 4 only
Airspy R2 24 MHz - 1.7 GHz 1, 2, 5, 10 MHz Only Airspy R2 supported
RTL-SDR model-dependent 500 kHz, 1, 2 MHz

Pluto Set-up

BandViewer has only been tested with USB-connected Plutos. If you have changed the IP Address of your USB-connected Pluto, you also need to set it in the Portsdown Menu 3, Pluto Config, Set Pluto IP for Portsdown.

Starting the Software

BandViewer can be selected from Portsdown Menu 2, BandViewer. The BandViewer for specific SDRs can also be selected from Menu 2, Test Equipment. On selection of the generic BandViewer button, the software checks for the presence of the SDRs in the order: Airspy, SDRplay, LimeSDR, RTL-SDR, Pluto. It uses the first SDR that it finds, or displays an error message if it cannot find an SDR. If a connected SDRplay is not detected, it may be necessary to specifically select the SDRplay from the Test Equipment menu to load the driver.

BandViewer can also be selected from the Terrestrial (not QO-100) Receiver menu. In this case, the BandViewer is automatically set to the selected receive frequency.

To Exit the software back to Portsdown, press the "Exit to Portsdown" button twice.


The centre frequency can be directly entered from the keyboard (selected from the Settings menu) and a number of programmable presets are available. The centre frequency can be shifted down or up by 10% of the span width by using the left and right buttons on the main menu. The presets can be configured from the Mode, Set Config, Set Freq Presets Menu. Stored frequency and presets are specific to each SDR type.

The Pluto 5th Harmonic mode extends BandViewer coverage into the range 6 GHz - 30 GHz. This mode has much reduced sensitivity and a lot of spurious responses, but can be useful for checking the spectrum of microwave receiver LOs and microwave transmitter outputs. The mode is automatically selected when a frequency above 6 GHz is set as the centre frequency.

Gain Control and Accuracy of Level Display

Although the display is calibrated over 80 dB of dynamic range, it not all is usable - particularly with the RTL-SDR. The SDR gain can be adjusted from the settings menu to optimise the display. Careful screening and grounding of the SDR can reduce the noise level and spurii, although not all can be eliminated.

The relative levels displayed at a single frequency are accurate within about 1dB. However, the absolute level is uncalibrated, and there is some variation in level calibration at the outer edges of the scan.

From the Mode menu, it is possible to reconfigure the display to show only 20dB of range. This is ideal for fine alignment of systems.

When using the SDRplay and LimeSDRs, the 0 dB line is calibrated to 0 dBFS. This corresponds to the maximum signal stength that a single carrier can be displayed at with no distortion. At lower span widths, this can take the noise level below -80 dB. There is a setting on the Mode Menu (LimeSDR) or Gain Menu (SDRplay) to "Show 20dB lower". This shifts the whole display so that levels down to -100 dB are visible.

Measurements and Recording

A measurement marker is available to track peaks in the spectrum. There is also a "Peak Hold" function. The display can also be frozen and/or captured to a .jpg file which is saved in the /home/pi/snaps folder. These can be viewed using the Snap Viewer selected from the System Menu, or transferred to another computer using a network connection.

Web Viewing

The displayed spectrum can be viewed from a browser on the same network as the BandViewer. Simply type in the Portsdown's IP address and select "Touchscreen" and you should see the spectrum, which is updated once a second.

For this to work, "Web Control" needs to be enabled in the Portsdown software (Menu 2, System Config, Web Control Enable/Disable). Note that, unlike the Portsdown and Signal Generator software, web control of the Band Viewer is not possible - it is display only. Settings need to be adjusted using the touchscreen. Exceptionally, web control is available on the SDRplay BandViewer - see below. Web control is now also available for the RTL-SDR BandViewer.


The software uses a Fast Fourier Transform with a Bin Size of 1/500th of the display width. So, for example, on the 500 kHz span width the resolution is 1 kHz.

Known Bugs and Limitations

On the Portsdown 2020, the first start of the Band Viewer after each boot is delayed to prevent a conflict with other screen-writing activity. Subsequent starts are unaffected.

If the 20 MHz span does not work on your LimeSDR Mini, it is a symptom of low supply voltage at the LimeSDR. Measure the voltage at the LimeSDR Mini edge terminals - it needs to be at least 4.9 volts. To cure such problems, make sure that your Raspberry Pi is supplied with exactly 5.2 volts and use a good quality (not necessarily expensive - just low resistance) USB cable.

The software sometimes crashes when the span width is changed. Simply restart the BandViewer and it should restart with the new Span Width.

LimeSDR BandViewer shows a DC noise spike of between 15 and 20 dB amplitude in the centre of the display. This is hidden if a reasonable gain preamp is used in front of the LimeSDR.

SDRplay RSP Capability - Portsdown 4 Only

The SDRplay RSP family are complex SDRs with good performance. They need special drivers, which sometimes take a while (up to 90 seconds) to be loaded when selected. They should be connected to one of the (black) USB2 ports on the Raspberry Pi 4. The (blue) USB3 ports do not always work for the SDRplay. The BandViewer has been tested with the RSPdx and RSP2pro; other RSP series SDRs should work, but have not been tested.

There are gain settings for both the IF Gain and the RF Gain. A good starting point for BandViewer is an RF Gain of 0 dB, and an IF gain of -10 dB. The gain setting calibration is only valid for the RSPdx. The AGC facility does work, but is not recommended with BandViewer. The top of the screen is set to be "digital full scale" (also known as 0 dBFS). This can sometimes push the noise floor off the bottom of the screen; it can be brought back into into view by selecting "Show 20dB Lower" on the gain menu. Note that the IF Gain and RF gain calibration settings are only valid for the RSPdx. They do change the gain on other models, but not by the factor indicated on the button.

On the "Advanced Config" menu (accessed through "Settings", "Waterfall Config", "Advanced Config"), the desired Antenna input for the RSPdx can be selected. Enter A, B or C; for the Hi-Z input, select C. The 4.7v Bias T LNA supply on the supported input can also be switched on an off from this menu. A frequency offset can also be set that changes the frequency calibration on the display. For a receiver with a low side LO, simply enter the the LO frequency in Hz (such as 9750000000 for a standard QO-100 LNB). For a receiver with a high side LO, enter the LO frequency as negative (such as -5150000000 for a C-Band LNB); with a high side LO, the spectrum is also reversed so that it looks correct. In all cases, the frequency entry for the centre frequency needs to at the actual SDR centre frequency (such as 745 MHz for a standard QO-100 LNB). Any reported marker frequency is likely to be at the SDR frequency, and possibly incorrect for high-side mixing.

RSP Clones are reported to work with BandViower, but have much poorer performance than the genuine article; at least 20 dB less sensitive with lots of additional spurii.

Unlike other versions of BandViewer, the "Set Frequency Presets" menu is accessed from the "System" menu.

Web view is available for the SDRplay BandViewer, and also web control. Note that web view only updates the screen once per second so spectrums and waterfalls will appear to be jerky.

Waterfall Capability

The LimeSDR, Pluto and SDRplay BandViewers includes a waterfall capability. This is selected from the Mode Menu. There are 2 waterfall presentation modes: "Mix" mode where the top quarter of the screen displays a spectrum and the lower three quarters displays a waterfall, and "Waterfall" mode where the waterfall fills the screen.

Mix Mode.jpg

The waterfall is configured from the "Waterfall Config" menu. "Set Waterfall Base Level" sets the signal strength below which the waterfall will paint black. "Set Waterfall Range" adds to the base level to set the signal strength above which the waterfall will paint white. These settings should be adjusted so the the base level is just below the noise floor, and the range includes the strongest signals. Selecting "Mode" and "Classic SA Display" will show a small strip of the waterfall spectrum to the right of the normal bandviewer display to enable these levels to be set properly. A smaller version of this strip is also displayed in "Mix" mode. Good starting values for the settings are a base level of -70 and a range of 60. For clearer display of weaker signals, the range should be reduced.

The other waterfall setting is the Waterfall Time Span. This sets the time taken for any event to move from the top of the screen to the bottom of the screen (in seconds). A good starting setting is 10 seconds. The minimum time is about 3 seconds - this is limited by computing speed and varies with processor load; for this reason the time calibration scale is not displayed when Time Spans of less than 5 seconds are selected.

The waterfall has 3 amplitude display modes selected from the Waterfall Config Menu:

  • "Waterfall Normal" displays a single fft sample for each displayed waterfall line and discards the ones that occur in between the waterfall lines. This means that some short-duration RF events might be missed as they occur in the interval between waterfall lines.
  • "Waterfall Average" takes the arithmetic mean of the each fft sample that is taken between the time for display of waterfall lines.
  • "Waterfall Peak" uses the highest power value that occurs on each frequency for all fft samples between the display of waterfall lines.

Waterfall peak is best for detecting short-duration RF events, but the background noise level varies with the uneven rate of waterfall sampling. This variation is due to the processor being busy with other tasks. Waterfall Normal is best for detecting an amatur signal during fading conditions. Waterfall Average is a compromise between these 2 solutions.

It is hoped to add the waterfall capability to the BandViewer for the Airspy and RTL-SDR when time permits.

Band Switching

When using the Pluto BandViewer, the 4 Portsdown band-switching lines can be controlled by the center frequency set on the BandViewer. To enable this capability, switch it on in the "system" menu. The exact frequency to band relationship then needs to be set by manually editing (using a text editor) the file /home/pi/rpidatv/src/plutoview/plutoview_bands.txt

Portsdown 2020 with Waveshare 3.5 inch Screen and the RTL-SDR

The BandViewer software was written to only support the 7 inch screen with an 800x480 picture size. The Waveshare 3.5 inch screen has a framebuffer size of 720x576, so there is no room for the control buttons on the right hand side. However, the RTL-SDR BandViewer can be run in fixed-frequency, fixed span width and fixed gain mode by using the following procedure:

  • Connect an RTL-SDR and start Portsdown
  • Select RX. If you have no MiniTiouner connected, touch the screen to continue - it does not matter.
  • On the receiver menu, Make sure that you have "Terrestrial", not "QO-100" selected in the top left button. Touch the button to change it if required.
  • Select the centre frequency that you want to tune BandViewer to. If it is not on one of the presets, select the button labelled keyboard and you can enter the frequency.
  • Select the bottom right button "BandViewer on RX Freq". If the button is grey, not blue, it means that you do not have an RTL-SDR connected.
  • After a pause, BandViewer should start on your selected centre frequency, with a 2 MHz span width.
  • You cannot adjust the settings.
  • To return to Portsdown (and possibly select a new centre frequency) simply touch the screen.
  • Having set the correct centre fequency, the BandViewer can be reselected directly from Portsdown Menu 2.

Advanced users can adjust the settings by editing the file /home/pi/rpidatv/src/rtlsdrview/rtlsdrview_config.txt before starting BandViewer, but this needs to be done carefully to avoid illegal settings.

Note that this Waveshare screen capability is only for the RTL-SDR, not the LimeSDR or Airspy R2.


To Exit the software back to Portsdown, press the "Exit to Portsdown" button twice. To restart BandViewer (if it freezes), use the Restart button on the System Menu.


Thanks to Phil M0DNY for the LimeSDR fft code, and to Michel HB9DUG for encouraging the development.

Band Viewer LMN.jpg