• 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

Packaged the DSPi with a couple of inexpensive DA converters to yield a low cost active two way crossover module. Total cost was about 1/3 that of a miniDSP HD. Enclosure is big enough to add additional converters for 8 outputs. If anyone is interested, I can provide a bill of material.
 

Attachments

  • IMG_2117.jpeg
    IMG_2117.jpeg
    1,020.5 KB · Views: 243
  • IMG_2115.jpeg
    IMG_2115.jpeg
    564.1 KB · Views: 248
  • IMG_2114.jpeg
    IMG_2114.jpeg
    629.5 KB · Views: 189
  • IMG_2112.jpeg
    IMG_2112.jpeg
    646.2 KB · Views: 245
Packaged the DSPi with a couple of inexpensive DA converters to yield a low cost active two way crossover module. Total cost was about 1/3 that of a miniDSP HD. Enclosure is big enough to add additional converters for 8 outputs. If anyone is interested, I can provide a bill of material.
Excellent work!

Much of my weekend has been spent hammering v1.1.4 into shape and the progress has been excellent. This is easily going to be the largest update since the new filter architecture was implemented.
1776652792972.png

We now have very well behaved SPDIF input, master volume control, bulk endpoints with notifications for all parameter adjustments and migration to TinyUSB for the USB stack.

For those with the technical inclination, the SPDIF input branch with all of the aforementioned changes is now up to date and ready for testing. This should be regarded as alpha stage software but from my testing, everything is working well.
 
Unfortunately, it's not that simple with this power amplifier, at startup you need to configure the registers via I2C and the volume control is also via I2C. This is probably one of the few options of the amplifier with I2S input WONDOM TAS5756
 
Last edited:
Unfortunately, it's not that simple with this power amplifier, at startup you need to configure the registers via I2C and the volume control is also via I2C. This is probably one of the few options of the amplifier with I2S input WONDOM TAS5756
The TAS5756 has DSP onboard too - see TI slau577a for details. Like AD's SigmaStudio, the software isn't aimed at end users.
 
If anyone is looking at SPDIF input (like me) I bought this item

1776697866397.png


to help me a week or two ago because it was really cheap and why not. Well, per my oscilloscope the SPDIF output here is actually running a 5V P-P square wave so it should take essentially 3 resistors and a cap to produce something usable. I tried

(coax)->100nF--1K->(pico)<--2.2K--+3.3V
<--2.2K--GND

And it was pretty good. It may be better to have some diodes here and there for protection. Note the signals here are pretty clip-leaded so not very clean.

Yellow=COAX signal and Blue=maybe to SPDIF Pico input
1776697639377.png


As a further note... I disassembled this and took a photo of the inside but it's a single 74hc04 and a bunch of passive components driven by +5 from the USB connector. Not even a regulator as far as I could see. I'll bet you could drive the usb directly with 3.3. As soon as I can test SPDIF in I'll update this.
 
Last edited:
To use SPDIF in, can I just connect a coaxial cable direct? So RCA pin to a Pico pin and shield to Pico GND? Or do I need electronics in between, like the SPDIF out? If so, are schematics available?
 
To use SPDIF in, can I just connect a coaxial cable direct? So RCA pin to a Pico pin and shield to Pico GND? Or do I need electronics in between, like the SPDIF out? If so, are schematics available?
SPDIF input needs a TTL signal. This can be accomplished using the converter linked above, a 74HC04 or more simply by instead using one of these TOSLINK modules, assuming your source supports it.

If anyone is looking at SPDIF input (like me) I bought this item

View attachment 526507

to help me a week or two ago because it was really cheap and why not. Well, per my oscilloscope the SPDIF output here is actually running a 5V P-P square wave so it should take essentially 3 resistors and a cap to produce something usable. I tried

(coax)->100nF--1K->(pico)<--2.2K--+3.3V
<--2.2K--GND

And it was pretty good. It may be better to have some diodes here and there for protection. Note the signals here are pretty clip-leaded so not very clean.

Yellow=COAX signal and Blue=maybe to SPDIF Pico input
View attachment 526504
This unit appears to be powered directly via the 5V input, so I expect that it would produce an ideal 3.3V TTL output if powered from the Pico's 3V3 pin.
 
Last edited:
1776768245750.png
1776768318312.png



Greetings everyone, I'm writing because I'm completely exhausted from testing and haven't been able to get any of the I2S PCM5102 DAC boards in the photos above working.

I connected:
I2S DAC -- Pico 2350
BCK -> GPIO 14
LCK -> GPIO 15
DIN -> GPIO 6, 7, 16, etc. (Selecting the corresponding one in "Hardware" of the DSPi in Windows)
VIN/3.3V -> 3.3V
GND -> GND

Am I missing a jumper? Should I connect any other pins to ground or 3.3V?

Any help would be greatly appreciated.
 
View attachment 526706View attachment 526707


