Marian's PCB Business Card Entertains Potential Employers with Games

Play LED remakes of Simon Says and Flappy Bird on this STM32-powered business card with a matrix display.

James Lewis
4 months agoGaming

Seeking to make a unique impression during a recent job search, embedded developer Marian Buschsieweke crafted a PCB business card inspired by the Arduboy. Marian's PCB Business Card features a 90-LED matrix, six input buttons, and an STM32 running RIOT OS. With its cost-effective design, the business card is visually striking and reusable and demonstrates Buschsieweke's embedded skills to potential employers.

All the electronic components fit on one side of the printed circuit board. The eye-catching section contains 90 surface-mount LEDs configured as a matrix. Six push buttons replicate gamepad controls. Marian's PCB Business Card has an integrated USB-A connector for power.

Buschsieweke chose a STMicroelectronics STM32G microcontroller to run the card. It contains an Arm Cortex-M0+ core with 8 kilobytes of RAM and 64 kilobytes of Flash. The TSSOP packaging provides 20 pins, of which 13 are available for GPIO. The business card design divides the IO pins between the LED matrix and the input buttons.

The microcontroller drives the LED matrix with the Charlieplexing technique. This method enables controlling a large number of devices with a relatively small number of pins. The trade-off is that it takes a bit more software to make the matrix work, and for LEDs, it relies on persistence-of-vision (POV) tricks. Despite those trade-offs, it is an effective technique.

Even the input buttons utilize Charlieplexing to conserve pins. However, this approach does introduce a potential issue: ghosting. Ghosting occurs when a user presses two keys simultaneously, causing an unpressed 'ghost' key to appear as if it were pressed. Buschsieweke's response to this potential problem is simple: just ignore it!

Two goals that were important to Buschsieweke were cost and reusability. Marian's PCB Business Card needed to be inexpensive enough to be given away. One example of cost considerations was how to power the circuit. Initially, Buschsieweke considered a USB-C port and regulator. However, the solution was to create a USB-A port using the PCB. Standard PCBs are 1.6 millimeters and are slightly too thin, so a little bit of solder is necessary on the +5V and GND pins of the USB connector.

Buschsieweke's decision to base the concept on the Arduboy design addresses another goal: reusability. Users can continue playing games that come with Marian's PCB Business Card, develop new ones, or use the entire board to learn about a real-time operating system (RTOS).

Marian's PCB Business Card runs RIOT OS. RIOT is an open sourced RTOS focusing on IoT devices. Buschsieweke chose it because its modular build system based on external modules efficiently utilizes the limited memory in IoT microcontrollers. (And because Buschsieweke is a maintainer of the project!)

There are two games currently available. LEDMon is a "Simon Says" clone. The LED matrix displays a sequence of keys that you repeat. The other is Flappy LED, a clone of the mobile game Flappy Birds. In the future, Buschsieweke hopes to improve the LED matrix code and add classic bitmap games like Tetris or Snake. Unfortunately, we are disappointed to report that there are no plans to port Doom... at this time.

You can download the KiCad design files and code from Marian's PCB Business Card's GitHub Repository. For details on the hardware and software design, check out Buschsieweke's in-depth blog post.

James Lewis
Electronics enthusiast, Bald Engineer, AddOhms on YouTube and KN6FGY.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles