Electronic instrument tuners have existed now for several decades, but the ones with a great amount of precision can cost over a thousand dollars to the consumer, which is far above what many are willing or able to pay. To address this issue of high prices while still maintaining a high degree of accuracy Jan Herman built his own device that utilizes just a few relatively common parts.
Within the housing of his tuner is an Arduino Due, which was selected because of its 32-bit architecture (for precision when measuring frequencies), faster speeds, and a large amount of GPIO pins. Apart from that, Herman included an AD9833 waveform generator breakout, a PAM8302 amplifier circuit, a pair of rotary potentiometers and switches for getting user inputs, and a transducer/speaker setup along with various passive components for power input.
Initially, Herman had planned to include a small speaker that would listen for feedback from the instrument and give the tuner an amount to adjust the string by. However, this proved to be too costly, thus why the transducer and speaker combination was chosen instead. When the user of this project wishes to adjust the frequency, they simply listen to the wave generator and attempt to match it.
This is a very brief overview, and you can read much more about the theory behind tuning an instrument here in Herman’s Instructables write-up.