DIY Electronic Chessboard – Protocol Idea for App Integration

Sort:
Avatar of Affelino

Hi everyone,

I've been working on a simple DIY electronic chessboard project and thought I’d share a bit, just to see if there’s interest.

The board only detects piece presence, not type. By tracking moves from the initial position, it can still follow the game reliably. I’ve built two hardware versions and written firmware for both minimal and smarter modes.

The main idea is a lightweight protocol that allows the board to act as a physical UI for any chess app — like chess.com or lichess. It uses LEDs to guide the player and can even help recover from mistakes.

If this sounds interesting, let me know — might give me the push to clean it up and release it properly. Happy to share more details!

 

Cheers,

Affe

 

Edit: I rewrote the original posting since the original didn't come up nicely on the chess.com app. More info in the comments.

Avatar of Affelino

My goal was to design a very simple physical board that could be easily integrated into any chess app. Unlike many commercial boards that detect the exact identity of each piece, this board only detects whether a piece is present or not on each square. The board software then tracks moves from the initial position and deduces the piece types based on the sequence of moves. Surprisingly, that’s often enough.

I've built two hardware versions and experimented with different firmware layers — from fully "dumb" boards (just reporting pickups/drops) to smarter versions that handle move validation and play offline. But the main idea is really about defining a clean and minimal protocol that allows the board to act as a physical UI for any compatible chess application — including potentially chess.com, lichess, or custom engines.

The protocol is text-based, human-readable, and designed to make integration and debugging simple. I’ve also documented how the LEDs can be used to guide users through the game and even recover from desynchronization or misplayed moves.

Avatar of Affelino

Here's a short video of testing the board with Stockfish on the server.

In the beginning, I'm setting up the board and the lights you see flickering, is the board trying to tell me "don't move like that"... But when all is set up, I'll do a "triple tap" with any piece to reset the board. Then, I'm tapping the black king to let the opponent (Stockfish) know that it can start the game.

Avatar of Affelino

Hi again,

I managed to clean up the old "documentation" and generate some new one with the help of ChatGPT, you can find the basic documentation in here. Currently it's describing the basic messaging and guidelines how to use such a simple board for chess.

I do have some hardware and firmware that I have used to prove the concept and I'm OK to share that too, but again, needs some work to get it "presentable" wink.png Also have few PCBs for both, 64 LED and 256 LED versions, if you want to start building your own and get on testing happy.png

If you find this useful, or even remotely interesting, let me know and we'll see if I can provide more info to make all this useful.

Affe

Avatar of John_Rosschess

Hi. Built a DIY chessboard that detects only piece presence — no fancy sensors, but still tracks full games by move logic.
Thinking of releasing it as an open project if there’s interest. Uses LEDs and a simple text protocol for chess.com / lichess integration.

Avatar of Affelino

And hi again happy.png

I've been working on documenting the protocol, and I’ve also added some information about the boards I’m using myself. I still have a few spare PCBs, though I’m not sure if I have enough components left to build a complete unit. If you’re interested in getting one for your own testing or tinkering, feel free to reach out and I’ll see what I can do.

I’ve also uploaded some very basic code, both for the board firmware and a small terminal tool for testing.

Hardware and firmware details can be found here.

The current firmware implements the minimal feature set, just enough to give a sense of what the board can do. That said, I’m now working on a more capable version that supports setup guidance, resyncing, and user feedback through simple light cues and tap gestures.

In parallel, I’ve been developing a lightweight chess server to help test the board. It’s nothing fancy, but has proven to be a useful tool during development.