M6E Nano works fine, then stops

Hello all,

I am having trouble with the Simultaneous RFID Reader - M6E Nano reader card.

I have managed to connect an external antenna and read the data on a Raspberry Pi 3B. I get temperature readings on a regular basis and read tags at quite a distance from the antenna (15 to 20 feet). When it works, it works great!

My issue is that after some time, the reader simply stops sending data to the Pi. The amount of time varies, sometimes as little as 30 minutes, other times as long as 4 hours. When this happens, the amber light on the Serial Breakout board stops blinking and the Pi does not read any data. However, if I simply cycle the power on the Nano, everything works almost immediately. This leads me to believe that it’s an issue w/ the reader, not w/ the Pi.

I have 4 of these units, and they all behave the same way.

Full specs:

Reader - SparkFun Simultaneous RFID Reader - M6E Nano - https://www.sparkfun.com/products/14066

Communication to Pi - SparkFun Serial Basic Breakout - CH340G - https://www.sparkfun.com/products/14050

Power hookup - Screw Terminal to SparkFun microB USB Breakout - https://www.sparkfun.com/products/12035

Battery - 22000mah LIPO - Up to 5.8A - https://www.amazon.com/Portable-RAVPowe … 07QRQ5HZ4/

Reader specifics:

Serial Selection Switch - Set to HW-UART, though it does not seem to matter as reader is connected to a Serial Breakout, which is then connected to the Pi via USB cable.

JP1 - This is cut so that the only power coming into the reader is from the battery or wall outlet.

Heat Sinks - Two heat sinks.

status.png

My first thought was that perhaps the temperature was too high. However, I am able to log the temperature readings, and the temperature never gets anywhere near it’s safety threshold.

My next thought was that perhaps the battery that is powering the board was not providing consistent power. To test this, I plugged the reader directly into the wall, and it still eventually cuts out in approximately the same time frame.

My questions are:

Has anyone experienced this type of behavior?

What else should I be testing?

Any help would be greatly appreciated, as I have spent an embarrassing amount of time trying to troubleshoot this issue.

The nano is extremely sensitive to power availability. I also power with a 2200maH battery… but kept the JP1 closed and even then … when I run at high raeding/writting power it will fail often intermittently. Putting a scope on the data lines, I can only see a high amount of rubbish. Try running (even for test) on lower power. In my case it does run without problems. You will need a power supply that can provide high burst-level power (something with large capacitor)

Thank you for the guidance. Can you recommend a power supply? I run the card at full power to the antenna (27 I believe).

I have a similar problem. I run a red_board with the M6E Nano shield. We mounted the external antenna and set the read power to max. +27dBm. Then we ran for approx. one hour, got an error, restarted everything, had it up and running again and everything was good.

Today Thur07May2020 we can see no response from the M6E. The chip is suspiciously chilled - room temperature. I fear that it has gon in thermal lockdown. How can I reopen? I can read in the M6E user guide that I can do various things to prevent this - but I think I will tru and put a CPU thermal sink on the chip - perhaps with a fan even - we have 5VDC power enough from a large LiPo battery - from another project.

I need to re-open our M6E nano. How to do? Is there a software command that can do this?

Kind regards

Steen Oluf Karlsen

MscEE Thisted Tech High School

Soeholtvej 6

Vester vandet

7700 Thisted

Danmark

Europe

If it is terminal lock-down it should work again after it cooled off. No software instruction otherwise. Maybe it needs to be removed from 5V completely to do a cold restart.

If you use the Sparkfun library enable debugging before setup and share the connection debug info, or you the URA to create a logging. Maybe that will provide more insight.

Yes you are right, Thanks! It woke up again at noon (!) So after an hour or so it woke up again. Can you please give me the nano.method that will provide me the temperature of the chip?

I will keep an eye on it. Also: Today I have ordered a small alu thermal sink for surface mount. Plus a cpu fan. Will you recommend the use of this? We plan to use a plastic house approx 200 x 200 x100 mm. We must drill some holes in the plastic box I reckon - for ventilation.

The Sparkfun library is a (very much) scaled down version of the MercuryApi that is available for Windows/Linux-variants. I know the software command for obtaining the temperature is available in the MercuryApi, but can not find it in the Sparkfun version. If you use the Sparlfun library, I can make/include an additional command so you can can add that in the sketch. Let me know.

For cooling down the Terminal sink for sure. Adding a fan is even better. With temperature control you can even decide to only turn the fan on if the Nano reaches certain temperature.

We use the sparkfun library - so your help with writing an additional include would be very wellcomed! One last thing: Would you recommend that I try to remove the M6E sticker before I try to glue the thermal sink to the chip? I think its a plastic/paper sticker - I thought I could remove it with clean gasolene (chemical 100 pct purified gasolene)

Based on the latest version from Sparkfun, I have created a special version: https://github.com/paulvha/ThingMagic/b … ay2020.zip. It is completely backward compatible with Sparkfun’s version, but has 2 extra Sketch calls :

setPowerMode(uint8_t mode); This set the Nano to maximum power saving as documented in the datasheet. It can help save battery power and let the Nano cool down, e.g. overnight if it is not expected to be used.

The mode can be : 0 = Full Mode, 1 = Minimal saving mode, 2 = Medium saving mode, 3 = Maximum saving mode.

Example10 is added to demonstrate the usage.

int8_t getTemp();: this will return the internal temperature of the Nano ( or -1 in case error). The Nano will only provide a single number (e.g. 37 and not 37.4).

Example11 is added to demonstrate the usage when reading in continuous mode ( Example1 + temperature)

Example12 is added to demonstrate the usage when reading in single mode ( Example2_Read_EPC + temperature)

All the examples have been updated to easier select another serial port than SoftSerial, but that is only if you want it :slight_smile:

As for cooling, as with a processor : the closer the cooling block better, as long as it does no short circuit :slight_smile:

Ok PAULV - THIS IS MORE THAN I COULD EXPECT1 thanks a lot for your efforts! We will look into it tomorrow Wedn13May2020 12.00 CET