DIY STM32 Peaks/Yarns drum machine mash up - help!


I am planning an stm32 module. I’m keen to learn how to develop hardware for my own fun. I will never sell anything!

As a learning step for me I thought that building a drum module would be fun and achievable.
I will use Peaks/DMC code as a base.
I’d like it to be 3 (or possibly 4) channel. I’ll use a dac8554 or 8564 probably and use hardware examples from yarns and peaks. (Umming and ahhing about how much cv control of parameters to include and whether to use multiplexers)
I’ve started cutting and pasting circuit fragments into Eagle and got an idea of where I am going… (I’ve also successfully had a couple of simple boards fabbed in China as an experiment and learning step)

My question is: how do you guys prototype the hardware? If it was through hole, I’d breadboard it. With SMT do you just design a board, fab it and try it? Then repeat the process… or is there an easier way to prototype? (I’m pretty happy with the software development side, I think! But hardware is new to me)

I’d also like this to be some base hardware I can play with other ideas that would require more cv precision rather than just audio so may well go for the dac8564 as in Yarns…

I’m probably being a bit ambitious and it’ll fail but if you dont try, you dont learn :slight_smile: and it seems achievable given my limited knowledge.

Thanks a lot…


I can’t offer much advice, in terms of hardware development, I’m afraid, but just wanted to say that sounds like a fun project!

Have you considered basing the drum-generation code on Sonic Potions LXR, rather than on Peaks code?

Demo of the LXR here:


Thanks! Didnt know about the LXR! My main reason for going with the mutable code base was that I have put some effort into messing around and trying to understand how it works - both at an algorithmic level and the hardware level. I’ve also messed around with the Dead Man’s Catch firmware a bit so understand how that woks as well…
I’ve now got a bit of a handle on how Olivier structures his code and hardware, so I thought that using similar hardware, firmware and toolchain was a much smaller learning curve and meant that I had a small chance of actually achieving something :slight_smile:

I’ll definitely grab the lxr code though and have a good look…


Well, once you’ve got that working, maybe a module based on the LXR code would be a good 2nd step :slight_smile:

I’ve been thinking of doing it myself, but probably will never get around to it, if I’m honest.

The challenge with the LXR code would be to work out a good way of exposing all the editable parameters. The LXR has a really cool mechanism for morphing whole kits from one preset to another, so one way to implement parameter control on a module would be to create a number of presets, and allow the user to choose two presets, and morph between them, rather than giving them complete control over all parameters.

Sorry for the off-topic thinking out loud.

Keep us posted on how you get on.


Thanks - I’ll take a look at it!


That’s how I do it.


Thanks Olivier - I’ll do that then!


You can use development boards, but these are always going to be “generic”, you’ll have to port your code to the target hardware eventually.


Thanks - yeah. I was more thinking how I’d prototype the peripherals eg dacs with no through hole equivalents - I was thinking - should I build smt to th boards so I can play with breadboards? But that would cost a fair bit compared to just building runs of possibly sacrificial candidate boards… I was going around in circles! I think I’ll just try what Olivier does and do my best at error checking in eagle and then go for it!


There are breakout boards available for quite a few SMT chips, ie DACs.

You can also get generic adapter boards for various footprints of surface-mount ICs.

This kind of thing:


Thanks! That’s really helpful! (As an aside - I used to use bitsbox loads - for some reason I’ve not used them in ages! Good reminder…)


LTSpice is an open source simulation program that’s similar to PSpice. I’ve used it for hardware prototyping and it works well.


If you want to use ICs that are not from Linear Technology, you need to download other component libraries, but it’s pretty simple to do.


And KiCad is also an open source alternative to Eagle, which has far fewer restrictions…


Thanks for the advice. I’ve used ltspice (and other versions) in the past for analog modelling. A lot of the thoughts I was having about prototyping were around interfacing dacs and multiplexors to the stm32 and getting them talking to each other. Not at all sure if spice can do that (I assumed not though).
I’ve seen others use kicad but I am just over the initial learning hump with Eagle ! Maybe I should take a look at it though…

Thanks again…


Np. I mis understood your inquiry. But if you can generate a .wav file of the ADC, then you can use that as an input in LTSpice and simulate the later half of the hardware…


Thanks - I may try that when I get that far!