0

I have a RDM6300 RFID module which I am trying to connect to an ESP8266 by using rdm6300.h library.

I had it all up an running all along with other components but we had connected to the ESP8266 but we had to move from the breadboard to an actual wired setup. Everything kept on working except for the RFID reader. The way I used to do it was by making a reference to this approach (more or less):

#include <rdm6300.h>

#define RDM6300_RX_PIN 4
#define READ_LED_PIN 13

Rdm6300 rdm6300;

void setup()
{
    Serial.begin(115200);

    pinMode(READ_LED_PIN, OUTPUT);
    digitalWrite(READ_LED_PIN, LOW);

    rdm6300.begin(RDM6300_RX_PIN);

    Serial.println("\nPlace RFID tag near the rdm6300...");
}

void loop()
{
    /* if non-zero tag_id, update() returns true- a new tag is near! */
    if (rdm6300.update())
        Serial.println(rdm6300.get_tag_id(), HEX);

    digitalWrite(READ_LED_PIN, rdm6300.is_tag_near());

    delay(10);
}

but now, after the re-arrangement it just stopped reading tags. What I did was to disconnect everything from the ESP and leave only the RDM6300 connected to it with the sample code. Unfortunately, it doesn't seem to detect any tags.

In order to test if the components are failing for some reason, I decided to test it by using SoftwareSerial.h library on it like this:

#include <SoftwareSerial.h>
SoftwareSerial RFID(2, 3); // RX and TX

int i;

void setup()
{
  RFID.begin(9600);    // start serial to RFID reader
  Serial.begin(9600);  // start serial to PC 
}

void loop()
{
  if (RFID.available() > 0) 
  {
     i = RFID.read();
     Serial.print(i, DEC);
     Serial.print(" ");
  }
}

and it worked perfectly fine. I was able to read the payload coming from the chip:

2 30 31 30 46 33 46 38 44 39 31 32 44 3

But, since I don't want to implement everything related to decoding this serial stream I decided to ask for your opinion what could be wrong here. It used to work without any problem but now it doesn't.

There is something interesting which I also noticed. When I run the first code snipped and change the ESP8266 pin used from 4 to 16(D0) and I upload it, once I move the tag close to the antenna the hardware light related to this pin starts flashing and when I bring the tag back (away from the antenna) it stops flashing.

This makes me thing that on a hardware level everything is fine but some software issues are happening.

11
  • a note to sw Serial sketch: pin 3 is hardware Serial RX – Juraj Sep 16 '20 at 17:00
  • doesn't the rdm6300 library implement something like sw Serial? did you try sw Serial with pin 4 and rdm6300 with pin 2? – Juraj Sep 16 '20 at 17:02
  • @Juraj this is the implementation: github.com/arduino12/rdm6300/blob/master/src/rdm6300.cpp – user2128702 Sep 16 '20 at 17:04
  • yes, it is a built-in sw Serial – Juraj Sep 16 '20 at 17:06
  • @Juraj How does that help in my case? – user2128702 Sep 16 '20 at 19:03
0

What fixed the issue for me was to go to Boards manager on Arduino IDE and update to latest version:

enter image description here

Then I got the following error when compiling:

Board generic (platform esp8266, package esp8266) is unknown

In order to fix that, I followed these instructions.

And, I also removed rdm6300 library from C:\Program Files\Arduino\libraries and moved it in C:\Users\myusername\Documents\Arduino\libraries

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.