Next Generation Evaluation Boards

EV Board #1: SSM3582 amp board

As noted in the introduction, the amp boards for the higher frequencies will use the SSM3582. This chip doesn’t require many external components, so the circuitry is very compact. Also, the chip uses Delta Sigma modulation, which spreads the switching energy across a wide spectrum, resulting in less interaction between devices and it doesn’t require a shared clock or extensive filtering to manage EMI. These features allow us to put 4 amplifiers on a board that is approximately 1-1/4″ by 2″. For a line array with 24 channels, we would need 6 of these modules. Each chip supports 16 unique I2C addresses, and each chip will need to be assigned a unique address.

Unfortunately, the chips use the QFN “package from hell”, and soldering these devices without shorts to the thermal pad or external solder bridges is not easy. But if you get a stainless steel paste mask stencil and use it carefully with a hot air station, the boards can be assembled without too much frustration. The 3 completed prototypes are shown below.

Amp modules

Even with the stencil to apply an even and properly measured amount of solder, soldering those chips without robotics is challenging. I had unsoldered connections and/or bridges on each board. Clearly, I have become too old for this type of work, because several years ago I was able to solder 14 chips for the line array project without any problems at all. I need to get an estimate from Seeed Fusion or some other outfit to see whether the module can be fabricated and assembled at a reasonable cost.

So far, these boards look promising. One “gotcha” is that the chip needs to be programmed via the I2C interface, and the default for the Power Control register is “off”. So, without some software, these chips don’t have any output. The SSM3582 can be used in standalone mode by disabling the I2C interface and using resistors on the two ADDRX pins to configure the device, but it is not desirable to “hard-code” the configuration for our applications. Instead, we want to assign each amplifier a unique address and control the devices from the microprocessor. But after some serious head-scratching and breaking down and reading the manual, the boards are working.

There is a vendor of an 8-channel SSM3582 board on Aliexpress, and it is possible that these boards can be used to as an alternative to the amp module. Samples of these boards are on order. If nothing else, these boards could be a key component in a modular 4-way or 5-way design, especially the version of this board that includes an ADAU1466 chip. These boards sell for about $60 each, which is reasonable for an 8-channel amp. But I tried ordering these from two different vendors and got a message from one vendor that they are out of stock. So, this option is still being worked. Also, it looks as though the I2C interface isn’t connected to the chips, which might make programming these impossible. If the devices can’t be put into TDM mode, they won’t worked for the line array project.

8-channel amp

Update 4/20/2023: The vendors didn’t actually have any of these SSM3582 boards to sell and gave me my money back. So, I ordered the version with the ADAU1466 and Bluetooth receiver and SPDIF and analog input. This DSP version goes for about $125 shipped, and I just received one yesterday. As I suspected, the SSM3582 chips are in stand-alone mode, with the I2C control lines grounded. Also, the 4 serial output lines on the ADAU1466 are each dedicated to one SSM3582 chip, and there are no other outputs. So, this board has limited expansion capability, and it would be difficult to use this for a line array amplifier. However, it has promise for implementing the “Return of the Marthas”, because the 8 amplifiers are sufficient for the upper four rings of that speaker. Each of the rings in the Marthas is wired so that it can be used as a monopole or a dipole, by reversing the polarity of the front and back amplifiers. I would still need another DSP and two larger power amplifiers for the bass tier, and I would need a CPU to control both DSP’s. That configuration gets a bit clumsy, so I need to think about this some more. It’s obviously nice to have a board with all the QFN chips already soldered and tested, but using these ready-made boards for custom applications always seems to get ugly when time to write the code.

EV Board #2: Amp Board test bed

This board allows testing the 4-channel amp boards. It uses one of the older Linkplay modules to provide WiFi audio to an ADAU1701 DSP. The ADAU1701 runs the same 3-way code used in the prior generation boards, controlled by an ESP32C3 board that allows Bluetooth BLE control. This board uses a purchased module with the Cirrus Logic CS8421 asynchronous sample rate converter (ASRC) to connect the Linkplay module to the ADAU1701. Since both of these devices are I2S masters, the ASRC is needed to convert the 44.1KHz data from the Linkplay module to the 48KHz sampling used by the ADAU1701. The ASRC modules are available on Aliexpress for less than $20, and they work great for this application once they are modified. The ASRC modules are pre-configured to convert the input to 192KHz audio, and you need to change a resistor to make both the input and output I2S slaves (see the note on the schematic). It’s a little tricky since the resistor is a surface mount device, but fortunately, it is a relatively large 0805 chip that isn’t too hard to replace.

Amp Module Test Bed Schematic

