From Chessprogramming wiki
Revision as of 10:25, 14 February 2021 by GerdIsenberg (talk | contribs)
Jump to: navigation, search

Home * Hardware * Arduino

Arduino Mega [1]

Arduino, (due to a legal dispute, since 2015 it is known as Genuino outside the United States [2])
a family of open-source hardware single-board microcontrollers based on the Atmel 8-bit AVR RISC chips [3] . An important aspect of the Arduino is the standard way that connectors are exposed, allowing the CPU board to be connected to a variety of interchangeable add-on modules known as shields [4] . Some shields communicate with the Arduino board directly over various pins, but many shields are individually addressable via an I²C serial bus, allowing many shields to be stacked and used in parallel [5] .

This page focuses on two boards with concrete computer chess applications.

Arduino Uno

The Arduino Uno is based on the 8-bit ATmega328 running at 16 MHz with 32 KiB ISP Flash memory with read-while-write capabilities, 1 KiB EEPROM, and 2 KiB SRAM. It has 14 digital input/output pins and six analog inputs and USB connection.

Arduino Mega

The 2009 released Arduino Mega uses the 8-bit ATmega1280 [6] , also running at 16 MHz, but with 128 KiB of Flash memory which 4 KiB used by bootloader, 8 KiB SRAM, and 4 KiB EEPROM. Arduino Mega has 54 digital input/output pins, 16 analog inputs, 4 UARTs, and USB connection. Its 2010 successor, the Arduino Mega 2560 [7] features the more advanced ATmega2560 [8] with 256 KiB Flash memory.


Arduino provides an integrated development environment running on a host computer, supporting the C/C++ based Arduino language [9] . Software written using Arduino language are called sketches, and undergoes minor changes like automatic generation of function prototypes during the build process, and then passed directly to a C/C++ compiler. All standard C and C++ constructs supported by AVR-g++ should work in Arduino. Alternatively, one may compile programs for the Arduino using AVR development tools, which requires configuration to link against the appropriate files in the Arduino core libraries [10] .

Computer Chess

Arduino controllers are suitable to build a dedicated chess computer - to control a self-made sensory board [11], or even to run small chess programs.

Chess Programs

Micro-Max by Harm Geert Muller was aleady ported for the Atmel-ATmega88 by Andre Adrian [12] , and is also available as ATM18 mini chess computer [13] from the electronics magazine Elektor. Óscar Toledo Gutiérrez' program Toledo Nanochess seems appropriate for the Arduino boards as well [14] . Otherwise, for Uno and Mega, there are some more chess programs available, dedicated and emulated.

Little Rook Chess

Little Rook Chess by Oliver Kraus is a chess game for using the Arduino Uno with a dedicated user interface realized with an Electronic Assembly DOG LCD module [15] and button shield. Little Rook Chess is part of the u8glib library (Universal 8bit Graphics Library) [16] under the terms of the new bsd license [17].


Obsolescence Guaranteed [18] has ported the original 6502 MicroChess, wrapped in a 6502 emulator, to the Arduino [19]. A further development is the KIM Uno [20], a calculator-sized KIM-1 replica with MicroChess built in. Both projects are open source software/hardware using the MicroChess source code (which is available but not open source) with permission from Peter Jennings.


Myopic by Steven Edwards is suited for the Arduino Mega, written in C++ and released under the Creative Commons license [21] .

Chess Robot

The Arduino Due Chess Robot is a self build sensory board with robot arm by Chris Quayle as a hobby project - powered by an Arduino Due and incorporating Micro-Max by Harm Geert Muller as chess AI.

Square Off

Square Off, the dedicated robot sensory board features an Arduino Mega with ATmega 2560 chip to control the piece moving two axis robotic arm, to detect piece movement, and to communicate with a smartphone via Bluetooth [22].


The ArdEBoard by Dominik Klein [23] is a sensory chess board based on reed switches and magnets glued below every chess piece. Source code for an ATmega32U4 to control the board is freely available at GitHub [24].

Analog Evaluation

Reading the 10-bit analog-to-digital converter, adequately supplied by a score voltage of a noisy analog leaf evaluation with some discrete analog circuits and op-amps takes about 100 microseconds and is likely too slow for that interesting application [25] .

See also

Forum Posts

2005 ...

2010 ...

2020 ...

External Links


Arduino Board Uno
Arduino Board Due
Arduino Mega 2560

Computer Chess

chess.c - dogm128 - Library for the Dogm-Graphics-LCD modules (AVR, Arduino compatible) - Google Project Hosting
CHESSuino = Chess + Arduino, YouTube Video
  • Wireless Arduino Powered Chess, YouTube Video


Arduino - BuildProcess
Arduino - FAQ
Arduino - Reference
Arduino - Tutorials


C, C++




Up one Level