OpenChess is a smart chessboard, it can show legal moves, plays against you using Stockfish or let you play online games on your physical board.
Love this project? You can support it on Ko-fi Every contribution makes a difference!
- 👣 Step-by-step build guide - covers materials, schematics, assembly, and software setup
- ⚡ Web Flasher - easily flash your ESP32 directly from the browser
This fork can emulate BLE (Bluetooth Low Energy) chess boards and is compatible with ChessConnect for playing on Chess.com, Lichess and many other platforms.
- Download the ChessConnect app or extension
- In the OpenChess WebUI, choose a board to emulate and start the BLE server
- In ChessConnect, select the emulated board and connect
- Start a game right from ChessConnect
- Watch the video guide
Note
This is a premium feature with a free trial. It's closed-source and only included in precompiled GitHub releases
Highlights of this fork compared with the original Concept-Bytes project:
- Lichess: Play online over WiFi using the Lichess API, without ChessConnect
- Game history: Save and review local games, with power loss recovery
- Legal moves: Detects check, checkmate, draws, castling and en passant
- Promotion: Pick the promotion piece from the physical board or Web UI
- Draw/Resign: Use the Web UI buttons, or lift both kings to draw/end a game
- Fixes: Correct board rotation, king/queen placement and turn handling
- Calibration: Maps GPIOs, shift-register outputs, and LEDs so the board rotation doesn't depend on wiring
- Sensors: Debounce and optimized scanning make piece detection more reliable
- Responsive: Async web server and LED animations keep the board and Web UI available at any time
- WiFi: Network scan, up to 3 saved networks, fast reconnect, captive portal, mDNS
- Web UI: Configure the ESP32, view logs, choose game modes, view and edit current position, review games, etc...
- OTA updates: Update firmware and web assets automatically from GitHub releases or manually from the Web UI.
- Release builds: GitHub Actions builds firmware, LittleFS images, and web assets for the Web Flasher and OTA updates
Contributions are welcome! If you have any new ideas to add or feedback to share, I'd love to hear it!
Please read the Contributing Guidelines before submitting a PR.
ChessConnect code is git-crypt encrypted.
You can still contribute to the open-source parts of the project: the ChessConnect feature is automatically disabled when building from encrypted sources.
This project is based on Open-Chess by Concept-Bytes, which is licensed under the MIT License.
Original contributions made by joojoooo and all modifications in this repository are licensed under the PolyForm Noncommercial License 1.0.0.
By submitting a pull request to this repository, you agree that your contribution will be licensed under the PolyForm Noncommercial License 1.0.0.
.webp)