Embedded SDR transceiver

Introduction

This version of the Red Pitaya SDR transceiver may be useful for building a small standalone SDR transceiver with all the SDR algorithms running on the on-board CPU of the Red Pitaya board.

Hardware

The structure of this version is very similar to the SDR transceiver described at this link. The two main differences are:

The basic blocks of the digital down-converters (DDC) and of the digital up-converters (DUC) are shown on the following diagram:

Embedded SDR transceiver

The projects/sdr_transceiver_emb directory contains three Tcl files: block_design.tcl, rx.tcl, tx.tcl. The code in these files instantiates, configures and interconnects all the needed IP cores.

Software

The projects/sdr_transceiver_emb/gnuradio directory contains GNU Radio blocks, a few examples written in Python and a few flow graph configurations for GNU Radio Companion.

Getting started

A pre-built SD card image can be downloaded from this link.

The SD card image size is 1 GB, so it should fit on any SD card starting from 2 GB.

To write the image to a SD card, the dd command-line utility can be used on GNU/Linux and Mac OS X or Win32 Disk Imager can be used on MS Windows.

The default password for the root account is changeme.

To use the full size of a SD card, the SD card partitions should be resized with the following commands:

# delete second partition
echo -e "d\n2\nw" | fdisk /dev/mmcblk0
# recreate partition
parted -s /dev/mmcblk0 mkpart primary ext4 16MB 100%
# resize partition
resize2fs /dev/mmcblk0p2

Running GNU Radio on Red Pitaya

cd gnuradio
export GRC_BLOCKS_PATH=.
grcc -d . -e trx_ssb.grc

Building from source

The installation of the development machine is described at this link.

The structure of the source code and of the development chain is described at this link.

Setting up the Vivado environment:

source /opt/Xilinx/Vivado/2016.4/settings64.sh

Cloning the source code repository:

git clone https://github.com/pavel-demin/red-pitaya-notes
cd red-pitaya-notes

Building boot.bin, devicetree.dtb and uImage:

make NAME=sdr_transceiver_emb all

Building a bootable SD card image:

sudo sh scripts/image.sh scripts/debian-gnuradio.sh red-pitaya-gnuradio-debian-8.5-armhf.img 1024