USB chess board

Hi,

saw MRL was used to build a chess robot. I'm interested in using it to do something a little more modest and could do with some help getting started.

My project:

Arduino powered wooden chessboard: User vs board:

User moves detected by magentic reed switches, Arduino prog can send as simple nptation ; eg: e2e4

Computer moves received as similar text type messages and shown by flashing LED on square

Plus either txt to speech or simple LCD to display errors, messages etc

Connected to Rasperry PI running chess engine:

Can I use MRL on the Rasperry Pi? If so hints on getting started

Also what is the MRL chess engine, can it run a UCI engine like stockfish.

(previous solution was to run Arena chess on the Raspberry)

Any help gratefully received.

Max

hallo
GroG's picture

Hello and Welcome maxchess

"Can I use MRL on the Rasperry Pi?" <- yes, although we are a bit new to that area - so I'm sure it will take a "little work" to get you want you need.

I have a Rasperry Pi, so I'd be happy to follow along and assist.

From your initial statements, it a bit difficult to determine what you have built and what you are going to build.

The MRL chess engine is from Peter Hunter.. although I think he really did the graphics part and the engine is from somewhere else...  It's pretty good, I've never beat it, but then again I'm a lousy chess player ;)

MRL is written in Java - and Stockfish is a c++ project.  It's possible to incorporate the two, but not as easy as incorporating a Java project.

MRL can definately control an Arduino.

Is the entire system an Arduino & Raspberry?

Pictures always help ;)

 

maxchess's picture

Update on USBchessboard

Thanks for the reply.

My aim is to build a self contained wooden chess computer, similar to Novag Citrine. (good but has low quality board & pieces)

I intend to build two functional components:

a) Arduino based chess board

connected via USB to:

b) Raspberry PI based chess engine

Why not all in one?

a) Allows me to build multiple boards without duplicating chess engine

b) Arduino probaly not up to running engine but great for connecting switches LEDs etc

c) Raspberry PI limited physical connectivity, can add shield, if so might as well use Arduino, also allows Pi to just run chess engine.

d) my comptence. Long time since I programmed (fortran) can cope with Aruino environment.

 

I am aproaching this in stages:

What I have built is an Arduino based touch activated chess board (simple momentary switches) at present I use a USB connection plug it into a PC and use Arena Chess via simple keystrokes.

This is based on blog at: http://sishchess.blogspot.co.uk/p/building-sish-board-tutorial.html

except that I have written my own code.

Next steps are:

1) improve comms to serial

2) build Arduino based reed/LED  chess board

3) Get some sort of interface + chess engine running on Raspery Pi

At present waiting for bits to arrive.

Possible immediate step, try connecting MRL on a PC to existing USB chessboard

Need to understand how much of interface takes place in MRL and how much I need to write for the Arduino. e.g Does MRL check & communicate invalid moves, special moves etc.

Be good if MRL chess module used UCI, so could add any engine.

If this works it would give me a good design route.

Can send pictures later

Thanks

Max

 

 

 

 

 

GroG's picture

Your design plan sounds

Your design plan sounds good.

MRL currently uses Peter Hunters chess game - you can see/play it here - http://english.op.org/~peter/ChessApp/

MRL will run on a Raspberry Pi

MRL can control many Arduinos - the USB serial communication has recently been improved

MRL has its own Python/Jython editor & scripting engine. -  I would recommend that you take care of any "special logic & interfacing" in Python.

I don't believe Peter's game is UCI compatible - but if you find a Java chess engine that is, we might be able to plug it in.

Just to get you quickly up to speed - don't bother downloading the 14.9 release - a considerable amount of development has gone on since then - and you'd be advised to use the bleeding edge. Michael goes into a pretty good description of how to get it here - http://myrobotlab.org/content/color-tracking-mrl-using-opencv-jython-and-arduino-services

Hope this helps.

krazydad's picture

Sounds interesting

Hi Max,

I used a Novag Citrine for a project in which I supplied my own chess engine (I was actually using my chess engine to produce a live music performance). My board  is now a few years old, and has spent too many hours baking in the back of my car -- the thin wood veneer strips are peeling off the sides.  I'd love to construct a higher quality board with similar capabilities using solid wood. I'm not as interested in embedding the chess software within the board.  I'd prefer to just have a simple serial protocol for detecting moves (similar to the Citrine) so it can talk to my external chess engine via TCP  (ideally, via wireless) on my laptop or tablet.

Definitely interested to hear about your project as it progresses.

dad at krazydad dot com

 

maxchess's picture

USB Chess

Dad?

My project is based on:

http://sishchess.blogspot.co.uk/p/building-sish-board-tutorial.html

This blog tells you how to build a USB chessborad.

The basic board communicates by emulating a USB keyboard to send moves, but there are lots of variations discussed on the site.

One variation is to build a magnetic reed-switch board and then communicate using a serial protocol.

This is my plan. So far I have got the serial communication bit done and I am now building the Reed board (Slowly).

I have decided against using MRL for now, my board communicates serially directly with Arena, which handles the chess logic and runs any UCI chess engine.

 

Hope this helps

 

Max