Advice needed on adding external codec

I’m currently trying to add a WM8731 as an additional external codec - the purpose is to create a board for my development kit: Daisy Seed Development Kit - #7 by pauldee. I’m copying the V5 schematic for the Seed: https://github.com/electro-smith/Hardware/blob/master/reference/daisy_seed/Daisy_Seed_Rev5_sch.pdf

I’m connecting to the external pinouts of the seed, so where it uses SAI1, I use SAI2, so I assume I replace:

SAI1_SD_A with SAI2_SD_A
SAI1_SD_B with SAI2_SD_B

But then some of the others are more confusing, I assume I replace:

SAI1_FS_A with SAI2_FS
SAI1_MCLK_A with SAI2_MCLK
SAI1_SCK_A with SAI2_SCK

The for the I2C, I assume I can use the I2C available on the pinout and replace:

I2C2_SDA with I2C1_SDA
I2C2_SCL with I2C1_SCL

Then I think I can use the shared ground?

Here is the schematic:

https://raw.githubusercontent.com/lucidcoding/daisy-seed-development-kit/main/Hardware/ExternalCodec/Codec.jpg

I absolutely welcome anyone marking my homework and pointing out and possible errors I have made copying the schematic!

Hi Paul!

That’s an awesome idea to add an external codec module for your dev kit project!

Referencing the Daisy Patch schematic could be helpful as it has external audio codec (though it’s not the WM8731 in this schematic) connected to the Seed for the adding 2 more audio I/Os

I hope you find this helpful. Keep us posted with any update to your schematic!

Yes, there was a time when I was going to refer to that, but that was before the infamous warehouse fire that destroyed the world’s supply of AK4556 codecs! This is why Electrosmith changed it. They’re still available but they cost about £50! It’s a shame because that implementation looked a lot simpler. It would be really useful if Electrosmith published the Seed v5 scematic.

I was just thinking that schematic could help in figuring out how an additional audio codec like the WM8731 can be connected to the Seed in general. If the two audio codecs are pretty different, then I can send your schematic to the team for a review. Let me know what works, thanks!

I do wonder if we have an updated schematic of the Daisy Patch with WM8731 as the additional audio codec.
I can ask on Monday and get back to you when I hear back. Thank you for the wait!

1 Like

Wow, that would be awesome, thanks. Both for the review and the latest scematic. Regarding the review, there’s the scematic I posted above, but it’s a bit simplified. Would a Kicad file be ok?

I’m wonder, why use WM8731, rather than pcm3060?
Is this just because of not having schematic for Seed Rev 7?

Pretty much that! I’m not really a hardware expert but I can follow a schematic. Have they started using the PCM3060 now then? I’d be interested in seeing that schematic. I have some PCM3060s lying around I could do an alternative codec module.

pcm3060 is used on Seed Rev 7, Seed 2 DFM, and patch Submodule, if I’m not mistaken.

pcm3060 doesn’t need I2C configuration, it can be hardware configured using 3 pins. PCM3060 datasheet has reference designs for analog in and out.

The Rev 7 schematic would be handy, or at least the section relating to pcm3060 and associated analog.
(my guess is that E-S haven’t gotten around to editing the Rev 7 schematic to make it less easily cloned)

The fact that it’s simpler is definitely appealing to me! Yes I hope they release that scematic.

Even without the schematic, it should be easy to breadboard something that works.

On further thought, these are high speed serial lines, and might be a bit sensitive to wire length, connectors, etc.

Hi Paul!

I’m sorry it’s taking long. I wanted to provide you with an update.
I was able to bring this up to the team, and they told me that we should be able to provide a schematic and/or resource on how to connect WM8731 to the Daisy Seed.

I greatly appreciate the wait. I’ll post here again with what you need soon!

No worries, I appreciate your help!

So here it is so far, and mostly successful!

Here is the diagram:

And here is the code for it:

Here are some examples of the output. Here is the code for outputting a tone:

And here is a video of the result:

Someone mentioned about the long wires to the SAI causing a problem. As you can see, as I move the wires, it causes interreference. I wasn’t expecting this kind of interreference with digital signals, but I guess it is the ground side?

Here is the code for just sending a signal received by one codec and sending it to the output of the other:

Here is a video of the internal codec receiving a signal and sending it out of the external one:

This sounds OK.

Here is the external codec receiving the signal and sending out of the internal one. It is much noisier:

So I’m hoping if I do this all on one board with short traces then it will not have the noise issues? Is there anything else I can do to reduce noise issues? Choice of resistors or capacitors? separating analogue and digital ground? moving some components around? As I’ve mentioned before, I’m not an electronic engineer, just someone who can follow a schematic.

3 Likes

Hi Paul!
Thank you for the wait.

It’s really awesome to see this update!!

As for troubleshooting the noise, we definitely recommend starting with shorter wires! Longer wires are going to act more like an antenna and pick up interference from the environment, or the other wires as you move them around relative to each other. That should all be fixed by moving to a board with short traces.

Keep us updated for sure! This is a really cool project :slight_smile:
Let us know if you have any other questions.

1 Like

Really cool stuff @pauldee!

@Takumi_Ogata, will you also be providing the info needed to connect an addition pcm3060? Since the WM8731 is EOL, I would much rather use the pcm3060 for my project.

Thanks!!

2 Likes

Thank you for your response. I figured that was the issue. It’s not such a big deal as this is a development kit for sandboxing ideas, but on a finished project it will be on one board, and I will definitely keep the traces short.

1 Like

Yes and for me it will be good to have another option codecs.

The SAI should be used in a very similar way for these codecs, so I think you should be able to reference the Patch schematic and also datasheet.

@pauldee, did this end up being the case with WM8731?

Still no reference schematic for Seed with pcm3060 - should it use the same cap and resistors on the audio out as the earlier board?

I mostly followed the Seed v5 schematic, but I did refer to the Patch schematic, v4 I think? With the original codec.