I'd like to make a chess-board with the ability to detect the position of each piece.

The solution that occurs to me would be to put an RFID reader under each square and put RFID tags on the bottoms of each piece.

However, apart from the obvious cost (64 readers!) I'm concerned that:

  1. Maybe RFID readers are too large for the squares of an ordinary chessboard
  2. RFID reader range is too large, so a reader might pick up pieces on neighbouring squares
  3. How the hell would I connect 64 readers anyway? Could an Arduino handle it?

So, questions.

Is this just stupid? And is there a better technology to use for this kind of application?

If RFIDs are basically a sane solution, what are the issues/suggestions? E.g. which RFID readers should I go for? (Based on size, energy, convenience for this application). What boards would let me handle this number of them?

  • 1
    I think the RFID range is probably too high for accuracy, plus managing 64 readers would be hard (somehow you would need to multiplex 64 serial ports). What might work would be to have a single reader, and 64 fairly small aerials - one under each square. Then somehow organize to use each aerial in turn and check for the chip. Maybe all but one aerial could be grounded, for example. With small aerials the range might not be too large.
    – Nick Gammon
    Jun 29 '15 at 4:59

As I read your post an idea came to me that must be obvious in its simplicity. Since a chess board has pieces already on it we can simply use hall-effect sensors (dirt cheap) under each square and each piece has a magnet at its base. Since pieces on a chess board move from one square to another and the initial position of all pieces is known/constant, the detection of a move would be that a piece is lifted from the board (hall effect sensor detects a magnetic field removal) and a piece being placed on a square would be detected by a hall effect senor addition of a magnetic field. We wouldn't know which piece is placed on a square but we can calculate it by remembering what piece was lifted and it can only be the piece that was placed.

  • 3
    I like the idea, it seems too simple, but maybe it would work perfectly. :) There have been chess boards around for years that detect where the pieces are, they can't all have 64 RFID readers in them, so perhaps they use a system like what you propose. For that matter, what about a simple light detector, when you lift the piece, light hits the square underneath, so you know it has been lifted?
    – Nick Gammon
    Jun 29 '15 at 5:01
  • Yes. That might actually be a good, simpler solution.
    – interstar
    Jun 29 '15 at 5:16
  • Some early ones actually had buttons under the squares. You'd have to push the piece you were about to move first, then move it to the other square and push it again. Crude, but cheap and effective. You can also add some sanity checking to your system. "I know the piece moved to here. I know the pieces are in this position, so only these three pieces could possibly move to that position. Which one did? That one!"
    – Majenko
    Jun 29 '15 at 12:03
  • A light-detector based solution would allow the players to use their own chess pieces rather than a specific set with magnets in the base. Furthermore, not having to rely on a particular set of pieces means you don't even have to play chess - you could implement a Draughts (Chequers) alternative software, or anything else played on an 8x8 board. Jun 30 '15 at 1:57
  • 1
    Brilliant idea but with one flaw: What happens when a pawn gets to the end of the board? How does this system know what someone has chosen to be? Nov 27 '15 at 15:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.