I have a CS4270 codec hooked up to a Raspberry Pi more or less according to the "recommended layout" in the datasheet (P7), shown below. This device sinks power from three different places (VA = power for analog subcircuits, VD = power for DSP, VLC = power for control port (I2C and clocks). Currently VA is sourced by an LT1965 (in turn powered from an Adafruit Powerboost connected to a LiPo battery) while VLC and VD are sourced from the Raspberry Pi's 3.3V output.

I am able to record from the device as expected using SoX on or arecord on the Pi, however I am confronted with a troubling amount of noise on the signal. These images are representative of what I'm seeing:

Full spectrum, 0-96kHz

Bottom of the spectrum, about 0-1kHz

In the top spectrogram, I see spikes of broadband noise repeating at about 33.3Hz, though the exact period seems to vary from recording to recording (I just saw some at about 50Hz in another recording). In the bottom spectrogram, I see narrowband noise at 50-60Hz and some bad harmonics. I haven't even started work on the signal chain leading into the ADC yet because these artifacts are everywhere on the board — I've plugged the inputs into ground, VA/2, even the codec's own midpoint reference voltage (VQ) and I see the same kind of thing everywhere, albeit with varying levels of intensity.

Clearly, 60Hz harmonics screams noise from the power main, but the whole setup is disconnected entirely from the wall (powered by battery at the moment).

Here's a shot of my actual current layout. In this case the ADC inputs are tied to VA / 2 through a simple passive filter (lower board), which in an ideal world would produce a bunch of zeroes on the ADC. The LT1965 is powered through a filter with a few decades' worth of caps and a ferrite bead — not strictly necessary but it did seem to help with actual mains noise. These particulars aren't super relevant since varying the power source or the input still results in the same artifacts.

I would really, really appreciate some assistance in identifying potential culprits for this noise. Is this something characteristic of the topology? Or is this to be expected on a \$1 Chinese breadboard with jumpers everywhere, and I should just order a PCB with the same layout for further testing? Obviously this is difficult to debug remotely — my hope is that someone will see this and say, "aha! I've seen this before!"

EDIT: highly unlikely to be relevant, but here's the driver (mostly a wrapper around the CS4270 driver currently) that I am using, along with a device tree overlay that is almost identical to the HifiBerry DAC+ Pro one in RPi Linux. Unlikely to be part of the problem, but may be of interest to Linux nerds.

• Are there any switchmode power supplies lurking about, I suspect the Adafruit Powerboost may have a switching regulator on it? Perhaps start there. Also, with 50/60Hz, that can be coupled through the air, your device doesn't necessarily have to be connected to mains. Oct 9, 2017 at 6:03
• Yes, the Powerboost does have a switching regulator (boosts from ~3.7V LiPo to 5.2V) but I get the exact same problem if I power the system from the Pi wall wart or from an adjustable desktop PSU. Interesting point about the RF coupling, I didn't consider that! Oct 9, 2017 at 6:13
• I'm trying to get CS4270 working. Can I contact you somehow for some help? Oct 18, 2020 at 21:28
• My email address is [my github handle] @ [google mail] and I can take a look, but it's been three years, my memory is hazy, and I no longer have access to the IC in question. Oct 19, 2020 at 23:39