top of page

Sackett LED

A Tetris game you can play on an LED sign from your phone
ndlnd.png
github.png
sLEDShadow.png

What is Sackett LED?

I had a few LED boards laying around from a previous project, and I thought it would be perfect to make a game on it and hang it outside my dorm window (at Sackett Hall) for people to play. The large 64 by 32 LED board I had was the perfect dimensions for Tetris, so I got to work on programming it.

Over the next month, I made a Tetris game based on the original NES Tetris, since I didn't have room on the LED display for some of the more fancy things modern Tetris games have. During development, I had to keep in mind that the data from the game would have to be sent through Bluetooth to the LED display. The Bluetooth module I was using would only let me send around 20 characters at a time or it would crash, so I would break up the data into separate messages of 20 characters. This made sending data take longer, so I had to be conservative on how much data I sent during each move from the user in order to reduce lag.

Once I got the game running locally in the iOS app, I started work on the displays and getting the game to show up there. Since I needed to display the player's level, score, and next block up, I connected two additional 16 by 32 displays to another Arduino board to show the extra info. I had to figure out communication between the two display driver Arduinos and the Bluetooth module, and also how to hang the displays outwards against the window (I ended up using suction cups and paperclips). Finally, before publishing, I styled the app, added music, a leaderboard, and figured out edge cases such as what happens when two players try to play at the same time (I used Firebase to create a line of players in this case).

Finally, I published the app on the App Store for the last few weeks of school. It got quite a few downloads and many people competed to get the highest score. A month after I published though, Tetris reached out and asked me to remove the app which is why it's no longer available.

In the end, I was very happy with how polished and bug-free the app was, as well as how low the latency was between the app and display since I spent a lot of time optimizing these. I was also very happy I was able to complete a difficult project involving both hardware and software. I showed my computer science professor the project, and he was very impressed and happy I was able to apply some of the concepts from his class to the code.

IMG_6914.JPG

Working on getting shapes to display on the LED Matrix.

IMG_7045.PNG
IMG_7422.JPG

The current high score (100,428 points at level 12) which barely fit on the display.

The display hung up inside the building over the last few days of the school year.

IMG_7400.JPG

A group of students watching a game being played.

Programmed with

emoja.png

Swift

emoja.png

C++

Utilizing

emoja.png

Xcode

emoja.png

Arduino IDE

emoja.png

Firestore

emoja.png

GitHub

bottom of page