• 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

We have a relatively minor release for today in the form of DSPi Firmware and DSPi Console v1.1.2a. These releases introduce some nice refinements and new (requested!) functionality. I thought it best to introduce these quality of life changes before the DSPi Console for Windows feature parity update. :)

Here are the changes:

Screenshot 2026-03-11 at 03.38.06.png

  • DSPi Console for macOS: Now prompts to save, cancel or discard if unsaved changes are present when switching presets or quitting the application. A summary of all changes is provided.


1773201229489.png

  • DSPi Console for macOS: Removed unnecessary tabbed behavior which led to some broken UI elements under macOS 26


Screenshot 2026-03-11 at 03.40.54.png

  • RP2350/2040: Device persistent, per-preset, assignable names for all input and output channels


1773201376735.png

  • RP2350/2040: Q values for all filters types (now includes high/low pass and high/low shelf)


1773201508408.png
1773201528236.png


  • DSPi Console/RP2350/2040: Filter response graphs for output channels are now responsive to their gain controls
  • RP2350/2040: Bug squashed wherein enable states for channels handled by Core 1 were not being updated when switching presets
As always, I hope our user base finds some of these enhancements helpful!
 
Last edited:
The PCM5102 is quite a reasonable option but it is important to bear in mind that many of the AliExpress boards fail to achieve the IC's specified performance ceiling due to suboptimal layout and filters.

When I make available custom DSPi boards, I will be making use of one or more TAC5212 codecs which have previously been implemented on boards such as this one. These are inexpensive (~€10), require few peripheral components and offer both well behaved DACs, ADCs and a headphone amplifier.
Wow, -98 dB THD+N A/D and -104 D/A. That is much better than I expected for a consumer device. It is not highest end but certainly more than adeuate and more in line with what is inside high-end AVRs and Hypex FA modules.
 
The PCM5102 is quite a reasonable option but it is important to bear in mind that many of the AliExpress boards fail to achieve the IC's specified performance ceiling due to suboptimal layout and filters.

When I make available custom DSPi boards, I will be making use of one or more TAC5212 codecs which have previously been implemented on boards such as this one. These are inexpensive (~€10), require few peripheral components and offer both well behaved DACs, ADCs and a headphone amplifier.
I don't know what that "IC's specified performance ceiling" means, but I guess I'll just go with a few of those boards for now since it should be quite easy to swap them out later on :)
 
Hi Troy, love what you're doing here and I have to admire your very professional approach to software engineering, bug fixing and feature requests! I've read the whole thread and although it has been touched upon by a few people, I notice that there hasn't been much mention of usage cases and finished product integration. Haha - that sounds a bit more pompous that I meant ;) but in reality it's an entirely selfish feature-request before things get more fixed! :p

In my case I would like a stand-alone DSP crossover with multiple SPDIF/TOSLINK/USB/BT inputs and level attenuation, controlled by a standard IR remote (or possibly a webpage/App). Configuration by USB, outputs SPDIF/TOSLINK/I2S/etc. or internal DAC. Obviously you're pushing the Pico to its limits (and beyond!) so I was thinking of adding another "helper" Pico in a way that compliments what you've already done.

Pico "helper" board
-------------------
USB Config of itself and attached DSPi
WiFi Config/Control(?)
USB Audio Input
Digital Audio Inputs (SPDIF/TOSLINK/I2S/etc.)
Bluetooth Audio Input(?)
IR Receiver Input for Remote Control (Learning?)
ADC Input for motorised linear volume pot
2x Relay outputs for motorised linear volume pot
Quadrature Input for source selection encoder
Input for Mute/Power button on encoder
LED Outputs for source indication
I2C for config of attached DSPi (multiple)
Digital Audio Output (Selectable Pre/Post volume) (SPDIF/TOSLINK/I2S/etc.)
Digital Audio Output to attached DSPi (multiple)
And an amplifier Trigger output for good measure!

