How does the daisy patch have double the audio in/outputs?

Hello, first post!

I’m curious to know how the Daisy Patch does quad audio IO when the seed only has dual audio IO. Some sort of ultra fast switching multiplexer perhaps?

Just wondering. I just bought a Daisy Seed not knowing that the Patch had that sort of functionality. The project I intend to make with the Seed is not eurorack, but I was going to add an extra audio output/input using SPI before seeing that.

Just wondering if that information is available. Otherwise, I’ll get it figured out!

You can see from the daisy patch schematics that it uses an external audio codec to get extra audio channels. Hardware/ES_Daisy_Patch_Rev4.pdf at master · electro-smith/Hardware · GitHub

1 Like

The MCU used by Daisy Seed has several available SAI (serial audio interface) peripherals used for connecting audio codecs. One is connected to the onboard codec, another is available for connecting extrernal codecs like on Patch. You don’t have to use the same codecs like Daisy Patch does. SAI supports I2S, TDM and a few less common formats for audio data and lets you synchronize multiple codecs.

You most likely don’t want to deal with SPI in this case as it might require reinventing the wheel too much. That said, older MCUs from ST had a simpler I2S only peripheral predating SAI and it was shared with SPI peripheral block.

1 Like

Ah there they are, thank you! I poked around the github but not enough.

Perfect, thank you for this. I’m still kind of new and forgot that SPI isn’t the ideal audio protocol. Also, I don’t mind using the SAI peripherals at all. If I grabbed another one of these WM8731s, would that be the easiest codec to implement?

It’s easy from software side as libDaisy has support for them. However this codec also needs an I2C connection for controlling it, so you’ll need to assign pins accordingly. There are codecs that only need I2S (SAI) connection without any control protocol, although that means less flexibility for configuring them.

If the code for the I2C connection is part of libDaisy as well (which I imagine it is :sweat_smile:) then I’m happy to do it this way.

Alternately, the AK4556 that’s used in the Patch schematic appears to be discontinued. Is there a newer codec that the Patch uses that I can use with similar libDaisy support?

Of course WM8371 is fully functional in libDaisy - it’s used by new Daisy Seed revision.

And yes, AK4556 was discontinued after a fire on Asahi Kasei fabric and is pretty much unobtainable in quantity. I think that there’s been no Patch revision with another codec yet because there is no available pins for adding an extra I2C connection. So it would require some kind of redesign rather than just a different codec.

Third alternative supported by libDaisy is PCM3060 that is used by Patch SM, it also needs I2C.