• 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

For those interested, I’ve released an updated experimental DSPi ESP32-S3 media-player build with 24-bit S/PDIF output at 44.1/48 kHz, alongside I2S.

It runs on the Waveshare ESP32-S3-LCD-2 and includes full DSPi control, presets, BLE remote, custom colour themes, VU meters, Wi-Fi music transfer/OTA updates, and a built-in WAV/FLAC/MP3 player using FAT32/exFAT formated microSD cards. Up to 2 TB is supported by the SDXC/exFAT platform, although I haven’t tested a 2 TB card personally.

It’s still very much a work in progress, but the S/PDIF media-player side is now working well enough for testing.

Latest build

Quick video (The video does not do the true colours any favours)
 

Attachments

  • Capture1.PNG
    Capture1.PNG
    161.8 KB · Views: 111
  • Capture5.PNG
    Capture5.PNG
    110.1 KB · Views: 110
For those interested, I’ve released an updated experimental DSPi ESP32-S3 media-player build with 24-bit S/PDIF output at 44.1/48 kHz, alongside I2S.

It runs on the Waveshare ESP32-S3-LCD-2 and includes full DSPi control, presets, BLE remote, custom colour themes, VU meters, Wi-Fi music transfer/OTA updates, and a built-in WAV/FLAC/MP3 player using FAT32/exFAT formated microSD cards. Up to 2 TB is supported by the SDXC/exFAT platform, although I haven’t tested a 2 TB card personally.

It’s still very much a work in progress, but the S/PDIF media-player side is now working well enough for testing.

Latest build

Quick video (The video does not do the true colours any favours)
I've been using this for some time now and it runs really well together with DSPi, really love my MiniDSP 2x4HD replacement with double the outputs, knows, buttons and that really handy ESP32 display. I can really recommend it!
 
I've been using this for some time now and it runs really well together with DSPi, really love my MiniDSP 2x4HD replacement with double the outputs, knows, buttons and that really handy ESP32 display. I can really recommend it!
Thanks, great to hear it’s working so well for you. That’s exactly what I was aiming for.
 
The same thing with a network port (RJ45) would be perfect! In any case, it's an interesting suggestion! Thanks, Kingsnake.
 
Last edited:
Following extensive testing, I am happy announce the release of DSPi Firmware v1.1.6-beta2, along with corresponding updates to Console for macOS and Console for Windows. :)

This update introduces several important enhancements and a major new feature.

1787726089636.png
1787726010428.png


1787726218289.png
1787726396887.png


Here are the most significant changes:
  • RP2350/2040: Displays for Control Surfaces introduces support for all popular I2C character and graphic displays. Changing any parameter using a Control Surfaces component pops up the change on the display and a group of up to 16 default dashboard pages can be configured within Console. The dashboard can be navigated with just a rotary encoder and a button to browse, select and edit. Bar graphs can be displayed for all appropriate parameters. All of this is supported by a comprehensive new class of nouns.
  • RP2350/2040: IR remote control keys can now control Channel Groups directly, enabling volume control (and others) of any defined set of channels.
  • RP2350/2040: Dimmable LEDs now offer individual brightness ceiling controls that scale their dimming range.
  • Console: Overview has been added as the new default Settings page, displaying a comprehensive and interactive list of all GPIOs in use.
  • Console for Windows: Clicking any GPIO in Overview will guide the user to the settings page for the function that is using it and illuminate the exact parameter.
  • Console for Windows: Handling of GPIO conflicts has been completely reworked. Users are never presented with an unactionable conflict error but are instead asked to decide how the situation should be resolved.
Still to come for Displays are optimizations for larger character displays such as the 2004, which will include dashboard views with multiple parameters on-screen simultaneously. For those in search of a demo of Displays, you can find one here.

The usual disclaimer: While great care has been taken to thoroughly test all functionality, some bugs may remain. Should you encounter a bug or unexpected behavior, please don't hesitate to make a report so that it can be squashed! You can do that either here, on GitHub or via the Discord server (many helpful people there).

Finally and as always, DSPi is a not-for-profit open source project funded entirely by donations and out of pocket. If you wish to support the project, you can do that via Ko-fi or Patreon.

For those interested, I will have more information regarding MicroSRC and Picorder (multichannel capture firmware with support for many interfaces) very soon. I must now get some sleep, so my apologies for any delay in answering questions.
 
Last edited:
Good night, you princes of Maine, you kings of New England

