Tune-O-Matic tuner

This is my version of the tuner Sam shows in his videos about the 1112 oscillators. I initially responded to Sam’s call to have a look at the code and changed a few things, making the code hopefully more easy to maintain and more readable. You can find the code here: Tune-O-Matic @ github. Then I decided to build one for myself so that I can tune my analog synths which until that point I had been doing by ear. Some code was added to the original to make testing the signalling LEDs and LED display more easily. Also some code was added in order to have the clipping LED switch off after about 2 seconds. I 3D-printed a front panel in Eurorack format which is shown in the pictures. Because LEDs nowadays produce quite a bit of light I used relatively high value resistors for the signalling leds (10 kOhm for the red leds and 56 kOhm for the green led). For the display I used 220 Ohm resistors because I used a relatively old type which contains leds that are not as bright. My 9 segment display differs from the one Sam uses. It is a common kathode HP 5082-7613. However the outputs of the arduino nano used to control the segments (E, D, C, DP, G, F, A, B) have not been changed. The software was not adapted to this display, I simply adapted the wiring to this type of display. I added an opamp (TL071) as a buffer between the nano and the synth. Also I added a zener diode to protect the nano’s input from voltages exceeding 4.7 Volts.


The notes I attached show the schematic and on the bottom right the pin layout of the HP 5082-7613 display. The display is drawn in top view here (so the pins are below it), To the right you can see a bottom view of a Euro rack connector listing the pins (-12 volt is on top, the connector cut out is to the right). In the picture you can see this connector in part.

If anyone is interested in the STL-file, send me a message.

7 Likes

really nice! good addition of an opamp to the circuit and zener diode.

but yeah I actually had a brainwave of how to make it more functional on slightly more complicated waveforms, adding a low pass filter (just a simple RC filter) this will hopefully filter out big chunks of the smaller less important aspects of a waveform, keeping the dominant note (the one to tune to) present! infact i’m going to try this to mine later. as its pickiness for perfect waveforms has stopped me from making it its own module. but I think that may solve it.

3 Likes

After seeing you using the ADC I fell down the youtube hole looking at DIY sequencers and eventually found this https://www.schneidersladen.de/en/dave-jones-o-tool.html on someones setup, wondered if the LED display on the 1222 VCO could be replaced with a little OLED screen to show wave form and frequency, then found this https://uk.farnell.com/microchip/mcp6s21-i-p/ic-pga-1ch-12mhz-spi-pdip8/dp/1439474 if the Arduino isn’t good enough, massive overkill but DIP so socketable.
Just a rambling thought lol.

1 Like

oh yeah thats interesting! that would be cool. an analog oscillator with a screen

1 Like

another question regarding the tuneomatic does it have a red screen filter on it? or does the display come like that

1 Like

You could make a low pass filter in software and add it to the arduino code to get rid of pesky harmonics. In that way no additional hardware is needed. The display used in T-O-M is colored red and the led segments are red.

1 Like

For those who (like me) got a display with common anode:

  • The pin which on the schematics goes to ground should be connected to +5v
  • in the code, find the setLeds function and change ‘0’ to ‘1’ in appropriate lines:

void setLeds(String segments) {
// Decode led pattern and switch on/off the leds.
digitalWrite(LED3, segments[0] == ‘0’ ? LOW : HIGH);
digitalWrite(LED4, segments[1] == ‘0’ ? LOW : HIGH);
digitalWrite(LED5, segments[2] == ‘0’ ? LOW : HIGH);
digitalWrite(LEDE, segments[3] == ‘1’ ? LOW : HIGH);
digitalWrite(LEDD, segments[4] == ‘1’ ? LOW : HIGH);
digitalWrite(LEDC, segments[5] == ‘1’ ? LOW : HIGH);
digitalWrite(LEDDP, segments[6] == ‘1’ ? LOW : HIGH);
digitalWrite(LEDB, segments[7] == ‘1’ ? LOW : HIGH);
digitalWrite(LEDA, segments[8] == ‘1’ ? LOW : HIGH);
digitalWrite(LEDF, segments[9] == ‘1’ ? LOW : HIGH);
digitalWrite(LEDG, segments[10] == 1’ ? LOW : HIGH);
}

