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.

 

Sketch

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.

Processor Chips, Raspberry Pi 4B (Left) and Orange Pi (Right)
A speaker
Digital-to-analog converters and potential dividers

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.

 

Initial Design

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.

Design using Fusion 360

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.

LED Matrix

After some programming hacks, I was able to control the matrix.

My Logo
Weather!

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.

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.

Speaker at dark

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!"