This ESP32-Powered Business Card Has Bluetooth, Haptic Feedback, and an LED Matrix
See how YouTuber StuckAtPrototype leaves a lasting impression on everyone he meets with his custom designed and assembled business card.
Why make a business card?
In the world of business, getting your name out there is vital when closing deals or for getting hired. And for YouTuber StuckAtPrototype, he wanted to list it as a personal project on his resume and give hiring managers a great demonstration of his skills. Unlike many electronic business cards that illuminate simple patterns or expose an NFC tag, this version would contain a full game that is both addicting and easy to play while showcasing artwork and a convenient QR code in the soldermask.
Features
Putting a highly interactive game in the real estate of a business card was going to be a tough challenge to overcome. Initially, StuckAtPrototype considered using an LCD or OLED screen, however, he quickly decided against the idea because it wouldn't be nearly as bright or colorful. He ultimately went with a 15 x 8 matrix composed of 120 individually-addressable RGB LEDs that can be controlled through code with libraries such as Adafruit GFX
.
The computational power is provided by an ESP32 module, which not only runs the game smoothly but also provides Bluetooth connectivity. Players interact with the device via a single pushbutton on the front, and haptic feedback is provided thanks to a small vibration motor. Last of all, the entire business card is powered by a rechargeable LiPo battery cell + charger circuit.
Assembly and programming
After getting his PCBs fabricated and delivered, StuckAtPrototype moved onto the next step of assembling all of the components onto the card with his pick-n-place machine. Once soldered and placed into a compact enclosure, he had to make a game.
The one running on the business card draws inspiration largely from Flappy Bird, wherein players would tap their screen to move their bird between obstacles and rack up the highest possible score. His version will place random pipes and move them towards the player's pixel at an ever-increasing pace. At every iteration, the rudimentary physics engine will calculate where the player should move next while collisions are detected/handled. Once the player loses, their score is prominently displayed before the game restarts.
Other features
Wanting to go beyond the game concept and take his matrix to the next level, StuckAtPrototype added a Bluetooth Low Energy service into his ESP32 program that allows for display buffers to be sent from a host device. In this case, he wrote a Python script that uses the YouTube API to get his current subscriber count and then scrolls the total across. To see more about this feature-rich business card, you can watch StuckAtPrototype's build log video here on YouTube.