Getting Started with GNU Radio, Eclypse Z7, and the Zmod SDR

This guide details how to start using GNU Radio with the Zmod SDR and an Eclypse Z7 baseboard, relying on an SDR transceiver project created by Pavel Demin. For more information about the SDR transceiver application, check out the documentation for the project, found here: sdr-transceiver. All software and libraries compatible with the SDR transceiver application should remain compatible with this version of the project.


Inventory

This application requires the following hardware:

  • Zmod SDR and Eclypse Z7
    • The project image supports an optional Zmod AWG installed in Zmod port B
  • FM antenna
  • Depending on the type of antenna, a suitable adapter with an SMA male connector
  • One or two Ethernet cables to connect the Eclypse to a router or directly to your computer

This application requires the following software:

  • Your computer must use a Linux-based operating system. The guide was written using Ubuntu 23.10
  • GNU Radio
  • Git

Hardware Setup

The first step is to create a microSD card with the boot image provided by Pavel, available to download here:

Extract the downloaded ZIP file and copy the contents to the microSD card.

Optionally, copy the start.sh file from the archive's apps/sdr_transceiver/ directory to the root of the SD card. This will make the SDR transceiver application start automatically when the board boots from the SD card, rather than requiring you to connect to the device with an internet browser to start the application manually.


For this application, the Zmod SDR needs to be connected to the Eclypse Z7 board's Zmod A connector. If you have a Zmod AWG, it can be connected to Zmod B. Don't connect non-AWG Zmods to port B while running the project, as their electrical interfaces may not be compatible.

  • Zmod SDR is connected to the Zmod A connector
  • Zmod AWG is connected to the Zmod B connector (optional)

Connect the antenna to channel one of the Zmod SDR using the appropriate adapter. Then, connect the Eclypse Z7 board to your router or your computer using an Ethernet cable. If you want to observe the boot sequence, you could connect a microUSB cable to the Eclypse's PROG port and connect a serial terminal application to the associated serial port. Turn on the board and wait until the green programming done LED lights up to ensure that the board is running and the Zynq PL has been programmed - it may take some time for the board to boot, but not more than a minute.

figure1.jpg


Next, you should determine the IP address assigned to your device. If you directly connected your board to the computer and are not using DHCP, the default IP address and port for the application is 192.168.1.100:1001. If you are using a router to facilitate communication via the local network, you can find the IP address assigned to the application via your router's administration page, or by some other means. Make sure you know the IP address of your board before continuing.


Software Setup

For this demo, if not already installed, Git and GNU Radio must be installed on a computer that has a Linux-based operating system. Ubuntu 23.10 was used while writing this guide. To install these tools, open a terminal window and run the following commands:

sudo apt-get install git-all
sudo apt-get install gnuradio

Note: These commands are for Ubuntu versions 22.04 and newer.

For more information on how to install GNU Radio, you can find installation instructions on this page of the GNU Radio wiki:

After installing the programs mentioned above, the next step is to clone Pavel Demin's Git repository. Run the following command in the terminal:

git clone https://github.com/pavel-demin/eclypse-z7-notes

Open the folder where you copied the repository, and follow the following path: ``eclypse-z7-notes/projects/sdr_transceiver/gnuradio``, then right-click on the folder and open a new terminal window. Or, to navigate to the folder using the existing terminal window, use the following command:

cd eclypse-z7-notes/projects/sdr_transceiver/gnuradio

To launch GNU Radio Companion and access the flow graph for the FM receiver, run the following two commands in the terminal:

export GRC_BLOCKS_PATH=.
gnuradio-companion fm.grc


A window with a new GNU Radio session will open. The first time that the flow graph is opened, an error will occur, marking on of the elements in the flow graph in red. The element in question is the Low Pass Filter, and the solution is to select a new window to display the samples received from the Eclypse Z7. Double-click on the element and, in the window dropdown, select Hamming, or another filter window you are more familiar with.


Before starting the flow graph, the IP address for the board should be specified, so that GNU Radio knows where to pull data from. Double-click on the element titled “Variable” and change the IP address to your board's IP, as determined when you were setting up hardware.


After all these steps, to run the application, in the top bar of the GNU Radio window, click the “RUN” button. A new window will open where a spectrum will appear with the ends at plus or minus 400 kHz, where the central frequency is the desired FM frequency in MHz. To select a new FM frequency, you can use the slider at the top or the box to the right where you can manually enter the desired frequency in MHz.

Conclusion

For more information on the flow graph and project presented here, visit Pavel Demin's github.io page: eclypse-z7-notes.

For more information on the Zmod SDR or the Eclypse Z7, check out their resource centers on Digilent Reference: