A Mechanically Articulated Tabletop Experience
Check-M.A.T.E is an automated chessboard that bridges the gap between online and physical chess. This project integrates a hardware abstraction layer and control with an intuitive UI for seamless interaction.
- Piece Detection: Hall effect sensors detect the position of chess pieces on the board.
- Move Validation: The chess backend validates moves using
python-chessand updates the game state. - Piece Movement: Stepper motors, driven by a custom build of grbl, move pieces to their new positions via the electromagnet on the end-effector.
- Piece Identification: An NFC reader identifies pieces.
- Chess Engine Integration: Stockfish provides moves for single-player games.
System Overview
- Finite State Machine Frontend
- Chess backend
- Custom screens and widgets
- Hardware Abstraction Layer (HAL)
# Clone the repository
git clone https://github.com/ryanbrown919/CHECKMATE.git
# Navigate to project directory
cd CHECKMATE
# Install dependencies
pip install kivy chess berserk lgpio pyserial- Connect your Raspberry Pi 5 to required peripherals
- Run the main application:
python checkmate.py
- Access the UI through the connected display
CHECKMATE/
├── assets/ # Images/figures
├── bin/ # Stockfish binary
├── firmware # Sense board firmware
├── checkmate/ # Application
├── test/ # Unit tests
└── checkmate.py # Entry Point

