Alternative components

Hello,
first time posting on the forum so I would like to congratulate the Daisy team on their fantastic work. It’s been a great learning resource on all things STM and audio.

I have some experience developing other types of interactive music systems but not so much with STMs. I started with the the official STM tools (Cube) and then landed on Daisy. My goal is to create a commercial synthesizer so I’m using Daisy has a reference but ultimately I want to produce my own boards. Since there’s less space restrictions on my board I would like to avoid BGAs, so I can have 4-layer boards and cook them at home.

That said I’ve had some hard time sourcing some components, which leads to my questions:

  1. I was thinking about substituting the STM32H750 for a STM32H753, which seems to be pin-to-pin compatible but with more memory. What would I need to change on libdaisy to accommodate this STM? I imagine the contents on libdaisy/core? How would I go about doing that? I would also have to change the memory map to avoid address clashing with SDRAM and so on.

  2. The AK4556 can’t be found anywhere and is listed as obsolete on Digikey. Is the WM8731 the more sound substitute? I realized you updated its source files recently, so would this codec be a good bet for the future?

Thanks!

You shouldn’t have problems with SDRAM address on a chip with bigger memory, extra SRAM would not use the same address as SDRAM. But also, you don’t really need to use libDaisy if you plan to use another MCU and different set of peripherals. To me it makes more sense to use CubeMX from the beginning instead of editing libDaisy.

WM8731 is a rather old chip whose audio quality is not particularly impressive. It’s very common, but I can think of at least 3 major eurorack companies that used it initially and switched to something better. It belongs to the past, not future.

Hi Antisvin,
thanks for your answer but I’m a bit confused. To my knowledge libdaisy offers a significant higher level abstraction compared to the official Stm tools, so maybe it would be nice to use it, specially for someone with little experience.

Regarding the codec, do you have any suggestions?

Thanks!

It’s not obsolete, it’s that their warehouse burned down in October 2020 and diminished all existing stock greatly.

After that, many manufacturers quickly bought up the remaining stock of chips and prices skyrocketed. So the best idea right now would be to use a different manufacturer, or wait until they have recovered.

1 Like

Yeah, I heard about the fire. I imagine it would take some time for AKM to ramp up production again.
Would you have a suggestion for an audio codec?
The CS42xx also seems to be a common choice in similar musical applications.

What about libDaisy? In order to use another STM32H75x, would it be just a matter generating a new linker script for the core?

A previous version of Daisy seems to indeed have used the WM8731, and it looks like the code is still there … so if you want to design the complete PCB from scratch why not do revision 1 with that - it has been fine for a lot of Eurorack modules in the past.

You might have to check whether some of the WM8731’s settings are sent to the chip via i2c, if so that’s already an extra thing you have to take care of on the hardware side. It’s best to figure this out using the datasheet, and looking at the libdaisy code.

Have a look here, some of the code commented out but still present:

https://github.com/electro-smith/libDaisy/blob/master/src/daisy_seed.cpp

1 Like

Since the current version of Daisy Seed has an unexplained problem with 1Khz noise, I wouldn’t trust any of their previous designs to be any better.

Yeah, I’m aware I would need to setup the codec. Actually the code for the WM8731 was recently updated but might still need some work, according to the Daisy team.

@ifranco To answer both of your original questions:

I have a daisy seed with an H753 on it, that passes the normal tests with no changes to libdaisy. In order to use the additional flash the linker script would have to be updated. There may be a few other (crypto, etc.) peripherals that aren’t on the H750 that you would have to change some defiines in the makefile for if you wanted to use.

I also have a daisy-based board running with the WM8731 using the current libdaisy drivers. I haven’t fleshed out all of the extra features (volume controls, filter settings, etc.), and I haven’t tested it with it’s own crystal, but format selection, and a few other things are configurable, and the driver is functional.

@shensley
Stephen, thanks a lot for your answer. These are great news!
Would you be willing to share your linker script and the schematics for the WM8731 on Daisy?
Maybe I’ll be able to contribute to the driver…
Cheers!