Playing chess online is fine, but there's a specific gap for makers who want a physical board that actually knows where the pieces are. Standard chess sets are passive; you move a piece, the computer has no idea. chess-pro targets this exact scenario by combining a physical board with real-time game tracking. It replaces the guesswork with a setup that reads moves via Hall effect sensors and displays the board state using physical components.
The approach relies on a stack of cheap electronics. The logic runs on a Raspberry Pi Zero 2W, which is a tiny, low-power computer ideal for this kind of embedded project. For user feedback, the system doesn't just output to a monitor; it uses WS2812B LEDs for piece lighting and an e-paper + OLED display for the board visualization. This allows for a tabletop experience where the board itself reflects the game state.
The approach
The software is written in Go, a language known for fast compilation and concurrency, which fits well on a resource-constrained device like the Pi Zero. The core feature is Lichess integration. When a user moves a piece on the physical board, the board's sensors detect the magnet inside the piece. This event is sent to the Lichess API, allowing the user to play against online opponents while physically moving pieces.
The hardware stack is specific:
- Board: Built with Hall effect sensors positioned under each square to detect piece placement.
- Display: E-paper for the board layout and OLED for status text or move notifications.
- LEDs: WS2812B LEDs to highlight active squares or indicate capture events.
This creates a loop where the physical action is synced with the digital game instantly. If you move a knight, the Lichess match updates, and the board lights up the destination square.
Trying it out
The project requires a hardware build first. You cannot run this in a simulator. You need the Pi Zero 2W, the sensor array, the display modules, and the LEDs wired up according to the project's hardware documentation. Once the hardware is assembled, the software setup is a standard Go installation.
git clone https://github.com/shyhirt/chess-pro.git
cd chess-pro
go build -o chess-pro .
You will need to configure your Lichess API key in a configuration file. The project likely expects a specific config path or environment variable for the token. After that, running the binary starts the polling loop for the sensors and the display driver.
What it doesn't do
This project is not a turnkey product. It does not come with a pre-assembled board. You have to solder the Hall effect sensors and wire the LEDs yourself. It is also tied specifically to the Raspberry Pi Zero 2W; porting it to a different SBC would require significant driver work.
The integration is one-way in terms of display; the project visualizes the Lichess game state on the e-paper and OLED, but it doesn't handle complex UI features like move history on the local screen—it focuses on the core move detection and board state. If you need a chess engine running locally (like Stockfish) to play against, this project is not that. It is purely a bridge between a physical board and an online platform.
Who should pick this
If you have a 3D printer or can get a board cut, some soldering skills, and want a physical Lichess interface that glows and tracks moves automatically, this fits perfectly. It is a project for hobbyists who want to see Go code controlling hardware. For a simpler alternative, you might look at projects that just use a webcam for piece tracking, but those lack the tactile feedback of Hall sensors. It is heavier than just using an app on a phone, but the physical interaction is the point.
The source is on GitHub.
Comments