• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Development of DIY Pi5 multi-channel soundcard

gordoste

Member
Joined
Nov 19, 2023
Messages
33
Likes
29
Hi all, I am working to develop a soundcard for the Pi5 that utilises the new multi-channel I2S capability. The design parameters are:
  • Decent performance for reasonable price (<-90dB THD+N for ~$100 parts)
  • 8 channels out, 6+ channels in
  • At least 96kHz sampling rate
  • Full isolation from the Pi - so it will not use the Pi's power supply either.
  • Single-ended inputs/outputs
This is not supposed to be an audiophile device - it is just supposed to work (especially the first version). My particular use case is to allow a Pi to act as the brains of my DIY DSP-capable AVR, without needing to send the sound out over HDMI (this has some issues and takes up much more space).

I selected TI's PCM3168 because the datasheet is more detailed than the one for the other main candidate, the AD1934, and it looked like the Linux driver support was much more complete. However, it has differential inputs and outputs which makes the surrounding circuitry more complicated. I am attaching the prototype design which I am pretty close to sending for fabrication. I would appreciate comments and suggestions from anyone who is interested. A few notes about the design:
  • Yes, those are electrolytic AC coupling caps. I know film caps are better, but for the prototype these will have to do. If anyone can suggest a good, not-too-expensive film cap, I'm all ears.
  • Power input is +/-6V. There is a separate board (still under design) to supply this using two SMPS.
  • I selected the OPA1679 as the op-amp, as the one in the datasheet (OPA4134) is too expensive. It has lower noise but higher distortion (although still very low). The slew rate is less than half of the 4134 and it is unity-gain stable. Importantly, it's about a quarter of the price! It seems like it should be OK, but TBH I have little knowledge in this area.
  • Descriptions of the various schematics:
    • rpi_soundcard.pdf - The top-level schematic with the PCM3168
    • rpi_soundcard-Input.pdf - Input side, with 6 input filters into buffers into SE-to-Diff converters
    • rpi_soundcard-Input-inFilt1.pdf - Input filter. RF filter, HPF, under/over-voltage protection
    • rpi_soundcard-Input-LPF12.pdf - SE-to-Diff converter and LPF (straight from datasheet)
    • rpi_soundcard-Output.pdf - Output side with 8 channels of diff-to-SE conversion and AC coupling
    • rpi_soundcard-Output-out1234.pdf - 4 channels of diff-to-SE conversion
    • rpi_soundcard-Output-out1234-of1.pdf - Single channel diff-to-SE converter
    • rpi_soundcard-Output-outCap4.pdf - Output AC coupling
    • rpi_soundcard-Pi_and_Isolation.pdf - Pi GPIO connector and isolation
    • rpi_soundcard-power.pdf - Generates +5VA, VDD for PCM3168 and VCC+/VCC- for op-amps
Well, that's all I can think of for now! I'm sure it can be improved... have at it!
 

Attachments

  • rpi_soundcard.pdf
    341.3 KB · Views: 64
  • rpi_soundcard-power.pdf
    155.5 KB · Views: 41
  • rpi_soundcard-Pi_and_Isolation.pdf
    255.3 KB · Views: 33
  • rpi_soundcard-Output-outCap4.pdf
    19.3 KB · Views: 37
  • rpi_soundcard-Output-out1234-of1.pdf
    51.3 KB · Views: 28
  • rpi_soundcard-Output-out1234.pdf
    97.2 KB · Views: 28
  • rpi_soundcard-Output.pdf
    116.8 KB · Views: 27
  • rpi_soundcard-Input-LPF12.pdf
    117.8 KB · Views: 45
  • rpi_soundcard-Input-inFilt1.pdf
    32.8 KB · Views: 28
  • rpi_soundcard-Input.pdf
    162.9 KB · Views: 37
  • rpi_soundcard_pcb.zip
    216.9 KB · Views: 37
OP
G

gordoste

Member
Joined
Nov 19, 2023
Messages
33
Likes
29
OK, well over the last month I have made substantial improvements to the design, including:
  • Corrected a major schematic error where +/- inputs of some op-amps were swapped.
  • Complete redo of layout, with much better routing and less wasted space.
  • Change of grounding scheme away from split grounds for the codec. After a lot of reading, it seems to me that the split ground approach has fallen out of favour. The codec side of the isolators have a separate ground with star point at the power supply, but the codec and input/output circuitry have one big ground plane. (The Pi side of the isolators is obviously totally separate). Input and output ground are joined, but there is no path from those to the internal ground (these will be connected via power ground externally).
  • Added more decoupling caps for op-amps and codec chip.
  • Moved the caps between +/- of the differential inputs close to those inputs.
I am happy with my op-amp choice as I found another thread on here (I think the RTZ DAC) where someone had good results with OPA1679 as a drop in for NE5532, which is the other candidate in the datasheet.

I've now ordered the prototype boards, as well as the power board which generates +/-6V@1A using two LMR54410 switchers (one in inverted configuration).
 
OP
G

gordoste

Member
Joined
Nov 19, 2023
Messages
33
Likes
29
Well, the prototype is built. I have tested the power section and it generates all 4 rails (3.3V for digital, 5V for analog, 5.5V for +ve op-amp rail and -3.3V for -ve op-amp rail). I used a stencil for the first time to do the front and it is awesome. I did the back manually and ended up with some kind of problem that meant the 5.5V rail was sitting at -0.7V. After running the hot air gun over it to reflow the solder, the problem went away. Now I need to wait for my Pi5 to show up...
(Also I ran out of 3-pin sockets :))

proto_main.jpeg



Here is the power board which generates +/-6V from 12V.

proto_power.jpeg
 
Top Bottom