My name is Ben, and I recently updated my audio dev board "Sonatino" after receiving a lot of good feedback from the initial launch a year ago.
I began working on this after building a few projects that required audio capabilities. I was getting tired of wiring up external DACs and amplifiers to ESP32 boards, so I decided to look for a more compact, integrated solution. The available options either had larger footprints, non-standard connectors, or features that I didn't typically need for my projects. That's when I started working on a custom PCB that could be a sort of "audio swiss army knife". The result was Sonatino.
Some have criticized the use of a DAC and ADC that support HD sample rates and bit depths, especially when other factors will limit the usefulness of anything over 44.1kHz/16-bit audio. I actually agree - HD audio in this context is mostly overkill, but most modern audio chips support it and it's entirely optional. My primary goal was for the ADC and DAC to be easy to use - no I2C configuration required (like many of the CODECs available). It needed to be easy to use from an Arduino programming environment. The chips I selected (from Cirrus Logic) were a good fit; they just also happened to support higher sample rates / bit depths.
The latest revision drops the built-in antenna in favor of an external one. It also has a better speaker amp (3.2 W), an RGB LED, and improved power circuity. It's been a fun little board to work with!
Check it out and let me know if you have feedback. Price is currently higher than I'd like, but that's a result of it being manufactured at low volumes.
Is there an SVD file defining the Sonatino's specialized peripherals so one can use rust2svd to create a Peripheral Access Crate (PAC) specific to the Sonatino? I'm interested in the other ergonomic Rust HAL representations as well.
https://github.com/esp-rs/esp-pacs/tree/main/esp32s3
https://github.com/rust-embedded/svd2rust
https://github.com/rust-embedded/awesome-embedded-rust?tab=r...
Other than the MCU difference (ARM Cortex-M7 vs ESP32), I wonder if you are familiar with it and can talk more about the differences. From afar, it seems like the Daisy has a bit more muscle while being cheaper ... but raw processing power is not always the whole story!
Thanks!
--
1: https://electro-smith.com/products/daisy-seed?variant=452342...
For me, it comes down to convenience and connectivity. Sonatino has WiFi, BLE, a built-in 3.5mm jack, integrated amplifier (for a small external speaker), and battery charging. I was building some toys and interactive audio/art projects (example: https://hackaday.io/project/191186-sax-a-boom-clone ), and Sonatino made it really quick to get up and running.
At this price point an arduino due seems like maybe a better comparison. The Due has 16 analog inputs, 2 DACs, bluetooth, but no wifi, no sd card, and no amplifier. And of course it's a much larger form factor.
Hm. It's a narrow niche - compact, battery, speaker amp, audio in/out, wireless - and you need to want at least half of those for this to really justify the price - but might be a good board when a pi is overkill. Even so, I just yesterday finished an esp8266 / max98357 build; yeah, wiring up the six pins on the max is not as convenient, but then again a d1 mini and the max are both less than $3 apiece, and $6 is a far cry from $50. (Note the max98357 is the same amplifier present on the sonatino).
For reference, I currently use a Motu M2 which gets roughly 3ms in, 3ms out at 128 bit buffer size and 6ms in 6ms out at 256 bits. The 3ms out is fine, but when I get to 6ms out I start to notice the lag when playing virtual instruments from a MIDI keyboard.
But I don't really agree with those people who insist that 44.1/16bit is all you need.
I do all my audio work at 48k/32-bit float. There is a reason for this: it's to avoid clipping when you are doing destructive effects. With 32-bit you can spike above zero-db but still preserve the curve of the waveform, and bring that spike back down under zero-db before you render.
Not sure how this impacts your board or your use-case, but I wanted to point this out. It's probably overkill in your context.
I convert everything to 48k/32-bit, even when I am ripping from AAC video, converting mp3s, whatever.
I could have worded what I said better; I don't think people are arguing it's never needed, just that on a small board like this (with limited space for more filtering, isolation, balanced inputs/outputs, etc), other factors can somewhat limit the usefulness of higher sample rates and bit depths. That said, the audio quality has been great for the things I've done with the board.
Annoyingly if you do have a real DSP you seemingly need Cadence's proprietary XCC compiler to use the Xtensa HiFi SIMD instructions. But given that these probably aren't available on these host cpus anyways the gcc build is probably just fine!
Would be cool to have some of the tip top DSP software actually usable. Alas SOF kind of gets to the last quarter mile then drops dead, isn't generally usable, it feels like. But something like this might perhaps make a somewhat interesting way of getting close-ish.
I'd like a very cheap WiFi 2-way audio device that one could use like an "Alexa / Echo" sort of thing against a self hosted (LAN) powerful server that can do all the STT, TTS, audio streaming, etc. locally. Does that exist already?
https://github.com/rossumur/espflix
https://github.com/rossumur/esp_8_bit
https://github.com/bitluni/ESP32CompositeVideo