PROJECT FOR CHESS ENTHUSIAST - Electronic board

Hello,
Hope to find on this forum chess enthusiast who would like to spend some time to create chess board that connects to popular online web chess sites like chess.com, lichess.org.

Little bit about project - I read in forums from many other people(the same problem I have too)
that when you play on computer or mobile device, after it is very difficult to play chess in reality on the real board. And in case you are successful in chess you will need to take part in real tournaments with real boards..

The PROBLEM - playing chess on computer or mobile device is very different than playing on the real board.

The SOLUTION - board that connects to popular online web chess sites. When you move figure from one position to another the same happens on virtual board. When your opponent moves figure on virtual board from one position to another, on your real board will start flashing two squares. The first square will show you which figure has the opponent moved and the second flashing square will show you to where he has moved. When you move opponents figure to the right place, the squares stops flashing.

There are DGT chess boards that works similar, but they are little bit expensive and they don't flash :slight_smile:
they tell you coordinates of opponents move.

If this project will have success, we can make site on which will be posted open source code and plans for the board. So everybody can make it.

I am not so strong in programing, but I have some experience with modeling and planing, also I have 3d printer and wood workshop. I think I can do the board for me and for all active members of a project. I believe that the board it self must be easy to make for everybody. So it should be made from laser cut parts or 3d printed parts. So everybody around the world can just download the plans, order the parts and assemble them.
At now I can't show you any plans of board, because:

  1. Alone I can not make this project, so no need to start, if nobody join.
  2. I do not know exactly which sensors and hardware will be used, so it is difficult to plan something..

But to prove you that I am able to make some parts for this project, video from my last work:

So if you like this project and you believe you can add something useful, you are welcome!
This topic will be posted on couple different forums(chess forums and electronic forums). If there will be people who will want to join this project, we will create extra forum or some place where we can chat all as team. There are a lot of solutions for teamwork.
But for now, I just leave my email: romanmastino@gmail.com
Just write me a little letter with your name and what kind of job you can do(web additions, ide programing, hardware modeling, board modeling).
See you!

You realize, I hope, that it is not just the board that needs modification. How is the board going to detect that you picked up the Queen? How is it going to detect that you placed it on row 7, in column 3?

You could embed an RFID card in each of the 16 pieces. RFID cards are relatively cheap, so 16 of them won't make the spouse go "No way, the kids need new shoes!".

The problem, though, comes from needing 64 RFID readers, of a size that will fit in a conventional chess board, and of needing a microcontroller with 65+ serial ports, to read all the RFID readers. Now, 64 RFID readers just might cause the spouse to out a foot down. On some part of your anatomy that should have a foot put down on it.

Even if you get that one past the spouse, a Mega can read only 3 readers, and still have a serial port to talk to the PC. So, you'd need 22 Megas to read all the RFID readers. You'd also need a PC with 22 USB ports, and an application on the PC capable of reading 22 serial ports simultaneously.

The RFID reader won't tell you that piece was picked up. It will only tell you that a piece was put down (and which one, of course). The supervising application would have to assume that the piece that was put down was picked up from the board, and update its matrix appropriately.

The computer knows the location of all pieces at start are in place.

It knows that white starts.

