1 of 1

FlexyBoard

E02: Christopher Bernitsas, Harrison Hayward, Iniyaa Mohanraj

18-500 Capstone Design, Spring 2026

Electrical and Computer Engineering Department

Carnegie Mellon University

System Architecture

Product Pitch

FlexyBoard is an interactive board game platform that incorporates the software and circuit areas of ECE. FlexyBoard is a remote solution that allows for two people to play chess, checkers, and parcheesi. The physical component of FlexyBoard is the player 1 interface, and player two connects to the FlexyBoard through a laptop. Player 1 plays the game on the physical board, and their game moves are updated on the player 2 interface, which is on the laptop. Player 2 is then able to make a move on their laptop. This move is then physically translated to FlexyBoard. We developed the player 2 interface using python. The coordinates for the moves are sent to and from the player 2 interface as Json files. The Json files are sent/received by a raspberry pi which is connected to an STM32 , which control the motors on player 1’s FlexyBoard. The game pieces on FlexyBoard are magnetized and are moved via an x-y gantry with a magnetic arm.

A critical requirements for FlexyBoard is that player moves must be accurately translated to the P1 physical board and P2 electronic boards.

https://course.ece.cmu.edu/~ece500/projects/s26-teame2/

System Description

System Evaluation

Conclusions & Additional Information

We imagine future implementations of FlexyBoard would accommodate for more players and also more games. This FlexyBoard expansion would allow for multiple people to play on the physical FlexyBoard from remote locations. Additional features may include a microphone that lets players talk to each other.

  1. Player 1 makes a move on the game board
  2. Player 1 pushes a button to signal that they have made their move
  3. The button input is sent to the raspberry pi
  4. The raspberry pi signals that an image should be captured
  5. The raspberry pi sends the game status Json file to the player 2 interface
  6. Player 2 sees the updated electronic game board
  7. Player 2 makes their move on the electronic game board
  8. The raspberry pi receives the new game status Json
  9. The STM32 receives the coordinates for Player 2’s move
  10. The STM32 controls the NEMA17 motor and servo movements
  11. The Player 2 move is translated to Player 1’s FlexyBoard via XY Gantry

Repeat until the game is over!

We tested the system through both subsystem and full system validation to ensure each component worked before integration. For computer vision and move interpretation, we used controlled board states with known moves and compared outputs to expected results while verifying rule enforcement. Promotion detection was evaluated using edge cases to assess robustness. The mechanical system was tested through repeated moves to measure consistency, placement precision, and pickup/drop reliability.

At the system level, we performed end-to-end tests where moves were detected and executed on the mirrored board to evaluate overall performance and reliability.

The main trade-offs were between accuracy and latency in vision, and speed versus precision in gantry motion. Increasing robustness added processing time, while faster movement risked placement accuracy, so we tuned both to balance performance and reliability.

Use-Case Requirements:

XY Gantry System

Servo and rod with magnet

Camera

Game Board

STM32

Raspberry Pi 4

Player 2 Game. Board (GUI)