Building a smart bluetooth speaker from scratch
I've always had a HomePod in my room, it plays music, answers my questions via Siri, and works as an alarm clock. In the winter break of 2021, I decided to take on the challenge in building my own smart bluetooth speaker.
Using procreate, I quickly came up with a design that had a screen which can display a wide range of content.
The problem was, I had zero idea of how to make one.
The first thing of course, was to gather all the components I needed. I needed a processor with internet and bluetooth connectivity, Raspberry Pi and OrangePi were chosen for the task. For speakers, I purchased these mid-range speakers, as well as bass and high-pitch speakers (not shown here). Because the speakers required work on analog voltages, I also needed DAC (digital to analog converters) as well as potential dividers to divide the electrical power to the different components.
After some hard work, I was able to piece out a working speaker system. It includes a bass speaker, a mid-range speaker, and a tweeter (high-pitch speaker). It does play the audio coming from my MacBook using a 3.5mm wire connected to my DAC.
The next part of course, was to design the actual interior of my speaker box.
This was one of my early designs, but soon I realized it wasn't realistic to fit the heavy speakers in this arrangement, especially since I have a screen in front of the speaker which would in fact block the sound waves and effect audio quality.
It turned out I had to used skills learnt during my middle school years from IB design class, namely Fusion 360. I made this 3D rack which would hold all the speaker components, while the chips are fitted to the side.
After reaching out to some 3D printing services, I was able to print out the components and everything fitted together seamlessly.
The next part of course, was how to fit the remaining components (DAC, Dividers, Processor) onto the structured.
I can't say it's pretty, but it works!
Now, I did say before that I wanted a screen at one of the faces. But it turned out it was impossible to find an OLED screen (nor LCD even) in the size and dimension I wanted. And thus I had to abandon this idea.
Luckily, I found out there was something called an LED matrix, which was basically a matrix of LEDs that can be programmed to display anything. Although it was low in resolution, it's still better than nothing.
After some programming hacks, I was able to control the matrix.
Most of the time however, it would function as a digital clock. So I had to draw up pixel images of each digit using Photoshop.
After adding the case, which is filled by speaker meshes that were also blue. I was able to get this really cool effect. As seen, the time is 19:26.
And that's about it, the speaker in all its glory! Bluetooth connected, displays time, and also has a not-so-reliable text-to-speech and speech-to-text system for you to control music. It was a remarkable journey. I learnt a lot about Product Design and was able to use my Computer Science knowledge, as well as stuff I learnt from physics class.
"Hey Chapter, Play Thunderstruck!"