This software package is a Python application, which controls Analog Devices digital signal processor (DSP) chipsets. It exposes a TCP server for connecting with SigmaStudio, allowing to upload new applications to the DSP, as well as debugging it. Essentially, it behaves like a wired debug probe, but with an Ethernet connection. This source code was inspired by the original TCP service, as well as the hifiberry-dsp project.
However, this application was written completely from scratch, in an effort to make it more efficient, stable, and faster.
This software package contains two separate components: a backend service, as well as a frontend interface. It is meant to run on single-board computers that connect to an Analog Devices DSP via the serial peripheral interface (SPI).
The backend service is the core application, which
- connects to the DSP via SPI,
- exposes a TCP interface towards SigmaStudio,
- and provides a remote procedure call (RPC) interface, based on grpc.
With the latter, a frontend can connect to the backend service and control it remotely.
The frontend interface connects to the RPC service of the backend, allowing the user to control settings via a command-line interface (CLI).
This is not an extensive list, but only comprises chips that are tested or likely compatible.
DSP | Status | Backend settings dsp_type |
---|---|---|
ADAU145X | Fully tested (ADAU1452) | adau14xx |
ADAU146X | Untested, register compatible with ADAU145X | adau14xx |
For installing, simply run
curl -sL https://raw.githubusercontent.com/elagil/sigma-dsp/main/install.sh | sh
.
The script installs the Python package, which includes the sigmadsp-backend
(the backend) and sigmadsp
(the frontend) executables.
It also sets up a system service, which runs sigmadsp-backend
in the background.
Configuration of sigmadsp
is done via a *.yaml
file, which is specified during installation.
For a list of commands that can be emitted by the frontend, simply type sigmadsp -h
.
Python coding style is checked by means of pre-commit. Before committing your changes, please install pre-commit
python3 -m pip install pre-commit
and install the git hooks with
pre-commit install
.
Changes are then checked against the coding style toolchain when committing.