RPi Chessboard
This is a stand-alone chess computer project using magnetic sensors, LEDs, and a Raspberry Pi Zero 2W.Â
Hardware
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.
The discontinued Teensy 3.1 was replaced with a Teensy LC.
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)
Software
Teensy
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.
PicoChess can connect to a variety of commercial chessboards. To allow PicoChess to work with this chessboard, I wrote Teensy software that implements the protocol used by the DGT Revelation II.
See "RPiChessboard.ino" in the files section below.
Raspberry Pi
The PicoChess 3.2 Lite image was written to a 32GB SD card using balenaEtcher.
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.
Files
This project uses the Teensyduino variant of the Arduino IDE which is required for Teensy microcontrollers. It is also necessary to install the WS2812Serial library.