The one with the Raspberry Pi

Sindhu
5 min readJan 15, 2021

--

What started as a joke which I said when I was bothering my husband “accidentally” (might I add, more that once) while he was in a meeting, is now actually complete 💃🏻. The idea is to have a switch-operated LED matrix on our work desks to indicate the type of meeting we are in and to warn our better half (by that I mean him, duh!) and prevent interruptions.

I was waiting for an idea to hit me to use the Raspberry Pi at home and when it finally did I was psyched to develop something with it. So, I immediately got on AliExpress and ordered few buttons and an LED matrix, in hopes that I could get cracking on this ASAP. To kill my buzz, the items I ordered took over 3 months to be delivered, right in time for Christmas. It felt like it was the best time to work on something creative since I had a week long Christmas break. In my head, I thought I could finish this project during the holidays and publish something by New Year, totally makes sense right? WRONG! This project took me more than 3 weeks to finish 🤦🏻‍♀️ 🤷🏻‍♀️.

Before I started working on this, I had no experience with electrical circuits, and did not know more than just the basics of coding in Python. Post completion, I feel like it has been a pretty cool experience. I have learned new things like, making electrical connections on a breadboard, coding on a tiny computer, and using a soldering iron. 👩🏻‍🏭

A lil bit of Alexis…can’t hurt

My plan was to implement 4 meeting “states” and an additional “turn off” state on the LED matrix. I did not want to use textual messages for the “states” and only wanted to use a neon color palette. By using symbols I realize that I have made some of the visuals unclear‍, which is why this is version 1.0 😬.

  1. Mic ON 🎙 — don’t say something because my whole team can hear you (been there, done that, amirite?!) 🙄

2. Video ON 🎥 — they can see me, so don’t do something silly behind me 🙃

3. Audio ON 🎧 — just listening, can be slightly bothered. Btw, it is supposed to be a pair of headphones, although it looks a lot like a house 😛

4. DND 🚫— absolute, 100% focus mode. Don’t even breathe loudly 🤫

5. OFF — turns all the LEDs off

See the lights in action,

Yay, it works!

Getting into the nitty-gritty of how I arrived at this point.

Phase 1: Gathering and getting started

The following are the components I used for this project:

From left, Raspberry Pi 4, LED matrix, jumper wires, push buttons, breadboard, and soldering kit.

I started off with the basics for week 1, which was to wire and light up a single LED using a simple Python script. Then I moved towards wiring and lighting up all the LEDs in the WS2812B matrix. I installed the rpi-ws281x library and at this point I did not connect any switches.

We have LIGHT! OMG, the brightness 🙈

Phase 2: Switches and symbols

The next part was to connect a switch, so the LEDs would light up only when the switch is pressed. I also started looking into using symbols and colors.
FYI, pinout command turned out to be handy while wiring. The command shows the GPIO pin numbers of my Raspberry Pi.

From left, cute-as-a-button button wired via a breadboard, positioning of the LEDs in the matrix

In order to get the symbols to show up on the matrix, I had to understand the positioning of the LEDs, which took me a while. Then, I used an online emulator to visualize the images and later implemented it in Python.

As you can tell, I overuse post-it notes

Phase 3: Switches and soldering

Now that I figured the switch functionality, I then switched (😉 a lil electronics pun for ya) to using push buttons which I bought from Amazon, soldered them to the jumper wires, connected to the Raspberry Pi GPIO and voila, what a mess! 🤯

Sheeeesh! Too many wires 😟

Phase 4: Presto Change-o! 🪄🎉

I made some improvements to the Python scripts and re-purposed an old BirchBox box to encapsulate the whole contraption. I had some spray paint left over from last year, which, I used for painting the box. Please don’t judge my painting skills 😬. The jumper wires and Raspberry Pi did fit nicely in the box, with the buttons screwed on to the top for easy access the mess was gone.

L to R: Before painting, after painting, the device on the work desk facing outwards

You can find the Python scripts along with the wiring and implementation info here— https://github.com/sindhunaydu/meeting-in-progress

There are many ways to improve and supplement this, with plenty of room for innovation. Overall, this was quite the fun project with several learning curves/pitstops/roadblocks 😀 ➡️ 😢😱😠 ➡️ 😩🥺😌 ➡️ 🥳. I certainly felt nervous because I was stepping out of my comfort zone, so I decided to stick to the basics. I’m glad I gave it a shot, and happy to have started my New Year with hopes to keep trying new things and not holding back. Here’s a quote that I often remind myself when in doubt —

“When was the last time you did something for the first time?” — John C. Maxwell.

Happy New Year, everyone! 🥳

Cue hands in the air/wild celebration 🙌🏽

Thanks to Flopperam’s video, which explains how to connect LED Matrix to RPi’s GPIO.

--

--