Our client for this project tasked us with developing the hardware
and software for a small-footprint, cloud connected "sound server"
capable of delivering "CD quality" audio to a line out connector
and/or internal speakers. In response to various triggers, the sound
server IoT device initiates playback of a sound that was previously
uploaded by the user to the cloud app server and linked to the
trigger. The linkage between trigger and sound - the "sound file
index" - is managed by the cloud app server and copied to the IoT
device as needed. The audio hardware also supports overlaying/mixing
the triggered playback on top of an input sound source. And running
concurrently, the IoT device also acts as a DMX lighting controller.
In addition to all of the obvious integration and development
challenges we worked through (spanning hardware to software, Django
application development on AWS to low-level assembly coding of the
Atmega328PB), we are especially proud of the audio I/O
implementation. The audio I/O block is a standalone board featuring a
MAX9744
Stereo Class-D Speaker Amplifier and a
MAX98091
Ultra Low Power Stereo Audio Codec. Power is provided by a single
+5V switching supply which is boosted to +12V to supply the amplifier, and
then down regulated and filtered for the input stage and codec.
We paid careful attention to board layout, power/ground plane isolation, and component selection to minimize distortion and noise wherever possible. Though not true "CD Quality" quality, the THD+N results speak for themselves.