The Latest
RackRF One Signal Generator
Posted by AG6QV Frank

Signal Generators are important tools to test HAM radio equipment. A very simple version that can generate 4 different carriers in some of the HAM radio bands is used to illustrate the possibilities of the HackRF One and other SDR systems.

First step is to set up a few variables within GNU Radio Companion. When a new project is created there is one variable provided called samp_rate. This is used to define the sample rates used for the DA/AD converters in the SDR. HackRF One operates with sample rates between 1 and 20 million in steps of 1 million.

In this example there are two additional variables added. The first one is to set the drive or output level. This is created as a variable called drive with a min and max value of 0 and 1 respectively. The UI element is a knob, but there are several other ways to control the values of any variable from the GUI. For the frequency I chose a radio button style with 4 available options, one for each band and coded the frequencies tbe 50.1MHz (6m), 144.1MHZ (2m), 432.100 (70cm) and 1296.1MHZ (23cm). Having a simple input to enter the exact frequency is another option.

The two active component is the Constant Source used to generate the RF signal and the Soapy HackRF Sink to communicate with the hardware to generate the signal. In more advanced systems the source could be generated from audio files or a microphone input to allow transmission of a real signal.

When the application is running it will generate an application as shown below:

A copy of the GNU Radio Companion project file can be downloaded here.

To test the system I used my HT to listen to one of the 4 frequencies, turn up the drive until the signal was received. The maximum output power of the HackRF One device is in the range of 0-15dBm depending on the frequency selected.


GNU Radio Revisited
Posted by AG6QV Frank

A long time ago I invested in a HackRF One device to play with Software Defined Radio (SDR). Over the years the available software has evolved and is evolving faster on a Linux platform compared to Windows. So when Microsoft introduced Windows Subsystem for Linux (WSL) I was exited to test it on my development system. Unfortunately the joy was short lived as there was no support for USB devices. Today I discovered that there was a way to make it all work. This post is a description of the steps needed to install WSL, a Linux distribution, the Gnu Radio software and how to make USB devices available to the Linux environment.

In order to use the WSL system there are a couple of Windows features that must be turned on. Change these will require the computer to be rebooted. As shown in the two screenshots below the Hyper-V feature and Windows Subsystem for Windows must be enabled.


When everything is installed and the system rebooted it's time to install the Linux distribution. There are several available to choose from. The list of distributions can be viewed by opening a Windows Terminal and executing the command 'wsl --list --online'. If you already have an older version of WSL installed it will be a good idea to run 'wsl --update' to insure the latest version is installed.

Use the command 'wsl --install -d Ubuntu-24.04' to install the latest version of Ubuntu. It is possible to install multiple distributions, and even to run them side by side. Using the wsl command will start a Linux terminal using the default distribution. I like to use a program called MobaXterm to interact with the Linux distributions on my system or with remote servers. The program comes with an X server that allows executing graphical applications and it know about all the WSL distributions that exists on the system.

Microsoft has contributed the the open source project 'usbipd' and created a special version called usbipd-win. Installing or updating this toll will allow the installed USB devices to be shared across to a linux distribution. Execute the following comman in a Windows terminal to install the tool:

winget install --interactive --exact dorssel.usbipd-win

When the tool is installed use the usbipd command to list the available USB devises. Note the BUSID for the device you would like to make available to the Linux distribution.

usbipd list

On my system the Hack RF One device has BUSID 2-2 and the following command will make the device available in the Ubunto environment.

usbipd attach --wsl --busid 2-2

The two images below shows MobaXterm with the list of available distributions and the terminal opened.


In order to view the available USB devices in the Linux Terminal it is necessary to install some tools called 'usbutils'. This package is installed by the following command:

sudo apt install usbutils

After installation the lsusb command can be used to list the available devices. The image below shows the list of devices before and after attaching the the HACK RF One device as one of the available devices in the Linux environment.

Installing the GNU Radio packages and the required GTK packages can be done with the command shown below.

sudo apt install gnuradio
sudo apt-get install libgtk-4-1 libgtk-4-dev
sudo apt install python3-gi gobject-introspection gir1.2-gtk-3.0

With everything installed the system is ready to use. I now have some work to do to update the projects I created when I first started to use GNU Radio. There has been many changes to the available objects. In the coming posts I'll share some of the projects I have created for signal generators, spectrum analyzers and other radio related items.


Antenna Switch
Posted by AG6QV Frank
Tags:

For 2m and 70 cm bands I have horizontally polarized antennas for each band and a dual band vertical for operating on repeaters. There is also an external amplifier for each band. In order to utilize the vertical antenna I created a box that houses 3 coax relays. There is a relay for each band to switch between horizontal and vertical polarization and one relay that switches between the bands. Since this switching is done directly on the output of the radio, before the amplifiers and since the radio only transmits on one band at the time, the power handling for the relays can be limited to the power output of the radio (100W on 2m and 50W on 70cm). Standard coax relays can easily handle that amount of power.

With a 3D printed enclosure the box fits nicely on a shelf behind the radio. The image below shows the box and lid as they came out of the 3D printer.


The next image shows the components mounted inside the box. There are two RCA connectors used to control the switching of the relays (one for each band) and two LEDs to visually show which of the two bands are connected to the vertical antenna. When no LEDs are on both antennas will be connected to the horizontal beams.

The final image shows the box with the lid closed and ready to be connected to the radio, amplifiers and vertical antenna.

Controlling the relays is done through an Raspberry Pi application that also controls up to 6 HF/50MHz antennas. The logic ensures that only one HF antenna is selected at any given time and only 2m or 70cm can be connected to the vertical antenna at any given time.


Recent Blog Posts
    Calendar
    June 2025
    SuMoTuWeThFrSa
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30