Notes on installing software on a Raspberry Pi 3/4/400 to create a SDR Transceiver In order not to break an existing working raspi system, use a fresh memory card when experimenting with SDR. The Radio programs are “processor hungry” and it is best not to have too much else going on with the system. Download the Raspberry Pi operating system (“Buster” version March 2021 ) with the desktop (~1.2 Mbytes) and unzip it and check that the image is intact. Transfer the resulting image onto a fast memory card > 16GB . ( I use “Etcher” for this as it’s pretty foolproof and it re-tests the Image integrity automatically. Insert the memory card into the Raspi and follow the initial install instructions from the Raspi web site, and re-start. To use both Tx and Rx radio software on a Raspi400 you will need a USB expansion module and an external USB sound module. After plugging in these units, set up the sound profile to HDMI off and the USB audio to stereo output with 1 mono input. Check with any mp3 music that it comes out of the sound module. Go to > preferences > add-remove software and type GqRx in the top left had search box and press return. Tick the box for Software defined receiver and press install. After doing this you should find that Gqrx is available in the available programmes (in the Internet folder) and GNU Radio Companion is available (in the Programming folder) . Note In earlier versions of “Buster” it may be necessary to search for Gnu Radio separately and make sure that the install “Hack-rf” or other SDR module is also ticked when Gnu Radio is installed. Plug in the RTL receiver (via a short extender cable) into the fast USB port directly on the Raspi and leave another direct port available for the Hack sdr module. The sound module, keyboard, and mouse can go into the USB extender. Re-start the raspi. Start the GqRx program and make sure that a RTL module ( possibly with serial no 000001) has been selected in the input device list. If not, select it in the "Configure" menu. Connect a small antenna to the RTL module (a bit of wire will do) and Leave all other settings in their default settings and press OK which will start the program. It will come up on an arbitrary freq and will be inactive until the arrow (top left) is pressed. Change the frequency settings to one in FM 88 -100, by clicking on the large numbers at the top of the spectrum display and then press “View” to make sure that all the options are ticked except “RDS”, “Bookmarks” and “Full Screen”. Select “input controls” on the right hand panel and advance the LNA until signals appear on the spectrum display. Then press Receiver options and select “WFM(mono)” from the list and advance the “Gain” slider in the panel below until signals are heard ( probably around the +20dB level). Once GqRx is working on FM, halt the reception by pressing the “StopDSProcessing” arrow and then save this immediately as a setting called “FM-band II” in >File>Save settings. Also save this working system as default before trying more complex reception configurations. This will always give you a working backup to start with in case you attempt something too adventurous. (like setting too high a FFT rate or too narrow a bandwidth for the rasp processor to cope with!) To allow the transmitter frequency to be remotely changed from the GQRX panoramic tuner screen , the remote software interface must also be setup . Goto the “configure remote control” button (crossed spanners) on the main screen and put 7356 in the “Listen on port” and “allowed hosts” equal to ::ffff:127.0.0.1 if it isn’t there already. Once this is done the “Remote control via tcp” can be pressed (it turns grey) and left like that. A very useful command-line program for directly testing and creating a signal source from a Hack-rf is available on the Raspi software repository - go to >preferences > Add/Remove Software > Software defined radio peripheral – utilities. Or type “sudo apt-get install hackrf” as a command from the terminal Before using GNU radio, make sure that the Hackrf is recognised by the PC and it can be configured directly by the terminal. Plug it into a USB slot open the terminal and Type: hackrf_info A message should come up which describes the Hack rf type and gives its serial number and firmware version number. A row of LED,s will light up on the Hackrf except for the last "TX" light. Put an attenuator on the Hackrf output and connect it's antenna. Then type the command “ hackrf_transfer -f 432100000 -c 127 -x 30 -a 0 “ into the terminal This will put the Hackrf into permanent TX mode transmitting 432.1 MHz Which you should be able to receive on any 70cms set. - The red "tx" light on the Hackrf should nowbe on. To stop it transmitting type: “ ctrl C “ And the red "tx" light will go off. - Other options for CW transmitting are shown by typing: “ hackrf_transfer -help “ IF EVER THE TX LIGHT IS ON and it shouldn't be - either press the RESET button on the Hackrf or type “ hackrf-info “ into the terminal and this will reset it to receive. Now you know Hackrf is working you can also use it with Gqrx which will operate Hackrf as a Receiver which will tune down to 3.5MHz directly without the need for an external mixer. Having got a working receiver, download the Gnu-Radio files from the web-links and place them on the pi Desktop. The audio wav files must also be down-loaded to the desktop, otherwise the gnu radio files will not find them and the resulting python program will not run. Also the user on the Raspberry Pi must be “pi” otherwise the resulting transmitter and “getGqrx_net” python files may not compile or run. They must be executable. The Raspi has a “properties” option when selecting the properties of a file, and if it is to be executed from the desktop, this should be set to “Anyone” or “only owner” for all the final python files. The Gnu-radio (.grc files) will run to display their make-up even if there is no Hack-rf module attached to the USB, and they will compile a final python file, but they will not fully de-bug unless a Hack-rf is connected. The final python file will only run if a Hack-rf or other SDR is connected which matches the driver tx module that was used in within Gnu program. A sample, ready compiled, python2 transmitter program which uses a “HackRF One” and runs on a Rapi4/400 is also downloadable from the web-links. ( remember it must be made executable on the raspi) For more, basic info, on the process of using Gnu-radio to make SDR python programs goto https://greatscottgadgets.com/sdr/1/