24 bit audio boards

I2S microphones are tiny SMD parts which are meant to sit somewhere on the pcb of a multimedia / audio device and, if enabled, continuously record audio samples with their internal ADC and shove the resulting data stream to a MCU or CODEC. The microphone designers decided it would be wise to use a very streamlined set of data lines and do only include I2S and NO other means of controlling any sample settings beyond the primitive ENABLE and LEFT/RIGHT pins and the sampling frequency, which is controllable via I2S clocks.

One therefore has no control over any gain or sample depth setting of the ADC stage of an I2S microphone. This fact might have also led to - but I'm not confident about this fact - the follow-up decision by the audio designers to use fixed 24bit depth for the I2S data transfer. This is the crucial point why I've decided that cutting bits most definitely has some repercussions along the way.

I'ld be happy if this assumption is wrong, because then things get a lot easier on all fronts ;)

Even after a lot of reading on this subject, I'm not exactly sure if 24 bits are really necessary, and if so, why.
The I2S mic in question* has 91dB "digital range" between its noisefloor and +120dB SPL...

To resurrect this old thread, I've also been checking out the I2S digital microphones. I find them very intriguing as it eliminates all sorts of annoying problems with exposed traces between one's microphone and its amplifier and its ADC. I'd love to play around with these more. But, as mentioned above, they're all 24-bit.

If the Audio library were open to modifications to higher bit rate, the ability to support this new class of microphones would be very interesting.

Ironically, the sgtl5000's high-pass filter was introducing a lot of high-end noise, so running adcHighPassFilterDisable() helped (and it seems that you do have to run it explicitly – it appears to be on by default).

In testing with my Teensy 3.2 with Line-In (shorted), I get a whining squeal that jitters about. I did the adcHighPassFilterDisable() and that noise goes away. Shocking! Awesome!
I'm sorry, but the details of the board you want to use with a Teensy didn't come through with your post.

I can't see an earlier post in this stream where you have given this information.
This thread is entirely fascinating, not sure where things stand now with supporting the board in the Audio Library? I'd be interested in one of the free boards Paul is offering but I assume they have all been claimed?
This thread is entirely fascinating, not sure where things stand now with supporting the board in the Audio Library? I'd be interested in one of the free boards Paul is offering but I assume they have all been claimed?

I have one board left. Follow the instructions that were posted earlier in this thread and you can have it.
Hi! I am glad to find there's better option than the ordinary Audio board,
I would like to stream to my PC 3 mics (piezo sensors), 24bit 96Khz, Is there an option to use this boards to this mission?
Is there any similar project someone did?

Thanks a lot!
To document my own experience with the noise of the Teensy Audio Board (and to show the positive effect of disabling the SGTL5000 ADC's high-pass filter), I wrote it up here:


Audio samples are shared on that page, along with spectra comparing "with HP" and "without HP". That high-pass filter is adds a lot of squeeling whiney noise!



Played little bit in Kicad using whollender CS4272 design files. This PCB is too complicated, it could as well be double layer and without those RF isolators (those are fancy though, I didn't even know such exist). I just edited netlist manually as the input from schematic didn't seem to work. Also added manually S/PDIF pins, MIDI and SRAM. Might consider making the PCB somewhere where you can get 4-layer board for low price if I can find such one.
Well, as we don't have real competitors here in Germany, and even OSH's "superswift" is super-slow with luxury price($$) compared to china companies, I don't mind to say: Look in china :)
I even tried their "express" service and had my board in less than a week (INCLUDING shipping).

I don't want to spam here, so no link: J L P C B for example delivers very good quality.
Last edited:
Good to see the features we discussed in the other (8 channel thread) being built into this 2 channel project.

I'm based in Australia and OSH doesn't make much sense here either.

I've been using P C B W A Y in China for a while and always found them to produce good quality boards, and are prompt and inexpensive. I haven't tried their four layer products, so can't comment on that.

They have met their one hour pre-production board review target, and boards are generally produced within 48 hours of payment. Finally, they offer relatively cheap China Post freight, as well as UPS and other express services.

They have also just released a PCB sharing function, with profit sharing - a bit similar to OSH's.

So, there's two references for you - best wishes in finding a board manufacturer that suits your needs.
Thanks for tips, I'll check those china companies.

I might still move the codec to I2S2 as it would free up the main I2S for multi-channel use. Unfortunately every connection (I2S lines) from the isolator to Teensy crosses over each other (pinout is reversed kind of). Also for the I2S2 master clock there are no pins on the header. In this design the CS4272 is master, though if you leave out the isolator you can bypass it using resistors (0 ohms or greater when needed for the signal integrity). Then it's also possible to change the direction for the clocks and use I2S1 MCLK output from Teensy, then you can also save some costs as the local oscillator is not needed. The board is so tightly populated that it would be difficult to convert it to 2-layer one, the ground zone would be quite broken at least on top side.
Yes, moving to I2S2 might be a good idea - though I'm not sure how much editing of the library routines might be required.

Using the 6/8 channel board and TDM could produce the same result as multi-channeling with several boards, and with much less complexity. BTW my CS42448 boards are busy swimming toward me from the aforementioned Chinese PCB company, and I'm happy to send you one, as I'll have some spares. Also happy to share the Eagle files if that's any use (I think you have mentioned you use KICAD).
hey i'd be very interested in one of these boards, if you end up making PCBs please let me know, i could pre-pay if that helps..

also, since i am currently battling all kinds of EMI and ripple proplems in a bigger mixed mode synth build, i would totally keep any kind of isolators you can find (or add...) in the design... better be on the safe side than having to listen to your SD card write data with a 1khz tone...

I ve tried P C B W A Y in 4 layer and class 6 (120um tracks inside ) ; good quality and ok for PCBs with assembling ... Good contact and reply with internet too.
They can manage to do FLEXIBLE too .... and not J L C P C B , unfortunetaly..
I've been working with SuperAudioBoard for signal processing in a physics lab, and it's great!
Has anyone considered upgrading the Teensy 3.2 to Teensy 4.0? My motivation for this would be the faster CPU speed for real-time DSP on the microcontroller. The problem is a completely different set of programming macros, which I'm very slow to get to grips with.

In case anyone is interested in helping with this, I put on github a minimal working example for Teensy 3.2 which produces a 1.5 kHz test signal. The I2C, I2S and CS4272 header files are the ones needing modification to work with Teensy 4.0.