Introduction: DSP Speaker Development Kit
I'm sharing a set of SigmaStudio Project files for running on ADAU1701 DSPs. These DSP's are found on a whole range hobbyist audio amplifiers and the like. SigmaStudio is the software package and graphical programming language used to program these DSP's.
This Instructable is not intended to be a 101 on setting up the DSP boards or SigmaStudio, there are already loads of great resources for that, I'll provide a few links below. Instead, this is a set of projects which I have found useful for the process of developing loudspeakers with integrated DSP's. If you've already got the basics, this will hopefully give you a shortcut to the next level and fuel some ideas for where to go with your own projects.
I'll talk briefly about the hardware setup I use in the next section, and then describe as of the three projects.
Note: If the instructables window makes the SigmaStudio projects diagrams look a bit small and blurry, hitting the download button should give you the full res view. Also, there are full resolution versions in the zip file on Thingiverse.
(Instructables doesn't seem to accept the SigmaStudio Projects as attachments, so I've put them on Thingiverse here: https://www.thingiverse.com/thing:4805450 )
For those who are new, DSP Amplifier Setup 101:
Analog Devices SigmaStudio Homepage:
https://www.analog.com/en/design-center/evaluation...
SigmaStudio Tools Documentation:
https://wiki.analog.com/resources/tools-software/s...
Dayton Audio DSPB Series Amplifier Board User Manual:
Step 1: My Development Hardware (optional)
I use the Dayton Audio DSPB series of DSP amplifier boards, because they offer a great integrated solution, and I think they are good value when you consider they come with a set of cables as well as good documentation. The Dayton Audio boards are sold through Parts Express in the US. The same boards are also sold under the brand Sure Electronics worldwide. I used a Dayton Audio DSPB-250 and KAB-250V3. Together, they make a DSP amp with analog and bluetooth input, and 4-channel output with 50W per channel. This combination can be used to drive 4 independent speakers, or 2 satellites and a subwoofer, or two woofers and two tweeters (i.e.a stereo pair of 2-way speakers). The projects I've included here address all these options.
One of the things I like to do for speaker development is switch between different configurations using a physical switch on the amplifier, I find this the most effective way to assess subtle changes in the sound of a system. The ADAU1701 DSP is great for this because the GPIO electrical interfaces can be programmed to switch just about any element of the processing. The Dayton Audio DSPB-250 (AKA. Sure JAB3-250) brings out 5 GPIO's to a connector called J2. I have used this to connect a rotary encoder and three toggle switches to the front panel, I've attached the wiring diagram. Most DSP boards using the ADAU1701 will break out the chip's GPIO's somewhere, but you will have to check the documentation for your board to work out where they are.
Here is the list of all the parts for my system:
DSPB
https://www.parts-express.com/Dayton-Audio-DSPB-25...
KAB3
https://www.parts-express.com/Dayton-Audio-KAB-250...
Connection kit
https://www.parts-express.com/Dayton-Audio-DSPB-EC...
2x L-braket
https://www.parts-express.com/Dayton-Audio-KAB-AB-...
In-circuit programmer
https://www.parts-express.com/Dayton-Audio-DSPB-IC...
Rotary encoder
https://www.amazon.com/dp/B06XQTHDRR/ref=cm_sw_r_t...
Toggle switch
https://www.amazon.com/dp/B07QGDDTWJ/ref=cm_sw_r_t...
3D printed enclosure
https://www.thingiverse.com/thing:4761687
JST Connectors for the Dayton Audio DSPB. (I bodged it with these 6pin connectors, ideally you'd find a 10-pin version):
Step 2: The Different Versions of Each Project
I've created 3 versions of each project, these are the differences:
- Rotary encoder - designed for my hardware setup, with an encoder dial and 3 toggle switches,
- Analog volume control - the rotary encoder is replaced with one of the 4 auxiliary analog inputs (one of the 4 pots on the DSPB-250 board).
- Software switches - the GPIO switches are replaced with software toggle switches. So long as you have the in-circuit programmer connected and the link is active, you can toggle the switches in real time in SigmaStudio.
Step 3: Project 1 - 4-way Output Switcher With Independent EQ
Overview
This project allows you use front panel controls to switch between 4 speaker outputs for testing and development of speakers and EQ settings. Stereo input passes through HF and LF tone controls, and is then mixed down to mono and sent to 4 processing paths. Each path has an independent volume control and equalization block. Three physical switches select which of the 4 output paths is active.
This project could be modified to switch between 2 stereo pairs of speakers.
The tone control block may also be useful in other projects.
Key Features
- Bass and Treble tone controls using analog potentiometer inputs
- 4-output switch bank
- Independent Volume matching and EQ controls for each output
External Controls
- Rotary dial – Volume Control
- Analog Potentiometer 2 – Treble Tone Control
- Analog Potentiometer 3 – Bass Tone Control
- Switch 1 – Select between outputs on Bank 1
- Switch 2 – Select between outputs on Bank 2
- Switch 3 – Select between Bank 1 and Bank 2
Usage guide
To use this project to compare up to 4 speakers in a listening test:
Set the high pass block to the minimum frequency you want to allow through, this can be used to protect small speakers from damage and improve their power handling. Click on the blue square in the EQ blocks to set the required EQ, or bypass the EQ's. Adjust the volume slider for each output to match the sensitivity of each speaker, for seamless switching.
Once you hit “Link Compile Download” and the status at the bottom right of the SigmaStudio window says “Active: Downloaded”, you can adjust the EQ and the volume sliders in real time.
Step 4: Project 2 - 2.1 Channel Speaker System Development Project
Overview
This project is for developing a 2.1channel sub-woofer and satellite speaker system. Crossover frequency and the EQ can switched from the front panel.
Stereo input is split to two separate crossover blocks, Switch 2 selects which block is active. The HF output is sent to the satellite signal chain and LF output is mixed down to mono and sent to the subwoofer signal chain.
The satellite signal chain includes a gain control linked to Analog Pot 2, and two independent EQs, selected with Switch 1. The subwoofer signal chain includes, two independent EQs selected with Switch 3, a phase inverting block (off by default), a high pass block (33Hz by default), a gain control linked to Analog Pot 3.
Key Features
- Two independent 2-way crossovers
- Switching EQ profiles for Satellite Speakers
- Switching EQ profiles for Subwoofer
- Independent analog volume control of subwoofer and satellites
External Controls
- Rotary dial – Master volume control
- Analog Potentiometer 2 – Satellite volume
- Analog Potentiometer 3 – Subwoofer volume
- Switch 1 – Select satellite EQ
- Switch 2 – Select crossover frequency
- Switch 3 – Select subwoofer EQ
Usage guide
To use this project to optimize a 2.1 speaker set-up:
Set the crossover frequencies you want to test, (between 100Hz and 160Hz is typical for small satellites, and 60-100Hz for larger speakers). Set the subwoofer high pass block to the minimum frequency you want to allow through, typically ~10Hz below the low frequency cut-off (F3) of your subwoofer. Click on the blue square in the EQ blocks to set the required EQ, or bypass them. Adjust the analog potentiometers 2 and 3 to set the satellite and subwoofer relative volume. Use your front panel switches to swap between settings and find your optimum configuration.
Once you hit “Link Compile Download” and the status at the bottom right of the SigmaStudio window says “Active: Downloaded”, you can adjust the EQ and the crossover frequencies in real time.
Step 5: Project 3 - 2-way Active Speaker Development Kit
Overview
This project is for developing a 2-way active speaker system. The front panel can be used to switch between two crossover “configs”. Each “config” includes independent parametric EQ, crossover frequency control and woofer phase adjustment block.
I recommend placing a protection capacitor in series with your tweeters, sized for a high pass approximately 1 octave below your intended crossover frequency. This will protect you from any mishaps during development. It is probably good practice to leave it in circuit after development. (I have been using a value of 15uF for tweeters I am crossing over in the 4 kHz range.)
The L&R HF outputs are routed to DAC0 & 1, which are the internal outputs of a Dayton DSPB board. The LF outputs go to DAC2 & 3, if you have a KAB board paired with a DSPB board, these will be the outputs of the KAB board. If you are using a different DSP board, you'll need to check the documentation.
Key Features
- Two independent configurations for a 2-way active speaker stereo pair each config has:
- EQ controls
- Crossover frequency and slope adjustment
- Optional phase adjustment for woofer output
External Controls
- Rotary dial – Master volume control
- Switch 1 – Select Config A or Config B
Usage guide
- To use this project to optimize a 2-way active speaker set-up:
Setup the candidate crossover configurations you want to test, including using the gain settings in the crossover block. Click on the blue square in the EQ blocks to set the required EQ, or bypass them. Listen and use the front panel to switch between configs and compare the performance
Once you hit “Link Compile Download” and the status at the bottom right of the SigmaStudio window says “Active: Downloaded”, you can adjust the EQ and the crossover frequencies in real time.
- Optional phase adjustment procedure:
It is important that phase between the woofer and tweeter is correctly matched at the crossover frequency, in many designs this won’t require any adjustment. However, if your design requires phase adjustment, I recommend this procedure:
Invert the output to the HF driver. Adjust the woofer phase delay to maximize cancelation at the crossover frequency. You can do this just by ear with a tone generator set to the crossover frequency, but it’s easier to use a frequency response measurement. The aim is to minimize the sound output at the crossover frequency, because that represents the point where the woofer and tweeter are in perfect anti-phase. Once you has set the delay, revert the HF output polarity back to normal. Adjust HF and LW crossover gain as desired. You may need to repeat this procedure if you change the crossover frequency significantly.
Step 6: Wrap Up and Project Links
I hope you find these useful. It is difficult for me the guess what is most useful for most people, or how much explanation is required. Please comment with any questions, and I'll try to answer them. Also, let me know how your project goes, feedback is always great to have. Please hit like if you have found this useful.
Instructables doesn't seem to accept the SigmaStudio Projects as attachments, so I've put them on Thingiverse here:
https://www.thingiverse.com/thing:4805450
Check you some of my other audio Projects:
P-CUBE Speaker System Instructable:
https://www.instructables.com/P-CUBE-Speaker-Syste...
Ray-Gun Speaker System:
Housing for DSPB and KAB Amplifiers:
https://www.thingiverse.com/thing:4761687
The rest of my designs on Thingiverse:
https://www.thingiverse.com/zx82net/designs
On twitter: