I want to make a electronic chessboard that detects the position of every piece on the chessboard.

Every chess piece will have RFID tag.

My idea will be to have 2 multiplexers(1*8) one for the rows and another one for the columns. When I want to read the position of a piece I just activate the corresponding row and column of this piece.

I don't know how to user 125kHz RFID reader with traditional analog multiplexer and to sent the signal from antennas to multiplexer and then use the multiplexer to read the tags.

I tried to use the multiplexer for only one antenna, I connected the antenna to multiplexer and then I read the signal from multiplexer, but here I am stuck, I don't know how to take the signal from multiplexer and send it to RFID reader for being read.

I tried in next example to copy the signal from multiplexer in to another analog pin(A1) and to connect this pin to RFID instead of antenna but it didn't work.

This is how is looking the electronic scheme for what I did:


Here is the fritzing version of previous electronic scheme: https://github.com/neac-andrew/MUX-RFID-Reader/blob/master/MUX-RFID-Reader.fzz

And here is a corresponding Arduino code:

#include "RFIDRdm630.h"
#include "MUX74HC4067.h"

MUX74HC4067 mux(7, 8, 9, 10, 11);

#define RX_PIN                          12 
#define TX_PIN                          13
#define TAG_ID_BUFFER_SIZE              14

RFIDtag rfidTag;

char rxData[TAG_ID_BUFFER_SIZE]; // buffer array for data receive over serial port

// the setup function runs once when you press reset or power the board
void setup() {
    pinMode(A1, OUTPUT);


    // Configures how the SIG pin will be interfaced
    // e.g. The SIG pin connects to PIN 3 on the Arduino,
    //      and PIN 3 is a digital input
    mux.signalPin(A0, INPUT, ANALOG);

// the loop function runs over and over again until power down or reset
void loop() {
    analogWrite(A1, mux.read(0));//Here I tried to copy the signal from multiplexer in to another analog pin 

void readRFIDTag() {
    if (RFID.isAvailable()) {  // tests if a card was read by the module

        rfidTag = RFID.getTag();  // if true, then receives a tag object

        Serial.print("TAG: ");
        Serial.print(rfidTag.getTag());   // get TAG in ascii format
        Serial.print(" Card Number: ");
        Serial.println(rfidTag.getCardNumber());  // get cardNumber in long format


This is the library for RFID reader: https://github.com/electronicdrops/RFIDRdm630

This is the library for interfacing the 74HC4067 multiplexers: https://github.com/nlamprian/MUX74HC4067

Here is the datasheet for RFID reader http://www.mouser.com/catalog/specsheets/Seeed_113020002.pdf

This is the model of multiplexer http://www.logicware.com.au/CD74HC4067-16-Channel-Analog-Digital-MUX-Breakout-Board-Multiplexer

I did some research and I found her some related questions but the answers couldn't help me to much:

RFID chessboard


Multiplex 125kHz RFID antenna


Thank you in advance and I will appreciate any help.

  • \$\begingroup\$ I don't fully understand what do you want to do, you want to have one antenna per chess piece and pass each antenna to the reader? \$\endgroup\$
    – MPA95
    Commented Feb 11, 2020 at 18:31
  • \$\begingroup\$ Yes, exactly, this is what I want. And using the multiplexer I want to read each chess piece. I tried first to use only one antenna with multiplexer but it didn't worked. Sorry, I am so bad on clarification. \$\endgroup\$
    – Andrew
    Commented Feb 11, 2020 at 18:47
  • \$\begingroup\$ Without power the multiplexer won't multiplex. \$\endgroup\$
    – Ariser
    Commented Feb 11, 2020 at 20:24
  • \$\begingroup\$ Using right angles in your board/schematic improves readability :-) \$\endgroup\$
    – Horst
    Commented Mar 12, 2020 at 10:30

1 Answer 1


You are not going to be able to "copy" the signal of the mux to the reader via the arduino board. If you connect the antenna to the arduino analog input through the multiplexer, the signal will be converted by the ADC, and the best you could do later is convert it back with a DAC, losing a lot of signal integrity. This scheme is far from optimal, what you should do is connect the antennas directly to the reader through the mux, and use the arduino to select which is connected.

A multiplexer connects a certain input to an output according to a selector signal

enter image description here

In this 8:1 mux, the s0, s1 and s2 signals select which of the 8 inputs is connected to the output. So, in your case, the inputs of the mux should be the atennas, and the output should go to the input of the reader. With your arduino you should control the select signal. So, by giving values to the select signal, you can select which antenna connects to the reader.

You should analyze the impact of the multiplexer on the connection between the antenna and the reader, too.


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.