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.
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.
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.
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...
It’s way too easy to think “I can get 10 PCBs for $5, and the total BOM for this is only X on LCSC - what a rip off!”
This ignores:
Assembly costs, Shipping, Taxes and duty
And then when you actually sell something:
Packaging costs, Distribution costs, Platform fees, Things getting lost in the post, Refunds, Etc…
A good rule of thumb is that you need to charge at least 3x your production cost to actually make any profit at all.
And all this ignores the actual time that’s invested…
I wouldn't be doing this if I didn't just enjoy making stuff. I probably won't break even for a long time, and even then the margins aren't great.
If you deploy to production and it goes live in a matter of seconds or minutes, be grateful you're in software :)
I could improve things by doing the SMD assembly at home. But that would only shave off a couple of weeks and some components are really not suitable for DIY work.
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.
Totally agree though, that 16-bit isn't enough for guitar effects.
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.
Assuming the mp3 files originated from music CDs, isn't converting from 44.1k to 48k destructive?
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.
https://github.com/rossumur/espflix
https://github.com/rossumur/esp_8_bit
https://github.com/bitluni/ESP32CompositeVideo
Seems like this could be a perfect platform for intercoms, with the right firmware.
2.4Ghz LoRa might be better, but ESP-Now seems like it would be a perfectly good walkie talkie.
If there was an end-user-ready version with a speaker, a mic, and a display, it could probably replace a lot of audio related devices, but even as is it seems perfect for a mesh belt pack intercom.
I am looking for 3+ audio input channels at 24 bits each, synchronized capture. Can this help?
Thanks.
Thanks for the part recommendation. :-)
Do you need analog inputs? This board has two input channels and two output channels via on-board DAC / ADC.
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?