or wherever you be sleeping
 
This morning, while listening to music as I worked, I took the opportunity to connect the DSPi via USB to my desktop computer (DSPI -> Toslink -> Topping E30 -> TPA3255 amp -> Qa3010 speakers). My main idea was to test the "psychoacoustic bass" feature with these small speakers. Well, I'm glad I did! Honestly, after a few minor setting adjustments, the result is pretty impressive. It doesn't replace a subwoofer, of course, but when properly tuned, it adds body to the low end and improves the overall tonal balance. If I can find the time, it would be interesting to take some measurements and see what's going on. In any case, the listening experience confirms it's clearly a great implementation.
 
When I look at the the amount of unused space in each column next to the PEQ values I imagined: what if a PEQ description could be added to each column. IE, Band 1,2,3 labelled "Outdoor freefield response correction for flat on axis response at 1M". 4,5,6 and 7 labelled "Living room correction". Etc. Just an idea. Don't know if I'd actually use it or not
1787741927110.png
 
@Weeb Labs Firstly, this is a really impressive bit of work. I have moved to this platform from my own ESP32 vibecoded PEQ/XOs, a touch screen version and also one with a web interface. While I really like what has been achieved here in terms of performance/cost, there's one feature that I really miss from my previous PEQ - draggable EQ points. As someone who came from a live sound background, I find it super useful for tuning loudspeakers in a room.

My question is - before I begin working on an ESP32 sub board that serves a web interface with mouse/touch draggable EQ points - are there any plans already underway for this feature? Cheers!
 
@Weeb Labs Firstly, this is a really impressive bit of work. I have moved to this platform from my own ESP32 vibecoded PEQ/XOs, a touch screen version and also one with a web interface. While I really like what has been achieved here in terms of performance/cost, there's one feature that I really miss from my previous PEQ - draggable EQ points. As someone who came from a live sound background, I find it super useful for tuning loudspeakers in a room.

My question is - before I begin working on an ESP32 sub board that serves a web interface with mouse/touch draggable EQ points - are there any plans already underway for this feature? Cheers!
Hello! I'm glad that you are enjoying the project. Direct manipulation of PEQ bands on the graph within Console is absolutely on the way and should be appearing soon.
 
Hello! I'm glad that you are enjoying the project. Direct manipulation of PEQ bands on the graph within Console is absolutely on the way and should be appearing soon.
Awesome - thanks so much for sharing all this with the DIY community.

I might still have a go at a web interface - not sure if this is already in development or not though.
 
I have downloaded DSPiConsole but I can't try it as I do not own a Raspberry. Could someone please check if there is an option in DSPiConsole to create a 2nd order inverting all pass filter?
 
I have downloaded DSPiConsole but I can't try it as I do not own a Raspberry. Could someone please check if there is an option in DSPiConsole to create a 2nd order inverting all pass filter?
Yes, second order all-pass filters are supported.
 
For active 3 (or 4 way) speakers what is the best method to implement this. I would like to install the amplifier boards in the speaker cabinets. Input will be toslink.
1. Is it sufficient to 'split' the toslink signal running cable to each speaker in terms of timing between 2 dspi boards?
2. Another option may be to run the second dspi in i2s slave mode but isn't the physical distance between the speakers a problem then? Or interference?
3. Convert toslink to coax in 1 speaker and link that as input for the second speaker. Again is that sufficient in terms of timing?
4. Or something else :)
Can someone tell if option 1, 2 or 3 are viable?
 
Can someone tell if option 1, 2 or 3 are viable?
Just have the DSPi and DACs as one unit and amplifiers inside the speakers. I did this, even used an XLR cable for 2 channel analog + GND.
To synchronize 2 DSPs they need to share the same I2S clocks. AFAIK DSPi doesn't do clock recovery from SPDIF so you can't use it as clock reference.
Alternatively you could probably use BICK as the reference and send it from one unit to the other via coax/bnc, and make one DSPi master and the other slave.
 
I have downloaded DSPiConsole but I can't try it as I do not own a Raspberry
Is DSPi even designed to work with RPi?

One is certainly not required!

I though so long as you are feeding audio signal via a supported format/medium input, they can work without any USB Host?
 
Using its USB input you can connect it to the output of a Mac, Windows or RPi. I’ve even connected it to an iPhone and iPad using a Lightning to USB adapter.
 
Back
Top Bottom