This document started out as a work-description on what has been going on with the software-radio. It now is a reference for the RF-interface of the software-radio as well as a setup-guide for the hardware-part of the software-radio. For the software-part, see the document “A tutorial to the software-radio”.


During Summer/Fall 2004 different projects have been done on the software-radio that asked for special implementations on the level of the ICS-cards. Four useful branches co-existed:

  1. Normal MIMO at 2.4GHz with 1MS/s
  2. Radar-application at 2.4GHz with 100kS/s
  3. 802.11-reception at 2.4GHz with 20MS/s
  4. GPS-reception at IF of 24MHz and 4MS/s at 32 bits per complex sample

1-3 were done using the normal FPGA-programm, while 4 is only possible with a rewritten FPGA. This is due to the fact that the PCI can't transfer the data representing a raw GPS-signal. The rewritten FPGA-program represents one sample using 32 bits, whereas the original FPGA-program represents one sample using 128 bits.

In order to have a program that can handle all these situations, a new interface to the ICS-cards was built. The goal of this interface is to set the basic parameters of the ICS-cards in a more user-friendly way. These parameters are:

  • Sampling-frequency
  • Bandwith
  • Data-type
  • Number of channels
  • Center-frequency
  • Detect the FPGA-programm type

All frequencies are given in Hz and the sampling-rates in Complex Samles per second (CSs). 1 CS corresponds to 2 Real Samples.

Intended reader

This document has been written to keep track of the changes in the programming and to help further engineers keeping track of what is going on. Depending on which part of the document you're interested in, the necessary background differs. In order to build the different target applications, you should have good knowledge in informatics and a good understanding of the UNIX-shell. For the reference-part you have to be a good programmer and have some background of the software-radio. A good start is “A tutorial on the software-radio”.


The different parts in this document include:

  • Motivation what you are reading
  • Usecases describes the four goals and how to test them
  • Subsystems which gives an overview of the different parts of the software-radio hardware
  • Interface is the main part and describes in detail the new functions used to interact with the hardware
  • Tidbits collects different thoughts about the project that came up during the writing of this document



All given directories are relative to your SRadio.Branch-directory. The position of this branch is marked $SRADIO. This has to be installed for you by the system administrator, as well as a CVS-access to the source-code. So if your system-administrator installed a branch under


and a command asks you to

cd $SRADIO/Test/Radar

Then this means you have to enter the following directory:



Commands are written in typewriter-code, like this:

cvs -d sradio@lcmpc10.epfl.ch:/home/sradio/cvs \
  co -b Branch_Report SRadio

Special meanings are explained in brackets, for example:

make rf_tail
[ wait for 5 seconds ]
make rmall


There are two radio-platforms, called radio1 and radio2. The work represented in this document requires root-privileges to be run, so ask your system-administrator for the root-password and how to log in.

If you are in the local network of the software-radio, you can login to radio1 and radio2 with

ssh root@radio1


ssh root@radio2

Last modified:: %2007/%02/%23 %14:%Feb