03 / Embedded systemsMar - Apr 2025

Microcontroller Tic-Tac-Toe

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

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.
Next projectLinear Power Supply Design