After the success of retrofitting a Raspberry Pi into my old guitar amplifier, I started the design of my next project. This time I didn’t want to reuse old parts. I had the following objectives.

  • Cabinet that could be mounted in the kitchen.
  • Small speaker size.
  • Powered from one replaceable power supply.

My long-term goal is to create a Sonos-like system for my entire house. My girlfriend and I want to have zone-based audio (think: stream to each room at the same time) for parties and our own enjoyment. My first step was to build a system for the kitchen and experiment with some off-the-shelf parts.


I also wanted to learn how to build a wood cabinet from scratch. I’ve got some experience in wood-working from my days of building Dance Dance Revolution dance pads from scratch. This would be different – it needed to be light but durable.

My original speaker, PurpleBlu, was a bit disappointing in audio quality. Despite the size of the speaker, it sounds pretty poor. I learned this is probably because it’s not a full-range driver. It’s just… a speaker. What I needed for this project was a full-range driver.

Most speakers cover only a small range of frequencies. If you pull the cover off your home Hi-Fi speakers you’ll probably see 3 speakers in one – one for the high-end (treble), one for the mid-end (vocals) and one for the low-end (bass). What I needed was a full-range, or essentially three speakers in one.

The Parts – Hardware

I ended up finding these little guys – Gikfun 2″ full range speakers on Amazon. In theory, they would be perfect. I just needed something to power them, and thanks to the power of predictive analytics on Amazon, they suggested a low-power amplifier. I went with a Drok 5 watt class D amplifier.

Why did I use that amplifier instead of something more powerful? Simple – I could get a power supply that was powerful enough to power both the Raspberry Pi and that at the same time with minimal modifications. Speaking of the Pi, I went with a Model 3 B+.

I made a critical decision which affected the project as well. I’ll cover it in more detail in a later post. My decision was to directly connect the headphone output jack of the Pi to the amplifier.

Finally, I bought a few small accessories since I was building my own case. I got a set of standoffs so I could mount the Pi to my case (and the amp).

Mistake #1: I used the wrong size screws to mount the Pi.

What I failed to look up before I ordered this set was the size of screw the Pi and amplifier used. It turns out they use M2.5. The kit I ordered was M3. When I assembled the whole thing, the screws did work, but it was an extremely tight fit.

The last piece I ordered was purely for quality of life. I hate devices that have hard-wired power cords you can’t replace. They always end up being too short, too long, or attached to some awful brick that takes up too many outlets. For this project, I added a Micro USB panel mount extension. This meant I could use any power supply I wanted.

Case Design

After I ordered the parts, I set about my case design. Initially I thought about using 1/4″ sheets of wood to make a box. After some thought, I decided to use 1/2″ sheets as a safety measure. If I was off with my screws, it wouldn’t matter as much. It would also give it lots of durability.

I first determined how much space the speakers would need on the front. I used my scale ruler (the first time I used it for more than just a straight line!) to sketch out a small design. To keep it simple, my design eventually hinged on one decision.

  • Have the front and back screw onto the box.
  • Have the front and back inset into the box and screwed on from the side.

I settled on the former. It would be an easier first design, since there were already lots of unknowns. It also made the cuts a bit more forgiving. If they were off slightly, I could still make it work.

The case has the following parts.

  • Top & Bottom: 8″ x 12″ x 1/2″
  • Left & Right Side: 3″ x 8″ x 1/2″
  • Front & Back: 4″ x 12″ x 1/2″

For extra stability I added two inside panels, same size as the left and right side panels. Later I would learn these weren’t necessary at all.

With the design in hand, I went to the hardware store, bought a 2’x2′ 1/2″ sheet of wood, marked out the cuts I wanted them to make, and they cut it down to size. I bought some 1″ deep screws as well to secure everything together.

Mistake #2: I didn’t account for the saw blade width when I measured my cuts.

An obvious mistake in retrospect, but it bit me. When I marked out the cuts, I failed to account for the width of the saw blade. This meant with each cut, I lost about 1/8″ off the wood panel. As it turns out, this only affected the two inside panels which weren’t integral to the design.

With the supplies in hand, I was ready to start construction. Next time I will cover the dry fit and how I started to put the project together.

Published by Elias Puurunen

Elias Puurunen is a versatile entrepreneur and President of Northern HCI Solutions Inc., an IT consulting firm which has worked with Fortune 500 companies, governments, and startups. He has spoken at conferences in Canada and the United States and has been published around the world. Part of his work led to an agreement between the Canadian Government and Siemens Canada, creating jobs and investment into green infrastructure. His company's event management app, the Tractus Event Passport connects people at conferences, seminars and symposiums across Canada. Today he is a consultant and advisor to technology firms and government organizations. He lectures at the University of Waterloo on Coding for Policy Analysis for the School of Public Policy. He is the author of Beyond Passwords: Secure Your Business, a cyber-security book for small business owners.

Leave a comment

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: