This is the code that runs on the microcontroller inside the FrznChessboard, handling the chess logic and physical interface
| nbproject | ||
| .gitignore | ||
| Board.cpp | ||
| Board.hpp | ||
| graphics.cpp | ||
| main.cpp | ||
| Makefile | ||
| NeoPixel.cpp | ||
| NeoPixel.hpp | ||
| Piece.cpp | ||
| Piece.hpp | ||
| README.md | ||
FrznChessboard
Overview
This project is a nascent effort at creating a low-cost, open-source, easily reproducible alternative to the expensive and proprietary digital chess boards currently on the market. The features we aim to implement are:
- Recording of human-vs-human games, with built-in clock support
- Communication with popular chess websites for online play
- UCI support to allow playing against an engine running on a companion computer
- Import and export of games and positions as FEN or PGN files
- All squares on the board will have individually addressible RGB LEDs, both to indicate computer and online play moves, as well as to show suggestions, opening lessons, etc.
- Both sides will have a small, optional OLED screen facing them that can show a menu, the current clock, whose turn it is, connection status, etc.
- Communication with the companion computer may be over Bluetooth or USB -- final decisions haven't been made yet on this front. There are pros and cons to each
- Built-in rechargeable battery for wireless use; this could be human vs human (take it to the park with you) or online play with possible wireless connections
Software and hardware
This repository contains the software. As of this writing, it's now targetting the PIC32MX series with USB, but may change to a different Microchip MCU depending.