FDX-B 134.2 kHz RFID reader

Hello everyone , I bought this from aliexpress. I made a mistake I know :frowning: but It is too late. I am trying to built my dogs automatic machine. It is working but my problem is read range. I bought both antenna the round one and the rectangular one. It says we can read from 3-40 cm but when I use the round one, it reads from 5 cm. When I use the rectangular one, it reads from 1 cm. Is there any suggestion for make antenna. I need at least 30-40 cm read range.Wave length = 2235.469m but If I take 132.2 (operational frequency I guess)= 2269.288m L=4.26 mH,R=70 ohm , Q=48 , capacitor= 330pF , Current=50mA BW=2800 Hz .How can I do 30-40 cm reader range antenna?

Here it is only reading from this range.

With such a narrow bandwidth, you must ensure the RFID device and your reader are tuned to an exact same frequency. What test equipment do you have to help with this? Just guessing is not a workable answer.
You can also TUNE the antenna using a variable capacitor if the antenna frequency is too high for the RFID device.

What test equipment do you have to help with this?

Unfortunately I don't have any equipment. I am just using formulas for these calculations.

You can also TUNE the antenna using a variable capacitor if the antenna frequency is too high for the RFID device.

I need oscilloscope for tune the antenna right ? I need to buy one :slight_smile:

Formulas are fine, but they tell you NOTHING about what you have and how it is working.

Okay I see, What do you suggest ? Which tools should I buy for it ? I know oscilloscope, I will bring the magnet up the coil and tune the sine wave . What else ? I am a beginner,I am doing research and trying to implement it. If I have oscilloscope can I tune antenna about 30-40 cm read range ?
And I don't know the diameter of coil , should I just measure what they send me and order same diameter ?
Thank you.

I tried coil 0.50 mm^2 . I got this worked but I only had 2 cm read range . My module can supply 3.3V . Can I get 30-40 cm read range with 3.3v ?Screen Shot 2021-10-11 at 15.30.21

Before getting further, EXACTLY what is read and how often is it read and is the data always the same or does it change from read to read?

It reads only 134.2 kHz tags. I have 1 tag (which they send) and I was reading b000000000000621 (621 is the value on the tag) . I am decoding with 'utf-8 '. I am reading 000000000000621 now. It is working on 9600 baudrate. Data is always the same. I will use it for 2 tag so data will change between 2 of them ( for example one is 000000000000621 the other one is 000000000000622) . It reads really fast .When I put closer the tag and take it back immediately, It reads. It is working like this but this is not my module. https://tr.aliexpress.com/item/32914122768.html?spm=a2g0o.search0304.0.0.41867a33YpQCOX&algo_pvid=766e8224-a3cc-43ef-a6a7-7be54e4684bb&algo_exp_id=766e8224-a3cc-43ef-a6a7-7be54e4684bb-20
In this link there is a video. This not my module but my module reads like this.

Example tag: Screen Shot 2021-10-12 at 08.43.16

I will put this on my dogs collars ( it is really small). I will not use the sharp part, only the digit part. (digit part has RFID ). I bought FDX-B because I am confused. I am thinking get microchip for my dogs (134.2 kHz). That's why I bought this RFID reader module.)

I measure the XL =3590 ohm (with formula) but I don't know the N. How can I find it?(with oscilloscope it would be easy :frowning: )

These units usually have "tuning" capacitors... in your case it could be the area highlighted below...

I have a similar unit and the instructions that came with it are not well written but I believe the idea is that you remove all the capacitors then add back the biggest first... then the next one down in size, until the current being drawn drops... then you skip a capacitor and continue. Not exactly sure where the "working current" is to be measured.

So let's say they are 8,4,2,1 in size for simplicity.

Remove all... current draw 80ma
Add the 8... current draw 90ma ... better
Add the 4... current draw 95 ma ... better
Add the 2... current draw 93ma < less so gone too far.. remove the 2
Add the 1... current draw 96 ma ... best

So optimal is the 8, 4, & 1 capacitors.

Here are the instructions for my unit... also has some info about stable power supply.

Good luck.

Thank you, I am gonna try. I saw that module too. How much read range do you have with that ? I am thinking the buy that module because my module can give 3.3V maybe that's why I can't have more read range. By the way my module don't even have instructions :slight_smile:

I haven't actually hooked it up yet.. only arrived yesterday. In theory based on the Ebay ad 134.2K AGV RFID Long Range Animal Tag Embed Reader Module TTL FDX-B ISO11784/ 85 713929762422 | eBay should be able to read those ear tags from a max of 36cm.

