Menu

Tree [a97e19] master /
 History

HTTPS access


File Date Author Commit
 Applications 2016-05-22 Ulrich Habel Ulrich Habel [b2a582] HTML front-end - shutdown feature added (works ...
 Bazaar 2016-04-12 A. Kaygorodov A. Kaygorodov [bb2c27] Release staging url
 Examples 2016-01-13 Zumy Topcagic Zumy Topcagic [616d1a] Impedance analyzer - correction
 OS 2016-06-25 Ulrich Habel Ulrich Habel [347ce5] RadioBox - pulseaudio settings optimized
 SDK 2015-08-31 TheMuffinMaster TheMuffinMaster [239371] Added second Makefile, for application compilem...
 Test 2016-03-08 A.Kaygorodov A.Kaygorodov [788021] #815 Terminating quote
 api 2016-04-12 a.solovev a.solovev [1b8793] fix #887 0x00d9999a coef.
 apps-free 2016-07-14 Ulrich Habel Ulrich Habel [f46fdd] apps-free - RadioBox - set LEDs to AGC2 IF curr...
 doc 2015-12-17 Iztok Jeras Iztok Jeras [6a7bb4] Visual: updated Arduino compatible sensor modul...
 fpga 2016-07-15 Ulrich Habel Ulrich Habel [c55fa0] fpga - RadioBox - AGC1 sawing behavior removed
 patches 2016-05-11 Ulrich Habel Ulrich Habel [e0d157] RadioBox - RadioBox Upgrade script - added
 scpi-server 2016-05-20 Ulrich Habel Ulrich Habel [d2a5c5] RedPitaya - version information bumped up to v0.95
 shared 2015-05-09 Iztok Jeras Iztok Jeras [ec91c6] avoiding a warning causing an error
 .gitignore 2016-02-29 Ulrich Habel Ulrich Habel [1b9140] PR #89 implemented (2)
 CHANGELOG.md 2015-12-31 Iztok Jeras Iztok Jeras [f68122] CHANGELOG: update regarding libstdc++
 COPYING 2015-08-20 Iztok Jeras Iztok Jeras [40d62b] Debian: added heartbeat service
 INSTALL.md 2015-08-18 Iztok Jeras Iztok Jeras [b2d4ed] INSTALL: updated instructions
 Makefile 2016-05-20 Ulrich Habel Ulrich Habel [60ce1b] Makefile - scpi_server re-enabled after bug-fix
 NETWORKING.md 2015-10-01 Iztok Jeras Iztok Jeras [a5321d] Doc: updated networking with Open WiFi configur...
 README.md 2016-01-05 Iztok Jeras Iztok Jeras [12d145] README: updated install instructions
 TODO.md 2015-10-06 Iztok Jeras Iztok Jeras [6a0c20] updated TODO file
 settings.sh 2016-04-07 Ulrich Habel Ulrich Habel [f7ff54] build system - set toolchain path in front of a...

Read Me

Red Pitaya ecosystem and applications

Here you will find the sources of various software components of the
Red Pitaya system. The components are mainly contained in dedicated
directories, however, due to the nature of the Xilinx SoC "All
Programmable" paradigm and the way several components are interrelated,
some components might be spread across many directories or found at
different places one would expect.

directories contents
api librp.so API source code
Applications WEB applications (controller modules & GUI clients).
apps-free WEB application for the old environment (also with controller modules & GUI clients).
Bazaar Nginx server with dependencies, Bazaar module & application controller module loader.
fpga FPGA design (RTL, bench, simulation and synthesis scripts)
OS/buildroot GNU/Linux operating system components
patches Directory containing patches
scpi-server SCPI server
Test Command line utilities (acquire, generate, ...), tests
shared libredpitaya.so API source code (to be deprecated soon hopefully!)

Supported platforms

Red Pitaya is developed on Linux, so Linux (preferably 64bit Ubuntu) is also the only platform we support.

Software requirements

You will need the following to build the Red Pitaya components:

  1. Various development packages:
# generic dependencies
sudo apt-get install make curl xz-utils
# U-Boot build dependencies
sudo apt-get install libssl-dev device-tree-compiler u-boot-tools
  1. Xilinx Vivado 2015.4 FPGA development tools. The SDK (bare metal toolchain) must also be installed, be careful during the install process to select it. Preferably use the default install location.

  2. Linaro ARM toolchain for cross compiling Linux applications. We recommend to install it to /opt/linaro/ since build process instructions relly on it.

TOOLCHAIN="http://releases.linaro.org/14.11/components/toolchain/binaries/arm-linux-gnueabihf/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf.tar.xz"
curl -O $TOOLCHAIN
sudo mkdir -p /opt/linaro
sudo chown $USER:$USER /opt/linaro
tar -xpf *linaro*.tar.xz -C /opt/linaro

NOTE: you can skip installing Vivado tools, if you only wish to compile user space software.

  1. Missing gmake path

Vivado requires a gmake executable which does not exist on Ubuntu. It is necessary to create a symbolic link to the regular make executable.

sudo ln -s /usr/bin/make /usr/bin/gmake

Build process

Go to your preferred development directory and clone the Red Pitaya repository from GitHub.

git clone https://github.com/RedPitaya/RedPitaya.git
cd RedPitaya

An example script settings.sh is provided for setting all necessary environment variables. The script assumes some default tool install paths, so it might need editing if install paths other than the ones described above were used.

. settings.sh

Prepare a download cache for various source tarballs. This is an optional step which will speedup the build process by avoiding downloads for all but the first build. There is a default cache path defined in the settings.sh script, you can edit it and avoid a rebuild the next time.

mkdir -p dl
export BR2_DL_DIR=$PWD/dl

To build everything just run make.

make

Partial rebuild process

The next components can be built separately.
- FPGA + device tree
- u-Boot
- Linux kernel
- Debian OS
- API
- SCPI server
- free applications

Base system

Here base system represents everything before Linux user space.

FPGA and device tree

Detailed instructions are provided for building the FPGA including some device tree details.

U-boot

To build the U-Boot binary and boot scripts (used to select between booting into Buildroot or Debian):

make tmp/u-boot.elf
make build/u-boot.scr

The build process downloads the Xilinx version of U-Boot sources from Github, applies patches and starts the build process. Patches are available in the patches/ directory.

Linux kernel

To build a Linux image:

make tmp/uImage

The build process downloads the Xilinx version of Linux sources from Github, applies patches and starts the build process. Patches are available in the patches/ directory.

Boot file

The created boot file contains FSBL, FPGA bitstream and U-Boot binary.

make tmp/boot.bin.uboot

Since file tmp/boot.bin.uboot is created it should be renamed to simply tmp/boot.bin. There are some preparations for creating a memory test tmp/boot.bin.memtest which would run from the SD card, but it did not go es easy es we would like, so it is not working.

Linux user space

Buildroot

Buildroot is the most basic Linux distribution available for Red Pitaya. It is also used to provide some sources which are dependencies for user space applications.

make build/uramdisk.image.gz

Debian OS

Debian OS instructions are detailed elsewhere.

API

To compile the API run:

make api

The output of this process is the Red Pitaya librp.so library in api/lib directory.
The header file for the API is redpitaya/rp.h and can be found in api/includes.
You can install it on Red Pitaya by copying it there:

scp api/lib/librp.so root@192.168.0.100:/opt/redpitaya/lib/

SCPI server

Scpi server README can be found here.

To compile the server run:

make api

The compiled executable is scpi-server/scpi-server.
You can install it on Red Pitaya by copying it there:

scp scpi-server/scpi-server root@192.168.0.100:/opt/redpitaya/bin/

Free applications

To build free applications, follow the instructions given at apps-free/README.md file.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.