The challenge was bigger than the game logic: multiple hardware interfaces had to work together as one responsive physical system.
Embedded C
TI MSP432
CC2650 Bluetooth
OLED
Servo Motors
StatusCompleted
FocusEmbedded systems
Core toolsEmbedded C · TI MSP432 · CC2650 Bluetooth
XOXOX
Project overview
I developed a physical Tic-Tac-Toe game around the TI MSP432 microcontroller and a CC2650 Bluetooth module. The build integrated port pins, servo motors, an OLED display, and a 3D-printed mechanical structure.
Technical details
How the system works.
A closer look at the architecture, implementation decisions, and validation behind this project.
01
System responsibilities
The MSP432 acts as the controller for the complete game. It receives player input through the Bluetooth interface, updates the internal board state, decides whether the move is valid, and then coordinates the OLED and servo outputs.
Dividing the system by responsibility helped keep the firmware understandable: communication provides input, the game engine owns the rules, the display reports the current state, and the servo mechanism produces the physical response.
02
Game-state logic
The firmware must preserve one authoritative version of the board. Every requested move is checked against that state before any hardware is activated, preventing a player from overwriting an occupied position or advancing the turn after an invalid command.
After an accepted move, the program checks rows, columns, and diagonals for a winner and also tracks whether the board has reached a draw. The active player changes only after the current move has been validated and applied.
03
Coordinating hardware interfaces
The OLED gives immediate visual feedback while the servos create the physical part of the game. The firmware sequences these outputs so a move is not shown as complete before the mechanical action has finished.
The CC2650 Bluetooth module adds another asynchronous interface. Incoming data has to be interpreted as a game command, checked by the same game-state logic, and acknowledged through visible output so the player knows whether the command was accepted.
CC2650 Bluetooth communication
OLED status and board feedback
Servo positioning for physical output
MSP432 GPIO coordination
04
Mechanical integration and testing
The electronics were mounted into a 3D-printed structure, which turned dimensions, alignment, and servo travel into system requirements rather than appearance details. A correct electrical signal was not useful if the attached mechanism could not move through the required range reliably.
I brought up the interfaces individually before combining them: communication, display updates, servo motion, and finally complete turns. This reduced the number of possible causes when the physical game did not behave as expected.
Engineering approach
From idea to working system.
01
Manage game state
Embedded C logic tracked player actions and the state of the board so hardware output remained synchronized with the game.
02
Coordinate interfaces
I connected the MSP432 to the OLED, servos, and Bluetooth module, using the microcontroller's port pins to coordinate each part.
03
Integrate the physical build
The electronics were combined with a 3D-printed structure, connecting firmware behavior to visible and mechanical output.
Technical highlights
What this project demonstrates.
01
MSP432 embedded development
02
CC2650 Bluetooth integration
03
Servo and OLED control
04
Electromechanical system integration
What I learned
This project taught me to treat firmware, electronics, and mechanics as one system. A feature is only complete when every interface works together reliably.