SparkFun Simultaneous RFID Reader - M6E Nano

of course ‘tmr:///dev/ttyUSB0’ is not working… the Nano is connected serial as we exchanged before.

Yes, you are right but, I tried all the options listed…

‘tmr:///dev/ttyUSB0’

‘tmr:///dev/ttyS0/’

‘tmr:///dev/ttySerial0/’

‘tmr:///dev/ttyS1/’

‘tmr:///dev/ttySerial1/’

‘tmr:///comx*’…

Every time I get an error… “Error connecting reader: Not such file or directory”.

Are you sure about the Power from Pi3 is enough ???

Please let me know If I am missing any configuration

In order to cross-check, I connected the SparkFun Simultaneous RFID Reader with the Arduino.

While I connected with Arduino… all the connections were correct, Upload successfully.

I use the example code Provided by Sparkfun Arduino library ----> Example1_Constant Read.

Please see the attached images. I am providing use input, But it. not moving to the next Serial. print… as mentioned in Photo.

Again concerned about whether the Power supply from Arduino 5V is enough.??

As long as you select 500dbm it worked with me all the time. But with 500bdm you need to put the tags nearly on-top-off the onboard antenna.

For the raspberryPI, double check in the instructions I included earlier (disable BT and disable console to serial). The device is called /dev/serial0 or /dev/serial1 (do ls /dev)

Yes the tag is stick to antenna as showed in above photos.

Yes you can see in this attached image. BT is disable and serial console is off.

Is there any other settings/ configs we can check ???

Even I provided eternal 5V dc, same results …

rohan.1290:
In order to cross-check, I connected the SparkFun Simultaneous RFID Reader with the Arduino.

While I connected with Arduino… all the connections were correct, Upload successfully.

I use the example code Provided by Sparkfun Arduino library ----> Example1_Constant Read.

Please see the attached images. I am providing use input, But it. not moving to the next Serial. print… as mentioned in Photo.

Again concerned about whether the Power supply from Arduino 5V is enough.??

In this case, what do you thing ???

What position is the UART switch in when on the Uno?

Do you have stacking headers installed so that all the pins connect between the shield and Uno? If not, what pins are you connecting?

I try with Both switch positions. SW and HW

I don’t have stacking headers installed, I just connect using jumper wires…

I use PIN 2 and 3 of Arduino UNO to Rx and Tx of Nano(Next to Buzzer), Not FTDI…

But I think all connection is good, bacause I try with different wiring and if it’s wrong, program doesn’t cometo this stage…

See the whole program…

#include <SoftwareSerial.h>

SoftwareSerial softSerial(2, 3); //RX, TX

#include “SparkFun_UHF_RFID_Reader.h” //Library for controlling the M6E Nano module

RFID nano; //Create instance

void setup()

{

Serial.begin(115200);

while (!Serial); //Wait for the serial port to come online

if (setupNano(38400) == false) //Configure nano to run at 38400bps

{

Serial.println(F(“Module failed to respond. Please check wiring.”));

while (1); //Freeze!

}

nano.setRegion(REGION_NORTHAMERICA); //Set to North America

nano.setReadPower(500); //5.00 dBm. Higher values may caues USB port to brown out

//Max Read TX Power is 27.00 dBm and may cause temperature-limit throttling

Serial.println(F(“Press a key to begin scanning for tags.”));

while (!Serial.available()); //Wait for user to send a character

Serial.read(); //Throw away the user’s character

nano.startReading(); //Begin scanning for tags

}

void loop()

{

if (nano.check() == true) //Check to see if any new data has come in from module

{

byte responseType = nano.parseResponse(); //Break response into tag ID, RSSI, frequency, and timestamp

if (responseType == RESPONSE_IS_KEEPALIVE)

{

Serial.println(F(“Scanning”));

}

else if (responseType == RESPONSE_IS_TAGFOUND)

{

//If we have a full record we can pull out the fun bits

int rssi = nano.getTagRSSI(); //Get the RSSI for this tag read

long freq = nano.getTagFreq(); //Get the frequency this tag was detected at

long timeStamp = nano.getTagTimestamp(); //Get the time this was read, (ms) since last keep-alive message

byte tagEPCBytes = nano.getTagEPCBytes(); //Get the number of bytes of EPC from response

Serial.print(F(" rssi["));

Serial.print(rssi);

Serial.print(F(“]”));

Serial.print(F(" freq["));

Serial.print(freq);

Serial.print(F(“]”));

Serial.print(F(" time["));

Serial.print(timeStamp);

Serial.print(F(“]”));

//Print EPC bytes, this is a subsection of bytes from the response/msg array

Serial.print(F(" epc["));

for (byte x = 0 ; x < tagEPCBytes ; x++)

{

if (nano.msg[31 + x] < 0x10) Serial.print(F(“0”)); //Pretty print

Serial.print(nano.msg[31 + x], HEX);

Serial.print(F(" "));

}

