Darkchess Robot
A self-learning robotic arm that plays Darkchess against a human on a real board, flipping chess pieces with the help of a camera-based board recognition system.
- Robot arm
- Open source
- Works with AI
- arduino
- 3D printable
Suggested by Robotheca, created by @ryanlinjui (opens in a new tab), from github.com/ryanlinjui/darkchess-robot (opens in a new tab). Pinned to commit a1bf04f (opens in a new tab).
- Hardware license
- Apache-2.0 (opens in a new tab)
- Software license
- Apache-2.0 (opens in a new tab)
- Commercial use
- Allowed
Photo and 3D model

3D preview converted from github.com/ryanlinjui/darkchess-robot at a1bf04f, under Apache-2.0. View the original files from GitHub (6.3 MB) (opens in a new tab)
What it can do
Written by Robotheca from the project's documents.
- Plays Darkchess (dark chess) on a physical board, with AI agents ranging from random to Min-Max, Alpha-Beta and learned Q-learning/DRL-based policies.
- Eye component recognizes the board state from camera images using a VGGNet-based model.
- Robotic arm flips, catches, moves, and eats chess pieces on the board using position commands.
- Can be operated over WiFi via an API server, with a remote control button starting gameplay.
Works with AI
Found by Robotheca in the project's files at commit a1bf04f, its robot.yaml and Robotheca's notes on its documents. Never guessed; Robotheca doesn't run the code.
“Plays Darkchess (dark chess) on a physical board, with AI agents ranging from random to Min-Max, Alpha-Beta and learned Q-learning/DRL-based policies.”
Robotheca's notes: What it can do
Bill of materials
This repository has no parts list Robotheca can read yet.
Build guide
The guide appears here as you scroll.
Guide by @ryanlinjui (README.md), under Apache-2.0.
More guides
Wiring and electronics
Notes written by Robotheca from the project's documents.
Main parts
- ATmega1280 Arduino-compatible board controlling the arm.
- ESP8266 boards used for the receiver and the WiFi remote control.
- XYZrobot Smart Servo A1-16 servos powering the arm joints.
- Li-ion 18650 battery powering the remote control.
- Button module on the remote control.
- Camera used by the Eye component to view the board.
Connections
- ESP8266 receiver board is connected to the ATmega1280 board, which drives the servos.
- Remote control uses an ESP8266 board, a button module and a breadboard powered by a Li-ion 18650 battery.