

An interactive Tic-Tac-Toe game implemented on the ESP32 microcontroller, utilizing a 4x4 Matrix Keypad for player input and a 20x4 LCD Display (I2C) for the visual board representation.
- Size
- 135.5 × 91.5 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 3
- Nets
- 38
- Pads
- 50
- Tracks, vias
- 75, 0
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 6 Jun 2026
- Updated
- 6 Jun 2026
Overview
Tic is an open-source printed circuit board by Freshovsky23, from the Freshovsky23/Tic-Tac-Toe repository on GitHub. It is a 2-layer board of 135.5 × 91.5 mm with 3 parts on 38 nets, routed with 75 tracks and 0 vias.
Its parts include 2 connectors and 1 IC. It belongs with the lEDs and displays boards and the ESP8266 boards of this library.
README
README.mdTic-Tac-Toe (Kółko i Krzyżyk) - ESP32 & LCD I2C
An interactive Tic-Tac-Toe game implemented on the ESP32 microcontroller, utilizing a 4x4 Matrix Keypad for player input and a 20x4 LCD Display (I2C) for the visual board representation.
📺 Project Demonstration
See the project in action on YouTube: 👉 Watch the Video Demonstration
🛠️ Hardware Requirements
- Microcontroller: ESP32 (e.g., ESP32 NodeMCU-32S)
- Display: LCD 20x4 with an I2C interface adapter (PCF8574)
- Input: 4x4 Membrane Matrix Keypad
- Custom Baseboard PCB (or Connecting Wires & Breadboard)
Pin Mapping
⌨️ 4x4 Keypad Connection
| Keypad Pin | ESP32 GPIO |
|---|---|
| Row 1 | GPIO 13 |
| Row 2 | GPIO 14 |
| Row 3 | GPIO 27 |
| Row 4 | GPIO 26 |
| Column 1 | GPIO 25 |
| Column 2 | GPIO 33 |
| Column 3 | GPIO 32 |
| Column 4 | GPIO 17 |
📺 LCD 20x4 I2C Connection
| LCD I2C Pin | ESP32 GPIO |
|---|---|
| VCC | 3.3V (VIN) |
| GND | GND |
| SDA | GPIO 21 |
| SCL | GPIO 22 |
🗺️ Custom PCB Design
To eliminate messy breadboard wiring and create a durable, standalone gaming device, a dedicated dual-layer custom PCB baseboard was designed using KiCad.
Features:
- Socketed MCU: The board utilizes female pin headers, allowing the ESP32 NodeMCU to be easily plugged in or removed.
- Clean Peripherals Connection: Dedicated
1x08and1x04pin headers are placed near the edges for straightforward ribbon cable routing from the keypad and LCD. - Optimized Power Delivery: Safe 5V routing directly to the LCD backpack to ensure clear screen contrast without stressing the ESP32's internal 3.3V regulator.
- Ground Plane: Full top and bottom copper pour for noise reduction and stable operation.
The complete KiCad design files can be found in the hardware/ directory.
🖼️ 3D Render Preview:

🕹️ Game Rules & Controls
- Starting the Game: The game boots up automatically with player 'X' making the first move.
- Making a Move: Use numeric keys 1 to 9 on the keypad to select a position on the 3x3 grid:
text 1 | 2 | 3 --------- 4 | 5 | 6 --------- 7 | 8 | 9
Parts
3| Qty | Value | Footprint | References |
|---|---|---|---|
| 1 | AI-Thinker Nodemcu-32S | ESP32:ai-thinker nodemcu-32s | U1 |
| 1 | Conn_01x04_Pin | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J2 |
| 1 | Conn_01x08_Pin | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical | J1 |
Questions
How big is the Tic PCB?
It measures 135.5 × 91.5 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Tic use?
3 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Tic KiCad files?
From the Freshovsky23/Tic-Tac-Toe repository on GitHub, at the commit this page was made from: the board is hardware/tic.kicad_pcb and its schematic hardware/tic.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Tic design in my own project?
Its repository states no licence, so its author keeps all rights: ask Freshovsky23 before reusing the design.
Similar boards
- 2 layers40 × 30 mm

- 2 layers51.9 × 16 mm

Passive2-rpi non standard adapter
hzeller/rpi-rgb-led-matrix
Controlling up to three chains of 64x64, 32x32, 16x32 or similar RGB LED displays using Raspberry Pi GPIO
3 parts4.4kGPL-2.0 - 2 layers16.3 × 16.3 mm

- 2 layers

Sub
atopile/atopile
Design circuit boards with code! ✨ Get software-like design reuse 🚀, validation, version control and collaboration in hardware; starting with electronics ⚡️
3 parts4kMIT - 2 layers85 × 30 mm

- 2 layers124.5 × 33.7 mm

- 2 layers10.5 × 83 mm

- 2 layers21.2 × 51.3 mm

Pico reset
hackclub/sprig
🍃 Learn to code by making games in a JavaScript web-based game editor.
3 parts1.1kMIT