cutelabnyc / euro-devkit

Development kit for Eurorack modules and other audio hardware, using STM32F7xx and PlatformIO

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Eurorack Development Kit ๐ŸŽ›๏ธ

Template repository for developing Eurorack modules

Build Status

The Stack ๐Ÿ“š

The repository uses PlatformIO to build and upload code, while also pulling our own version of the STM32 HAL library.

  • lib/ contains submodules for each eurorack module's code, as well as cutesynth which is our internal API for DSP and operational code.
  • include/ contains pin/GPIO mappings that can be added and configured for each module
  • src/ has all the main hardware code according to development on STM32 chips

The Architecture ๐Ÿ—๏ธ

In order to prototype with this repo, the following hardware is necessary

  • Chip: STM32F7xx
  • Board: Nucleo-F767ZIT
  • Codec: WM8731
  • ADC Pins: (TODO)
  • GPIO Pins: (TODO)

Installation ๐Ÿ”ฎ

Make sure to clone the repo recursively to download all the submodules

git clone --recursive https://github.com/cutelabnyc/euro-devkit.git

Install PlatformIO

# Linux
python3 -c "$(curl -fsSL https://raw.githubusercontent.com/platformio/platformio/master/scripts/get-platformio.py)"

# Mac OSX
brew install platformio

Run with Docker ๐Ÿ‹

Alternatively, you can run the entire devkit in a Docker container...

docker build . -t cutelabnyc/euro-devkit
docker run --rm -it cutelabnyc/euro-devkit

# inside the container...
pio test && pio run

Development ๐Ÿ˜

Before working on the repo, checkout a new branch for euro-devkit with the eurorack module's name in the title. Open another branch for cutesynth too, just incase you end up accidentally writing a Laplace transform and want to refactor it.

The environment for each module exists in platform.ini. You can upload code to the Nucleo using the following command

pio run -t upload -e <ENV_NAME>

where <ENV_NAME> is the name of the eurorack module you're working on.

Testing ๐ŸŒ‹

Automatic testing is handled on Travis CI upon pull requests. Local testing can be run with the following command

pio test -e <ENV_NAME>

Forking ๐Ÿด

This repo can alternatively act as a sort of boiler-plate template for developing a new eurorack module. Simply fork the repo without each Eurorack submodule...

git clone https://github.com/cutelabnyc/euro-devkit.git
cd lib
git submodule init cutesynth

About

Development kit for Eurorack modules and other audio hardware, using STM32F7xx and PlatformIO

License:MIT License


Languages

Language:C 99.5%Language:Python 0.5%