I've been experimenting with creating some sort of instrument tuning helper device, as it seemed like a good mix of analog and digital, as well as a useful thing to have around the house after the arrival of a Ukulele shortly after Christmas.
More on the trials and tribulations at the code level later, but I thought I'd experiment with the Fritzing circuit design package as a means of recording my more complex circuits, starting with the AF input stage for the tuner. At first glance, Fritzing seems like everything I need:
Maybe it's just a steep learning curve, but it wasn't as straightforward as I'd hoped. It took about 20-30 minutes to enter the breadboard representation seen below:
That wasn't so bad, I suppose - the breadboard was a bit of a rat's nest. But then it took another 60 minutes or so to jiggle the schematic view into anything approaching presentable. The current version isn't bad, but it'd probably have been faster to just Inkscape or some other vector graphics program to draw it from scratch. Bah. Anyway, here it is in all its glory:
The idea is to have a simple transistor amplifier, probably with approx. 100x gain, depending exactly on the cheap transistor used. Then feed that through a voltage divider to add a DC offset to the voltage, making it more compatible with the Arduino's analogue input range of 0V - Vcc. I checked out the output with an oscilloscope, and it looks pretty good.
Ideally I'd add a low-pass filter to get rid of distracting harmonics, but since that would need to be adjustable for each target note, I'd prefer to attempt a filter in software, if I can get the ADC samples coming in fast enough.