Software

This page lists software alphabetically that SKA SA is involved in and is publicly available. Many are open-source projects which we either lead or contribute to, many through the CASPER collaboration (our DBE team, in particular). A number of these are consolidated at the SKA SA presence on github: http://github.com/ska-sa and additional CASPER software repositories are hosted at https://github.com/casper-astro. Note also the hardware pages of this website which list some of the open-source hardware designs.

Contributor: Thomas Bennett. License: Apache Licence 2.0.

This kernel runs on the Fringe Finder and KAT-7 roaches. Without a kernel we can't talk to the roaches. We have adapted (ported) borph to the roach boards. Brandon Hamilton has also contributed substantially to this effort. Chief maintainers: Marc Welz, Shanly Rajan, Adam Barta. Licence: GPL.

Provides a generic interface to ROACH boards along with correlator-specific scripts and functions.  Used by most of CASPER collaborators to talk to their ROACH boards. Used by SKA-SA for KAT-7 (and MeerKAT). Also available at http://pypi.python.org/pypi/corr. Chief maintainer: Jason Manley. License: GPL.

It provides a basic suite of operations for executing local or remote

shell commands (normally or via sudo) and uploading/downloading files, as well as auxiliary functionality such as prompting the running user for input, or aborting execution. We use it to automate deployment and other sysadmin tasks, and it is also used by e.g. the automated shutdown script to turn off the PDUs, etc. Contributor: Neilen Marais. Licence: BSD.

We are using MyHDL to create a HDL design-flow framework that enables quick and easy design of FPGA based DSP (Digital Signal Processing) systems. MyHDL enables Python to be used as a Hardware definition language and brings with it the power to simply verify and simulate these designs. Chief Maintainer: Wesley New. Licence: GPL

The array configuration design software used for KAT-7, MeerKAT and SKA. Chief maintainer: Mattieu de Villiers

A simple RPC style protocol, implemented in C. Includes a small number of simple utilities. The SKA SA project uses KATCP to talk to various telescope components. Chief maintainers: Marc Welz, Shanly Rajan, Adam Barta. Licence: GPL.

A simple RPC style protocol, implemented in Python. The SKA SA project uses KATCP to talk to various telescope components. Initial development: Simon Cross. Chief maintainers: Neilen Marais, Simon Ratcliffe Licence: BSD.

Chief maintainers: Marc Welz, Shanly Rajan, Adam Barta. Licence: GPL.

Utlility originally written by Hayden So at Berkeley. We have patched it up to work on ROACH and ROACH-2.  Chief maintainers: Marc Welz, Shanly Rajan, Adam Barta. Licence: GPL.

Also contains ROACH-1 and -2 toolflow package. This fork is regularly merged with Berkeley's repo. This is basically the magic CASPER toolflow.

Chief maintainer: Andrew Martens, Contributor: Jason Manley. License: GPL.

Instead of making a series of system calls that involve file I/O we memory map the FPGA to the user process address space in the PowerPC. Memory mapping forms an association between the FPGA and the user process memory. In doing so, the abstraction is being moved from the kernel to the user application. The performance of a memory mapped FPGA device is measurably better than the previous approach of reading and writing a set of files. The contribution of memory-mapped approach is two-fold: firstly, the overhead of a system call performing I/O operations is eliminated. Secondly, unnecessary memory copies are not kept in the kernel. While the approach gives a performance benefit, it comes with a limitation of user applications requiring to track and provide FPGA symbolic register name to offset mapping. This however can be solved by building suitable logic into the user application and thereby moving the complexity from kernel to userspace. Chief maintainer: Shanly Rajan. License: GPL.

This is a backend for the Python matplotlib package that enables the use of interactive plots within a web browser based on JavaScript and the HTML5 Canvas element. An installable Python package is available at http://pypi.python.org/pypi/mplh5canvas. Chief maintainers: Simon Ratcliffe & Ludwig Schwardt. License: New BSD.

Reference python implementation of the Streaming Protocol for the Exchange of Astronomical Data (SPEAD) that is used to transport data between a variety of subsystem components. Used by the CASPER collaboration as well as DBE and SPT. See also spead2 below. Chief maintainer: Simon Ratcliffe. License: GPL.

Some platforms, such as Mac OS X, do not ship with GNU readline installed. The readline extension module in the standard library of Mac "system" Python uses NetBSD's editline (libedit) library instead, which is a readline replacement with a less restrictive software license. As the alternatives to GNU readline do not have fully equivalent functionality, it is useful to add proper readline support to these platforms. This module achieves this by bundling the standard Python readline module with the GNU readline source code, which is compiled and statically linked to it. The end result is a package which is simple to install and requires no extra shared libraries. The main source code repository is at https://github.com/ludwigschwardt/python-readline. Chief maintainer: Ludwig Schwardt. Licence: GPLv3.

This is used by ROACH board manufacturers and installations which brick their boards to recover them. Without it, people would have to purchase an abatron jtag programmer. Chief maintainers: Marc Welz, Shanly Rajan, Adam Barta. Licence: GPL.

This is used to turn on ROACHES remotely and to diagnose certain low-level failures. Chief maintainers: Marc Welz, Shanly Rajan, Adam Barta. Licence: GPL.

This Python package provides a framework for fitting functions to data with SciPy which unifies the various available interpolation methods and provides a common interface to them. The main source code repository is at https://github.com/ludwigschwardt/scikits.fitting. Chief maintainer: Ludwig Schwardt. Licence: Modified BSD.

This is a high-performance implementation of the SPEAD protocol with bindings for both C++ and Python. For new development . The main source code repository is at https://github.com/ska-sa/spead2. Chief maintainer: Bruce Merry. Licence: LGPLv3+.

This makes it possible for FPGAs on the roaches to be controlled across the network. We are the primary authors, but most ROACH installations elsewhere also use it, we have received improvements from third parties. Chief maintainers: Marc Welz, Shanly Rajan, Adam Barta. Licence: GPL.

Without this, the correlator ROACHES can't talk to each other. We are the primary authors, but ROACH installations elsewhere also use it. Chief maintainers: Marc Welz, Shanly Rajan, Adam Barta. Licence: GPL.

A reasonably featureful loader: supports network boot, understands USB and has a comprehensive set of builtin commandline functions. We have adapted (ported) uboot from the original version developed in Germany so that it runs on our ROACH boards, without which the ROACHES don't boot. Chief maintainers: Marc Welz, Shanly Rajan, Adam Barta. Licence: GPL.

A tiny tool to replay UDP streams that have been captured with tcpdump, with control over the playback speed. This is being used for testing with SPEAD streams, but will work for any unidirectional UDP protocol. Chief maintainer: Bruce Merry. Licence: GPL.