[sdiy] Quantizer with Arduino, ADS1115 and MCP4725
Roman Sowa
modular at go2.pl
Thu Jun 20 12:46:07 CEST 2024
Why do you want to set up quirky supply voltages if the ADS1115 uses
only internal voltage reference and changing supply won't do a thing.
This is slow ADC with less than 1ksps, so more than 1ms latency. Or over
4ms if you want to use all 4 channels. May be OK, but I know people whou
would run from it. Besides, for reading CV in a quantizer you don't need
super resolution, internal 8-bit ADC might be enough, you only need to
guess the note, not measure it.
And the DAC is also not so happy choice IMHO, with maximum 14LSB INL
error it will cause tuning errors that will make you want real quantizer
connected after that one. MCP4725 is 10-bit DAC sold as 12bit.
And forget about 5.333, it's not the 80's anymore. With a little of
basic math it's super easy to setup a semitone step with any number of
bits and not just 512 or 32.
So if you asked me, no it does not soud feasible. I'd suggest to search
for different parts.
A hint: you can buy poor 16bit DAC for $2 and calibrate each note very
precisely, or pay $6 for super linear 16-bit DAC and just use it as is.
Then think if that $4 saved is decent pay for the calibrating effort.
Roman
W dniu 2024-06-20 o 03:16, Scott Bernardi via Synth-diy pisze:
> I'm thinking of doing a quantizer with Arduino nano and external ADC
> using ADS1115. With that I get 4 input channels at 16 bits.
> My question is surrounding changing the reference voltage (which would
> have to be the VDD of the ADS1115) to 5.3333v (instead of standard 5.0v
> so I can get to the 1/12v for a semitone in 1v/octave (83.33mV) by a
> binary divisible value. For example, 5.3333 / 64 = 83.33 mV which is
> our value for a semitone.
> For a 16 bit ADC, (ADS1115 is actually 15 bits with a sign bit for a
> total count of 32,768) each semitone would then be represented by 512 bits.
> Internally in the Arduino code I could represent the values for scales
> as number of semitones. For example, a major scale would be
> 0 2 4 5 7 9 11 semitones.
> Minor would be
> 0 2 3 5 7 9 10
> The necessary binary counts would then be 512 times these.
> Using the number of semitones for the scales is convenient, because then
> for the 12 bit MCP4725 output, I would multiply by the bits per semitone
> value of 32. Or another way to think of it is to throw away the 3 least
> significant bits and the sign bit to go from 15 bits plus sign bit to 12
> bits for the output.
>
> I think running the ADS1115 at 5.3333v would be OK. The chip itself can
> run up to a max of 7 volts. The inputs can accept a max of VDD + .3v
> and -0.3 voltage; so using schottkys to clamp the inputs should be OK.
> The MCP4725 can be run up to 5.5v so 5.333v should be OK.
> Maybe use a single MCP4725 and some sample/holds to handle four outputs.
>
> I am a rank beginner at Arduino programming but am a programmer by
> profession and somewhat familiar with C++.
>
> Does this sound feasible?
>
> ________________________________________________________
> This is the Synth-diy mailing list
> Submit email to: Synth-diy at synth-diy.org
> View archive at: https://synth-diy.org/pipermail/synth-diy/
> Check your settings at: https://synth-diy.org/mailman/listinfo/synth-diy
> Selling or trading? Use marketplace at synth-diy.org
More information about the Synth-diy
mailing list