moving a piece on the board means that the computer sees (assuming white's turn)

  1. a white piece dissapear at some place and see a piece appear at another place.
    This is a plain move, ==> check if allowed. ==> update location table
  2. a white piece dissappear at some place, a black piece dissappear and a piece appears on the spot where
    the black piece was.
    This is a "hit"(?) move
  3. similar the switch of king and tower (roccade?)
  4. pawns may hit "en passant"
  5. promotion of pawns is difficult as one does not know what to promote to (ok 95% promotes to queen)

so there is no real need to have all pieces extended with RFID imho.

I though the easy way is to print top part of each square from PETG plastic. The color will be black and white, but IR light of the sensors will penetrate this plastic. We can place one sensor under each square, sensors like CNY70, they are cheap.

This project will be easier if the board does not need to keep track of which pieces are white and which are black.

When a move is recieved from the remote source, flash the from and to squares until from is empty and to is not empty.

When it detects a square becoming empty and then another becoming occupied, prepare to send the move to the remote. The move should actually be sent only when the player hits the 'ok, that's what I wanted to do' button. For players accustomed to using chess clocks, this will come naturally.

Issues: capturing, castling (K and Q side) and en-passant.

The main difficulty is not sending and receiving the moves, but the gear that 'contains' this process - establishing a connection to the server, the flow of control of setting up the game. This is one reason why it would be helpful to only manage the minimal problem of detecting moves and not having the board try to track the game. What if you want to set up a problem or a position and play it out? If the board manages the actual game, then you have to write code to manage all that. Far simpler to just have a button that says 'ok, board, the position is set up - commence receiving and transmitting moves'.

A great deal depends on what API is provided by these online sites, how easy/difficult it is to hook into it. It is quite a problem to establish a session on the web browser and then to transfer that session over to this board. The board would need login details, session ids. It migh be possible to write some sort of browser plugin that 'hijacks' the web page that talks to your online server and talks to your board. Plain javascript almost certainly can't do it - it would be a considerable security risk.

The programming is not trivial, is what I am saying. You may need to build the board in such a way that it just does lighting up and detecting moves, and have an additional program runnning on the computer to talk to the board on one side and the server on the other.

means that the computer sees (assuming white's turn)

  1. a white piece dissapear at some place

How will it see that? For any definition of see that you like?

We can place one sensor under each square, sensors like CNY70, they are cheap.

How will you assure that a sensor under one square does not see a piece on another square? How will you assure that the player places a piece where the sensor can see it?

PaulS:
How will you assure that a sensor under one square does not see a piece on another square? How will you assure that the player places a piece where the sensor can see it?

Actually very easy, the walls between squares can be made from black ABS plastic, so IR light will not penetrate it. That means that the sensor will ''see'' only his square. And the second question, you can point the IR light in the centre of the square. So it is not important how you place the figure, if you place it in this square it will so and so close the centre of the square.
But it seems that hardware(sensors and board it self) is not that problem. The bigest problem is to connect it to chess.com or other online chess platforms. The more I read and think about it, the more I understand that it is a very very big and hard job to realize it.

The more I read and think about it, the more I understand that it is a very very big and hard job to realize it.

I'm not familiar with any of the online chess platforms, but they must accept some kind of input, that could be made by making an appropriate GET request. If so, then connecting the Arduino with ethernet or WiFi shield, and making the appropriate requests, would be easy. It's getting the data for the request (which piece moved where) that is the hard part.

Hi, my name is Igor and I'm Italian. My English is bad and therefore I will use google translate to communicate :-). I too would like to build an electronic board like DGT with the recognition of the pieces and then play with a chess program like FRITZ. For the recognition of the pieces I think I will be well under way, under each piece there is an RFID tag and thanks to the arduino connected to an RC522 card I read the 64 boxes on the multiplexer board. Now my problem is to communicate the moves thus obtained on the USB port of Arduino adopting the DGT protocol. I do not know how to do....
Can anyone help me ?
Hi ... Igor

I doubt the DGT board is made with 32 RFID tags + 64 readers, it's a bit too expensive and too complex for a 220 euro end user price.

So it most likely works with simple on/off switches on every square and movements are inferred by the PC-side driver from scanning all switches and chess rules.

Inputing commands into chess board software - that's a tricky part, from what I understand the DGT driver interracts with a running PC installed chess software, not with a browser-based interface.

One way to make the on/off switches is with hall sensors in the board and magnets glued within the bottom of the pieces.
(optionally) By using linear hall sensors within the board 1 extra bit of information can be extracted, e.g. white figures have the magnets with south up and black ones with north. One-two extra bits (to distinguish between e.g. pawns and higher figures) might be obtained by having magnets mounted higher or lower in the bottom of each piece. (magnetic field varies quickly with the distance between magnet and sensor).

One trivial way of "talking" with any chess software interface is by sending keyboard codes, most of them, even browser based should work with that it. Not very reliable, things gets easily wrong if user uses other programs while playing a game.

The led showing adversary's movement are a bit overkill, for a few of reasons:

  • first it is only a cosmetic feature, the opponent's move is already printed on screen and/or "spoken" by the chess software itself
  • second it complicates the board a lot, and restricts its manufacturing options since hall sensors can be simply glued under a plywood or even cardboard table, having the squares lighting up, specially the black ones, is a different thing
  • last but not least it assumes there-s a way of chess software to talk back to the "physical board". Accepting inputs from an external sensing device to an arbitrary PC program is one thing, extracting feedback from the same arbitrary program to send it to the board might be overkill.

A funny chess robot (maybe will give you some ideas for your own project):

https://forum.arduino.cc/index.php?topic=490965.0

Hi blimyway, thanks for the answer ... However, the DGT chessboard works with the following principle ... Below each column (A, B, C, D, E, F, G, H) a reel is placed with a a certain number of turns, the same thing for the lines (1,2,3,4,5,6,7,8). An electronic circuit transmits in multiplexers to the 8 coils placed on the columns, 12 different frequencies one at a time, how many pieces are to be discriminated on the board (Pawn W / B-Tower B / W, Bishop B / W, Horse W / B, Queen B / W, RE B / W). The same circuit while transmitting a frequency on the column, always in multiplexer reads if on the coil placed under the row, there is the same frequency transmitted on the coil placed under the column. If the result is positive, it identifies the piece on the board. The pieces simply have within them a parallel LC resonant circuit, which, in resonance with the transmitted frequency, becomes an antenna that transmits the received frequency on the reel on the line. The system is quite simple, I experienced it myself, but you have to know that when the board of the DGT was built there was not yet the NFC technology we have today, which greatly simplifies the implementation and lowers the costs of implementation. To identify the pieces on the board, I use 64 NFC tags from the ridiculous cost, plus an arduino nano and the RC522 card. All spending less than € 50. Now I have to create the code that interfaces with the detection of the moves on the board and transmits from the USB dell'arduino to the PC moves with DGT protocol to then play with the board with programs like Fritz that support the board of the DGT. Hello

Sorry, I was wrong to write 64 TAG, the tags are 32 places under each chess piece.

EtaBetaPot:
I use 64 NFC tags from the ridiculous cost, plus an arduino nano and the RC522 card

How did you design your multiplexed antenna ? is there any recommendations or application note to start with ?

Have you finished your project? I also want to use RC522 RFID reader for my project. But multiple readers are interfering each other.

Mastino:
Actually very easy, the walls between squares can be made from black ABS plastic, so IR light will not penetrate it.

If the squares can be separated by walls then the sides of the wall could serve to contain mechanical contacts. The pieces have their identity encoded via a series of contacts, forming a binary code, which mate with the socket and make, or fail to make, a contact. Think processor chip pressed into a PLCC soldered socket on a PCB. Contact status is read into the processor by a series of PISO registers. Sockets and piece bases are keyed so only one orientation of the piece works. Add some SIPO registers to flash LEDs.

An Electronic Chessboard Using RGB LED Strips and HALL EFFECT SENSORS