• 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

Ease of flashing for the non-technical is another big plus for the Picos. Having said that there are things like the ESPHome Builder that can flash at least a subset of ESP32s over USB from the browser. Is there something similar for the STM32s now?
 
The discussion of different controller families reminds me of grbl looking to develop beyond the original arduinos - now we have FluidNC sticking purely to ESP32s and grblHAL abstracting things so it can run on many sorts.
 
Just a little update. LG Sound Sync is now confirmed to be working! :D

View attachment 531490

Through my testing, I learned that older LG models such as the B7 make use of a slightly different control bit configuration. Support for this has been added via protocol auto-detection.
You beat me to it. I tested but couldn’t get the SPDIF to lock. I think I fried my SPDIF receiver and haven’t been able to find the other one I have in “the box”
 
You beat me to it. I tested but couldn’t get the SPDIF to lock. I think I fried my SPDIF receiver and haven’t been able to find the other one I have in “the box”
My condolences. They are very easy to accidentally destroy via mis-wiring.

Today has been spent implementing an auto-mute function that drives the mute pin of a connected DAC via GPIO. This function operates during input source changes, output slot reassignment and various other conditions that could otherwise produce loud pops.

It is switchable between active high and active low modes to accommodate a wide variety of I2S DACs, amplifier trigger inputs (when used with transistor) and relays. Timing and pin assignment are customisable.

1778550068970.png
1778550148496.png


This will make an appearance alongside LG Sound Sync in Beta 3. :)
 
Last edited:
Is muting also active at boot time?
The GPIO is hi-z prior to initialisation, so any attached DAC will be in its default (typically muted) state at boot. Muting at boot can be guaranteed simply by adding a pull-up or pull-down resistor toward the desired initial state.
 
The GPIO is hi-z prior to initialisation, so any attached DAC will be in its default (typically muted) state at boot. Muting at boot can be guaranteed simply by adding a pull-up or pull-down resistor toward the desired initial state.
And I assume the hold and release times apply to boot time as well
 
I want to report odd behavior of Inputs and Outputs.

Windows Console v1.1.4-beta1-hotfix.

Setting outputs (SPDIF 1 L&R, Out1 & Out2 respectively) and saving (as default) via the button in side panel, then closing/relaunching the console, the outputs are gone (yet music still plays??). I saw in an earlier post about right-clicking the preset and saving from that context. That saved the outputs.
I would think one only needs to use the Save button.

Also noticed that if Console and Matrix Mixer are both open, and then only the Console is closed, when reopening the Console Inputs and Outputs are gone. If I close both windows and relaunch the Console the Inputs and Outputs are present.
 
I want to report odd behavior of Inputs and Outputs.

Windows Console v1.1.4-beta1-hotfix.

Setting outputs (SPDIF 1 L&R, Out1 & Out2 respectively) and saving (as default) via the button in side panel, then closing/relaunching the console, the outputs are gone (yet music still plays??). I saw in an earlier post about right-clicking the preset and saving from that context. That saved the outputs.
I would think one only needs to use the Save button.

Also noticed that if Console and Matrix Mixer are both open, and then only the Console is closed, when reopening the Console Inputs and Outputs are gone. If I close both windows and relaunch the Console the Inputs and Outputs are present.
Thank you for the bug report. Beta 3 will be released later this evening with LG Sound Sync and External Mute Control, so I will roll this patch into it.
 
Any chance to get the I2S inputs released?
I would love to connect my new receiver board to the DSPi system ;-)
 
Any chance to get the I2S inputs released?
I would love to connect my new receiver board to the DSPi system ;-)
I2S input will be arriving with v1.1.5. :)

I have been working on a redesign of the Settings panel for the Windows version of Console. As the number of parameters increases, I believe that a sorted sidebar will be more easily navigable than an endless array of tabs.

1778805073066.png


This is far from final, of course.
 
Hi Troy,
just registered here for this project, got my Pico2 running with DSPi and it's mostly great so far! Thanks very much for this!

