<div class="textcontainer"> <h1 style = "text-align: center;">Bone Conduction Personal Device</h1> <br><image style = "width: 70%" src = "13.7.png" class = center> </image><br> <p class="margin"></p> This project served as the culmination of nearly all the prior weeks' assignments, integrating skills such as CAD, sensor implementation, miniaturization with ESP32 Xiaos, custom PCBs, and molding and casting. Each small component was developed with the final project in mind. <br><br><image style = "width: 70%" src = "13.1.jpeg" class = center> </image> <br><br> Final Components: <ul> <li>ESP32-S3</li> <li>I2S Amplifier (MAX98357A)</li> <li>Custom PCB board</li> <li>Micro Lipo-Battery</li> <li>Bone Conductor Transducer</li> </ul> <br><br> <h2 style = "font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;">CAD</h2> The first critical task was designing and ordering a custom PCB to integrate and further miniaturize the electronics. With the PCB completed, I had the freedom to focus on designing the enclosure. I spent considerable time creating a compact encasing that seamlessly integrated with the ear cuff I had designed during CNC week. The most time-consuming part was accounting for key features such as the charging port, an opening for the bone conductor, and screw fittings to allow for a non-permanent enclosure. Additionally, I delibrately subtracted the mesh shape of the cuff from the encasing to ensure the cuff fit perfectly. <br><br><image style = "width: 70%" src = "13.2.png" class = center> </image> <br><br> <h2 style = "font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;">Ear Cuff</h2> After experimenting with plastisol and silicone, I pivoted back to resin printing upon discovering that flexible resin had been available in our storage all along. Following a test print to evaluate the material's flexibility, I moved on to integrate the same copper wire used previously in the silicone cuff into the clear flexible resin. To accomplish this, I modified the 3D model by cutting a thin groove where the wire could be embedded. <br><br><image style = "width: 70%" src = "13.4.png" class = center> </image> Once the print was completed and cured, I carefully bent the copper wire to fit snugly into the groove and secured it in place with superglue. I then applied a thin coat of clear resin over the wire using a brush and cured it. This process was repeated several times to fully embed the wire within the print and to ensure the cuff’s finish matched the rest of the design's shine. Finally, I smoothed out rough edges and any drips left by the supports using sandpaper, achieving a polished and cohesive look. <br><br><image style = "width: 70%" src = "13.6.png" class = center> </image> <br><br> <h2 style = "font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;">Coding and User Interface</h2> Initially, I planned to create a personal device incorporating both a microphone and a speaker. However, considering the limited time frame of the semester, we realized the project would be too ambitious. As a result, we decided to scale down and focus on a single aspect of the concept. We prioritized establishing the speaker-to-microcontroller interface using Wi-Fi, setting aside the microphone functionality. This shift led me to target the device’s functionality toward delivering scheduled notifications linked to my Google Calendar. <br><br> To achieve this, I needed to integrate a text-to-speech API into the speaker code and connect it to Google Calendar. It took a while for me to figure out how to implement the text-to-speech on a esp32 interface as a majority of the time was spent trying to code from scratch. We came very close to getting the text-to-speech functionality working using the OpenAI TTS API with the following code. However, there seem to be issues with fully processing the data, as parts of the sentences are being cut off. <br><br> <iframe src="https://app.arduino.cc/sketches/746d10cb-d1bf-4246-86fd-6485578625c0?view-mode=embed" style="height:510px;width:100%;margin:10px 0" frameborder=0></iframe> Additionally, due to my limited knowledge at the time about syncing Google profiles and navigating security measures, I was unable to implement the Google Calendar integration within the remaining timeframe. As a workaround, I pivoted to developing a separate web-based interface during <mark2><a href = "../09_networking/index.html">Week 9</a></mark2>. This interface allowed users to schedule reminders by entering specific details such as time and date, which were then transmitted wirelessly to the device to deliver notifications at the designated times. In the meantime, we discovered a way to generate text-to-speech without using our own API key by utilizing a few lines of code we found online that required only a couple of libraries (facepalm). Combining this approach with the web interface and code components, the final project eventually came together. <br><br> <iframe src="https://app.arduino.cc/sketches/dc9ec67c-7128-4285-b663-db71e540c476?view-mode=embed" style="height:800px;width:100%;margin:10px 0" frameborder=0></iframe> <br><br><image style = "width: 50%" src = "13.8.png" class = center> </image> <h2 style = "font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;">Putting Everything Together</h2> Once everything was soldered, hard-coded, and uploaded to the microcontroller, assembling the final device was the most enjoyable part. It was incredibly satisfying to see everything fit together perfectly as planned. To finish, a final coat of flexible resin was applied around the device and between the ear cuff and hardware casing, creating a permanent bond between the two components. <br><br><image style = "width: 70%" src = "13.3.jpeg" class = center> </image> <br><br> Unfortunetly, I ran out of time to get the nice video edit of the project in time and uploaded. Below is the demo video I took the day of final presentations. I will be reuploading a completed version of the video on my own time soon! <br><br> <video width="50%" controls muted class="center" src="IMG_3971.mov" type="video/mp4"></video> <br><br> <h2 style = "font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;">Future Directions</h2> As mentioned at the outset, the ultimate goal for this device is to expand its functionality by incorporating a microphone, enabling it to perform basic personal assistant tasks. This would transform it into a discreet personal assistant that you can carry with you, rather than being confined to a stationary device like Alexa in your room. <p class="margin"></p> <br> <image style = "width: 20%" src = "Final.png" alt = "End Pic" class = center> </image> <br><br> </div>