Daisy Seeds are Back in Stock!

Hi everyone,

We’re excited to announce that the Daisy Seed is back in stock!

TLDR: There’s been a hardware revision. The onboard codec is different, but the board is functionally the same and maintains compatibility with the original Daisy Seed (after a firmware update*).


What’s New? What Changed?

In case anyone missed it, 2020-2021 has been rife with supply chain disruptions, factory fires, and chip shortages.
Due to the AKM factory fire, and subsequent obsolescence of the AK4556 Codec, we were forced to revise the Daisy Seed in order to continue manufacturing it.

The new Daisy Seed is compatible with the old, but uses the WM8731 codec instead of the AK4556 (which is no longer in production).

For users that have firmware for the Daisy Seed, it will need to be recompiled with a recent update to libDaisy that supports auto-detecting the new hardware and initializing the correct codec. This means that all new firmware will be backwards compatible with the original Daisy Seed.

*Firmware Update:

For those needing to support both versions with older code, we recommend updating libDaisy to the latest version.

In most cases, no changes are necessary, and you simply need to recompile libDaisy, and your application firmware to support the new hardware.

The CHANGELOG entries, and release notes since we started versioning libDaisy demonstrate how to migrate code through any of the (small) breaking changes over the past several months.

If your code is particularly old, there may be a few other changes that happened prior to the first release of libDaisy. These include:

  • callback notation change from float** in, float** out, size_t size to AudioHandle::InputBuffer in, AudioHandle::OutputBuffer out, size_t size
  • system timer functions changed from: dsy_system_getnow(), dsy_system_delay(delay_ms), etc. to System::GetNow(), System::Delay(delay_ms), etc.

The earliest libDaisy version that supports the new Daisy is v2.0.0

Newcomers

We’re also excited to welcome anyone who’s been interested in the Daisy. We’ve been making a lot of effort (and have much more underway) to make it easier to get started with the Daisy.

The Product Page now has links to a number of resources, including an updated graphical pinout, datasheet, and links to guides including our Getting Started Guide.

We also recommend checking out, and following along with the our video guides, and stay posted throughout 2022 as we continue to add more resources.

In addition, we are currently revising our reference documentation for our software libraries to make them more useful, as well as adding guides specific to working with different aspects of the Daisy in C++.

Arduino Users

For those of you using Arduino, and the DaisyDuino library everything will continue to work as well!

However, we are reliant on the stm32duino Arduino Core. The update that allows the same type of hardware compatibility that we’ve brought to libDaisy will be releasing on or near 24 December 2021.

At that point, you’ll be able to update your board support, and DaisyDuino libraries from the Arduino IDE.


If anyone has any questions, or finds anything not mentioned above when migrating older code to the supported software, don’t hesitate to respond below.

Best,
Me and the rest of the Electrosmith Team

3 Likes

So the late AK4556 codec (may peace be upon him) had HPF enabled permanently by a pin connected to the ground. WM8731 controls its digital filter over I2C registers and it can be toggled in software. Are there AC coupling caps in addition to that? Any chance that it’s easier to liberate this revision of Daisy Seed to have V/Oct I/O via codec?

And second question, should we expect a new version of DaisyPatch with WM8731? Or will they contain different codecs on Daisy Seed and breakout board?

1 Like

We were really aiming for 1:1 functional compatibility. So we didn’t want to mess with any potential “gotchas” on the hardware while trying to bring it back in stock quickly.

This is a cool idea, but I wonder how well a sigma-delta converter would track something that requires the precision of 1V/oct. Definitely worth the experiment at some point. If you’re not afraid to pull a few 0402 caps off of the board, it wouldn’t be too hard to try :wink:

The new seed works with the old Daisy Patch. So for the time being we will be selling them with mixed codecs.

Long term, we obviously can’t continue to use the AK4556. So we are still discussing solutions, whether that’s a minor update to the Daisy Patch with a WM8731, or something else is still TBD.

Ehhh might be good enough? OWL1 used the same codec and the modular version is DC coupled, I don’t recall anyone having problems with this. However V/Oct calibration support was added fairly late and mostly used on newer hardware with different codec. I guess I’ll calibrate mine and check how accurate is the same codec there before vivisecting any Daisy Seeds.

1 Like

Very interesting, I didn’t realize it used the 8731 DC coupled. I’ll be curious how your test goes!

The question is not whether it can process DC, I know that it handles it fine. Calibration is just to get it to convert samples to volts with reasonable accuracy. This gives you voltage scale and offset from 0V that is stored on internal flash.

From a quick test, it tracks well with less than 1% error per octave in 4 octaves that are usable (±5V range on module, sequencer outputs only positive voltage).

I recall that codec datasheet only describes using it as AC coupled, but I think that’s just because how you would typically want to use an audio codec, not some inherent limitation preventing DC coupling.

Will you be adding the updated schematic to Hardware/reference/daisy_seed at master · electro-smith/Hardware · GitHub ? I’d like to add a second WM8731 codec so I’d like to see how you’ve done it please.

Yes, thanks for the ping on this.

We should have this up this week!

1 Like