• Welcome to ASR. 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!

DSPi users (and prospects) projects discussions

I’m looking for feedback from people who have used the DSPi PDM analog output. For those that have, did you implement the Weeblabs output network? I’m tracking this as a 1 kΩ series resistor, 33 nF shunt capacitor to ground, 10 µF non-polarized coupling capacitor, and 100 kΩ output/bleeder resistor.

In normal use, is this output effectively silent
when no signal is playing? From what I’ve gleaned from the main thread, it seems like some audible hum is generally considered unavoidable with the PDM implementation. I’m hoping to see if there are some success stories here.

If you experienced noise, could you please mention how you constructed your circuit?
 
I’m looking for feedback from people who have used the DSPi PDM analog output. For those that have, did you implement the Weeblabs output network? I’m tracking this as a 1 kΩ series resistor, 33 nF shunt capacitor to ground, 10 µF non-polarized coupling capacitor, and 100 kΩ output/bleeder resistor.

In normal use, is this output effectively silent
when no signal is playing? From what I’ve gleaned from the main thread, it seems like some audible hum is generally considered unavoidable with the PDM implementation. I’m hoping to see if there are some success stories here.

If you experienced noise, could you please mention how you constructed your circuit?
I haven't tried it yet but I am eager to do when we have multichannel PDM output, because this is coming together with some major overhaul of the whole PDM thing, so hopefully your problem will be fixed to as well :)
 
Two DSPi boards that I've built. Both use the ES9081 DAC, but the larger one has an RP2354A chip and an AK5534 ADC.
SPDIF coax only works with the larger board that can amplify the signal to TTL level.
I've also tested an external MCLK crystal.
 

Attachments

  • PXL_20260904_091849795.jpg
    PXL_20260904_091849795.jpg
    804 KB · Views: 162
Just assembled the 2.1 PCB, this was my first time in KiCad, first time ordering PCB's, and first time soldering SMD parts. Had a lot of fun. Hoping the board has a decent layout. I'm working up the enclosure now.
 

Attachments

  • Pico2.jpg
    Pico2.jpg
    120.6 KB · Views: 163
  • IMG_0047.jpg
    IMG_0047.jpg
    550.7 KB · Views: 145
Just assembled the 2.1 PCB, this was my first time in KiCad, first time ordering PCB's, and first time soldering SMD parts. Had a lot of fun. Hoping the board has a decent layout. I'm working up the enclosure now.
Are you 3D printing the enclosure or doing it professionally?
 
Are you 3D printing the enclosure or doing it professionally?
I would have to split the difference there and call it a professionally designed 3D printed enclosure. The drawback of course can be lack of EMI/RF shielding if printing with typical engineering filament, ASA, PET, etc. If it proves necessary I'll get to experiment with EMI-attenuating filaments and internal foil shielding.
 

Attachments

  • DiggySevvy_DSPi_Assembly.gif
    DiggySevvy_DSPi_Assembly.gif
    4.3 MB · Views: 116
Last edited:
I would have to split the difference there and call it a professionally designed 3D printed enclosure. The drawback of course can be lack of EMI/RF shielding if printing with typical engineering filament, ASA, PET, etc. If it proves necessary I'll get to experiment with EMI-attenuating filaments and internal foil shielding.
On my plastic enclosures I added aluminium tape and sandwiched a desoldering braid to connect to a GND point.
 
possible to integrate (or just allow to add?) a minimal Slimproto client as renderer?
ESPhome doesn't have any support for Slimproto at the moment, although it should be possible if someone put the work in. Squeezelite-esp32 exists though, and has acquired other integrations over time so might like to add DSPi serial control integration. It can already send I2S and SPDIF so the audio part should pretty much just work already.
 
ESPhome doesn't have any support for Slimproto at the moment, although it should be possible if someone put the work in. Squeezelite-esp32 exists though, and has acquired other integrations over time so might like to add DSPi serial control integration. It can already send I2S and SPDIF so the audio part should pretty much just work already.
Indeed. :) Or, perhaps Music Assistant can act as SlimProto server (or relay) to sendspin targets (which include chromecast/airplay/sonos/etc as well...)? I understand MA has SlimProto support, but have never played with it.
 
Based on the experience with my first RP2350 board, I decided to redo the project.
I removed the ADC since it took a lot of board space and instead exposed more GPIO for control surfaces. I also moved to the RP2354B that has more pins.
I2S clock lines and MCLK are also exposed so an external I2S module can be connected.
I kept the ES9081 DAC as I think it works very well.
There are two SPDIF input ports, one for optical and one for coax. The coax uses the 74LVC2GU04 to amplify the signal.
Power now exclusively comes from USB.
 

Attachments

  • DSPi_MainBoard_RP2354B.png
    DSPi_MainBoard_RP2354B.png
    139.7 KB · Views: 77
I got my project to work :)

IMG_20260920_154114.jpg


Back
IMG_20260920_154956.jpg


And for a view of the connected devices:
IMG_20260920_154103.jpg


I have 3 inputs and 2 simultaneous outputs. 2 buttons to select the source (1 for TV, 1 for music).

Inputs:
- Toslink Rx from the LG TV with Soundsync
- SPDIF direct from the ESP32's GPIO. Gives me Squeezelite and Bluetooth Inputs
- USB although I don't plan on using it generally. Usually just connected to the power source.

Outputs:
- Toslink Tx to the WiiM Vibelink Amp.
- COAX to the FiiO K5.

