Skip to content

michess

An open-source NFC-based smart chess board powered by a Raspberry Pi. Place any piece on any square and the board knows exactly what it is and where it is - no setup routine, no special starting position required.

The board uses LEDs embedded behind a wood veneer to indicate the chess engine's moves, creating a clean physical interface for playing against a computer opponent.


Features

  • Full piece identification - NFC tags in each piece base, detected by a matrix of antennas under the board
  • Arbitrary position recognition - pick up mid-game, set up a puzzle, analyse a position
  • LED move indicators - subtle lighting behind the veneer shows the engine's chosen move
  • Stockfish integration - plays via the standard UCI chess engine interface
  • Open design - all hardware designs and software are freely available

How It Works

64 NFC antennas sit beneath the board, one per square, managed by a hierarchical multiplexer system. A Raspberry Pi 4 scans the full board in under 2 seconds, determines the game state, passes it to Stockfish, and lights up the appropriate squares.

flowchart TB
    NFC["NFC Matrix System\n(64 squares)"] --> Controller
    subgraph Controller["Board Controller (Python)"]
        Reader["Board State Reader"] --> State["Board State Manager"]
        State <--> Engine["Chess Engine Interface (UCI)"]
        State --> Display["LED Display Controller"]
    end
    Controller <--> ChessEngine["Chess Engine\n(Stockfish/GNU Chess)"]
    Controller --> LED["LED Matrix\n(Move Indicators)"]
    User["User Interface\n(Buttons/Display)"] <--> Controller

Project Status

Early development - currently prototyping the NFC matrix on a 2×2 test board.


Licences

This project uses different licences for different parts:

Part Licence
Software GPL-3.0
Hardware designs CERN-OHL-S v2
Documentation CC BY-SA 4.0

You are free to use, modify, and build on michess for any purpose - including building your own board - but you must share any changes under the same terms. Commercial use is permitted, but derived works cannot be closed source.