So, the helper board would select the external/internal audio source (using IR-remote/encoder/webpage) outputting pre/post-volume loop-through audio for a multi-room system (or alternative HiFi system) and send the main digital audio output to one or more DSPi boards. Multiple DSPi boards for when more outputs/filters are needed for a high-driver-count active loudspeaker and subs. Volume control could be done anywhere in the chain(?), but would be set using IR-remote/volume-pot/webpage - I personally like to use a motorised linear-pot controlled by relays, feeding the analogue output into an ADC. I like this concept as it gives a retro feel to the controls and means you don't need a display to see what the volume level is - opinions may vary! LEDs would indicate active source and Mute state, flashing for bluetooth pairing and USB link-status. The config and other control for the DSPi would be via I2C, which should be plenty fast enough and allow more than one DSPi board to be used simultaneously - although more than two would seem excessive!

I guess you would have to have a second mode of operation for the DSPi, for configuration over I2C, but this could easily be done via a pull-up on a pin(s) which would also indicate the address if more than one board is used. Or you could do an initial setup via USB to set the mode/address, but this would seem a bit more fiddly. For DIY use you would have to program and upgrade all Pico boards via their own USB, but I assume that a finished product could use I2C for transferring the .bin via the helper board to the DSPi board(s)? I don't know if the helper board would reduce the burden on the DSPi board enough to allow more features, but presumably it would allow more interface-type features to be added to the helper board than would be possible with just the DSPi.

I hope you take this selfish request in the way that it was intended! ;)
AJ
 
@Tell - I'm running the first DAC and it it sounds great and has operated flawlessly for me.. It has onboard linear supply so it only requires dual AC12-18V. There are measurements on ASR. The second DAC I have ordered 2 and waiting for arrival. It was rated well somewhere and I'm taking a chance on it. I might get 2 more of the first one.

 

Attachments

  • 0f19a2dd-1b0a-4788-afea-bf602f6ddec4.jpg
    0f19a2dd-1b0a-4788-afea-bf602f6ddec4.jpg
    325.5 KB · Views: 99
Have you tried disconnecting the +5V power supply?Because this connection (SPDIF RCA) doesn't need it.
I have the same card, I'll try the same thing as you tomorrow if I have time.
Removing the 5v supply made no difference. Since the card is meant to go inside a PC case and provide digital out via optical or coax I anticipated it's designed to always have that connection.
 
@Tell - I'm running the first DAC and it it sounds great and has operated flawlessly for me.. It has onboard linear supply so it only requires dual AC12-18V. There are measurements on ASR. The second DAC I have ordered 2 and waiting for arrival. It was rated well somewhere and I'm taking a chance on it. I might get 2 more of the first one.

Thanks for the tip! :) But I'm looking for a i2s DAC so I don't have to go with the extra SPDIF-board and also don't have to use an extra power supply. Of course we can't use i2s DACs just yet, but should hopefully be available whenever my soon-to-be-order has arrived from China :)
 
The PCM5102 is quite a reasonable option but it is important to bear in mind that many of the AliExpress boards fail to achieve the IC's specified performance ceiling due to suboptimal layout and filters.

When I make available custom DSPi boards, I will be making use of one or more TAC5212 codecs which have previously been implemented on boards such as this one. These are inexpensive (~€10), require few peripheral components and offer both well behaved DACs, ADCs

You mentioned that when custom DSPi boards become available you plan to use one or more TAC5212 codecs. Will those boards include the full analogue output stage (for example the recommended output fitering and any buffering/line drivers) or will they simply expose the raw differential outputs from the codec?

Am I correct in assuming that one TAC5212 could provide:
Balanced XLR L/R
RCA L/R
Mono sub output
Headphone output
 
You mentioned that when custom DSPi boards become available you plan to use one or more TAC5212 codecs. Will those boards include the full analogue output stage (for example the recommended output fitering and any buffering/line drivers) or will they simply expose the raw differential outputs from the codec?

