
michess
Computer chess you can feel#
michess is a physical chess board that knows where every piece is. NFC tags embedded in the base of each piece communicate with readers hidden beneath all 64 squares. A Raspberry Pi 4 tracks the game state in real time and lights up LEDs to display computer-suggested moves.
The entire project is open source: hardware schematics, firmware, and software are freely available to build, modify, and improve.
How it works#
- Tag and scan - Each chess piece has a small NFC tag embedded in its base. When a piece is placed on a square, the reader beneath that square identifies it via its unique tag ID.
- State tracking - The Raspberry Pi 4 maintains a live board model, updating it on every move and detecting illegal placements or piece lifts.
- Engine integration - The board connects to a chess engine (Stockfish by default) over a local socket. After each player move the engine evaluates the position and returns its best reply.
- LED feedback - An 8×8 LED matrix overlaid on the board illuminates the engine’s suggested from-square and to-square, guiding the human player without a screen.
Hardware overview (subject to prototyping)#
| Component | Role |
|---|---|
| Raspberry Pi 4 (2 GB+) | Main controller - runs the engine, board logic, and LED driver |
| 64× PN532 NFC readers | One beneath each square; detect and identify pieces via I²C/SPI bus |
| NFC stickers (NTAG213) | Embedded in each piece base; hold a unique UID |
| WS2812B LED strip | Routed beneath the board to illuminate individual squares |
| Custom PCB | Routes power and data across all 64 reader positions |
| 5 V / 4 A PSU | Powers the Pi and all readers simultaneously |
The board is designed to be assembled with hobbyist tools - a soldering iron, a drill press, and a laser cutter for the enclosure panels are all you need.
Get involved (soon)#
michess is built in the open. Star the repo, open an issue, or submit a pull request - all contributions will be welcome.
Photo by Callum Mullin on Unsplash