Wiimu A31 module in combination with ADAU1401/1701 DSP

This is for anyone whose interested in building a compact wifi enabled speaker with DSP functionality. I particular have looked around for a long time to find a suitable solution. A raspberry pi is an obvious choice for a wifi enabled media streamer but its cost effectiveness is limited and also the software is often buggy. Moreover, it is difficult to realize whole house audio with multiple synchronous nodes.

A little while ago I stumbled upon the Up2Stream module which is sold by Arylic on Aliexpress and can be had for less than $30,-. The module promises similar functionality to a Sonos system with a wide variety of different sources including airplay via dnla which is a useful function that is in fact missing on sonos. Besides the module can support high-ress playback of 24bit files of up to a 192kHz sample-rate.

Sadly the module has some limitations with respect to the audio output. Only an analogue output is available with limited audio quality due to the low-cost audio processor that is used on-board of the Up2Stream module. Besides the on-board audio processor is not easily reprogrammable. However, the daughter PCB (A31 module) that is placed on top of the Up2Stream board has a I2S interface which allows for transmission of a digital audio signal to an external DSP without signal degradation.

From some help of the support staff from Arylic I was able to figure out that the A31 module is operating in slave mode with bclk and lrclk being generated by the onboard audio processor of the Up2Stream module. The I2S output of the A31 module is 16-bit with a sample rate of 44.1kHz. All of the audio is thus resampled to this sample rate which is an inherit limitation of the module although I don't think this will be very noticeable. The A31 module can thus be interfaced directly to a ADAU1701/1401 DSP as long as the correct bclk and lrclk signals can be generated.

The ADAU1701/1401 DSP has to act as a master in the i2s protocol which can be done by enabling master mode and feeding back the bclk and lrclk output signals of the DSP to its inputs by connecting MP4 to MP10 and MP5 to MP11. But here’s a bit of a problem, available boards with ADAU1701/1401 DSP chips feature master clocks of 12.288MHz which cannot be broad down to a lrclk of 44.1kHz and bclk of 2.8224MHz that is necessary for the A31 module due to the non-fractional clock divisions of the i2s interface.

I was able to solve this issue on a cheap aliexpress DSP module with a ADAU1401 chip by desoldering the SMD 12.288MHz crystal and replacing it by a through-hole component of 11.2896MHz. With some hot-glue additional support was provided preventing the crystal from falling of due to vibrations or accidental drops. Best of all, it sounds great, much better in my opinion compared to using the analogue interface of the Up2Stream module in combination with the analogue inputs of the ADAU1401 DSP. It does require a slight bit of hacking but it is pretty simple. Best of all, it is cheap to obtain. A DSP solution such as the Hifiberry DAC +DSP can cost about $75,- on its own which does not include the costs of a raspberry pi + sd card. Also, in my experience this solution has much more solid playback functionally without any weird behaviour such as skipping parts of a song. Besides, the power consumption is much lower with an average supply current of just 170mA for the A31 module at 5V.

There is however one slight caveat. With this implementation the software volume control on the source will not work and instead the output volume must be controlled via the DSP. For my use case this is an acceptable trade off but your mileage may vary.
 

Attachments

  • I2S_connection.png
    I2S_connection.png
    572.8 KB · Views: 1,982
  • IMG_2642.jpg
    IMG_2642.jpg
    426.8 KB · Views: 1,554
Last edited:
amazing

Hi Everyone,

I am new here. I love to do my DIY projects etc.

First of all thanks a lot for sharing it. and amazing job!
I bought the same modules and i realized the analog out as bad quality.

My idea was the same let's exploit the possibilty to connect over I2S.

Since i don't have a deep knowledge in DAC/audio core processores etc i need to study first.

My questions/doubts:

- is it possible change the A31 to master and if yes we get somehing with that, maybe no need to change the Clock?
- As read the A31 datasheet the I2S output shouldn't be 24bit up 192kHz?why 16 bit 44.1kHz?
- Why your choice was the ADAU1401? i was thinking use the PCM5102A (maybe it is stupid).


Anyway once more amazing hack :cool:

I will try it! :)

Thanks in advance,
 
- is it possible change the A31 to master and if yes we get somehing with that, maybe no need to change the Clock?

Not that I am aware of. Probably this requires programming of the WiiMu module. I know it is running some kind of Mediatech processor but that's about it. You can only make minor changes to the setup when connected to the WiFi hotspot of the module.

- As read the A31 datasheet the I2S output shouldn't be 24bit up 192kHz?why 16 bit 44.1kHz?

It will accept 24bit 192kHz files, but in software this will all be down-sampled to 16-bit 44.1kHz. This might be a hardware limitation of the I2S interface but could also be caused by the support for Airplay and Spotify Connect.

- Why your choice was the ADAU1401? i was thinking use the PCM5102A (maybe it is stupid).

I chose the ADAU1401 DSP such that I can program crossovers and loudness correction for a small WiFi connected speaker with a multi-way driver setup (woofer and tweeter).
 
Interesting build PA5cAL1.

I have a question and apologies if this had been asked. Is there an affordable I2S Bridge that could be used with a USB DAC? I’d like to connect the I2S out from an Up2Stream/pro to an external DAC or alternatively to DAC board with I2S (I think this is what you’re trying to achieve anyway) Ideally something which would be better quality than say and on board DAC found in a MacBook Pro.
 
Interesting build PA5cAL1.

I have a question and apologies if this had been asked. Is there an affordable I2S Bridge that could be used with a USB DAC? I’d like to connect the I2S out from an Up2Stream/pro to an external DAC or alternatively to DAC board with I2S (I think this is what you’re trying to achieve anyway) Ideally something which would be better quality than say and on board DAC found in a MacBook Pro.

A Khadas Tone Board may be worth a look (J9 for I2S connectivity)

Tone Board: Hi-Res Audio Board Designed for Music Fanatic.
 
Thanks for the recommendation, I had looked at the Khadas, it seems to perform well according to ASR, it’s a bit pricey though so I had discounted it in the hope of finding a halfway between price and performance. However it seems all the cheap options have wildly varying quality and performance.
 
This is for anyone whose interested in building a compact wifi enabled speaker with DSP functionality.


1. When sourcing propertiary crystal for this ADAU1701 board, what additional parameters of crystal should I choose? ESR, capacitance, drive level etc?


2. What hardware configuration is implemented in register control of SigmaStudio?


3. Are you planning to try wireless stereo pairing of A31 boards devices with separate ADAU boards? Will it work that way?