How-to: Configure Per Vices SDR as a Repeater

This how-to discusses configuring your Per Vices SDR as a repeater, such that the data received on each Receive Channel will be transmitted on the corresponding Transmit Channel.

This can be accomplished by having the SDR send the received data to the host computer and having the host computer send the data to the SDR transmit chain. However if no signal processing is required, we can reduce the computational and network requirements by using an SFP+ Loopback (for Crimson) or QSFP+ Loopback (for Chestnut or Cyan) to send the data directly from the receive chain to the transmit chain without the host machine involved.

1. Physically Setting up the Unit

When setting up the unit to act as a repeater Ensure Power is Properly Connected and Ensure Management Port is Properly Connected as described in PVHT-1: How to Physically Set Up a Per Vices SDR.

However, rather than connecting the data ports to the host machine, insert Loopback Modules into each of the SFP+ or QSFP+ ports on the SDR.

In summary:

2. Configuring the MGMT interface

Follow the guide PVHT-2: Network Configuration How To Guide to set up the MGMT interface of the host machine. Note that SFP+ or QSFP+ ports are not required on the host machine, and you can skip the steps for configuring those ports. In summary you will need to:

3. Confirming ping to MGMT interface

To confirm the MGMT interface is connected and configured correctly, ensure:

Then on the host machine run the command:

ping 192.168.10.2 -c 3

Confirm that the result shows 0% packet loss.

Note that the IP address shown in the example ping command is the default MGMT IP address of Per Vices SDRs and may be different if you have changed the SDR configuration or are using the alternate MGMT port on a Cyan or Chestnut SDR.

4. Installing UHD on Host Machine

To install UHD on your Host Machine please follow PVHT-3: Set up UHD and Gnuradio software

5. Confirming that UHD is installed and working

To confirm that UHS is installed and able to communicate with your SDR, ensure:

Then on the host machine run the command:

uhd_find_devices

The command is expected to print an output such as:

[INFO] [UHD] linux; GNU C++ version 14.2.1 20240910; Boost_108600; UHD_4.4.0.makepkg-2301-ge5d4282a
--------------------------------------------------
-- UHD Device 0
--------------------------------------------------
Device Address:
    serial: 63858313238351604001300
    addr: 192.168.10.2
    name: 
    type: crimson_tng

6. Running the example script

When UHD is installed, several example programs are also installed. The default location of those programs is /usr/lib/uhd/examples. One of those example programs is rxtx_inter_device_stream, which demonstrates streaming data between SDRs without sending the data to an intermediary host machine.

To make calling this program with the many configuration arguements convenient we have created a sample invocation script, pvrepeater.sh that you can reference.

This example script configures a default configured device for loopback configuration on 4.458GHz on channel A, 4.948GHz on channel B, 611.25MHz on channel C, and 686.25MHz on channel D.

You can reference the comments in the example script to modify it to lookpabck on any other desired frequency or samplerate.

6.1 Validating the example script

After downloading and running the example script referenced above, connect a signal generator to Rx A, and set it to inject a singal at -30dBm at 4.458GHz. You can simultaniously connect a signal analyzer to Tx A to observe the output from it.