Upgrade Your Business Card to One That Plays Games with the Game Card
The Game Card is a special business card that uses swappable cartridges to let users play video games.
The idea
The vast majority of business cards are extremely boring and bland, as they consist of small pieces of card stock with a few words written on their fronts. One maker, Dylan Turner, wanted to do something about this uninteresting business card problem by creating one of his own that can be used to play video games or display graphics. One major aspect of his design was having the ability to swap out the game without having to re-flash the microcontroller. Another goal of this project was to have a small and compact device that can run off of a coin-cell battery for long periods of time.
An early prototype
Turner's first attempt at a video game business card was a small breadboard circuit that had a Raspberry Pi Pico at its heart. Because of the Pico's custom RP2040 chip, its computational power could be high whilst its power consumption could remain low. However, this system precluded the use of any swappable ROMs, as all of the games' code had to be flashed onto the device at once.
Although the microcontroller had to be changed, Turner was still able to test basic functionality of some other components, such as the buttons and OLED screen. Additionally, this setup was highly conducive for the game development process owing to the Pico's high-powered nature.
Creating the PCB
The next step from this breadboard device was to design a custom PCB that could house all of the necessary components while keeping a very small profile. The main board, which Turner refers to as "the shell," contains a couple of buttons, a five-way button that acts as a D-pad, and a header for attaching an I2C OLED screen. At its base is a pin header for the second PCB that has an ATtiny84A microcontroller. By going this route, each IC can be programmed with a single game via an ICSP header and then attached to the shell. Powering all of this is a single CR2032 coin cell battery on the back and a switch for cutting off current.
Loading games
After setting up an Arduino Uno as an ISP programmer, Turner connected it to several of his ATtiny84A cartridge boards and began to load some games onto them. One of the games was Ping — a version of Pong that can be played on the business card. It features both 2-player control and an AI which can be surprisingly tough to beat. The second game to be loaded onto a cartridge was Snek, better known as Snake, where the player moved around a snake that grows larger while consuming food and must avoid running into walls and itself.
Getting input and displaying graphics
As mentioned before, the player or players provide input by using the D-pad on the left of the PCB or with the two momentary pushbuttons on the right. The code for the Game Card features a library for interfacing with these buttons via an easy-to-implement API. There is another library for drawing graphics on the OLED as well.
This gaming business card is a fun way to showcase your engineering skills, and it will be exciting to see what comes next. You can view the code and documentation here on Github.