Show Love Through Tech
Tags: raspberrypi, iot, lcdmatrix
Published: 2019-12-18 21:57:54

When you are a nerd, What do you do to show your love?

As I was cleaning up my storage space in my apartment, I found my old cache of IoT related materials. Breadboards, Resistors, Capacitors, LEDs, Different types of sensors, Raspberry PIs & Arduino, and of course, lots of jump-wires. I used to play around with sensors, making a lot of fun with my roommates at college. Seeing that I had a few hours available over the weekend, I thought of setting up at least one sensor and test it out.

I typically use Raspbian for the ease of installation & familiar Debian environment. I downloaded the image, flashed to SDCard. I had no extra monitor at home, so I planned to login via SSH to my Raspberry Pi. I came to It's been a while since I used Raspbian, I didn't realize Raspbian has updated their security & blocked ssh on boot. I found out the correct way to enable SSH on boot & logged in.

I had a bunch of motion sensors, and I was quickly able to put it together and test it out with one of my old programs for motion testing. I showed it to my wife; Having a Bachelor of Engineering in an Electronics, the demo didn't impress her a lot. In any case, I was happy that I didn't lose touch.

I wanted to do something a bit more fun, and I found an LED matrix in the cache, which I didn't remove from the package. (Guess, I planned to do something with it but closed the shop even before trying it out).

I typically prefer *node.js* for working on IoT projects. Looking for an npm package to work with LED matrix, I found several, but none seem promising (Most of them weren't up to date & I lost patience before getting them work). Then I came across the Python library **luma-led-matrix**, which was pretty quick to set up & had a bunch of examples that work.

## Details of implementation

### Hardware Required

- Raspberry PI 2/3/4
- MAX7219 8*8 LED matrix
- Jumper wires

### Software Required

- Raspbian OS
- Luma LED Matrix library

### GPIO pin-outs

| Board Pin | Name | Remarks     | Rpi pin | Rpi function      |
| --------- | ---- | ----------- | ------- | ----------------- |
| 1         | VCC  | +5V Power   | 2       | 5V0               |
| 2         | GND  | Ground      | 6       | GND               |
| 3         | DIN  | Data In     | 19      | GPIO 10 (MOSI)    |
| 4         | CS   | Chip Select | 24      | GPIO 8 (SPI CE0)  |
| 5         | CLK  | Clock       | 23      | GPIO 11 (SPI CLK) |

For more details:
[luma-led-matrix documentation](https://luma-led-matrix.readthedocs.io/en/latest/)

I had to enable SPI, and there are enough tutorials on how to do it. Here's the one I followed: [Sparkfun Tutorial on Enabling SPI on RaspberryPI](https://learn.sparkfun.com/tutorials/raspberry-pi-spi-and-i2c-tutorial#spi-on-pi)

I showed my wife the demo of one of the examples, and she was a bit impressed.

The following day was '*her*' day (meaning she can sleep as much as she wants and get up when she wants). So before I get to work, I changed the program to print, "I love you Mahi" & put it in a loop and left.

I received a text from her around lunchtime that she loved it. Finally **Yeah!!**

I'm sure that I'm not the only nerd who wanted to show off to loved ones.  What's your experience in doing so?