Welcome to the documentation for casperfpga, the Python-based communications package for CASPER Hardware!

New Users

casperfpga is a Python library used to interact and interface with CASPER Hardware. Functionality includes being able to reconfigure firmware, as well as read and write registers across the various communication interfaces. The info here describes the following:

  1. Installing casperfpga
  2. Migrating from corr
  3. casperfpga Sourcecode

Should you be an existing corr user, wondering where some of your functionality has gone when interfacing to your ROACH/2, ‘Migtrating from corr’ above offers a detailed explanation on how to migrate to casperfpga.

Should you want to dive straight into its usage with the toolflow proper, please see here.

Existing Users

From commit a5e7dcc and earlier the method of instantiating e.g. a SKARAB object was as follows:

In [1]: import casperfpga
In [2]: skarab = casperfpga.SkarabFpga('skarab010103')
In [3]: roach = casperfpga.katcp_fpga.KatcpFpga('roach020203')

As of commit 4adffc0 the method of instantiating a ROACH or SKARAB was altered to be done intelligently. casperfpga automatically works out whether the hostname given in its instantiation is a ROACH, SKARAB or SNAP board.

In [1]: import casperfpga
In [2]: skarab = casperfpga.CasperFpga('skarab010103')
DEBUG:root:skarab010103 seems to be a SKARAB
INFO:casperfpga.transport_skarab:skarab010103: port(30584) created & connected.
DEBUG:root:casperfpga.casperfpga:skarab010103: now a CasperFpga
In [3]: roach = casperfpga.CasperFpga('roach020203')
DEBUG:root:roach020203 seems to be a ROACH
INFO:casperfpga.transport_katcp:roach020203: port(7147) created and connected.
DEBUG:root:casperfpga.casperfpga:roach020203: now a CasperFpga


If you would like to contribute towards this library, fork the casperfpga repo, add your changes to the fork and issue a pull request to the parent repo.