flipotronics.com electronic music instruments

Step 1 - Build a box

Wood and color: The Homedepot
Eurorack brackets 19 inch Synthrotek
Eurorack specifications: module height: 3U = 128mm, width: 84HP = 426.72 mm (1HP = 5.08 mm)
CAD software: OpenSCAD
Model: Flipotronics_A1_box.scad
Keyboard: Akai LPK25

Wood and Eurorack brackets


OpenSCAD Model

Synthrotek Euro Brackets

Open Source - DIY - Maker - Builder - Open Hardware

DIY Synthesizer - Digital - Analog - Modular

Alsa - Jack - FluidSynth - Curtis CEM3340 - Raspberry Pi - Linux Preempt_RT Kernel - OTA updates - Community

Step 2 - OS for Raspberry Pi 3 Model B+

Base image: 2019-04-08-raspbian-stretch.img raspberrypi.org

32Gb (or 64Gb) Micro SD - Use balenaEtcher to transfer to Micro SD


run raspi-config in a terminal and update rasp-config to latest version.

use rapsi-config and setup:

Encoding: America UTF-8

Timezone: Los Angeles

enable VNC, SPI, I2C

sudo rpi-update -y

sudo reboot

sudo apt-get update -y

sudo apt-get upgrade -y

sudo reboot


To achieve low audio latency build a PREEMPT kernel:

Use PREEMPT_RT patched kernel for Raspberry Pi Model 3 B+

Raspberry Pi
Jack Audio Connection Kit
real-time-linux-on Raspberry Pi
Install Preempt-RT Kernel
Cross Compiling For Raspbian

Step 3 - TFT Display

PiScreen2 by ozzmaker.com/

Install TFT

cd ~

wget https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/adafruit-pitft.sh

chmod +x adafruit-pitft.sh

sudo ./adafruit-pitft.sh

Use option 4 (480) and 1 for Landscape

Make the TFT mirror the HDMI display

sudo nano /boot/config.txt

Change to: dtoverlay=piscreen2r

reboot PI, the PI desktop should appear on the TFT and on a screen connected to HDMI.

For help visit these sites:



Step 4 - Python Libraries



pre-installed in Raspberrian Stretch



sudo apt-get install libportaudio0 libportaudio2 libportaudiocpp0 portaudio19-dev -y

sudo apt-get install python3-pip

pip3 install PyAudio



pip3 install PyMidi


git clone https://github.com/nwhitehead/pyfluidsynth

cd pyfluidsynth

sudo python3 setup.py install

Adafruit GPIO Expander


sudo pip3 install adafruit-circuitpython-mcp230xx

Adafruit 7 Segment Display


sudo apt-get install -y git build-essential python-dev python-smbus python-imaging python-pip python-pil

git clone https://github.com/adafruit/Adafruit_Python_LED_Backpack.git

cd Adafruit_Python_LED_Backpack

sudo python3 setup.py install



sudo apt-get install jack-tools fftw3 qjackctl



sudo apt-get install fluidsynth -y

sudo apt-get install qsynth -y

sudo apt-get install fluid-soundfont-gm -y

sudo apt-get install fluid-soundfont-gs -y

flipotronics dependencies

sudo apt-get install build-essential -y

sudo apt-get install nginx -y

sudo pip3 install flask uwsgi -y

sudo apt-get install vmpk -y

sudo apt-get install patchage -y

pip3 install cython

pip3 install python-rtmidi

sudo python3 -m pip install coverage

set CONF_SWAPSIZE=0 in /etc/dphys-swapfile

pip3 install wheel

pip3 install uwsgi flask

sudo apt-get install mariadb-server

pip3 install mysql-connector-python



sudo apt-get install libasound2-dev

wget http://www.varal.org/ttymidi/ttymidi.tar.gz

tar -zxvf ttymidi.tar.gz

cd ttymidi/

add -pthread to the Makefile as in: gcc src/ttymidi.c -o ttymidi -lasound -pthread


sudo make install

monitor midi messages: ttymidi -s /dev/serial0 -b 38400 -v

aconnect -iol // find the ttymidi iand the fluidsynth id

aconnect 128:0 129:0

Step 5 Backup

Backup the Raspberry PI micro SD card:

Boot Partition Backup

On Mac: Open Disk Utility from Applications/Utilities and create image from Boot.

Full Backup

On Mac: brew install pv dialog

in a terminal run diskutil list. Find the micro SD card, for example: /dev/disk2

sudo dd if=/dev/disk2 bs=1m of=~/flipotronics.iso

monitor in a second terminal: while pgrep ^dd; do sudo pkill -INFO dd; sleep 20; done

To restore rename to iso and use balenaEtcher to write a micro SD card.

Step 6 - Eurorack Power Supply

Eurorack specification: +12V, -12V, +5V

Design by benguru: Eurorack Synthesizer Power Supply
Schema: PowerSupply.pdf
Gerber files: gerber.zip
Mouser card: MouserCart.pdf

Step 5 - Midi

Open Source - DIY - Maker - Builder - Open Hardware

DIY Synthesizer - Digital - Analog - Modular

Alsa - Jack - FluidSynth - Curtis CEM3340 - Raspberry Pi - Linux Preempt_RT Kernel - OTA updates - Community

flipotronics synth A1 architecture

flipotronics synth A1 architecture

flipotronics synth A1 software architecture

flipotronics synth A1 software architecture

Debug Commands

Check if I2C is enabled:

ls /dev/*i2c* should show: /dev/i2c-1

List I2C devices:

i2cdetect -y 1


Get all Redis keys: redis-cli keys "*"

Get Redis value [example prog]: redis-cli get prog

Set Redis value [example prog]: redis-cli set prog 15



Power Supply - GPIO Expander - Push Buttons - Rotary Encoders - TFT Display - 7Segement Display
Midi Optocopler - DAC audio - DAC CV - ADC - Headhphone Amp

eurorack modules

Curtis CEM 3340 VCO - VCF - VCA - LFO

software synth

FluidSynth - Hydrogen - Dexed - Guitarix - Synth1 - Bristol - setBfree

patch management

fliptronics Synth Archive Manager - NodeJS - React - Redis - MongoDB - Docker - Cloud Connector


OSCTouch remote - Intranet admin screens - OTA update - Community Portal - GCP Firebase

Raspberry PI B+ Pins