This build was inspired by this post from ElectroDruid, at least in part. I have been getting into sound synthesis over the past year and needed simple module on my Eurorack setup that I can plug anything into and see if it's working (or peaking). There are a few modules out there like what I've made here but I'm doing most of my synth as DIY kits or pure DIY of my own design.
The idea started on the breadboard, and because I had an Arduino Pro Mini in my box of spares that's what I used.
Here all 16 outer pins of the Pro Mini and two of the inner analog pins are connected to the row of LEDs each of which has a series resistor. for a total of 18 LEDs, which was later reduced to 16.There were still two analog pins available (the green and yellow wires) which were used as audio inputs. The other two analog inputs were later used for some timing/debugging. The audio and control signals on Eurorack can swing ±10V which would damage the Arduino if used directly. To solve that I've used almost the same circuit as the ElectroDruid version but with different values which clamps the signal to +5 : -0.5V for the Arduino.
The Pro Mini I had handy was the 8Mhz 3.3V version, but later I switched to a 5V 16Mz version to improve the sample rate.
For a proof of concept I started with the built in Arduino APIs, which work but are very inefficient. That initial version only managed to sample at ~2kHz. Eventually after switching to the faster Pro Mini and several iteration of optimization the sample rate was improved to ~38kHz; however, two pins are sampled, toggling every other read, so it's about 18kHz per input. That's not as good as the PIC used by ElectroDruid, but it's plenty for my purposes. Here's a pin toggled with every ADC read showing the final sample speed.
Prior to getting that kind of performance I set the software aside and designed a set of PCBs. This is the first time I've designed PCBs for manufacture. I've only made them for etching before. I figured this was a fairly straight forward design to get some experience on. After some design time and learning how to use KiCad I managed to get a v1.0 I was happy with and had some samples made by Seeed Fusion PCB service. I also spent some time learning how to use FreeCAD and made a footprint or two for this design.- Used footprints for resistors that are closer to 250mW sizes. There's a lot of wasted space on the board, same for diodes and ferrite bead.
- Use footprints that are correct (wider than v1) for all ceramic caps so they don't have to be bent.
- Avoid resistors for Arduino foot print so they don't run into each other.
- Moved second 20pin header on PCB_B to reduce the depth when plugged in.
- Use small traces for all the led paths, no need to mix and match.
- Add Open Hardware logo.
- Add passive multiple path with solder bridge.
- Removed several unneeded capacitors.
- Removed the 5V regulator and it's support components.
- Changed a bunch of footprints.
- Removed power LED.
- Removed mounting holes in corners.
Comments
Post a Comment
Comments are moderated. Comments containing links are marked as spam.