Design - abresee/chess GitHub Wiki

Basic Design

A micro-controller driven LED chessboard is proposed. There are 8 ranks and 8 files on a chess board making for 64 individual squares. In each square, a tri-color led (similar to what is found here) is mounted. transparent or translucent chess pieces would allow the light from the LEDs to shine through. The chess board contains a microcontroller (such as this) which is able to execute simple C programs that read input from GPIO pins and can write arbitrary output to GPIO pins. The presence or non-presence of a piece in a square is detected by a reed switch mounted into each square. The pieces themselves will have small magnets in their bases (positioned so as to minimally obstruct the LED) which would trigger these reed switches. The completed circuit for each square's reed switch would be then read into the microcontroller via GPIO polling. Since the beginning of a game of chess is known, the microcontroller can track moves (by detecting the removal and subsequent replacement of a piece) and adjust the light display on the board accordingly.

Potential information that can be conveyed:

  • potential legal moves (green highlighted squares)
  • illegal moves (e.g. moving into check) (red highlighted squares)
  • en passant reminder (highlight in blue when an en passant is in play) or anything else we can code!

Microcontroller code would be written on a host computer and cross compiled into a binary executable file that would then be loaded over a usb connection to the microcontroller. It is simple to imagine any variety of compile-time options (such as chess960, or specific custom starting positions or movement rules such as Arimaa).

The interface to the LEDs themselves is via PWM on the respective red, green, and blue terminals of the LED package. This is definitely feasible via microcontroller but a concrete design needs to be planned.