Thank you! I can't seem to find the Mcp400x I saw some Ada op amps that were rail to rail but I have no idea about appropriate frequency and slew and all that. Perhaps you could suggest another? What do you think about diodes? Does axoloti have some on the board? I have seen diodes used pretty frequently in a circuit for the ns1 like this http://www.sound-machines.it/product/ns1nanobridge/ in fact I wonder if plugging in the axolotis 3.3v and ground instead of the ns1 5v and ground would make it usable with the axoloti. I wish I could find a circuit diagram for that I have a feeling it make be using a circuit similar to yours. If this could be used with axoloti that would be awesome. If not I will be working on making my own. First on a breadboard. This is super exciting for me. I'm also planning on trying to breadboard a simple lfo with some of the parts I got coming.
Official pin out/ports documentation
@johannes unfortunately I don't know much about digital signals, I was wondering if the i2c outputs on the axoloti are similar to arduino. Was thinking this might be a good way to add more dacs as needed https://www.adafruit.com/products/935?gclid=CjwKEAiAiZK1BRD509nPsYiUk2YSJAAMoAwCAL2XcLToE2s_WH77lbc5kC5uReN1xFtktsqBgvhbRRoCR77w_wcB
It seems like it would be simple enough to use this if i2c on axoloti is similar to arduino
FWIW, MCP600x can be had at mouser etc.
Diode clamps are an alternative; and they're occasionally used, even (for instance, as seen in the 4ms SMR (schematic (scroll down to the "band" inputs/sheet 3).) Generally speaking, op amps are preferred, because lower impedance source = better ADC performance. That said, the diode way is probably easier to implement and chances are you won't do any fancy-pancy sampling.
Re op amps: Assuming you power everything off the axoloti, you won't have a negative supply, so the above circuit won't work (the current limiting resistor isn't needed either; certainly I wouldn't use 10k, which kind of defeats the purpose). You'll need to bias your op amp differently. See figure 4 in here, for example.
I have been considering installing the axoloti in my eurorack case which has a 4 ms 30 row power which provides -12, 12 and 5 volts. I have been having trouble finding rail to rail op amps hence the need to use a negative voltage. I could not find the MCP600x at mouser... then I took the x off and found a whole bunch, any suggestions on which would be best for my applications? being able to run everything off of axoloti's power would be cool for some applications, like bringing it out to interface with friends euroracks without having to bring my skiff, however right now its not a high priority. As far as quality for going in I will mostly be using the ins for gates, triggers and cv. voltage per/oct tracking would be awesome but I won't need to implement it until somewhat later down the line of my build.
Sorry, yeah, by MCP600x I meant MCP6001/2/4. They mainly just differ in how many op amps per IC there are, so it depends on how many CV inputs you want/need.
And in that case ( = power from +/-12V), why not do it as per the "euxoloti" schematic? That's basically how most digital modules do it, I suppose, in the wake of Mutable Instruments. (Though there's no harm in using a TL072 and clamping diodes; it's mostly just more parts.) Either way, I wouldn't recommend relying on the power rails as a reference/offset voltage, ie don't ditch the LM4040.
Note about the euxoloti schematic: It seems to me the opamp is powerd from 3.3V and ground there, just like in my schematic above. It works (I assume, haven't tested it myself) because for MCP6001/2/4 the input common mode range can go a bit below the negative rail (and for the inverting configuration, both inputs should be very close to 0V all the time). The output can then swing from 0V to 3.3V, and this is the main clipping used. Note that when the opamp output clips, the input is no longer at 0V and it will go out of spec; I don't know what happens with this particular opamp in that case. The 10k resistor is optional indeed, and maybe overkill, but you don't need low impedance in this case (the STM32F4 datasheet says 50k is acceptable at the highest ADC speed).
@Illuminate: To use clipping diodes, the general idea is this:
The diodes clip any voltage above 3.3V+x or below 0V-x, where x is the "diode drop" voltage, x=0.6V for standard (silicon) diodes. It is important to have some resistor R1 to limit the current through the diodes, otherwise you just blow up the diodes and you still have no protection. I again recommend at least 10k in this application (and at most 50k), it is high but at least it limits any substantial current injection into the axoloti power rails, which could be harmful. I would also recommend Schottky diodes, that have a lower voltage drop, the limit for axoloti is 0.3V if I remember correctly. An example of a Schottky diode is 1N5818.
The clipping above doesnt do scaling, only clipping so the input range is 0-3.3V. If you add a resistor from the axoloti pin to ground, it becomes a voltage divider, so you can scale down voltages, but still only positive ones. You would get about 0 - 4.8V range with R1=10k and 22k to ground. You can also make it work with negative inputs by adding 6.8k to the 3.3V rails (and keep the 22k to ground), which gives -4.8 to +4.8 V (not exactly symmetric) input range. But it has the downside that you get some nonzero reading when there is nothing plugged in. To fix that, you need an opamp.
Final note: you can use an opamp such as TL072 connected to the eurorack +/- 12V supplies, but then you need to do the clipping seperately, for example with the Schottky diodes. And then you definitely need the series resistor!
Note about the euxoloti schematic: It seems to me the opamp is powerd from 3.3V and ground there, just like in my schematic above. It works (I assume, haven't tested it myself) because for MCP6001/2/4 the input common mode range can go a bit below the negative rail (and for the inverting configuration, both inputs should be very close to 0V all the time)
Sure, my comment was re the negative reference, not power supplies. As to what happens ... I don't know. But I take it they can't be very prone to latching-up, given there must be hundreds of modules built like that on the market and no complaints.
A diode clamp like on the ns1nanobridge, can protect the inputs of the Axoloti Core more or less, if it is using schottky diodes, it can work when connecting axoloti's 3.3V VDD to ns1nanobridge +5V.
However I think the ns1nanobridge is not a very good design because:
* it does not clamp positive voltages if +5V is left unconnected
* clamping the negative side with a 1k resistor in series will affect the output signal (from the module driving it), not really a problem if it is the only thing connected to an output, but when using stackable cables or passive multis to split that output, it will introduce distortion on the CV signal received by other modules.
* if it is clamping input voltage on the positive side, it injects the current into the +5V supply. The addition of a shunt regulator would have been a good idea.
* it uses the same circuit for both in- and outputs, while it'd be better with a 10k resistor on the input, but a 1k resistor on the output.
I2C on Axoloti is similar to arduino. The MCP4725 DAC breakout you suggest can be interfaced with some custom code. Search on this forum for I2C and you'll find some code examples.
For adding eurorack CV in- and outputs, MAX11300 looks like an interesting chip, serving 20 channels with any combination of +-10V CV in, +-10V CV out, gate in, gate out. The MAX11300PMB breakout is not terribly expensive, looks like you can feed it +-10V regulated from +-12V eurorack supply, or perhaps even +-12V eurorack supply directly. Axoloti has SPI available on the GPIO's to talk to this chip, however it requires coding a custom object to handle the protocol.
This looks like an excellent options. If someone writes the code for the custom object I would definitely be interested in trying it out. Otherwise it may need to wait till/if I learn sufficient coding to accomplish that task. Thanks for your replies. I am going to start working on cv out from the axoloti soon. I will start a seperate thread to keep you all posted on my progress.
@johannes I was wondering about the + and - symbols on the audio in and out. I'm not sure what those mean, is it positive and negative phase shift for balanced outs?
Yes, those connect to the audio converter balanced input- and outputs. Keep in mind they're biased at 1.65V at that point. (The balanced output solder pads were added on board revision 1.1)
To anyone wanting to make a similar non inverting op amp as describe above for 0-5v output there was some noise driving the op amp towards the positive rail for very short time that I could not detect with my multimeter however it was there non the less close to 10v for a few milliseconds every time the gate was triggered. Caps placed between positive and ground as well as negative and ground fixed this problem. Also without the 100k resistor across the input the op amp was driving towards the negative rail when there was no input.
The balanced output solder pads were added on board revision 1.1
Is this 1.1 schematic already up somewhere? The main page still links to 1.0?
http://www.axoloti.com/wp-content/uploads/2013/12/axoloti-core-sch-v10.pdf
Working on getting some input
Going... I'm really confused about this transfer function to me it looks like it's just going to clip the op amp towards the rails all the time... Like with 0v in we get (240/33)12= 87.27 as v out. 1 v in = 83.97 out. I haven't ordered mcp6004 yet but it looks like this would just output the 3.3v the whole time. What am I missing?
I'm really confused about this transfer function
It's V_out = - (R_f/R_in) * V_in. You have it the other way round. It should be: -0.33 * V_in + 0.1375 * 12V.
As mentioned, it's good practice though not to rely on the power rails as a reference/offset voltage.
now I'm more confused Did I do the math wrong, or was @kassu 's transfer function wrong. Or is the circuit backwards? Im trying to learn but still on chapter one in the art of electronics
His/her calculation doesn't match the drawing. The circuit is correct, in that it's attenuating the input signal (gain = -33/100) and offsets it by 1.65v (= 33/240*12v), which is half the ADC range.
FWIW, you're looking at what's called an "inverting amplifier" or, more specifically, the "inverting summing amplifier" / "inverting mixer"; there's plenty of more or less non-technical information on the web for example.
Indeed, I had the numbers swapped around! Sorry, and thanks @gloom_and_glare for correcting. I updated the original post also to show the correct formula.
I was wondering what the difference between vdd, vdda and vddc. I am planning on using vdd for a reference voltage. If needing multiple reference voltages should I split them among the various vdd?