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.
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:
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.
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.
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:
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-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.
I'm living in a forest with a tool hill of trees to the east, north and south. The 30-50W I use when operating FT8 will usually result in a 10 - 20 dB difference in signal received vs sent. So I figured I would increase the output a bit to perhaps 100 or 150W when operating FT8 and 600W for SSB/CW. The MRF 300 transistors are relatively cheap ($52 per transistor) and boards are available assembled or as a kit for about $100. I decided to go with a board from DX World-e in Greece. Today I started on mounting the components into a small box.
The image below shows the top half of the cabinet with the amp, TX relay and connectors for inpit and antenna 1 and 2 on the back.
When the box is turned upside down the heatsink will sit on the top left and there is room at the buttom for the low pass filters and the front plate with switches and SWR instruments.
The back of the cabinet has input and output as well as a place for the power cord to be attached. The bias circuit and relays require 12V and the MRF 300 transistors will operate on 52-57V to get to the full 600W power. I have not yet decided if I want to use an external 12V source or build a step down converter and regulator from the 54V line.
There is still a bit more work until I can power it up and after that there is a similar version for 2m to put into a second enclosure.