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.
Apache OODT - Component Based Framework for Science Data Management, Including Archiving
Contributor: Thomas Bennett. License: Apache Licence 2.0.
borph_linux_devel - A Linux derivate providing an interesting way to interface to FPGAs
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.
corr - Correlator control package in python
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.
Fabric - Library and command line tool for streamlining use of SSH for application deployment or sysadmin tasks
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
iAntConfig - Array Configuration Design and Performance Evaluation Software
The array configuration design software used for KAT-7, MeerKAT and SKA. Chief maintainer: Mattieu de Villiers
katcp_devel - A C katcp library implementation and selected applications
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.
katcp-python - A Python katcp library implementation
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.
kcs - Beginnings of a DBE control server capable of monitoring and controlling large sets of ROACHES.
Chief maintainers: Marc Welz, Shanly Rajan, Adam Barta. Licence: GPL.
mkbof - Simple utility to package gateware images to that they can be run by the borph Linux kernel
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.
mlib_devel - SKA SA's for of the (now distributed) CASPER libraries
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.
mmap_driver_devel - Memory Mapped Driver for FPGA Access
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.
mplh5canvas - Matplotlib backend that produces HTML5 compatible plots for viewing with web browser
PySPEAD - Reference python implementation of the SPEAD protocol
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.
python-readline - The Standard Python readline extension statically linked against the GNU readline library
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.
rinit / rinit2 - Very small bootstrap utility to program uboot into ROACHES for first time
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.
roach_monitor - Small utility to interface to the ROACH power management module via the network
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.
scikits.fitting - A framework for fitting functions to data with SciPy
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.
spead2 - Fast implementation of the SPEAD protocol
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+.
tcpborphserver - A server to map katcp commands to borph file operations
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.
tgtap - Small utility to interface FPGA 10 Gb interfaces to Linux kernel stack
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.
uboot_devel - A bootloader for ROACH, supporting network boot, understands USB, etc
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.
udpreplay - A tool for replaying captured UDP packets
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.