This is the code that runs on the microcontroller inside the FrznChessboard, handling the chess logic and physical interface
Find a file
A.M. Rowsell c333e3da9e
dev: refactoring Board to be simpler for Piece to use
This commit adds a bunch of getters/setters for accessing the
boardGrid. This is a simpler way to allow both Piece and all
the inherited classes to access the Board without having to
declare every single class a friend. So now when we want to
access boardGrid, we use getPieceAt() or setPieceAt(). They
are overloaded to accept rank/file, Square, or int/int.
There's also a convenience function to check if the square
is empty, though that may get re-written to use the existing
Square.isValid().
2025-09-13 10:43:25 -04:00
inc dev: refactoring Board to be simpler for Piece to use 2025-09-13 10:43:25 -04:00
nbproject Piece: expanding getLegalMoves for Queen/Knight/Bishop 2025-08-30 18:46:18 -04:00
.gitignore docs: temporarily added docs/ to .gitignore as they are not ready 2025-09-07 17:46:48 -04:00
Board.cpp dev: Updates to Board and Piece, formatted code 2025-09-07 17:59:16 -04:00
Doxyfile docs: Added Doxygen config 2025-09-07 18:00:30 -04:00
graphics.cpp dev: Pile of updates and formatting fixes. 2025-08-25 16:04:25 -04:00
main.cpp dev: Updates to Board and Piece, formatted code 2025-09-07 17:59:16 -04:00
Makefile repo: Added MPLABX project files including Makefile 2025-07-31 16:33:05 -04:00
NeoPixel.cpp organize: moved include files to inc/ 2025-08-28 10:45:41 -04:00
Piece.cpp dev: Updates to Board and Piece, formatted code 2025-09-07 17:59:16 -04:00
README.md Added README 2025-07-30 21:52:13 -04:00
strFuncs.cpp astyle: reformatted all files 2025-08-28 10:41:59 -04:00

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.