DIY Synth / ARM baremetal workshop (London, 5-6 December 2015)
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.settings
Components
assets
include
ldscripts
lib
libsrc
src
system
tools/wavetable-gen
.cproject
.gitignore
.project
README.org
nanokontrol2.nktrl2_data

README.org

thi.ng/ws-ldn-3

./assets/ws-ldn-3-synth.jpg

Contents

DIY Synth workshop with STM32F401-DISCO (ARM Cortex-M4)

Overview

TODO

Status

Stable

Examples / exercises

ex01 - Hello Blinky

Simple LED blink example and GPIO (push button) handling, polling vs. EXTI interrupt

ex02 - Timers & interrupts

Introduction to timers, configuration and custom interrupt handlers. Useful for basic multi-tasking.

ex03 - Accelerometer & Gyroscope

ex04 - Audio playback & record

ex05 - USB audio playback & record

ex06 - Synth & sequencer basics

ex07 - Synth example #2

ex08 - MIDI synth

This example uses a 2-track sequencer, which can be controlled via a connected MIDI controller. In the workshop we used the Korg Nanokey2 for this purpose and a configuration file for this device is included. If you use a different controller, make sure you edit the controller assignments in /include/ex08/main.h.

Building the exercises

This repo contains a complete Eclipse CDT project and can be built with GNU ARM Eclipse plugin. Furthermore, the ARM GCC toolchain is required outside Eclipse.

Within the project, you can find several build configurations, one per example/exercise. Build profiles can be switched by clicking on the little triangle next to the hammer (build) icon in the main toolbar. Once a profile has been built, you’ll find the resulting .bin file in the profile’s subfolder of this project. E.g. ex08’s binary will be located in {$PROJECT_DIR}/ex08/diy_synth_ldn_2015.bin.

Important: The build profile called “base” is only a template and is NOT buildable. However it is the default profile after importing the project into Eclipse. So if it starts building the project automatically and you get lots of errors, let it finish and then select one of the example profiles (“ex01”…) as described above.

For programming/flashing the STM32F401-DISCO board, we used the st-flash tool and invoke it like this:

cd ws-ldn-3
st-flash --reset write ex08/diy_synth_ldn_2015.bin 0x8000000

License

This project is open source and licensed under the Apache Software License 2.0.