I'm trying to build a simple audio-recorder, that stores data from an audio input to either an sd-card or a connected usb-stick. The audio interface should initially just encode 2 channels, with the option to expand the number of channels after i have some experience with the basics of raspberry pi. I'm not interested in buying an of-the-shelf USB-solution, but to learn how to create such a device.

Coming from a musical background experiments with 8-bit and 10 kHz are not what i'm looking for, i would at least think of 16 bit / 44.1 kHz. For now i would just try to get this working, ignore the optimization of the analog chain and just put some RCA jacks on the device.

I did some research on hq-audio converters and found this one to sound promising:


data sheet is here: http://www.ti.com/lit/ds/symlink/pcm1865.pdf

As far as i understand it has an I2C or SPI control interface and an "L"-digital audio interface (i didn't find anything about that).

As i do not have that much of deep understanding what working with such pcm's takes, i wonder if i could just connect the digital out pin's of the chip with some of the gpio-pins of a raspberry pi.

Is that possible? How would i read from those pins?

  • Typically users of relatively powerful PC-class machines (as compared to microcontrollers like the ATmega) use one of the many USB audio interfaces available; these range in quality from "decent" to "used in professional recording studios." Is there some reason you don't just want to use one of these with your Pi? Also, could you give some sense of what you mean by "rather high quality?" Note that for professional recording applications, typically the analog electronics (such as microphone preamps) are the hard part of the problem.
    – cjs
    Commented Apr 16, 2017 at 14:20
  • Hi Curt. I own a pretty decent recording studio, based on a macbook pro with audio hardware from rme, motu and some other quality manufacturers. For me this is a first experiment on diving into building my own recording device. This is not aimed to be any comparison to the above mentioned audio hardware, more something like this: de.juno.co.uk/products/reloop-tape-usb-mixtape-recorder/… without mp3. The reason i want to use an external ADC converter is, that at some point in the future i would like to extend the recording capabilities to more than 2 channels for recording jams.
    – marue
    Commented Apr 16, 2017 at 14:28
  • hackaday.com/2016/03/13/a-pi-powered-recording-studio would be my favorite project to follow, but apparently it's dead.
    – marue
    Commented Apr 16, 2017 at 14:30
  • You should update your question with the information in your comment. Knowing what you're trying to learn or accomplish and what your background is helps greatly with formulating an answer. If I understand you correctly, you basically want to learn how to build something resembling a Focusrite Scarlett 2i2 or other interface used to record music on computers (though obviously it's not going to be expected to be at the same quality level, and needn't use USB), right?
    – cjs
    Commented Apr 16, 2017 at 14:48

1 Answer 1


As you are looking at a high quality audio ADC, my suggestion is to find a solution which uses the Linux ALSA SoC subsystem. The reason for this recommendation is that you will be able to use a myriad of pre-existing audio tools to work with your hardware for free. Also you will want a low jitter approach to collecting your audio data, which is difficult to do using i2c and spi driven ADCs.

Here is a recommended approach :

Once that is done, you should be up and running!

  • That's exactly the hints i was looking for. Thanks a lot. Only open question: why stick with an available codec driver? As far as i can tell the Linux driver essentially only is a library of the documented registers, which could easily be adapted to a different chip, comparing the documents of the selected and a reference chip?
    – marue
    Commented Apr 18, 2017 at 11:41
  • Well ok, for a first experiment sticking with available code is a brilliant idea - you are absolutely right about that.
    – marue
    Commented Apr 18, 2017 at 11:46
  • 1
    If you write a new driver for a chip which isn't in Linux, make sure you submit it to ALSA.
    – Matt
    Commented Apr 19, 2017 at 13:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.