Tuner 1.0

Your Eurorack tuner utility.

A tuner is a very useful tool, which should be installed in every system: It will help you keep your VCOs in-tune with other oscillators, or with the other players of your band.

It’s based on the sub-circuit proposed by LMNC in his amazing Performance VCO.

The module is equipped with 4 jack sockets, creating a passive multiple. You have the flexibility to input your oscillator’s signal into any of the 4 sockets, monitor the tuning, and subsequently route your signal to connect with other modules as needed.

Circuit description

The circuit is relatively simple, featuring an Arduino Nano as the module’s core, along with input jacks, three indicator LEDs, and a single 7-segment display.

The Arduino Nano does all the hard work: it samples an analog signal, tries to detect the rising edges, measures the time between each cycle, averages the values, converts the result to a frequency, compares that frequency to a table of frequencies/notes pairs and finally displays the corresponding note. Additionally, it indicates whether the note is above, below, or in-tune.

KiCad schematics showing the Arduino Nano, surrounded on the left by the input circuitry connected to the ADC, and on the right, the LEDs and the 7-segment display.
Schematics

The Arduino ADC input is AC-coupled and DC biased at Vcc/2. Two clipping diodes protect the ADC circuitry from excessive voltages.
The 7 segment display can be either Common Cathode (CC) or Common Anode (CA) and the jumper S1 selects which type of display is installed.
The 4 jack sockets are passively connected. This way, you can insert your signal on any connector, and get 3 (passive) outputs. So, even if you don’t use the tuner feature, the module can still be used as a 1-to-3 passive multiple.

3D render of Tuner's PCB showing the 7-segment display, the 3 LEDs and the 4 jack sockets
3D view of the front of the PCB
3D render of Tuner's PCB, showing the rear of the module, with the Arduino Nano
3D view of the rear of the PCB

Firmware

The software is based the one written by Jos Bouten and has been modified to improve the accuracy and reliability of the measurements.

You can download it here: https://github.com/dhaillant/Tune-O-Matic

Previously, the frequency/note relation table contained errors. The data were either overlapping or incorrect for some notes. I created a simple ruby script to generate the correct frequencies, with an optional parameter allowing you to set the amount of cents for in-tune status and the possibility to tune A4 at a different frequency. The script is available here.

I also discovered that Amanda Ghassaei’s algorithm, as such, was too imprecise. For example, it was unable to find “440” when a 440Hz signal was applied on the input. Instead the software was spitting out “442” or “437”. This is due to the speed at which the ADC samples the incoming signal.
As the atmega328 can’t reliably speeds up its ADC further (it’s already clocked at 500kHz), I first thought the global solution wasn’t viable, but I soon spotted that the data from the algorithm could be averaged. I chose the solution suggested in Make: AVR programming book (page 259): “Exponentially Weighted Moving Averages”.
The averaged values were much closer to the actual frequencies.

The final improvement was to increase the resolution by adding more decimals.

Other small improvements were made to the code (reshaped some digits, removed some unused code or reduced some memory usage).

I also created a small 3d-printed screen bezel to surround the 7-segment display. It adds a nice finish to the front panel.

Display Setup

Setup the display with S1 (circled in orange). Red position shows Common Anode (CA) setting.

It is mandatory to set S1 on the back of the PCB either to CA or CC, according to your 7-segment display. Use your soldering iron and add a tiny blob of solder on the correct position (short 2 pads together).
Be absolutely careful not to short circuit the 3 pads at the same time, as you would create a short circuit between +5V and GND.

Documentation & downloads

You can buy the partial kit, with the main PCB and the front panel on ko-fi.com.

Leave a Reply

Your email address will not be published. Required fields are marked *