Am I correct in assuming that one TAC5212 could provide:
Balanced XLR L/R
RCA L/R
Mono sub output
Headphone output
Yes, the boards will be plug-and-play, with all filtering and connectors onboard.

One TAC5212 can offer a variety of different configurations. The one that I will most likely implement is:

- 4 channel RCA output
- 2 channel RCA input
- 2 channel XLR output
- 3.5mm headphone output
- USB-C input

The codec is configurable for single ended and balanced output depending upon the desired number of channels, so this will require a switch (physical or logical).

Alternatively, I may simply offer balanced and unbalanced variants to keep costs minimal.
 
I'm still working on a firmware for a ESP32-C6-LCD-1.47 display console / DSPi companion, with very limited features (show meters, preset toggle). Instead of using WinUSB, it communicates with the pico using UART (or I2C). The one shown in the pictures is self developed, but today I did some tests with ESPHome, and I'm impressed, it's basically all there with almost no coding (LVGL UI design, rotary encoder, OTA firmware install, logs, I2C & I2S support, UART protocols).
I've made changes in my fork to add a UART protocol to communicate with other MCUs (ESP32, another RP2350). It's working fine now with the mentioned display ESP32-C6-LCD-1.47. I've removed all previous changes I did to connect to a SSD1306 OLED; with the current pricing for nice displays, it does not make sense. As mentioned, working with ESPHome in the ESP32 makes things very easy.

@Weeb Labs , I see an I2C protocol is in the roadmap. I guess the plan is for it to work in the same way as the USB Vendor Specific Protocol/USB Control Transfer Protocol, so the "other" I2C device (master?) would always send requests to the DSPi Pico (slave?) reusing the existing USB protocol commands (and possiblly code), right?
 
@Weeb Labs , I see an I2C protocol is in the roadmap. I guess the plan is for it to work in the same way as the USB Vendor Specific Protocol/USB Control Transfer Protocol, so the "other" I2C device (master?) would always send requests to the DSPi Pico (slave?) reusing the existing USB protocol commands (and possiblly code), right?
That is exactly right. There will be a shared command dispatch but separate unpacking for I2C and USB receive buffers. The largest packets (bulk system parameters) take about 25ms over 1MHz I2C and 60ms over 400KHz, which is perfectly feasible with the existing structs.
 
Last edited:
Device selection is now in place and working quite well. I will have to add the platform type to the USB device name so that we end up with "DSPi RP2040 (Serial)". :)

1773275258120.png
.
1773275392022.png


The reconnect function for which there had been an icon is now triggered by right-clicking the current device.
 
Last edited:
Great work! You’re really giving those overpriced audio brands a run for their money.
I’m planning to use DSPi in my car - could you say when it might be able to use i2s instead of S/PDIF?
 
Great work! You’re really giving those overpriced audio brands a run for their money.
I’m planning to use DSPi in my car - could you say when it might be able to use i2s instead of S/PDIF?
According to the roadmap in 1.1.4b, so quite soon hopefully :)
 
The pendant that I ordered as a potential “official” remote control has arrived!

IMG_0105.jpeg
IMG_0106.jpeg


I’m really quite fond of it. The OLED display and capacitive touchscreen are very nice, the body is well machined with anodizing and it is a very usable size. Easily wearable with a lanyard.

I will be experimenting with UIs for DSPi control shortly but this is a lovely device for its €30 price point. :)
 
Don't forget about Windows users... we are waiting for the latest update...
:)
The Windows update is coming along nicely.

I have been considering porting Console to a cross platform framework such as Qt, as this would greatly reduce the amount of parallel development required. I am the only maintainer at the moment (not counting robo intern), so it can be a challenge to handle four independent codebases.

It is critically important to me that each application retains a native feel, so any prospective Qt port would only take place if I am certain that this can be achieved.
 
Back
Top Bottom