/wagyu

hardware & software for a simple eurorack module to support some youtube livestreams

Primary LanguageCCreative Commons Zero v1.0 UniversalCC0-1.0

'wagyu' simple 5hp eurorack module to demonstrate STM32F405 based module design.

what is it?

WATCH THIS - https://www.youtube.com/watch?v=Wm21Wc7AefM

a small eurorack module with 3 knobs, 4 DC coupled CV inputs (+-5v), an encoder, an 8x8 LED matrix display, stereo AC coupled outputs (+-8v), and stereo AC coupled audio rate inputs. the audio inputs are 'aliased' with two of the CV inputs, so that you can use one or both of them as either CV or audio inputs. for example, the 3 leftmost jacks can be used as CV inputs, then the 3 rightmost jacks are the 'audio' side, with mono in at the top and stereo out at the bottom. alternatively, the top two jacks can be used as stereo inputs.

it has an STM32F405 processor at 168Mhz, which is fast enough to do fun reverby, synthy things. it's also cheap and in-stock at JLC :)

but what does it DO?

it teaches me module design, and latterly, you - thru a series of (so far 2) youtube streams.

this repo is a dump of the state of the hardware design files and software as written on-stream. the first stream was more hardware centric, but not about this specific design - https://www.youtube.com/watch?v=Xf4CxC8exFM the second stream covered bringing up the entire sw/ folder from scratch for this design - https://www.youtube.com/watch?v=Wm21Wc7AefM

Hardware

the files are presented in the exact state I showed on stream and submitted to JLCPCB for PCB manufacture and assembly. at the time, all SMT parts were in-stock and from their standard library. the front panel is presented as two designs that can be broken apart. I wasnt sure if 'holes' or 'no-solder-mask-circuitboard' would be better; in the end, only holes worked - so if you are submitting this, you can save yourself some money by removing the 'no-holes' half of the front panel design, by editing the kicad files and regenerating the gerbers.

the main board is a 4 layer design, mostly auto routed (sorry not sorry). It has 3 mistakes, none fatal: the euro power jack isnt perfectly centered, which causes the plastic plug to overhang by a mm or so. annoying, and could be fixed by shuffling it over a bit. it's fine if your case or the adjacent module has a bit of space there :). the I2C bus doesn't have pullups, oops; you need two 2.2k resistors pulling up to 3v3 adding. I work around this in software so it works fine without (I bit bang the I2C and go slow, using the STM's on-chip pullups). lastly, the footprint of the 8x8 LED matrix I mistakenly assumed the pins were in a square; they are not. see second video for more info, but you can just bend them and it fits. Just.

BOM

all the SMT positioning (csv) that you can upload to JLC's assembly service is in the assembly/ subfolder; likewise, the SMT BOM with part numbers for the lcsc.com site - all chosen to be available for JLC assembly. Once you receive the board, you need to source and add your own 'hardware':

SW

the software is as I left it at the end of the second stream. We've brought up all the hardware except audio input; the only files that differ from the autogenerated project are main.c and codec.h; everything else is ignorable boilerplate. it doesn't do anything musical at this stage, but it should make a good starting point.

stuff you might need

you need STMCube32IDE for free from ST.com to do the software side; runs on mac, windows and linux. I used a Digilent Analog Discovery 2 as a scope & signal generator, but you don't strictly need it. you will need some way to flash your board - an ST Link programmer for example; the new ST Link 3 Mini has exactly the right programming header, but I can't seem to find one to buy! instead, I use Nucleo boards (look on amazon for 'nucleo STM32') - they are typically under £20, give you a great prototyping platform AND a built in ST Link programmer you can use on your own standalone boards.

have fun! let me know on twitter if you get something out of this! twitter.com/mmalex

License

I'm releasing this all into the public domain. the hardware is heavily inspired by the eurorack open source modules, and the codec & cpu parts are pretty generic. I would appreciate if you let me know if you get any value out of this! let me know on twitter @mmalex.