Skip to main content

michess

Chess you can see
#

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 - no cameras, no fuss, just electronics you can play with.

The entire project is open source: hardware schematics, firmware, and software are freely available to build, modify, and improve.


How it works
#

  1. 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.
  2. State tracking - The Raspberry Pi 4 maintains a live board model, updating it on every move and detecting illegal placements or piece lifts.
  3. 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.
  4. 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 in sight.

Hardware overview
#

ComponentRole
Raspberry Pi 4 (2 GB+)Main controller - runs the engine, board logic, and LED driver
64× PN532 NFC readersOne 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 stripRouted beneath the board to illuminate individual squares
Custom PCBRoutes power and data across all 64 reader positions
5 V / 4 A PSUPowers 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
#

michess is built in the open. Star the repo, open an issue, or submit a pull request - all contributions are welcome.

View on GitHub →

Photo by Callum Mullin on Unsplash

Recent