filipmu / audio-recording-firmware-raspi-tlv320adc6140

Custom device tree layover and python firmware control script for the 4 channel ADC tlv320adc6140. Allows a raspberry pi to create continuous audio recordings.
GNU Affero General Public License v3.0
15 stars 4 forks source link

Is it possible to use all 4 channels? #1

Open cvabc opened 2 years ago

filipmu commented 2 years ago

There are two parts to the firmware, the device tree overlay that allows the Raspberry Pi to use the soundcard and the Python code that configures the soundcard. The device tree overlay only handles 2 channels of audio. I tried a couple times to have it handle 4, but I could not find a way.

The python code can be used to configure the card to use any or all of the 4 input channels and mix the signal to 2 channels. So in this sense 4 channels can be used on the analog input side.

cvabc commented 2 years ago

Thanks! It seems the I2S supports only 2 channel for the SOC https://datasheets.raspberrypi.org/bcm2711/bcm2711-peripherals.pdf, therefore manual demultiplexing is needed.

filipmu commented 2 years ago

I am reopening this ticket as an enhancement. It would be great to be able to use all 4 channels on the raspberry pi. There are other audio ADC boards that are capable of sending 4 (or more) channels of audio to the raspberry pi, so its technically feasible to manually demultiplex.

I've looked into it and tried some things, but could not find a solution. Here are some sources I have found that might be helpful, reflecting products and drivers that have more than 2 ADC channels for Raspberry Pi:

  1. Linux driver for tlv320adc6140 in Raspberry Pi repo
  2. Linux documentation for driver in Raspberry Pi repo
  3. Linux docs ALSA aSoC
  4. Audio Injector Octo board with 6 inputs for raspberry pi
  5. Octo driver in c
  6. Octo install
  7. RPI drivers for 4 and 6 microphone arrays