an art project
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4.6 KiB

Build Status


This repository contains code for an ongoing art project. See Research Catalogue.

(C)opyright 2021–2022 by Hanns Holger Rutz. All rights reserved. This project is released under the GNU Affero General Public License v3+ and comes with absolutely no warranties. To contact the author, send an e-mail to contact at


Builds with sbt against Scala 3. See options: sbt 'common/run --help'. E.g.

sbt 'common/runMain de.sciss.rogues.SteinerChain --margin 0 --radius 240 --full-screen --hide-envelope'

sbt 'common/runMain de.sciss.rogues.Iris --num-blades 7 --full-screen'

sbt common/assembly
java -cp common/Rogues-common.jar de.sciss.rogues.ReceiveSensors --gui

java -Dsun.java2d.opengl=true -cp common/Rogues-common.jar de.sciss.rogues.SwapRogue --margin 0 --full-screen --center-index 5

To improve Pi 4 performance: java -Dsun.java2d.opengl=true ...

cap test


pigpio must be installed first:

git clone
cd pigpio
sudo make install

The in Rogues:

sbt common/assembly
sudo java -cp common/Rogues-common.jar de.sciss.rogues.CapSense

(yes, I need to get rid of the sudo; thanks pi4j)

fix wiring-pi


Important: Wiring-Pi is broken on the Pi 4. The pull up/down resistors cannot be configured. See -- one needs to replace the installed versions with an unofficial one!

sudo apt remove wiringpi -y
sudo apt install git-core gcc make
cd ~/Documents/devel/
git clone --branch master --single-branch wiringpi
cd wiringpi
sudo ./build

installing SuperCollider on the Pi

We build SC 3.10.4:

cd ~/Documents/devel
git clone

sudo apt install libjack-jackd2-dev libsndfile1-dev libasound2-dev libavahi-client-dev \
libreadline-dev libfftw3-dev libxt-dev libudev-dev libncurses5-dev cmake git qttools5-dev qttools5-dev-tools \
qtdeclarative5-dev libqt5svg5-dev qjackctl

cd supercollider
git checkout -b 3.10.4 Version-3.10.4

git submodule update --init --recursive

mkdir build
cd build


cmake --build . --config Release --target all -- -j3

sudo cmake --build . --config Release --target install

This installs in /usr/local/bin. If debian package has been installed, it will override through /usr/bin, to remove use sudo apt remove supercollider-server (or -common I guess?).

We use JPverb thus also need sc3-plugins:

cd ~/Documents/devel
git clone

cd sc3-plugins
git checkout -b 3.10.4 643709850b2f22f68792372aaece5fc6512defc6

git submodule update --init --recursive

mkdir build
cd build

cmake -DSC_PATH=/home/pi/Documents/devel/supercollider/ -SC_PATH=/home/pi/.local/share/SuperCollider ..

cmake --build . --config Release

sudo cmake --build . --config Release --target install

access TTL-to-USB via tinyUSB0 on Linux

To avoid root requirement, add user to dialout group:

sudo usermod -a -G dialout $USER

Prepare reading, setting speed etc.

stty -F /dev/ttyUSB0 speed 115200 cs8 -cstopb -parenb -echo

Dump output:

cat /dev/ttyUSB0

Check if other process accesses the USB:

lsof /dev/ttyUSB0

Running Python REPL in the terminal:

screen /dev/ttyACM0 115200

(You may need to sudo apt install screen)

To stop screen, press ctrl-a followed by k.

Pn532 tests


To unzip:

sudo apt install p7zip-full
mkdir out
cd out
7z x ../Pn532-nfc-hat-code.7z

Set both jumpers L0 and L1 to L(ow), to enable UART. Connect the first four pins to 3v3 / GND / Rx / Tx. Flip Tx/Rx with respect to the TTL-to-USB adapter.

When connected via UART to USB:

pn532 = PN532_UART(debug=False, reset=20, dev='/dev/ttyUSB0')

Install HyperPixel

git clone

cd hyperpixel2r
sudo ./

Needs Raspbian Buster not Bullseye!


  • "eve"