• 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!

Introducing DSPi | A powerful, user friendly and open source DSP for less than a cup of coffee

That DAC is looking for I2S input. The current build of this project outputs SPDIF. That may change in the future but this DAC board won’t work for now.
Isn’t this what is suggested here:


Indeed, these have a PLL (some with ASRC, like the ES9038). I didn't even know the PCM5102A had a PLL, thanks for pointing that out :) But this is in no way common. DACs like AK4493Q (and others from the same series) do not have PLLs. Neither does the Ti PCM1795, nor the Cirrus AD1938, for instance. So it's quite a mixed bag.

Now, one could simply say: use one of the ones with a PLL for now :cool: . That would save time implementing a more advanced clocking system and spend it on more interesting features :) You can get a PCM5102A board for under €$ 2 at AliExpress, an ES9018K2M for below € 12... (just don't blame me when they are fake ;) )

So you can effectively make an 8-channel DSP-enabled DAC with a 100+ SINAD for way under €$ 100 (or even under €$ 30 if you use the PCM), including PSU and a halfway decent enclosure. Amazing times!
 
Hi. Registered just to follow this thread, very interesting and cool procject, nicely done.

You mentioned earlier that up to 12 output channels was possible. Is this still true?

Also i come from using miniDSP’s and use them for LFE channels and lots of subs and TR devices in a home theater setup. So i use analog in/output RCA.

The PCM5102 DAC has been mentioned to use for the output channels, would this work to get analog RCA out:

I just found this on AliExpress: | PCM5102 DAC Decoder I2S Player Assembled Board 32Bit 384K Beyond ES9023 PCM1794 Decoder Board Module For Raspberry Pi
Yes, 12 channels are still possible on an RP2350. This would occupy all 12 state machines, so PDM analog output would no longer be possible.

Waveshare produces a DAC hat for the Pico which you may wish to consider. As mentioned above, the firmware currently outputs SPDIF but I2S output is trivial to implement and can be made user selectable per state machine (ie. 11xSPDIF and 1xI2S).
 
Yes, 12 channels are still possible on an RP2350. This would occupy all 12 state machines, so PDM analog output would no longer be possible.

Waveshare produces a DAC hat for the Pico which you may wish to consider. As mentioned above, the firmware currently outputs SPDIF but I2S output is trivial to implement and can be made user selectable per state machine (ie. 11xSPDIF and 1xI2S).
Thanks, yeah i have no need for the PDM, so not a issue in my case.

That Waveshare would be only two channels right?
Not exactly what i meant, i need lots more channels.

Currently i use a Minidsp C-DSP-8x12 where i use 4 inputs and all 12 outputs, and the matrix mixer looks like this:
Skjermbilde 2024-04-26 kl. 18.13.26.jpeg


So yeah, even if you made it 2/12 in/out i would probably need dual units, and then channels would not be able to be routed between those two units.
 
For squared magnitude filters or (I believe) crossovers that sum to allpass, the "reverse IIR" algorithm described in this paper may be feasible. It shows how a time-reversed IIR approximation can be realized with cascaded sparse FIR filters. Implemented this way, a time-reversed one pole lowpass truncated to 2048 samples requires only 12 multiplies and 12 additions per input sample. Time-reversed IIR allpass approximations are possible as well, which could be used for phase correction of external crossovers.
That is pretty cool. While needing not so many cycles as a true FIR filter, it does need about twice the memory. For a low frequency filter, you’ll need multi thousand samples in memory, with an equivalently large delay.
 
This morning's commit introduces some rather helpful quality-of-life enhancements. The USB descriptor bug has finally been addressed, so Zadig is no longer required. Both device interfaces are now automatically configured under Windows.

We now also have the ability to rename channels via the mixer and sidebar.

renamingchannels.png



And last but certainly not least, all output pins can now be changed live. :)

Screenshot 2026-02-13 at 09.07.34.png


This one's for you, @TurtlePaul!

All three of these will appear in the next hotfix, which is due later today. Time for me to get some sleep.
 
It absolutely is. It’s easily fast enough to make video skipping and seeking around in audio feel nearly unnoticeable.

200ms is better than Bluetooth and Bluetooth is quite usable from. Latency perspective.
In the context of networked audio streams 200ms is NOT low latency. For comparison AVB defaults to 2ms guaranteed, but can go lower (still guaranteed) with fewer network switches between endpoints. AES67 and Dante don't have the guarantees - they could be that fast, or rather slower depending on the netwrk, but still low double digit ms.

Ordinary Bluetooth varies a lot between implementations. With ordinary SBC it can be 40ms but is usually higher. That gave problems with A/V sync for both video and gaming, hence the development of things like AptX-LL (Low Latency) which got end to end latency down to 32ms. The EBU recommendation for A/V sync is to be within +40ms and -60ms end to end. If you think 200ms is fine then something is doing some latency compensation behind the scenes - recent Bluetooth audio and eARC among others allow devices to announce their latency to allow this.
 
