This is a 3-channel CV + Gate step sequencer in a 10HP Euro-Rack format module.
It features a 128x64 monochrome OLED display, 8 touch-sense buttons, Clock and
Reset inputs and Clock and Reset outputs, along with 3 +/-7V CV outputs and 3 5V
Trigger / Gate outputs. Firmware provides a unique 2D grid-based UI for editing
parameters and sequence data and numerous options for sequencing.
The STM32F373 MCU is a fascinating hybrid Analog/Digital processor with a unique
combination of features that includes excellent analog I/O as well as a powerful
ARM Cortex M4F CPU. One of the options it supports is capacitive touch-sense for
human input and I've been curious to try this out for a while. A simple step
sequencer seemed like a good excuse for this.
6-pin ARM SWD connector (ST-Link V2 format) on back
3-pin GPIO / Test Jack
Standard 16-pin shrouded Euro-Rack power:
+12V @ 80ma
-12V @ 11ma
The STM32 family of parts are supported by a variety of commercial IDEs, all
of which are available in low-cost or limited free versions from the
I prefer to use open-source tools so I've set up a development environment
based on the GNU C compiler for ARM, available for free from the Launchpad
project. For downloading to the target I use OpenOCD and the ST-Link V2.1 SWD
interface that's available on most all of the inexpensive STM32 Nucleo boards.
To accelerate development I also use the STM32 HAL Library as a starting point
for my code and then optimize out the heavyweight functions as required. Links
to all of these are here:
Inspiration for the 2D grid-based UI came from a number of sources. I was particularly
impressed with the sliding 2D notion when I saw it used in the
vpme.de Spooky Action prototype. Then I saw
an integrated touchsense + OLED board in one of Mikes Electric Stuff videos and the idea
started to come together.
Touch sense auto-calibrates for a few milliseconds during power-on, so don't touch
the sensors during this period or they will not function correctly.
The step sequencer itself is a fairly simple 3-channel system using the 3 on-chip 12-bit
DACs of the STM32F373CCT6 processor. External op-amp buffers increase the signal swing to
approximately +/-7V range which yeilds about 3.4mV resolution, or 4.1 cents when used with a
1V/Oct tuning system. While that's somewhat coarse, it is in the range of normal human
sensitivity to relative pitch steps. The clock output operates over a range of 0 - 999 beats
per minute (bpm) and the trigger / gate outputs have a variety of timing options, including
duration that tracks clock rate, as well has non-pulsed off / on and ratchets. The clock input
can be used to override the internally generated clock and the reset output can be assigned
to assert on any channel step. Each channel has a separate clock divider option between 1 and