I remember somewhere earlier in the thread there was talk about not limiting the per channel filters to 10 but limiting the total filter count. I would be very interested in an implementation of this.

Additionally I can't wait for a release of the Linux version of the console...
 
Once I2S input is ready, does that mean that this will work as a standalone DSP as long as it is powered and configured appropriately, or will it still need connection to a PC in order to function?
 
Once I2S input is ready, does that mean that this will work as a standalone DSP as long as it is powered and configured appropriately, or will it still need connection to a PC in order to function?
Yes. DSPi already works as a standalone DSP when the SPDIF input is in use.
 
Hi Troy @Weeb Labs,

I did a quick test of something you might find useful. You know I've been doing this lightweight web-browser GUI for the DSPi to run on tiny computers. Well, I went into DSPi-Console-Windows and did three things:

1) Pull out all of the low level USB code from DspDevice and tuck it into a class named DspiUsb. Give each DspDevice an instance of the object at create.
2) Create an interface with all of the publicly exposed stuff in the new DspiUsb class named IDspiTransfer. Have DspiUsb implement it
3) Create a class named DspiRemote that implements IDspiTransfer but instead of talking to the USB device it talks to my DSPiCliRemote server via port 8084. So essentially there's open and close and remote usb transfer.

The end result is running the DSPiConsole for windows but connecting to my little remote setup that's running remotely on anything (Mac, Linux, Raspbian, Windows). There's an early exception in the USB calls (?) but otherwise it seems to run ok at first glance.

Anyway, an interesting concept. You can take a look at my fork of the Windows Console if you're interested. If I try to do a pull request, it says the merge would go fine but I haven't checked the code pretty much at all so not doing that.
 
I2S input will be arriving with v1.1.5. :)
[...]

I may have overlooked it, but how many I2S input channels can the RP2350 handle?
On GitHub, I read that the total number of channels is 11 (2 master + 8 S/PDIF·I2S + 1 PDM) and the output slots include max. 4 stereo channels (each S/PDIF or I2S).
So if we have 8 (4 stereo) I2S outputs, is there no room for I2S inputs? Conversely, if we only use 4 I2S input channels (2 stereo), a maximum of 4 I2S output channels (2 stereo) is possible?
 
Just realise, the filtering bandwidth capacity is likely to be the limiting factor as channels processed increases.

Especially for lower frequencies.

I would greatly prefer a focus on facilitating a "Modularised DSP ™ " approach so multiple DSPi units can be deployed in the chain, maybe even one per channel pair.
 
I am mostly clueless about the specifics to correctly wire these inputs/outputs.
I tried to collect the information about that here in the thread. (from @Kingsnake and @Wesseling Audio Lab)
I asked AI and got something about creating a mid rail DC bias, but @Weeb Labs remarks made me try a (much) simpler approach.
Can someone please check and advise what might be wrong, please.
I will correct and we might have all the wiring info in one place. Or you might just do better ;)
What is the correct input resistor for SPDIF input?

EDIT: Updated pic from info below.
Still the circuits for coax spdif input are in question.
The buffer capacitors are supposed to be ceramic 100nF optionally with a bigger one in parallel and close to the toslink elements.


View attachment 524217
Are there any updates on this? Especially the Coax Input is still not clear, and that's what I want to finish on my board:
IMG_20260517_205110f.jpg
The Toslink transmitter is this one as I couldn't get hold of any other one. Runs with 3.3V and 47 ohms (68 was not in my assortment). On the bottom the two connectors are for power in (right) an coax in (left), so not much space left for any shenanigans.
 
Last edited:
Just realise, the filtering bandwidth capacity is likely to be the limiting factor as channels processed increases.

Especially for lower frequencies.

I would greatly prefer a focus on facilitating a "Modularised DSP ™ " approach so multiple DSPi units can be deployed in the chain, maybe even one per channel pair.
Can't you alread do this by either paralling or daisychaining multiple DSPis?
 
Back
Top Bottom