Serial.print(F(“]”));

Serial.println();

}

else if (responseType == ERROR_CORRUPT_RESPONSE)

{

Serial.println(“Bad CRC”);

}

else

{

//Unknown response

Serial.print(“Unknown error”);

}

}

}

//Gracefully handles a reader that is already configured and already reading continuously

//Because Stream does not have a .begin() we have to do this outside the library

boolean setupNano(long baudRate)

{

nano.begin(softSerial); //Tell the library to communicate over software serial port

//Test to see if we are already connected to a module

//This would be the case if the Arduino has been reprogrammed and the module has stayed powered

softSerial.begin(baudRate); //For this test, assume module is already at our desired baud rate

while (softSerial.isListening() == false); //Wait for port to open

//About 200ms from power on the module will send its firmware version at 115200. We need to ignore this.

while (softSerial.available()) softSerial.read();

nano.getVersion();

if (nano.msg[0] == ERROR_WRONG_OPCODE_RESPONSE)

{

//This happens if the baud rate is correct but the module is doing a ccontinuous read

nano.stopReading();

Serial.println(F(“Module continuously reading. Asking it to stop…”));

delay(1500);

}

else

{

//The module did not respond so assume it’s just been powered on and communicating at 115200bps

softSerial.begin(115200); //Start software serial at 115200

nano.setBaud(baudRate); //Tell the module to go to the chosen baud rate. Ignore the response msg

softSerial.begin(baudRate); //Start the software serial port, this time at user’s chosen baud rate

delay(250);

}

//Test the connection

nano.getVersion();

if (nano.msg[0] != ALL_GOOD) return (false); //Something is not right

//The M6E has these settings no matter what

nano.setTagProtocol(); //Set protocol to GEN2

nano.setAntennaPort(); //Set TX/RX antenna ports to 1

return (true); //We are ready to rock

}

next to yellowdogs questions:

which tags do you use ?

Also before calling “setupNano(38400)” include “nano.enableDebugging(Serial);” This will show the messages exchanged with the the Nano. Please share the output you get.

Just for this test… I have dug up the old Arduino UNO. Connected as follows :

uno   Nano (FTDI)
5V    VCC
gnd   gnd
pin2  TX0
Pin3  RXI

Put the tag on-top-off the onboard antenna

Used example1 unmodified… worked without any problems immediately!

P.s. Make sure that the “input-box” of the serial monitor is selected when pressing else nothing happens

paulvha:
next to yellowdogs questions:

which tags do you use?

- I am using the tags sold by Sparkfun UHF RFID Tags - Adhesive (5 Pack)UHF RFID Tags - Adhesive (5 Pack) - WRL-20228 - SparkFun Electronics

Also before calling “setupNano(38400)” include “nano.enable debugging (Serial);” This will show the messages exchanged with the Nano. Please share the output you get.

Please see the output of the code with changes…
Also, I have made the same connections as you mentioned and the tag is touched to antenna.

What I see is that it requests the hardware and firmware versions, it sets the speed to 38400, and requests the hardware and firmware versions again. That all works.

Now it tries to set the protocol to gen2 (93 00 05). THAT fails… and any call from there on fails. If you see the same outcome every time I think the firmware on Nano is having an issue.

Try the URA (universal reader assistent on windows) from jadek/thingmagic or ask for replacement

Yes, I try the URA from jadek/thingmagic…Not showing COM…

See attached picture…

Seems like firmware issue

What USB to serial interface are you using? That’s what the software is saying it can not find.

I am using one has IC “SILABS CP2102 DCL00X 1546+”…

https://www.silabs.com/interface/usb-br … ?tab=specs

Figure out what COM port your Si Labs CP2102 is on and put that in the Jadac software. Otherwise the software can’t communicate with the M6E.

As I mentioned in the Above picture…it’s COM8.

Not working on Jadac, but showing in Arduino IDE

If it needs replacement, please guide me for that.

Thank you

Isn’t COM8 in the ArduinoIDE the Arduino Uno USB and not the Nano M6e directly connected with an FTDI?

No it just Nano connected via FTDI…and it’s COM8.

If I connect Arduion UNO without FTDI, it’s COM6.

I am lost a bit.

  • In your post from Wed Sep 27, 2023 7:13 pm it shows COM8 for the Arduino Uno in the IDE.

  • In your post from Thu Sep 28, 2023 5:18 pm you refer back that it is COM8 showing the IDE for the M6E, but that is for the Arduino Uno.

  • if you have an FTDI for the Nano, why don’t you use that with the Raspberry PI as that will give you /dev/ttyUSB0 and maybe works?
  • Thoughts:

    Can you select voltage on your FTDI (some are set for 3v3 and that will not work)

    Is the power light on ?

    Do you have pictures of the M6E Nano connected to your PC ?