Week 7: Electronic Output
We were assigned to tackle the most intimidating/challenging aspect of our final project or, our minimal viable product (otherwise known as "MVP week") .
Bone Conduction Transducer
In combination of last week's asignment where I tackled the IS2 mic on a ESP32 microcontroller interface, I attempted to get my output sensor of choice: the
adafruit bone conduction transducer.
I selected this tranducer as my choice of output for my wearable device because of it's ability to directly transfer sound through vibrations on the bone rather than through the ear canal.
This is ideal for my personal assistant device because it won't block out regular sounds and should conceptually be compatible with headphones or AirPods.
Auditory stimulation that I find suprisingly overlooked despite the novelity it delivers as a relatively private yet non-exculsive mode of audio input.
Before, I played around with the electronic, I designed a small casing to protect the small electrical components from enviornmental factors and prevention from the circuit shorting.
Electronic Hardware
Now moving onto the fun part, I spent a lot of time struggling to find a compatible microcontroller that worked for both audio input and output in I2S format.
I started off with an ESP32-S3, however, I quickly realized that it's unfortunently lacks a digital to analog converter (DAC) which would prevent me from utilizing the IS2 mic simutaneously with the transducer.
Eventually I landed on adafruit's
ESP32 feather which has DAC, IS2 peripheral, WiFi, and Bluetooth compatibility.
Though the size of the board is not ideal for the final device, it serves as solid board that I an experiment and run tests on.
Eventually, I will need to find a way to scale the board down with the neceassary features.
From there, I found various resouceful documentation for outputting sound via an
IS2 Amplifier (MAX98357A) from the ESP32 board.
I specifically found the DroneBot Workshop
ESP32 Sound - Working with I2S specifically helpful as it walks through all the basic principles for both the input and output aspect of working with I2S audio.
Their
documentation linked in the video was also extremely resourceful.
Taken from this write up, I found code for connecting the microcontroller to wifi and streaming a radio station/music file of choice from a connected speaker.
Although the bone conduction transducer may not seem anything like a speaker, functionally it works the same.
I hooked up the transducer to the amplifier as you would normally with a speaker:
Bone Conductor Working in Action:
The bone conductor performs effectively on flat or hollow surfaces but faces significantly more difficulty on dense, uneven surfaces like body parts.
I am wondering if it will involve tuning the frequency to be more compatible with specific surfaces - in this case bone and skin.
This is something I will need to troubleshoot throughout the upcoming weeks.
Future Milestones
I plan on further researching on making the bone conductor more compatible with tranfering audio to the bone. I found a published paper on
Head-mounted display for multimodal alarms in intensive care units
using the same bone conductor transducer and feather combination to make a headmounted display that is able to produce audio via bone conduction.
I will also need to plan out a solution to minimize the electronics, specifically the microcontroller so that it will fit compactly behind my ear as planned.