Plans:
- Add a trigger for the Vibelink. Not sure yet how to achieve it. I was thinking using a NE555 relay board with 60s timer (https://www.aliexpress.com/item/1005001350532088.html). Not sure if there is a better way. I want my ESP32 and Pico2 to be always on and the Wiim Amp to wake up whenever there is audio playing on the output.
- Change the COAX out to another Toslink Tx.
- Make a decent box or mounting.
- Add Ethernet to the ESP32.
 
Last edited:
If someone is interested, I'm working on a 8 channels modular amplifier that I plan to use with DSPi to power diy active 3 way speakers + subs.
Objective is to have a motherboard with DSP sharing I2S output to (up to) 4 daughter board with TAD5242 + TPA325X.
Daughter board can be used standalone.
This is my first try developping a board so could be a complete disaster :p
Amp board development is almost finished and motherboard should not take long.
See this post:
 
If someone is interested, I'm working on a 8 channels modular amplifier that I plan to use with DSPi to power diy active 3 way speakers + subs.
Objective is to have a motherboard with DSP sharing I2S output to (up to) 4 daughter board with TAD5242 + TPA325X.
Daughter board can be used standalone.
This is my first try developping a board so could be a complete disaster :p
Amp board development is almost finished and motherboard should not take long.
See this post:
You may open your own thread here so everyone interested can follow and attribute.
 
If someone is interested, I'm working on a 8 channels modular amplifier that I plan to use with DSPi to power diy active 3 way speakers + subs.
Objective is to have a motherboard with DSP sharing I2S output to (up to) 4 daughter board with TAD5242 + TPA325X.
Daughter board can be used standalone.
This is my first try developping a board so could be a complete disaster :p
Amp board development is almost finished and motherboard should not take long.
See this post:
You might want to take a look at my open source Github TDA5242 DAC board that I did for the DSPi project. Feel free to ask about which parts are important and what pieces of the layout matter. Photo here: https://github.com/MZachmann/Tad5242Ultra/blob/master/SpecImage/Tad5242v2.jpg
 
Please add ADAT input and

BNC Word Clock in & out to make using multiples bulletproof.

Example, 8 input channels, total 16-32ch out
I don't know much about ADAT. I will use toslink input, I guess it's ok for ADAT with DSPi (?). Yes there will be no problem to output BCK from one motherboard to another.
 
You might want to take a look at my open source Github TDA5242 DAC board that I did for the DSPi project. Feel free to ask about which parts are important and what pieces of the layout matter. Photo here: https://github.com/MZachmann/Tad5242Ultra/blob/master/SpecImage/Tad5242v2.jpg
I did see your nice work and it participate to the fact I use the same chip. But I wanted to make something more integrated (and myself also).
Here is a closer view of dac layout if you have remarks. I use NCP163 for analogic section and AP2112 for digital.
I use the components values of the datasheet, did you change anything for your board?
1790263081312.png
 
I don't know much about ADAT. I will use toslink input
Same physically, different protocol.

Key difference is each port support 8ch.

> I guess it's ok for ADAT with DSPi

Yes DSPi is supposed to support the prorocol, but I believe the host SBC + carrier board must "support that support".

My goal is

> total 16-32ch out

> BNC Word Clock in & out to make using multiples bulletproof.

> BCK from one motherboard to another

is not the same, much more fragile over any distance at all, not designed to sync with all the other devices in separate boxes.

Obviously your project, just suggestions
 
I did see your nice work and it participate to the fact I use the same chip. But I wanted to make something more integrated (and myself also).
Here is a closer view of dac layout if you have remarks. I use NCP163 for analogic section and AP2112 for digital.
I use the components values of the datasheet, did you change anything for your board?
View attachment 560622
Component values -> I did use the factory component values with a few exceptions.

I put a 'huge' (47uF) polyester output capacitor in the analog regulator circuit. It's really hard to test ultra low bass but I think I measured an improvement. The ADM7170 regulator is a tiny bit lower noise than your choice but irrelevant (the noise level is so low it's inaudible for sure).

I used a slightly different analog output network. Factory spec is a pretty low dropoff frequency and the three-cap solution works better for common mode rejection and it handles slight cap imprecision better than the factory network. Also, if you plan to use it single-ended (ever) it needs a blocking capacitor on the output, which I did with some thru-hole stuff that's not populated along with ability to set the single-ended tad5242 option pin. Your output layout looks nicer than mine (shorter lines) otherwise. I did use high-precision components for the output circuit since mismatches are measurable if you really care.
1790335032993.png


There's a long discussion in the factory layout guide about adding ground vias right at the ground pad of 'every' component that you might want to take a look at. I wasn't religious and of course there's a lot of flex in the words 'right at'. Note my layout shows AGND but the two (AGND and DGND) are actually the same network. I just identified them for the original component placement. Note I haven't looked at your vias, this is just an offhand comment.
1790335607316.png

Of course, I used the proper selection of C0G capacitors when it was important.

Good luck. I've been using my 6-channels of TAD5242 DAC for months and it sounds amazing on my balanced amplifiers (Neurochrome designs) and tested flawless.
 
Last edited:
Same physically, different protocol.

Key difference is each port support 8ch.

> I guess it's ok for ADAT with DSPi

Yes DSPi is supposed to support the prorocol, but I believe the host SBC + carrier board must "support that support".
So long as the toslink port supports the necessary data rate, and there's no protocol-specific chip between the receiver and the Pico pin, there's nothing different for the carrier board to support - it just needs the DSPi to be configured appropriately.
 
Back
Top Bottom