Raspberry Turk: a chess-playing robot
Computers and chess have been a potent combination ever since the appearance of the first chess-playing computers in the 1970s. You might even be able to play a game of chess on the device you are using to read this blog post! For digital makers, though, adding a Raspberry Pi into the mix can be the first step to building something a little more exciting. Allow us to introduce you to Joey Meyer‘s chess-playing robot, the Raspberry Turk.

Image credit: Joey Meyer
Being both an experienced software engineer with an interest in machine learning, and a skilled chess player, it’s not surprising that Joey was interested in tinkering with chess programs. What is really stunning, though, is the scale and complexity of the build he came up with. Fascinated by a famous historical hoax, Joey used his skills in programming and robotics to build an open-source Raspberry Pi-powered recreation of the celebrated Mechanical Turk automaton.
You can see the Raspberry Turk in action on Joey’s YouTube channel:
A historical hoax
Joey explains that he first encountered the Mechanical Turk through a book by Tom Standage. A famous example of mechanical trickery, the original Turk was advertised as a chess-playing automaton, capable of defeating human opponents and solving complex puzzles.

A modern reconstruction of the Mechanical Turk
Image from Wikimedia Commons
Its inner workings a secret, the Turk toured Europe for the best part of a century, confounding everyone who encountered it. Unfortunately, it turned out not to be a fabulous example of early robotic engineering after all. Instead, it was just an elaborate illusion. The awesome chess moves were not being worked out by the clockwork brain of the automaton, but rather by a human chess master who was cunningly concealed inside the casing.
Building a modern Turk
A modern version of the Mechanical Turk was constructed in the 1980s. However, the build cost $120,000. At that price, it would have been impossible for most makers to create their own version. Impossible, that is, until now: Joey uses a Raspberry Pi 3 to drive the Raspberry Turk, while a Raspberry Pi Camera Module handles computer vision.

The Raspberry Turk in the middle of a game
Image credit: Joey Meyer
Joey’s Raspberry Turk is built into a neat wooden table. All of the electronics are housed in a box on one side. The chessboard is painted directly onto the table’s surface. In order for the robot to play, a Camera Module located in a 3D-printed housing above the table takes an image of the chessboard. The image is then analysed to determine which pieces are in which positions at that point. By tracking changes in the positions of the pieces, the Raspberry Turk can determine which moves have been made, and which piece should move next. To train the system, Joey had to build a large dataset to validate a computer vision model. This involved painstakingly moving pieces by hand and collecting multiple images of each possible position.
Look, no hands!
A key feature of the Mechanical Turk was that the automaton appeared to move the chess pieces entirely by itself. Of course, its movements were actually being controlled by a person hidden inside the machine. The Raspberry Turk, by contrast, does move the chess pieces itself. To achieve this, Joey used a robotic arm attached to the table. The arm is made primarily out of Actobotics components. Joey explains:
The motion is controlled by the rotation of two servos which are attached to gears at the base of each link of the arm. At the end of the arm is another servo which moves a beam up and down. At the bottom of the beam is an electromagnet that can be dynamically activated to lift the chess pieces.
Joey individually fitted the chess pieces with tiny sections of metal dowel so that the magnet on the arm could pick them up.
Programming the Raspberry Turk
The Raspberry Turk is controlled by a daemon process that runs a perception/action sequence, and the status updates automatically as the pieces are moved. The code is written almost entirely in Python. It is all available on Joey’s GitHub repo for the project, together with his notebooks on the project.

Image credit: Joey Meyer
The AI backend that gives the robot its chess-playing ability is currently Stockfish, a strong open-source chess engine. Joey says he would like to build his own engine when he has time. For the moment, though, he’s confident that this AI will prove a worthy opponent.
The project website goes into much more detail than we are able to give here. We’d definitely recommend checking it out. If you have been experimenting with any robotics or computer vision projects like this, please do let us know in the comments!
8 comments
Kevin Hainsworth
Excellent, but when will he have built his second Turk so they can play against each other ?
Ian Steiger
Maybe…NEVER!!! But that would be cool!Just imagine that…
Doug Bates
Robot Wars with AI?
Joe
There’s no need to build a second one. You can have two separate AIs play each other on the same hardware.
Emilya
Great idea with a second one playing against each other! It will be fun to watch!
Emre Kerim Yıldız
Robot Wars soon :)
BlueMan
With the same chess engine on both robots? That may get boring after a while watching all the draws. But pitting different engines against each other – now that definitely would be very interesting to see the outcome. Or programming your own engine and playing it against the others would really be exciting and even be personally challenging and rewarding.
Joe
That’s not how most chess engines work. There is a level of randomization based on a series of best moves. Otherwise, the player would see a predictable pattern in the AI and eventually be able to beat it the same way every time. The engine can compete against itself and play differently each time. Additionally, the engine can be set to multiple levels of difficulty. Also, you wouldn’t need two robots. It can be done with the same robot, just like it was on the phantom boards that Excalibur put out a while back.