First of all, I have absolutely no experience in electrical engineering, so bear with me.

I want to build a chess set in which it can recognize what piece is on which square. Initially, I thought I could do that with RFID transponders, but as far as my layperson's research goes, the lowest read range is about 10cm/~0.4in, which is too wide in order to make sure the reader only recognizes the piece on its square, given that I do not want to make a large chess board. The desired read range would be 2-3cm/~0.8-1.2in.

But, I found this question which is more or less exactly what I want, so maybe I am wrong with the read range or misunderstand RFID-Transponders?

So, my question is, are there (read only) RFID-Transponders with a read range lower than 3cm?

If not, are there any alternatives, given that I need to know what piece is on a square, which means a simple "something is on that square" does not achieve my needs (for example a hall effect sensor)

The board will be roughly 0.5cm thick half-transparent PETG.

  • 3
    \$\begingroup\$ Most chess games just use magnets in the pieces and magnet sensors in the board and keep track of location in the software. The simplicity wins over the lack of flexibility. \$\endgroup\$
    – Transistor
    Commented Mar 6, 2021 at 11:07
  • \$\begingroup\$ Lego achieved it with rfid. I dare say there’s pulldowns on the interwebs that explain how they did it. \$\endgroup\$
    – Kartman
    Commented Mar 6, 2021 at 11:13
  • 1
    \$\begingroup\$ Transistor's suggestion merits investigation. Learning how to program a microcontroller and poll 64 sensors at all will be enough challenge for a first project, and the rules of chess make it simple to detect initialization, detect illegal moves, keep track of moves, with the one caveat that you may need an input if you want to be able to upgrade a pawn to something other than a queen. \$\endgroup\$
    – K H
    Commented Mar 6, 2021 at 11:27
  • 1
    \$\begingroup\$ @Transistor The reason I am against tracking location in the software is, that I want to be able to put any piece anywhere to create custom situations, like a puzzle. But yes, tracking in the software would be the easiest. \$\endgroup\$
    – nintschger
    Commented Mar 6, 2021 at 12:28
  • 1
    \$\begingroup\$ @KH I am a software engineer so I am familiar with programming a microcontroller. And I do not need to write the chess "engine" myself, there are numerous open source chess libraries I can take use of. \$\endgroup\$
    – nintschger
    Commented Mar 6, 2021 at 12:30

5 Answers 5


Read range on RFID tags is determined by the antennas on both the reader and the tag. You often don't have much control on the tag, but you can control the sensitivity of the readers antenna. You could use an RF multiplexer and a 125 kHz reader like the ID-3LA and sequentially read each location on the board. Not a trivial task, but it can be done.

One thing that would be interesting is to make the chess board from a PCB with copper trace reader antennas, the efficiency may be low, but that may be what you want. If your range was <2 mm, it shouldn't be a problem. Have the PCB made with black solder resist and silk screen the white squares. All the components would mounted on the other side of the board making the top very nearly flat.

As an added reference, Texas Instruments Application Report SLOA167 discusses a 4x4 array of RFID antennas.


Floris suggested a fun project. Identifying the chesspieces by using resonant LC-pairs.

I have made an experimental circuit that works.

  • I use a Parallax propeller that generates a trianglewave.
  • An audioamplifer amplifies the wave before feeding it to a resistance in series with a coil.
  • An envelope-detector converts the amplitude over the coil to DC.
  • The LC-pair is placed on top of the coil.
  • The DC-signal is connected to an analog input on an Arduino.
  • By letting the propeller sweep through a frequency range, you clearly see a peak at one frequency.
  • The LC-pair in this case is 117 microhenry paired with 16 nF.
  • It resonates at 45 KHz.

Edited 2022-02-08

Here is the circuit for detecting resonant frequence in LC-pars. enter image description here I have made some experiments with coil L1, the sender coil. With 90 turns 0.3 mm thickness, I got the enveloperesponce shown in image above.

With 150 turns 0.2 mm thickness, I got a stronger enevelopesignal.

But now with nothing placed on top of L1. There is a maximum at about 80 KHz. See image below. This will not work if I wan't to detect an empty place.

I had to reduce the windings to 90 again. Then the enveloperesponce is just rising with increasing frequency. No peak detected, as expected when measuring thin air.

Edit 2023-02-15

The project continues. I have made four "buttons" with a coil and a capacitor. They are ranging from 20 KHz to 120 KHz. Below 20 KHz the responce is a bit weak. And above 120 KHz the responce is a bit unclear. No sharp peak like what you see below 120 KHz. enter image description here

Here is an image of one of the buttons. The coil is what it is. But the size of the capacitor can be tested to tune it to the right frequency-peak. enter image description here

Edited 2023-04-11 The project continues. I have made a chessboard with 64 coils. And the electronis to control them. enter image description here The backside is a bit messy. But who cares :-) enter image description here Recievecoils in detail. enter image description here The multiplexer that selects row/coil, and feeds them with a tringlewave from the amplifier. enter image description here


