This is a stand-alone chess computer project using magnetic sensors, LEDs, and a Raspberry Pi Zero 2W.
This hardware is based on a magazine article "An Electronic Chessboard Using RGB Strips and Hall Effect Sensors", published in the January 2017 issue of "Nuts & Volts". The PCB was ordered from the ExpressPCB manufacturing service without any modifications.
Hardware changes made to the magazine article project:
The clear acrylic sheet was replaced by a 12"x12" transparent grey acrylic sheet.
The acrylic sheet was etched with a checkerboard pattern using an Epilog Helix 24 at the Ottawa Public Library's Imagine Space. See "RPiChessboard.svg" and "RPiChessboard.pdf" in the files section below.
A Raspberry Pi Zero 2 W without header was mounted to an available area of the PCB using nylon standoffs and screws.
Added 5 wires to connect:
RPi pin 4 (5V) to PBC +5V
RPi pin 6 (ground) to PCB ground
RPi pin 8 (UART Tx) to Teensy pin 9 (RX2)
RPi pin 10 (UART Rx) to Teensy pin 10 (TX2)
Teensy pin 1 (TX1) to Teensy pin 11 (the Nuts & Volts project uses pin 11 to drive the LEDs, but my project requires the WS2812Serial library, which needs pin 1 to drive the LEDs)
The magazine article includes Teensy software appropriate for a chess game played between two human opponents. The LEDs indicates legal moves to help novice players. But I wanted a chessboard that lets a human compete against a computer opponent. The Teensy did not have enough resources to play a competant game of chess, hence the need for a Raspberry Pi running PicoChess software.
See "RPiChessboard.ino" in the files section below.
The SD card was installed in the RPi.
A monitor was connected to the RPi HDMI port and a keyboard connected to the USB port.
The RPi was powered on and the monitor/keyboard used to login with the username "pi" and default password "picochess".
Two lines of Python code were added to the PicoChess DGT driver to allow a Revelation board to connect via serial instead of Bluetooth.
The PicoChess config file was to enable a DGT board on the appropriate serial port.