Hi. Registered just to follow this thread, very interesting and cool procject, nicely done.

You mentioned earlier that up to 12 output channels was possible. Is this still true?

Also i come from using miniDSP’s and use them for LFE channels and lots of subs and TR devices in a home theater setup. So i use analog in/output RCA.

The PCM5102 DAC has been mentioned to use for the output channels, would this work to get analog RCA out:

I just found this on AliExpress: | PCM5102 DAC Decoder I2S Player Assembled Board 32Bit 384K Beyond ES9023 PCM1794 Decoder Board Module For Raspberry Pi
That DAC is looking for I2S input. The current build of this project outputs SPDIF. That may change in the future but this DAC board won’t work for now.
AliExpress sells DIR9001 Fiber Coaxial to I2S Receiving Modules, which allow you to equip any I2S DAC board with an SPDIF coaxial/Toslink input.
 
When the Pico 2 no longer connects to Console, does removing and reinserting the USB enable it to reconnect? Additionally, does the audio device continue to work when Console will not connect?
No, once it's disconnected the only way to connect it again is to reinstall the firmware.
I also noticed that if I disconnect the USB cable and connect it again the Pico 2 appears in the sidebar. Once I select the sound settings the Weeb Lab DSPi it disappears in the Finder's sidebar.
I'm pretty sure there is a bug.
 
It looks like all 3 of my USB micro cable are for charging only. sorting it out for the firmware install.

I have to say the console is very good!
a.jpg
 
Having outed myself as in idiot (and definitely not a coder) earlier in the thread, I have at least managed to build the .uf2 on a Linux machine (not on Mac - can't make it find a compiler but hey ho...) but XCode fails to build the console because, if I've understood correctly, I don't have a developer account or a signing certificate. I wouldn't wish anyone to attempt steering me through the process but do I need a developer account to do this?
 
Having outed myself as in idiot (and definitely not a coder) earlier in the thread, I have at least managed to build the .uf2 on a Linux machine (not on Mac - can't make it find a compiler but hey ho...) but XCode fails to build the console because, if I've understood correctly, I don't have a developer account or a signing certificate. I wouldn't wish anyone to attempt steering me through the process but do I need a developer account to do this?
In order to build the firmware under macOS, you will need to install the toolchain via developer.arm.com or brew install --cask gcc-arm-embedded.

To build the Xcode project, add your Apple ID under Preferences -> Accounts. In project settings, select your target, open the Signing & Capabilities tab, check Automatically manage signing then and set your Apple ID as the team. It will be displayed as "[Your name](Personal Team)".

Then you can simply select "My Mac" as the destination in the top bar and build.
 
Anyone who has implemented their SPDIF interfaces on their Pico Pi please share a photo and what parts you used for the potential divider and decoupling cap?
I cheated and used a SPDIF board made to connect to PC motherboard headers. They already have decoupling caps and Toslink transmitters. Removing two screws takes off the motherboard bracket which we don't need.

Here is an example, but there are many similar generic ones on Amazon, Newegg, Aliexpress, etc.

 
No, once it's disconnected the only way to connect it again is to reinstall the firmware.
I also noticed that if I disconnect the USB cable and connect it again the Pico 2 appears in the sidebar. Once I select the sound settings the Weeb Lab DSPi it disappears in the Finder's sidebar.
I'm pretty sure there is a bug.
This sounds to me like either a corrupted flash or possibly insufficient voltage. The latter seems unlikely at 288MHz.

After work, I'm going to send you a custom build to try.
 
Having outed myself as in idiot (and definitely not a coder) earlier in the thread, I have at least managed to build the .uf2 on a Linux machine (not on Mac - can't make it find a compiler but hey ho...) but XCode fails to build the console because, if I've understood correctly, I don't have a developer account or a signing certificate. I wouldn't wish anyone to attempt steering me through the process but do I need a developer account to do this?
If you're not a coder, do you actually need to build it, or would it suffice to just download the latest release from the Github page?
 
Having outed myself as in idiot (and definitely not a coder) earlier in the thread, I have at least managed to build the .uf2 on a Linux machine (not on Mac - can't make it find a compiler but hey ho...) but XCode fails to build the console because, if I've understood correctly, I don't have a developer account or a signing certificate. I wouldn't wish anyone to attempt steering me through the process but do I need a developer account to do this?
Are you trying to run XCode on Linux? Pardon me if I missread, but if you are, you won't be able to since XCode is not available on Linux. You'd have to use VSCode with the Swift module. There is also the issue of the Graphic environment, and after doing some research myself about doing it in Linux, there does not seem to be a clean option for Swift
 
Back
Top Bottom