Interesting problem. Any RF solution depends on the RF field of your antennas. A simple coil antenna has an approximate dipole field as you go further away - so pieces that are 2x further give an 8x lower signal. But if you use off the shelf RFID components I am not sure how reliably they will detect just the “closest” item.

Instead you could go back to first principles and roll your own (although you say you have little EE experience so this may be over your head)

A relatively simple design would use a few resonant components. There are 12 different chess pieces (king, queen, bishop, knight, rook, pawn)x(black,white) plus one “not a chess piece”.

In a binary encoding world that’s four bits (16 possible combinations). So here is a thing you could do:

Take four inductor/capacitor pairs with resonant frequencies that are sufficiently far apart that they are distinct within the component tolerance (say you have 10% tolerance on each, then if you put the resonant frequencies on an octave scale (100, 200, 400, 800, 1600 kHz) you can easily distinguish them.

Now if you bring an inductor close to such a resonant circuit and sweep the drive frequency, you will see a sharp change in behavior (current) as you go through each resonance. If each distinct piece has a unique “binary code” of resonators you will be able to distinguish them. If the detection coil is relatively small, signals from neighboring pieces will be very much smaller and you should be able to distinguish them easily.

To simplify the drive circuit you can use a matrix so you drive one row and read one column at a time.

The rest would be some Arduino magic. It would be a fun project.


In ISO parlance there are three ranges of RFID: proximity, vicinity and long range. They have compromises on speed, distance, power and cost.

Usually long range are UHF tags (meters of reading distance). Proximity and vicinity are somewhat overlapping, usually in HF.

While is it difficult to have a long range, to lower it you simply need to lower the magnetic field, mismatch the antenna or put a suitable obstacle. In some bands you can also go creative with ferrites to shape the field.

Now, your problem would be to have sixty-four antenna systems to handle. Using 64 transceivers would be quite expensive and it's not exactly trivial to multiplex the RF system.

  • \$\begingroup\$ I’m thinking about solutions that wouldn’t require 64 transceivers. If you had a transmit antenna for each row and a receive antenna for each column you could energise one row at a time and scan each column. The pieces themselves could be designed to draw power from the carrier (let’s say 10MHz for the sake of argument) and transmit another signal, let’s say 1MHz for this example, modulated with a lower frequency, say 100 to 1000Hz, which is different for each piece. Receive and amplify the eight 1MHz signals and filter the low-frequency to determine which piece is in each position. \$\endgroup\$
    – Frog
    Commented Mar 8, 2021 at 8:02
  • \$\begingroup\$ Well that requires multiplexing the RF, which isn't easy. Also RFIDs doesn't work with 'tones' unless you want to build the tag itself. However most can handle multiple tags on an antenna so you could do 16 antennas, one for each row and one for each column and then correlate the results. Quite slow but for a chessboard should be fast enough \$\endgroup\$ Commented Mar 9, 2021 at 7:00
  • \$\begingroup\$ Multiplexing at a few MHz isn’t hard, but correlating rows and columns as you suggest isn’t a bad idea \$\endgroup\$
    – Frog
    Commented Mar 9, 2021 at 10:15
  • \$\begingroup\$ Well for someone completely new at RFIDs the 13MHz signal for the HF tags isn't probably the easiest thing to handle. These day however there are many ICs ready (straight from the catalog HMC253AQS24 does switch a 2.4GHz signal on 8 lines, for example. Most probably there's cheaper stuff for lower frequencies). Also having 16 antenna loops partially overlapped is an… interesting mutual inductance configuration \$\endgroup\$ Commented Mar 10, 2021 at 6:46

You can get some tiny reed switches, and then some weak magnets in the base of the piece.

Sure, the piece would need to be positioned quite accurately within 2-3mm, but that should be doable with guiding markers on the board. Most chess players are a bit OCD about the placement anyway...

Getting 4 bits of data is very possible (one magnet in the corners of each piece), but I am unsure of how close together the magnets can be, and interference from the neighboring piece, etc. 2cm-3cm between each switch seems possible (Just tested this briefly, but I don't have anything smaller than a 3x3mm magnet, plus there are even smaller reeds than the one I have here.)

This is just a few bucks of components per piece, so I would atleast play around with some tiny reeds and some tiny magnets and see if they do fit on a satisfying footprint before you dive into the RFID project.

  • \$\begingroup\$ There's 6 kinds of chess pieces so 3 bits of data to ID the piece, 1 more bit to ID the color, so 4 bits is enough. Have the base of the pieces fit only one way into sockets on the grid square so spots for four magnets fit over the switches. Have magnets in the bottom of each piece to trigger the switches to ID the piece on that spot. I recall electronic chess boards use magnets to detect the presence of a piece then track the ID of each piece from memory. This works as one piece moves at a time and start position is fixed. With a single switch orientation and placement is not critical. \$\endgroup\$
    – MacGuffin
    Commented Mar 8, 2021 at 16:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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