STM32 audio bootloader port for TM4C

Hi everyone, if you don’t know me, I’m Tyler, I just launched my company Alright Devices with a eurorack delay module called Chronoblob.

When I was developing the firmware for the module, I wanted to include an audio bootloader to make updates super easy like MI modules (<3) so I ended up just porting Olivier’s code to work with the MCU I was developing on, a “Tiva” class Cortex-M4 chip from TI.

I’m open sourcing the port, I hope someone will find some use for it :slight_smile:

I developed this shit using TI’s free IDE, Code Composer Studio, and their free Tivaware libraries

If yr into this and got any questions about it, I’m happy to answer :slight_smile:


One thing you could add (if it’s not already too late) is a software gain control using one of the module’s pots. There’s a bit of scaling/shifting required because the bootloader was originally written for Braids which reads 12-bit, right-aligned values from the external world.

By the way, how do the TM4C12x compare to the STM32F4?

And congrats for the module of course!

Thanks so much

I can’t remember what exactly I did, but I’m pretty sure I made some changes to the Demodulator module to account for the 16bit values coming from the codec. But the result is that it works really well over a pretty wide range of volume levels.

I bought the discovery board like a year ago or sth but never got around to fuxing with it, so I can’t really compare it to TM4C. I do know that the STM chips have I2S though, that would have been nice instead of faking it with SSI (and being limited to mono). I like the tiva chips though because of the tivaware libraries. It speeds up development so much, and most of the lib functions are actually on the chip’s rom, so you can call the functions from there and save lots of flash space. My current firmware audio file is only 25 seconds :smiley:

Thanks for the kind words Olivier!

@float32 welcome! Good to see you giving back to the MI community. Chronoblob looks great, too. I dithered too long ordering one, and they’d all sold out, but I’ll definitely be getting one from a future batch.


Out of curiosity, are you using SPI serial SRAM? I figured out this is what you would be using because the board is too small for a bigger parallel RAM chip.

@float32, are you an expat Aussie, by any chance? If not, why kookaburra? Just curious.

@pichenettes yeah it’s got 2x 1Mbit srams, the mchp 23LC1024.

@BennelongBicyclist nope, kookaburra was like a working title for the module, I just picked it cause they’re super cute!

There’s a TI app note describing how to stereo with I2S two SSIs and an external inverter to make an LR signal, AFAIR.

The TI docs are a lot better than the ST ones IME. At least I found it easier to find my way around the datasheets and reference manuals. Also, the pinmuxing made more sense. Unfortunately, I didn’t have as much success with OpenOCD, GDB and the debug hardware on the Tiva Launchpad I got, so I never managed to do much with it…