The ESP32 is s remarkably powerful microcontroller, where its dual-core processor and relatively high clock speed can do some impressive work. But getting this microcontroller designed for embedded systems to do tasks that would generally be given to a much more powerful PC-type computer takes a little bit more willpower. Inspired by his dog, [Folkert] decided to program an ESP32 to play chess, a famously challenging task for computer scientists in the past. He calls this ESP32 chess system Dog.
One of the other major limitations of this platform for a task like this is memory. The ESP32 [Folkert] is using only has 320 kB of RAM, so things like the transposition table have to fit in even less space than that. With modern desktop computers often having 32 or 64 GB, this is a fairly significant challenge, especially for a memory-intensive task like a chess engine. But with the engine running on the microcontroller it’s ready to play, either in text mode or with something that can use the Universal Chess Interface (UCI). A set of LEDs on the board lets the user know what’s going on while gameplay is taking place.
The UCI also enables Dog to play online at lichess.org, and [Folkert] has included a link on the project page where others can play with his microcontroller chess system this way through the Internet. It has a pretty respectable Elo rating at around 2100 as well, so don’t think that just because it’s a small platform that the wins will come easy. If you’d prefer your chess engines to run on retro hardware, take a look at this build, which also uses an ESP32 but puts it to work by running old Commodore chess equipment from the 80s. Of course, you can play chess on even less hardware. It has been done.
Hi,
Thank you for the article!
To clarify: Dog on pc is around 2200 elo, but the one on the ESP32 is more like a few hundreds elo less. My mistake: I had not anchored the rating of the PC-version in the table causing confusion.
So look at the white versions-graph to see what Dog does on a PC, and the newly added table just above that for on an ESP32.
I’ll just leave this here:
https://en.m.wikipedia.org/wiki/1K_ZX_Chess
And who can forget MicroChess, on the KIM-1? 1kB of memory…