Thundercat
Well-known member
Hey all, I'm in process of developing a larger MIDI controller (I've made a bunch in past with Teensys, successfully).
This new one is going to have 8 faders, and 8 "endless potentiometers" (they are actually carbon-track pots that Alpha makes that function as endless encoders, but they feel exactly like pots because, they are).
Obvs I'm going to need analog inputs for all of them, and the endless pot/encoders require 2 analog inputs each. So we're looking at 24 analog inputs.
I'm aware Teensy 4.1 maxes out at 18 analog inputs, and indeed all can't even be used because some pins are for I2C etc, so I can't just use the onboard ADCs.
So then I was going to just multiplex the analog inputs to the available Teensy 4.1 pins and be done with it, but I want this unit to be MIDI 2.0 ready. In other words, be able to reliably handle at least 12-bit ADC or preferably 14-bit.
I'm aware you can oversample on the ADC inputs, but because I'd need to mux them I'm concerned about speed, and indeed would oversampling even work depending on noise profile? Wouldn't muxing them introduce latency and all sorts of problems?
So this has led me to a very long week of intense reading/researching into external ADCs, and trust me I get the headaches and complexity these can add to a a design.
So my simple question is, in your experience is it possible to oversample the Teensy 4.1 ADC inputs while using a multiplexed input, without losing speed, and would that even work to give me reliably at least 12-bit resolution? I'm totally aware that I can use the onboard ADCs as-is and get 10-bit, and with averaging, probably stable outputs. I'm also aware this is on the cusp of what would be zipper-free results, so that's why I'm hoping to get at least 12-14 bits. It's for a product that other musicians would buy, so I don't want to cheap out on the design and do "good enough" for now, which I already can do without MIDI 2.0 ready components.
If going external ADC seems a better solution, and I think it might be, I've identified a couple that I think would work.
For the endless pots: ADS1158 (16-bit, 16-Channel, Delta Sigma, SPI)
For the faders: ADS8688 (16-bit, 8-channel, SAR, SPI)
The reason two different ones - there are libraries for each, but the libraries do not support multiple units. I'm not at a point where I feel able to write and debug libraries, or edit them too much, to support multiple of the same devices. Otherwise I'd stick with the ADS8688 because it allows daisy-chaining and I'd love to use the same ADC for all the inputs.
Anyways, you guys have a great way of shooting down "perfectly imperfect" plans that would not be a good idea, so I totally welcome your input. I'm at overwhelm. If I see another data sheet I may hurl.
Thanks for any insights.
Mike
This new one is going to have 8 faders, and 8 "endless potentiometers" (they are actually carbon-track pots that Alpha makes that function as endless encoders, but they feel exactly like pots because, they are).
Obvs I'm going to need analog inputs for all of them, and the endless pot/encoders require 2 analog inputs each. So we're looking at 24 analog inputs.
I'm aware Teensy 4.1 maxes out at 18 analog inputs, and indeed all can't even be used because some pins are for I2C etc, so I can't just use the onboard ADCs.
So then I was going to just multiplex the analog inputs to the available Teensy 4.1 pins and be done with it, but I want this unit to be MIDI 2.0 ready. In other words, be able to reliably handle at least 12-bit ADC or preferably 14-bit.
I'm aware you can oversample on the ADC inputs, but because I'd need to mux them I'm concerned about speed, and indeed would oversampling even work depending on noise profile? Wouldn't muxing them introduce latency and all sorts of problems?
So this has led me to a very long week of intense reading/researching into external ADCs, and trust me I get the headaches and complexity these can add to a a design.
So my simple question is, in your experience is it possible to oversample the Teensy 4.1 ADC inputs while using a multiplexed input, without losing speed, and would that even work to give me reliably at least 12-bit resolution? I'm totally aware that I can use the onboard ADCs as-is and get 10-bit, and with averaging, probably stable outputs. I'm also aware this is on the cusp of what would be zipper-free results, so that's why I'm hoping to get at least 12-14 bits. It's for a product that other musicians would buy, so I don't want to cheap out on the design and do "good enough" for now, which I already can do without MIDI 2.0 ready components.
If going external ADC seems a better solution, and I think it might be, I've identified a couple that I think would work.
For the endless pots: ADS1158 (16-bit, 16-Channel, Delta Sigma, SPI)
For the faders: ADS8688 (16-bit, 8-channel, SAR, SPI)
The reason two different ones - there are libraries for each, but the libraries do not support multiple units. I'm not at a point where I feel able to write and debug libraries, or edit them too much, to support multiple of the same devices. Otherwise I'd stick with the ADS8688 because it allows daisy-chaining and I'd love to use the same ADC for all the inputs.
Anyways, you guys have a great way of shooting down "perfectly imperfect" plans that would not be a good idea, so I totally welcome your input. I'm at overwhelm. If I see another data sheet I may hurl.
Thanks for any insights.
Mike