2

What is a current, workable solution which gives an audio out/audio in without having to go via USB, which is known to cause problems since it is shared with other hardware?

My impression is that there is only the Cirrus Logic (ex Wolfson) audio HAT, which looks good in hardware, but is abandoned in software and unusable on Jessie systems due to shoddy code which upstream refuses to accept.

Is there another solution which accepts audio in via I2S or other, non-USB means?

SlySven
  • 3,621
  • 1
  • 18
  • 45
emk2203
  • 248
  • 4
  • 8
  • There seems to be a number of USB sound cards reported here as working, without caveats: http://elinux.org/RPi_VerifiedPeripherals#USB_Sound_Cards This might be the part of the reason CL abandoned that hat -- it isn't worth bothering with. Possibly you have given too much credence to hearsay. That said, I think people have complained here that the EM interference generated by the pi which affects the native audio can affect the USB as well, in which case it simply isn't a great choice for audio applications (the onboard system certainly ain't great). – goldilocks Oct 15 '15 at 14:35
  • The project is for a special application - Open audio over IP for broadcasters. They state specifically:

    Platforms that are known to work without flaws are:

    • Raspberry Pi with Wolfson Audio board
    • Beagleboard xM with USB audio codec

    Other platforms that are known not to work:

    • Beagleboard Black with USB audio codec (clicks)
    • Raspberry Pi with USB audio codec (clicks, massive discontinuities above 32kHz sample rate)
    • Olimex A10 Linux boards (clicks)

    I would trust what they say - it's not hearsay.

    – emk2203 Oct 15 '15 at 15:01
  • Yeah, I think the clicks are from the EM interference -- someone suggested to me ungrounding the headphone jack for the builtin might resolve this but I have not tried (and that seems less feasible w/ USB). If the Wolfson card does solve that perhaps it is generally possible to get around by using the I2S pins...bit of a gamble. I do use an FM transmitter attached via I2C, with its own input jack, and only notice the clicking if I use the pi as the input. – goldilocks Oct 15 '15 at 15:09

1 Answers1

1

You do not mention which board type you have. On a RPi (not 2) model B (not B+) board you can use the P5 header for I2S as per this article. You will need to do some soldering. Kernel support is available as per Koalo's website, which also features compilation instructions.

For the B+ and 2B, the I2S pins are available as ALT functions on pins 12, 35 and 40 of the GPIO. Check out this document and this thread on raspberrypi.org. This enables I2S. I assume the kernel has already been patched centrally (the document is almost 2 years old) so you should be able to just enable the I2S module.

Then once you have I2S, you would still need to find out how to create audio-in - you'd likely need to solder together your own board using an ADC and a microphone-in or RCA-in plug.

Phil B.
  • 5,043
  • 15
  • 30
  • 1
    Thanks for the general update, but I am looking specifically for a ready-made solution which is comparable with the iqaudio or hifiberry hats, just with additional audio in. Wolfson had it, but after reading the customer complaints, I don't dare use them. What koalo did was the groundwork to make all these solutions possible. There shouldn't be a need to start from scratch. – emk2203 Oct 15 '15 at 13:16
  • I agree with the general observation that "there shouldn't be a need to start from scratch" given the popularity of the RPi. However, apart from Cirrus Logic (which has issues as you mention) there does not seem to be an existing solution (see http://www.element14.com/community/thread/42067/l/audio-line-in-for-raspberry-pi?displayFullThread=true) apart from USB cards. Both USB and I2S have issues with sound quality as the typical RPi OS is not made for real-time signal processing. At least that is what I've been able to find out. You might need to chose: accept lower quality or switch platform – Phil B. Oct 15 '15 at 13:49
  • The issue of the OS being "not made for real-time signal processing" doesn't apply to the use of dedicated hardware such as a (USB or other) soundcard, since it (and all other common OSs) are the same in this regard but generally work fine with appropriate hardware. The card processes and buffers signals on a low level (if sound cards required real time OS support, nobody would make them, because there would be no market for them). – goldilocks Oct 15 '15 at 14:29
  • @goldilocks You are right. I think it comes down to the OP's initial statement that he does not want to use a USB based soundcard - that is a big obstacle. – Phil B. Oct 15 '15 at 15:28