Table of Contents

How to use PicoSDR within CorteXlab

Bitstream

You can either provide your own PicoSDR bitstream or use the one we provide by default.

If you want to use your own bitstream, you have to specify it in your scenario file and add the bitstream file in your experimentation folder. For 2×2 Picos you can specify the bitstreamA, and for 4×4 picos you can specify both bitstreamA and bitstreamB. For example if you have the bitstream file custom.bit at the root of your experimentation folder, your scenario file will look like this :

node31:
   entry benchmark_rx.py
   bitstreamA custom.bit

If you do not specify any bitstream using a PicoSDR node, it will use our default bitstream wich is provided by Nutaq as an example. The bistream is named Radio420_GigE_6_6_0_sx315.bit.

If you want to use this bitstream there 3 custom register to set. Register 4 can be set to :

Register 3 can be set to :

The register 3 must be set to 0 during initialization.

This bitstream have several internal path which can be selected using custom register 1. In our case we want a passthrough so we need to set the register 1 with the value 6.

Setup with GRC

As an exemple we will se which blocks we need in order to perform a transmission or a reception using one antenna.

Carrier Perseus Board

This block is used to specify wich perseus board we want to target. The ID field of the block will be used as an identifier for other blocks. The IP address within CortexLab is 192.168.0.101 for board A, and in case you are using a 4×4 Pico, IP address for board B is 192.168.0.102.

You need initialize both RX and TX path in order to use a card. The order of initialization must be :

Radio420 RX

This block is used to configure the RX path for one card of one board (a 2×2 Pico has one board with 2 cards).

Let's explain all parameters you have to set:

Radio420 TX

This block is used to configure the TX path for one card of one board (a 2×2 Pico has one board with 2 cards).

Let's explain all parameters you have to set:

Custom registers

As it is explained before, we have to set 3 custom registers in order to make the bitstream work properly.

The block Custom Register has 5 parameters to set :

In our case, register 4 must be set to 0 (async mode), register 3 to 0 with a constant source block feeding a 1 in the input port, and register 1 to 6.

Setup with python project