The first iteration of this board used an incorrect Linkplay module footprint, so I had to attach a WBA51 board using hotmelt glue. But, hey–this is just a test bed, so that wasn’t a big problem. The original idea was to use a Linkplay A31 module, with the ESP32 generating the required clocks. The ESP32C3 supports an I2S interface, and I was able to generate the BCLK and LRCLK signals using the QtPy ESP32-C3 board from Adafruit. However, the same code didn’t work on the ESP32-C3 SEEED XIAO board. I could get the 44.1KHz LRCLK but the XIAO board would not output the 2.8224 MHz BCLK no matter which pin or sample rate I used. So, as long as you use the Adafruit ESP32-C3 QtPy board and get the footprint correct, the Linkplay A31 module should work with this board. It’s actually a very nice board for stereo 3-way speakers, with 4 20W power amps onboard and a DAC to drive a pair of external subwoofer amps. The KICAD design files are linked in the section below.

The glued-on WBA51 board is at the top left, with wires going to the ASRC module, which is just below the ESP32C3 on the right. The ASRC provides the data to the ADAU1701 module using the ADAU1701 clocks, and that solution works perfectly. The amp module is at the bottom.

Amp Module Test Bed

This board is primarily for testing the amp modules and finalizing the software for the SSM3582. The SSM3582 requires setting a register to bring it out of software power-down mode, and once the chip is powered up, there are a number of features that need to be enabled or disabled, such as TDM slot assignment, limiting, gain, volume control, etc. (there are a total of 26 control registers). The board still needs to be tested in “TDM mode”, but once that is done, it will be set aside except for testing new amplifier modules as they get built.

As already noted, this is actually a nice board for DIY’ers because it is really just a collection of low-cost plug-in modules that use through-hole connectors. I thought about updating the Linkplay module to the A76D that is available at Parts Express, but that part is now on clearance and nobody else sells it. I suspect that the A76D will be “orphaned” soon, as the A97 is a more capable module that is much easier to use. So, I just updated the board to have the correct footprint for the A31 and sent off for a new set of boards. That way, DIY’ers can unplug the A31 from their old WiFi boxes and speakers and re-use them with the stereo 3-way software. The Gerber and KICAD files for this updated board are linked below.

EV Board#3: A98/ADAU1466 test bed

The ADAU1466 test bed is fairly simple in that it just provides power and a few connections between 4 purchased modules. This board will allow developing the ADAU1466 library that allows real-time changes to the DSP parameters using a GUI hosted on a cell phone app. There is a lot of work to do here before we can use this board to build speakers. Fortunately, the Linkplay A98 module on this board works just fine–it connects to the network using the Wiim app, and it shows up as “A98SmartAudio 913E”. It is nice to see that the module runs as a master with its own clocks and can be used without any of the supporting circuitry in the audio streamer devices.

A98 Test Bed

A nice feature of these boards is that connectors were used for each module, so we can reuse these modules. Also, both of the evaluation “motherboards” have a PCM5102 DAC module with an earphone jack. This provides an easy way to monitor the audio.

Update, April 7, 2023:

The A98 boards are “interesting”. They are loaded with evaluation software that works with some sources and not others, and they appear to be hard-coded as masters at 48KHz. Unfortunately, they do not work with Spotify, which will not go over well with my wife, but they work great playing back local music libraries. I haven’t tried some of the other music services because they all require a password and payment, but I intend to try some of them eventually.

In order to make these modules more like the ones in the Wiim Pro, I’m going to need to reload the software. Unfortunately, the web-based programmer doesn’t work, so I will need to add a USB connector to the board to reprogram them. I might do that, or I might just use these for local music library playback. At any rate, you can’t just buy these modules from Parts Express and expect it to behave like a Wiim Pro unless you can get some other software from Linkplay and reprogram the board.

I’ve started the rather large effort to update the ADAU1701 libraries and application code to work with the ADAU1466. There is going to be a slog, because the numeric format is different and the way the parameters get updated is quite a bit different. But the I2C communication between the ESP32C3 and the ADAU1466 is working, and I can update the parameters in real time using some test code. There are a lot of tables to update, and a lot of tedious communications left, but I am confident that I will be able to control the ADAU1466 from a cell phone app in the coming weeks. The cell phone app replaces the Sigma Studio user interface to update the parameters in real-time. It also provides a higher-level interface for implementing multiple changes at once, such as adjusting multiple delay cells for electronic curvature, or for switching loudspeakers between point source and dipole modes.

Design Files

Amp Module, Rev 3

A newer version of the 4-channel amp board, with a mounting hole and a better method for selecting the board address is in the works. It will get posted here soon.

Amp board test bed.

These files fixed the A31 footprint problem. As long as you use the Adafruit version of the ESP32-C3 (QtPy) vs the SEEED XIAO, the CPU will generate the clocks needed for the A31. Links: KICAD files, Gerber files.

A98/ADAU1466 test bed.

This board needs a mounting hole for the A98, which got drilled by hand in this version of the board. The next version of this board will probably be the line array amp, with 6 amplifier modules. The design files for the line array amp will get posted in a few weeks, after more testing of the prototype.