Greetings everyone, I'm writing because I'm completely exhausted from testing and haven't been able to get any of the I2S PCM5102 DAC boards in the photos above working.

I connected:
I2S DAC -- Pico 2350
BCK -> GPIO 14
LCK -> GPIO 15
DIN -> GPIO 6, 7, 16, etc. (Selecting the corresponding one in "Hardware" of the DSPi in Windows)
VIN/3.3V -> 3.3V
GND -> GND

Am I missing a jumper? Should I connect any other pins to ground or 3.3V?

Any help would be greatly appreciated.
On the second board link 3.3v to xmt. This will unmute the board.
 

Attachments

  • Screenshot_20260421_121622_Gallery.jpg
    Screenshot_20260421_121622_Gallery.jpg
    211.3 KB · Views: 95
View attachment 526706View attachment 526707


Greetings everyone, I'm writing because I'm completely exhausted from testing and haven't been able to get any of the I2S PCM5102 DAC boards in the photos above working.

I connected:
I2S DAC -- Pico 2350
BCK -> GPIO 14
LCK -> GPIO 15
DIN -> GPIO 6, 7, 16, etc. (Selecting the corresponding one in "Hardware" of the DSPi in Windows)
VIN/3.3V -> 3.3V
GND -> GND

Am I missing a jumper? Should I connect any other pins to ground or 3.3V?

Any help would be greatly appreciated.
You see those H2L, H1L, H4L and H3L jumpers on the backside of the purple one? Make sure those are soldered. Mine weren't and didn't make a sound until after I soldered them.
 
On this purple top layer you soldered the jumper at SCK .What are your settings in SETUP DSPi? The BCK frequency is 128X and 256, as you have it set?
With some I2S devices, 64X would be useful.
 
I hate to get into the GUI wars... but I've just had so much trouble with the Presets, and looking at other folks posts some of them do as well. My suggestion:

  • The Preset combo box shows your currently selected preset.
  • If you change the combo box selection, then your settings change to the ones defined by the newly selected preset.
  • If you edit any settings of the currently displayed Preset it immediately updates that Preset definition
That's it. No querying 'are you sure', no keeping track of changes, pretty much no nothing else, other than a copy option.

I really think this is the common usage for a list selection in GUIs but either way it seems to make a lot of sense to me and is naturally the way I would use it. Having an undo would be nice.
 
I hate to get into the GUI wars... but I've just had so much trouble with the Presets, and looking at other folks posts some of them do as well. My suggestion:

  • The Preset combo box shows your currently selected preset.
  • If you change the combo box selection, then your settings change to the ones defined by the newly selected preset.
  • If you edit any settings of the currently displayed Preset it immediately updates that Preset definition
That's it. No querying 'are you sure', no keeping track of changes, pretty much no nothing else, other than a copy option.

I really think this is the common usage for a list selection in GUIs but either way it seems to make a lot of sense to me and is naturally the way I would use it. Having an undo would be nice.
There are several reasons for this design decision.

If changes are immediately committed, then all changes are irreversible. If the user accidentally changes a Q or preamp value and can't recall the original value, there is no recourse. At the moment, accidental changes are fully reversible by reloading the active preset. This behavior has been invaluable to myself and other users on many occasions.

The closest analogy might be a desktop text editor. One wouldn't expect it to destructively edit a document unless changes are explicitly saved.

Additionally, if changes are immediately committed, then every change would be accompanied by a 45ms interrupt blackout (audio stops) while the flash is written. This may change at some point but is necessary for now.

Continuous flash writes for each individual change will also significantly increase flash wear.

Could you possibly share some of the difficulties that you have encountered? Perhaps we can work around them. :)
 
Last edited:
There are several reasons for this design decision.

If changes are immediately committed, then all changes are irreversible. If the user accidentally changes a Q or preamp value and can't recall the original value, there is no recourse. At the moment, accidental changes are fully reversible by reloading the active preset. This behavior has been invaluable to myself and other users on many occasions.

The closest analogy might be a desktop text editor. One wouldn't expect it to destructively edit a document unless changes are explicitly saved.

Additionally, if changes are immediately committed, then every change would be accompanied by a 45ms interrupt blackout (audio stops) while the flash is written. This may change at some point but is necessary for now.

Continuous flash writes for each individual change will also significantly increase flash wear.

Could you possibly share some of the difficulties that you have encountered? Perhaps we can work around them. :)

I understand but respectfully view this differently. If I want to play with values I just copy to a backup Preset and keep going. There are 9 presets available of which I plan to use 1 when I'm finished.

I think this is a bunch of settings not a text editor. Consider windows or mac sound settings. When you decide what to use as default, what data rates and speaker arrangements -- that is all saved immediately and that's it.

My use case.
1) I'm trying to set up a 6 channel crossover. Stereo with 3 drivers per side. I have it working under CamillaDsp so it won't take much experimenting.
2) I just want to establish that I have 3 I2s devices, each with a fair number of filters and possibly delay and gain settings. Once the crossover is finished I want three more copies of the crossover. One as backup, one to play with, and one variation for tv (which is SPDIF input).
3) Then I plan to set the primary crossover as default and maybe dynamically swap with the one alternate but otherwise never touch it again unless I swap drivers or decide to make a minor change (probably to the loudness settings).
4) The DSPi has two inputs (USB and SPDIF) that I need to swap between dynamically.

So, all of my work is going to be defining filters, checking that they work and doing more of the same. At all times I just want what I'm working on to be current and saved in case of interruption. If it's not automatic then a manual save? Imagine a text editor without a save button where it only saves when you exit. And you have to reboot to ensure it saved.

Fwiw I love DSPi and so look forward to using it here. I've waited years for something like this. But a couple of hiccups here and there.

Mark
 
Last edited:
I understand but respectfully view this differently. If I want to play with values I just copy to a backup Preset and keep going. There are 9 presets available of which I plan to use 1 when I'm finished.

Instead

1) I worry about saving values. If I sit there changing values and go turn off my test Pico to eat dinner what happens? I don't know. There's no save button so no way to ensure my work is stored if something fails.
2) I still can't figure out how to save my settings reliably. Usually they are lost. All I want to do is set up 3 I2S ports on my Pico ports and never change it again and ensure that they are retained through a power cycle. The odds of that happening, despite me doing everything I can think of, are about 15% right now. The only way I can see to maximize my odds is to change presets, which seems pretty different.
3) When it comes up in SPDIF instead of I2s it generates a loud noise through my speakers, making it unpleasant.
4) When I set up my system for the first, and hopefully last, time I have a bunch of drivers (6) and filters to add to the system. I'd like to just sit there and add a few filters, test them, then save them into a backup preset then do it again. When I'm done I don't want to do anything other than maybe hit save and know that on a power cycle all my filters and power settings will be as I left them.

Fwiw I love DSPi and so look forward to using it here. I've waited years for something like this. But a couple of hiccups here and there.

Mark
Are you using an RP2040 or RP2350? There is an issue in the most recent beta4 release which causes marginal flash access on some boards. It will be corrected with the final (and imminent) release of v1.1.3. This should resolve all but the first of the issues mentioned.

The simplest solution to the "forgetting to save" issue might be to tint the preset panel red (or add an indicator of some kind) and display a dedicated save button when there are pending changes. Would something like this be helpful to you?
 
Last edited:
Are you using an RP2040 or RP2350? There is an issue in the most recent beta4 release which causes marginal flash access on some boards. It will be corrected with the final (and imminent) release of v1.1.3. This should resolve all but the first of the issues mentioned.

The simplest solution to the "forgetting to save" issue might be to tint the preset panel red (or add an indicator of some kind) and display a dedicated save button when there are pending changes. Would something like this be helpful to you

I'm using an RP2350. I think I've figured out what's going on.

When I'm using Preset 2 and I make changes and want to save them I switch to preset 3 and it asks me if I want to save the changes. Then it (sometimes?) saves them into preset 3 not into preset 2 where I expect them. I think if it just updated Preset 2 as I expect that would be an improvement, but I'd still sure like a save button since my normal use case is to turn off the pico and unplug my laptop when I'm done.

And yes, that would be just great.

Thanks for listening.

--- postscript
After figuring this out, I'm done with my crossover. Not that hard despite my complaints. This thing rocks. The copy all filters from one channel to another thing is the best. Pictures of my settings and my tentative Dac (no spdif input yet). Oh, it would be really nice if you would add LR filters at some point. I can do the math though.

1776823851487.png
1776823914465.jpeg

Note the bottom of the dac is wirewrapped. The top sure looks nice.

-----postscript 2
There is a menu with a save button. I'm so sorry I didn't see it although in my defense on Windows it's a right-mouse button click of a combo-box entry which I have to say I have never seen anyone do. That menu is perfect. There's a huge amount of screen real estate to the right of the combo... if you could just add a typical hamburger menu button with the right-mouse popup there that would be great. It's really hard to do a right-mouse popup of a list control on a touchscreen.
 
Last edited:
I'm using an RP2350. I think I've figured out what's going on.

When I'm using Preset 2 and I make changes and want to save them I switch to preset 3 and it asks me if I want to save the changes. Then it (sometimes?) saves them into preset 3 not into preset 2 where I expect them. I think if it just updated Preset 2 as I expect that would be an improvement, but I'd still sure like a save button since my normal use case is to turn off the pico and unplug my laptop when I'm done.

Thanks for listening.
I have been testing both platforms this evening and have also observed this bug. It will be squashed shortly and pending changes made more obvious.
 
I've been designing a board with a Pico and ES9081Q DAC. However I missed the discussion on SPDIF input and I can't find any info on it, so I'm not sure which pin to use.
 

Attachments

Back
Top Bottom