[JanHerman] knows that tuning musical instruments is all about precision and that precision is measured in a logarithmic unit called a cent. A cheap tuner unit might be accurate to 1.5 cents which sounds good until you look at one for ten times the price and find it is accurate to 0.1 cents. So you can spend $800 for precision or $60 for something less. [Jan] decided to build something better and cheaper using a 32-bit Arduino and a DDS frequency generator chip on a breakout board.
Oddly enough, the device doesn’t have a display. Instead, it generates a precise frequency and couples it to the piano using a transducer. You tune the string to the corresponding note. The post has a lot of detail about how piano tuning works.
If you know about the chromatic scale, the equal temperament system, and how many cents are in an octave, you might want to skip the first section. We didn’t though. If we learned any of that in childhood piano classes, we’ve forgotten it.
For those whose quest for precision isn’t that critical, note that the difference between two notes can be as little as 0.3316 Hz. It is interesting that the final design isn’t the first one [Jan] attempted and there is an explanation of why the first design wasn’t successful.
The final design calls for a 24-position rotary switch which is tough to find. We might have opted for a rotary encoder and a display or even some LEDs to make a cheap alternative. As it was, the cheap switch used caused problems and required a replacement and very careful soldering.
We’ve seen self-tuning pianos and the use of an oscilloscope for tuning, but those links are long dead. More recently, we’ve seen an old piano hacked for ragtime and if you decide you are giving up on piano lessons, you can always convert your instrument into a workbench.