I'll let you know what I actually get.

Thank you. If I can get 36cm it is enough for me. If you can have that range I will order too. ISO11785/84 134.2Khz FDX B Pet RFID kulak etiket okuyucu modülü hayvan mikroçip tarayıcı yok sürücü tak ve çalıştır|IC/ID Card| - AliExpress. here is a video of that module.

I'll give it a try this weekend and let you know how I get on.

Thank you, I am looking forward to it. Have a nice day.

I realize I don't have 4 caps.I only have 2caps.

here is a photo. Since I don't know the caps value, should I desolder 1 caps?

I'm not really sure.. you could try to follow the same procedure as my instructions but I guess you will not be able to fine tune without the last 2 capacitors.

I guess you could try removing both... see results. Then add back 1 and see if you get a better result, then add back the 2nd. I presume they are different values?

It might be a different value (at least colors are different :smiley: ). I will try to do that. Thank you again.

@lentilcapacitor Ok.. so I got the RFID reader working ok. Only problem is I don't have much to test with... it didn't come with any RFID transponders, so my only test subject is this guy...

I suspect he has one of the small glass tube versions. I get a reading at about 8 cm. I haven't tried any tuning yet but I will do that next and let you know. I'll also try playing around with different power supplies as that also seems t impact distance quite a lot.

Okay, thank you so much. I have another question. That chip doesn't have Rx pin but they say it is easy to use with UART. If this chip don't have Rx pin, how are we gonna use UART?

That's correct @lentilcapacitor, it only has a Tx pin... the communication is one way. I'm getting readings at about 10-15cm... haven't had a chance to do any tuning yet.

Here is my code if you want to reuse it.

#include <SoftwareSerial.h>

SoftwareSerial RFID(7, 8);

byte b;
byte buffer[30];

uint8_t idx;
boolean started = false;

byte     XOR;
byte     inverted;

uint32_t   value;

void setup()
  Serial.begin (9600);
  RFID.begin (9600);

void loop()
  while (RFID.available())
    b = RFID.read();

    if (b == 0x02) // Start byte
      idx = 0;
      started = true;

    if (started) // Ignore anything received until we get a start byte.
      buffer[idx++] = b;

      if (b == 0x03) // End byte
        started = false;
        // Display the received data.
        Serial.print("Received data: ");
        for (int x = 0; x < idx; x++)
          if (buffer[x] < 0x10)
            Serial.print("0"); // Pad with leading 0
          Serial.print (buffer[x], HEX);
          Serial.print (" ");

        // Check we received the message ok.  XOR checksum on bytes 01-26 should match byte 27.
        XOR = buffer[1];
        for (int x = 2; x <= 26; x++)
          XOR ^= buffer[x];  
        Serial.print("Calculated checksum: ");
        Serial.print(XOR, HEX);

        if (XOR == buffer[27])
          Serial.println(" (Correct)");
          Serial.println(" (Error)");

        // Check the inverted XOR checksum
        inverted = ~XOR;
        Serial.print("Inverted checksum: ");
        Serial.print(inverted, HEX);
        if (inverted == buffer[28])
          Serial.println(" (Correct)");
          Serial.println(" (Error)");

        // Extract the card number from bytes 01 (LSB) - 10 (MSB).
        value = 0;
        for (int x = 10; x >= 1; x--)
          if(buffer[x] <= '9')
            value = (value<<4) + buffer[x] - '0';  
            value = (value<<4) + buffer[x] - '7';  
        Serial.print("Card number: ");

        // Extract the country number from bytes 11 (LSB) - 14 (MSB).
        value = 0;
        for (int x = 14; x >= 11; x--)
          if(buffer[x] <= '9')
            value = (value<<4) + buffer[x] - '0';
            value = (value<<4) + buffer[x] - '7';  
        Serial.print("Country number: ");

        // Extract the Data Block from byte 15.
        Serial.print("Data block: ");
        Serial.println(buffer[15] - '0');

        // Extract the Animal Flag from byte 16.
        Serial.print("Animal flag: ");
        Serial.println(buffer[16] - '0');


This is the output...

Received data: 02 33 39 38 44 38 35 42 30 30 30 36 44 33 30 30 31 30 30 30 30 30 30 30 30 30 30 79 86 03 
Calculated checksum: 79 (Correct)
Inverted checksum: 86 (Correct)
Card number: 190371987
Country number: 982
Data block: 0
Animal flag: 1