3 Likes

In my build I have a common cathode LED display, while Sam uses a common anode LED display in his. Your remark makes it obvious that I should have make some comments about this in the code. I just uploaded a new version of the code to Tune-O-Matic. You can now set a switch for use of either a common anode or common cathode led display. The rest of the code need not be changed.

2 Likes

Thanks for sharing your designs and code Sam & Jos. Awesome stuff!

I have combined what you both shared and added a buffered output and created a pcb design as I wanted 3 of these. And with the prices for JLCPCB these are as cheap and easy as messing with stripboard. If they are confirmed working, I’ll share the Gerbers. If that’s OK?

7 Likes

Great! Yes, do share your design!
What size will it be? Looks to me like it would fit behind a euro rack panel.

So it has an input buffer and output buffer (meaning that the phase of the input signal is preserved)?

D1 is a Zener diode to protect the ADC input from over voltage?

2 Likes

Hi Jos,

Thank you for the quick reply.

It’s 30x98mm so it falls in to the $2 pcb category in JLCPCB. It should fit nicely behind a 6hp panel that i will order once it’s 100% working.
It has your input buffer and another output buffer. So phase should be back to normal as far as i know. Indeed the zener is to reduce the risk of frying the arduino.

3 Likes

Any drill holes planed to connect it to a panel?

2 Likes

I have not even considered that. Good that you mention it!

I am so used to having plenty of pots or jacks to hold everyting in place. I will make sure to add that before creating the Gerber.

2 Likes

One more thing, as far as I know the arduino nano has a power circuit on board which allows you to feed it 7 to 12 Volts via the VIN pin, so you may not need the 78L05 (unless you bus voltage is higher than 12 V, some people use 15 V).

daCgS

3 Likes

I have some of those clones like Tayda sells, but from some French Ebay seller.

I used this as a “better safe than sorry” approach. Do you recon it is overkill?

1 Like

I have to correct myself.
From the arduino site:

The Arduino Nano can be powered via the Mini-B USB connection, 6-20V unregulated external power supply (pin 30), or 5V regulated external power supply (pin 27). The power source is automatically selected to the highest voltage source.

Well, if they have the voltage stabilizer, then yes. Furthermore, depending on the power supply voltage the dissipation of the 7805 varies (the current is determined mostly by the number of LEDs switched on at the same time) and you need to get rid of the heat it produces.

An alternative is to feed the circuit 5 V via the USB or external power supply connector. For this purpose I added a 5 V rail to my euro rack power supply, and I use that to feed all nano-s and such in my rack. If you start using nano-s in your euro rack designs, then one centralized 5V power supply is a good solution as well.

1 Like

Instead of a Zener, I would use two diodes like this:


It’s kinda cheaper/easier to source, and that’s a more common input protection stage. You can even omit the diodes, as the Arduino has them builtin!
The input resistance (R3 on my schematic) should be fairly low, as someone (I think it was @fredrik ?) pointed out before, or you will have wrong readings from your ADC (you need more time to charge the input cap).
I would use an external 7805, the one on the Arduino is pretty small and can get hot easily…

4 Likes

Oh well, then if there is no reason to add them, I’d leave them out to make the circuit simpler (made a comment in my personal notes just in case I want to build the circuit again).

3 Likes

Since we’re all having an interresting discussion… He’re the schematic. Any apparant flaws or improvement possibilities?

1 Like

Give me a few moments to find my schematic and compare it to yours.

In the mean time: Given that there are so many schematics knocking about that are untested or just drafts and that people and search engines do not read posts but do pick up all kinds of schematics, I think it would be wise to add some text in the schematic commenting on its status, like DRAFT or UNTESTED or TESTED or FINAL or something similar. I’ve posted this in other threads on this forum as well. I hope this will be picked up by everybody posting schematics or strip board layouts in the long run.

1 Like