[sdiy] Microcontrollers for eurorack use... What to use?

Chris McDowell declareupdate at gmail.com
Sun Jan 4 04:26:58 CET 2015

Thanks, Olivier! These are great pointers. 

I’ll be getting Elements and Clouds in any case, cuz they’re -baller- :)


> On Jan 3, 2015, at 8:55 PM, Olivier Gillet <ol.gillet at gmail.com> wrote:
> Hi Chris,
>> Olivier, how would you suggest one get started with the STM32 chips?
> My preferred way of programming is with a text editor and a command
> line (invoking make, debugging with gdb, processing data/traces
> produced by programs in a python shell). Mostly because I test a lot
> of functionality by running the code on my own machine rather than on
> the target hardware. It might not be to everybody's taste and is much
> easier to practice on OS X or Linux. There are solutions (cygwin) to
> get a similar environment on Windows - though I don't know how
> practical it is. If you aren't already, get familiar with all this
> stuff - the command line, makefiles, invoking a compiler from the
> command line, writing a simple C "hello world" program (for your own
> machine, not for an embedded target) and compiling it from a makefile.
> Then I see several options:
> * I personally started with this dev board ->
> https://www.olimex.com/Products/ARM/ST/STM32-H103/ and an Olimex JTAG
> programmer -> https://www.olimex.com/Products/ARM/JTAG/ARM-USB-OCD-H/
> . My makefiles / programming scripts are there ->
> https://github.com/pichenettes/stmlib ; and i have blink for F1 and F4
> here -> https://github.com/pichenettes/stmlib-examples
> * Get an STM32F4 Discovery board, compile your programs from the
> command line and use ST-link to upload it to the discovery board
> (http://jeremyherbert.net/get/stm32f4_getting_started). There are a
> few synth projects for this board and minimal external hardware
> (https://github.com/MrBlueXav/ambiantiseur).
> * Sounds like bad advertising, but you could do worse than get one of
> my Eurorack products (For F1: Yarns, Peaks, Tides, Frames, Braids,
> Streams ; for F4: Clouds, Elements), an USB<->FTDI cable or a JTAG
> box. The way the code is built and sent to the device is explained
> here (http://mutable-instruments.net/modules/tides/open). Try hacking
> the code, see how things are done... This might be helpful if the
> thing you want to build has similar I/O requirements as one of my
> products.
> * Similarly, you could get the OWL pedal http://hoxtonowl.com/ and
> hack at it (https://github.com/pingdynasty/OwlWare)
> Best,
> Olivier
> On Sun, Jan 4, 2015 at 3:10 AM, Chris McDowell <declareupdate at gmail.com> wrote:
>> Olivier, how would you suggest one get started with the STM32 chips? I’ve always stuck to what I could accomplish within the Arduino IDE, but would really love to “level up”. I bought one of the mbed-enabled nucleo dev boards from ST and really enjoy the extra horsepower, but I don’t want to rely on the mbed environment for developing any actual products. A nudge in the right direction would be much appreciated! :)
>>> On Jan 3, 2015, at 7:20 PM, Olivier Gillet <ol.gillet at gmail.com> wrote:
>>> I've been using the STM32F4s in two modules I have recently announced
>>> (Elements and Clouds), and have three more down in the pipe. I love
>>> working with these for the following reasons:
>>> * Easy to code with, using open-source tools (gcc-arm-none-eabi and
>>> gdb) and a classic CLI/editor workflow.
>>> * Relatively easy to interface with an audio codec IC.
>>> * Code execution from flash is fast (unlike the STM32F1...).
>>> * 32-bit floating point unit with fused multiply-add, hardware
>>> division, square root and absolute value.
>>> * GCC generates very good quality code from C/C++. We're reaping the
>>> benefits of the popularity of ARM and the collective effort spent on
>>> compilers...
>>> * Lots of flash memory.
>>> * Low power consumption. A complete module (MCU + Codec + op-amps for
>>> audio and CV conditioning + blinkenlights) for 100mA.
>>> A few caveats:
>>> * Small amount of internal SRAM (192kb on STM32F407, 256kb on STM32F427).
>>> * Internal ADC needs software processing (averaging/low-pass
>>> filtering) to get decent resolution. Certainly not for audio, OK for
>>> CVs in the low kHz rate.
>>> * I2S clock is always 256fs, which can be a problem with some codecs
>>> to reach some sample rates.
>>> I haven't tested the external memory interface - the STM32F429 has a
>>> controller for SDRAM which might be a good option for your looper
>>> (older parts only support SRAM).
>>> For synthesis applications, one can get a lot of work done. In my
>>> modules or through benchmarks, I got them to run:
>>> * ~100 zero-delay SVF at 48kHz.
>>> * ~100 basic wavetable oscillators at 48kHz.
>>> * A 16-band vocoder and several wavetable oscillators at 48kHz (lower
>>> bands downsampled to 8kHz).
>>> * 8x 4-op FM voices with oversampling at 96kHz.
>>> * A mono phase-vocoder with 25% overlapping at 48kHz.
>>> * Waveshaping/wavefolding/ringmod algorithms at 96kHz with 8x
>>> oversampling (768kHz).
>>> * A simple reverb (a dozen APs, 2-3 modulated delays/APs) uses 10% of
>>> the CPU at 48kHz.
>>> All of these were from C++ code - but I studied the generated machine
>>> code carefully and very rarely found inefficiencies.
>>> On Sun, Jan 4, 2015 at 12:42 AM, Paul Perry <pfperry at melbpc.org.au> wrote:
>>>> Thanks Scott, that is is line with what a friend said, he had
>>>> single one taking 200mA (non-music application, but flat out.)
>>>> paul perry Melbourne Australia
>>>> ----- Original Message ----- From: "Scott Gravenhorst"Subject: Re: [sdiy]
>>>> Microcontrollers for eurorack use... What to use?
>>>>> I don't have a precise answer for this, however, I've successfully powered
>>>>> 4 dsPICs (28 pin DIP) from a single 1 ampere 3.3volt supply. three of the
>>>>> dsPICs were doing audio, one was acting as a MIDI controller talking to two
>>>>> of the others as voice engines over SPI.
>>>> _______________________________________________
>>>> Synth-diy mailing list
>>>> Synth-diy at dropmix.xs4all.nl
>>>> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
>>> _______________________________________________
>>> Synth-diy mailing list
>>> Synth-diy at dropmix.xs4all.nl
>>> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy

More information about the Synth-diy mailing list