SparkFun Simultaneous RFID Reader - M6E Nano

The SparkFun Simultaneous RFID Reader is an Arduino-compatible board to get you started with the M6E Nano UHF RFID Reader. Radio Frequency Identification (RFID) is becoming popular everywhere for tracking practically everything. Whether you want to get started by adding an RFID reader on your toolbox with tags on all your tools or allowing access to the tree house for your secret society meetings, this board may be for you!

With the Arduino shield footprint, you can connect this directly to an Arduino-compatible board, or a different microcontroller. You can also connect directly to your computer using the FTDI header on the board and read data using the Universal Reader Assistant.

Once you’ve started, this board will read EPCglobal Gen 2 tags (see Recommended Products) at up to 150 tags per second. Writing of tags is also possible at 80msec standard write. The board has adjustable power output from 0dBm to 27dBm, meaning that with the correct antenna you can read up to 16 feet (4.9m), or 1 to 2 feet with the onboard antenna.

Note: Your reader ships with a piece of gray, nonconductive Thermal Gap Filler to help with both heat dissipation and to cover the exposed ground plane (to prevent circuits from shorting against it).

Warning: Ensure that personnel do not stand in the radiation beam of the antenna unless they are more than 21cm away from the face of the antenna (to adhere to FCC limits for long-term exposure). See Datasheet for more information.

Get Started with the Simultaneous RFID Reader Guide

  • EPCglobal Gen 2 (ISO 18000-6C) with nominal backscatter rate of 250kbps
  • Separate read and write levels, command adjustable from 0dBm to 27dBm in 0.01 dB steps
  • 0.84W in ready mode
  • 0.00025W in shutdown mode
  • Up to 150 tags/sec to read 96-bit EPC
  • 80msec typical for standard write of 96-bit EPC

SparkFun Simultaneous RFID Reader - M6E Nano Product Help and Resources

Simultaneous RFID Tag Reader Hookup Guide

February 23, 2017

A basic guide to getting started with the RFID Tag Reader breakout and how to read and write multiple RFID tags over multiple feet!

RFID Basics

February 23, 2017

An overview of Radio Frequency Identification (RFID) technology.

Reading a Pile of RFID tags

There might be some interference if the M6E Nano RFID reader is trying to read a pile of RFID tags. This can cause issues reading a few tags that are directly on top of each other. It would be better to spread the tags at a certain distance from each other or move the RFID reader around to get a clear read on all the tags in range.


Customer Comments

  • The firmware version of the M6e Nano is 1.03.02.4A. The current version according to ThingMagic’s website (1) is 1.7.1 (“CRITICAL firmware release for the ThingMagic Nano modules. (Prevents issue of CRC error with no method of recovery.)”) of Dec 2016. It would be very kind of Sparkfun to provide the recent firmware as the current one may permanently kill the board!

    (1) http://www.thingmagic.com/index.php/manuals-firmware#Nano

    • It appears that the latest batch of readers that SparkFun is now shipping have the 1.7.1 firmware preinstalled. (Specifically, 01.07.01.02.)

  • An idea to allow mounting a heat-sink to this product while still being able to use it as an Arduino shield: Put stackable headers on your UNO-compatible (best if you can get one without any header sockets pre-installed to avoid the hassle and potential damage of desoldering). Then you can stack this board under the Arduino.

  • I have recently purchased the Sparkfun Simultaneous RFID reader (which uses the ThingMagic M6e nano module). I have been using it with an Arduino Uno and using the Sparkfun Arduino library.

    It works well for reading tags, but it tends to read tags randomly (or maybe it reads the tag with the strongest RSSI). So, if I had 5 tags sitting, it would tend to return the UID of 1 tag many many times, and occasionally show the presence of others.

    For my project, I would like to be able to ask the reader to look for a specific tag, given it’s UID. After searching through all of the documentation provided by ThingMagic, I can see that this module can carry out this task easily (by applying and using filters), but the Arduino library does not support this kind of capability, and I’m really struggling implementing this myself.

    Is there anyone who has looked at this before and achieved any sort of ‘specific tag read/write’ operations with this module and Arduino?

    Thanks.

  • Hi, I have recently purchased this module and I’m having some issues. I’m using the module with and Arduino uno and I’m not able to get a higher distance. I’m getting only 1-2 cm distance of reading. Read power is set at maximum 2700 and I’m using an external power supply. I want to mention that I’m using some tiny UHF tags (3,8 x 3,8 x 3mm tag dimensions ceramics)

    This issue can be caused by the dimension of the tags or something is wrong with the module?

    Thank you

    • Hmm, neat! I did not know they made such unique tags.

      Tag size, shape, and how it is held can greatly affect read range. It’s probably the tag that’s causing the short range but it’s best to check with one of our known good tags.

      • Hi, with both known good tags and my tags the reading is the same. Yes indeed I managed to get a higher distance but the reading is inconsistent. Now is working now is not working. Another problem that I’m facing is that I’m not able to connect the module to Universal reader. I’m using a CH340G USB to serial module. Tried powering the module from usb and aslo from external power. I followed the instruction from the website. Switch is set on HW_UART. With arduino is working fine. Any ideas?

        • Nate / last month / 1

          It sounds to me like there are multiple problems intertwined. Tech support via product comments is tricky. I recommend you contact our tech support group. They’ve seen it all and should be able to shed some light on what you’re having problems with.

  • Is there a print available for this board for the mounting holes? I am designing a mount in solidworks and would rather have exact dimensions than measuring with calipers.

    Thanks,

    • Check out the Eagle board files. The dimensions should be in the dimension layer (you might have to turn that layer on).

  • Hello, I’m currently in a multiple reader project. is it possible to stack this module in a serial bus ? We will have a master connected on the network and we want this master comunicate with several m6e (5 or 6) with a bus. for this bus we will have average 10 meters between each node. The node will be an m6e module with a pro micro. We where thinking about RS485 bus but if you know better option :p Second question, does some one have an m6e-micro eagle library. can’t find it anywhere. we will use this chip for his second antenna port to reduce the number of components needed. Thanks. Regard,

  • I am currently using this with a Tian. I am having issues connecting to the board (kinda).

    Since I am unable to use the SoftwareSerial with the Tian, I created an additional Uart using pins 4 and 5. I then used the Serial Pass Through example and was able to connect to the reader using the Universal Reader Assistant. I verified the firmware to be 1.7.1.2 and was able to read tags without an issue.

    Next I used the Example2_Read_EPC that comes in the library. I end up getting the message “Module failed to respond. Please check wiring.” Well I know its not the wiring, I was able to use the Uart I muxed to talk to the reader through URA. So, I proceeded to enable debugging with the nano and got strange behavior.

    When in debug mode and leaving the nano baud rate at 38400, I see 2 time out messages and failure. However, if I change the baud rate to 115200, I see multiple messages go back and forth and and it is successful. I then disabled debugging, and it fails with the previous error message.

    Is there an update that needs to take place with the code that was provided in the tutorial, or does anyone have any idea as to what could possibly be causing this?

  • How do I update the firmware?

  • Has anyone tried the on-board antenna at full power? Like ppelleti below, I’m only seeing about 1 cm of read range with the 5 dBm power that’s recommended when USB-powered. On full power, does it really reach the advertised “1 to 2 feet” at 27 dBm?

    • Yes, I’ve tried the on-board antenna at full power. I would say it’s in the ballpark of the advertised “1 to 2 feet”, although it’s not consistent. I’ve sometimes had it read tags 2 or maybe even 3 feet away, but other times I’ve had it not read a tag less than a foot away. So don’t take it too literally, but I would say it’s a correct description.

      • I’ve also tried it at full power. The orientation of the tag makes a big difference. With the SparkFun tags, I’ve found that read range is best when the long axis of the tag is parallel to the long axis of the reader board. As long as those two axes are parallel, board or tag can rotate around those axes and read range still seems good. But, rotate the tag so that its long axis points directly at the reader, and range drops dramatically.

        It also depends how you’re holding the tag, if you happen to be holding it in your hand. They don’t like being right next to your hand - read range seems to drop.

        I also suspect, but haven’t proved yet, that power cables near the reader may reduce range, and that the quality (e.g. smoothness) of the supplied power (VSS) matters. E.g. I seem to get nearly 50% more read range when powering it from the +5V on my Raspberry Pi, compared to my other 5V power supply. I haven’t investigated much, but I’m guessing it may be that the output power from the Pi has less noise and irregularities.

  • The Hookup Guide for this product says to power your Arduino with 5V when using the reader (to reduce heat build up in the Arduino’s power regulator). It shows examples of a RedBoard configured this way. However, my Arduino Uno is documented as requiring 6, ideally 7, volts as its minimum input voltage. Apparently if you feed in 5V then the regulator’s output is too far below 5V. What’s the recommended solution for those of us who want to read at the reader’s full power (and so can’t power from USB), and who have standard Arduinos?

  • hi, I am a buyer of Taiwan,would like to ask you a few questions
    1. What are the contents of the product, the M6E Nano module has been welded on the PCB-A
    2. How to calculate the freight ?
    3. Is there an INVOICE available?
    4. After the order of the product about how long can get?

    thanks.

    • The board is assembled as shown in the majority of the pictures (it does not come with the Redboard or with the headers), but everything has been soldered and the board has been tested. For small orders the best way to calculate shipping is to add the item to your cart and try to check out. The first screen will give you a list of all shipping options for your address as well as their costs. For large orders please email customerservice@sparkfun.com and they can help you out with more information. All orders do ship with an invoice and you will receive an email conformation with it as well. As long as the item is in stock it should ship in a day or two, the rest depends on your shipping method and your countries customs process.

  • Does it seem strange that the buzzer is connected between digital pins 9 and 10, rather than between a digital pin and ground? Is there a datasheet available for the buzzer?

    • Pins 9 and 10 are PWM pins so you can drive the buzzer at different frequencies. In the example code I just drive pin 10 to GND and make pin 9 play different tones. In theory you could drive 9/10 at alternating frequencies doubling the volume of the buzzer.

  • Can anyone recommend a specific model of heat sink (e. g. Digi-Key part number) for use with this product? I’m not sure what to get.

  • When I set the read power of the module to 27.00dB (nano.setReadPower(2700)) the USB keeps disconnecting and reconnection in a loop. The M6E nano is connected to a 12V/3.3A powered Adruino UNO so the PSU shouldn’t be a problem I guess? Any ideas on how I can use the highest read power?

    • Could it be your Ardunio’s power regulator over heating, as per Power section of the Hookup guide?

  • What if i use this splitter (https://www.atlasrfidstore.com/keonn-advansplitter-2-uhf-rfid-power-splitter-2-ports/) and two antennas whit this reader, I will loss reading distance?, it will slipt the distance? Any idea?

  • I would like to know if I tune the RF power to lowest (i.e. about 5dbm). How far distance the reader can read the tag?

    • I just did a little bit of unscientific testing with mine, and with the power set to 500 centi-dBm (i. e. 5 dBm), and using the built-in antenna, it appears that the tag has to be within 1 centimeter of the PCB antenna to read. Presumably with an external antenna, that distance would be farther, but I don’t know how much farther, since I haven’t been able to buy the external antenna yet.

  • Is the RFID module in combination with the WRL-14131 antenna in addition to FCC also ETSI conform? Can I use the RFID module in Europe? Are there different limitations?

  • Will this work on a Raspberry Pi? Are there any python compatible libraries or would it all be C (if supported on a Pi)?

    • I just noticed that there already is a Python binding for Mercury API. I haven’t used it and can’t speak for it, but you might want to give it a try on your Pi.

    • ppelleti / last year * / 1

      I’ve been using this board with a Raspberry Pi successfully. However, I’ve been using a USB-to-serial converter (CH340G breakout modified for 5V operation via the solder pads on the back) rather than the Pi’s 3.3V serial port, because I’d been under the impression this board needed 5V power and signals.

      I’ve been using the Mercury API C library on the Pi to interface with the reader. I’m actually working on writing a Haskell binding to the Mercury API C library, so presumably you could write a Python binding if you wanted one badly enough. I’ve started a thread on the forum to share experiences with Mercury API, if anyone else is using it with this board.

      So far, I’ve only been successful with reading tags, and I’ve had some trouble with writing tags. I’ve just been powering the board via the USB-to-serial so far, so I’m guessing my problem might be not enough power. (So, next time I have time to work on my project, I’m going to try using an external power supply; hopefully that will fix it.) But other than that, it’s been working great with the Pi.

      Update: Just tried the external power supply, and now writing seems to work, too!

      • @ppelleti, which voltage did you use for your external power supply, 3.3V or 5V?

        When powering from 3.3V, I can make it work through the PI’s GPIO serial pins.

        But, when trying to run it at 5V, I’ve been unable to get the reader to work with the GPIO serial pins. I’m under the impression that the reader works in such a way that if its supply voltage is 5V, then the serial lines must also run at 5V level. So, when powering it at 5V, I’ve tried two different bidirectional logic level converters, to try to interface it to the GPIO serial pins. But neither has worked. I’d love to know why….

        It works fine if I use USB instead of the GPIO pins. Specifically, I’ve connected the board’s VCC and ground direct to the Pi’s 5V and ground, and am only using the TX and RX pins on my FTDI Basic breakout (with the jumper set for 5V).

    • Nate / last year / 1

      To be clear, I haven’t tried this yet but it looks like it should be workable. RasPi is 3.3V TTL which is fine for the shield. The library is specifically written in C by should be portable to python. There are some good tutorials out there about controlling the serial port. It might be worth it to have an Arduino connect and control the RFID shield and just pass serial ID strings back to the Pi.

  • So I got this board a week ago and using it with an arduino works like a treat.

    But I’ve had no luck connecting a UART/USB adapter to the Serial port of the device. The Universal Reader Software does not recognize the reader. No matter how I power the board - via the UART/USB adapter or via bench supply - seems like it does not want to talk through the Serial port. Even screen was not able to pick up anything from the reader… thought maybe it would talk a bit during boot… nothing… nada…

    Am I assuming correct that the UART on the serial port of the reader is 3.3 V logic level? Has anyone got this device to work with the version 3.3 Universal Reader Software? (the tutorial references version 3.2) Any other test I should be running?

    /// EDIT:

    Finally got it working… turns out 3 of the 4 UART/USB adapters I got were rubbish…

    • Nate / last year / 1

      Thanks for coming back to let us know the issue! And sorry to hear you got some bum adapters :/

  • Datasheet: API support C#/.NET, Java, and Embedded “C” APIs Where it is? How to download?

    • Nate / last year / 1

      The Mercury API is on the ThingMagic website under support, under the sub menu ‘Manuals’ (a bit buried).

  • Hello, is possible to write to multiple tags at the same time? Thanks

    • Nate / last year / 1

      Not at the same time, no, I don’t believe so. But it only takes a second to bring each new tag into and out of the field.

  • Will this read implantable glass capsule tags (I think 125 kHz, though not sure)? And if so, if hooked up to the UHF RFID antenna, at what distance could it read such a tag?

    • For 125 kHz tags you’d use something more like this: https://www.sparkfun.com/products/11827. It isn’t likely you could attach a UHF antenna and get good results. The read range with the model linked to says 120 mm. Other models get more but that’s with their internal antenna.

  • Can anyone confirm that this board actually works with the Universal Reader software? I was able to fish around and find and download the software and get it installed. Soldered in a header and connected a FTDI. The red light on the board lights up, software gives all indications of connecting, but can’t get tag data to show in the application screen. Log files show some kind of activity but not making sense to me. My RFID tags are a couple of years old, but I’m –pretty– sure they’re GEN2. Guess I’ll order a couple tags from here to see if that’s the problem.

    UPDATE: I purchased some tags from SparkFun (non-sticky https://www.sparkfun.com/products/14147) and the reader works flawlessly with them. I guess EPCGlobal GEN2 standards have changed since 2005 when my old tags were manufactured. Now that I have working product maybe I can figure out why the old ones don’t work.

    • Nate / last year / 1

      Thank you very much for coming back and updating what you found!

  • P.S.-Didn’t receive the ‘Thermal Gap Filler’ with my order

    • Nate / last year / 1

      Sorry Keith! Please do let customer service know and we’ll get any missing parts right to you.

  • Got mine. Been trying to download the Universal Reader software and server doesn’t respond. Went to ThingMagic and don’t see it there.

  • WILL SPARK FUN BE SELLING THE NANO MODULE ALONE. IF SO AND BOARDED PROPERLY, WOULD IT WORK USING THE FTDI CONNECT AND WINDOWS SOFTWARE OUT OF THE BOX OR DOES IT NEED PROGRAMMING TO ACCOMPLISH THAT?

    • We have no plans to sell the module alone, but we don’t do any programming of the module.

      • So essentially, if you had the module, you’d only need the left hand part of your schematic ‘RFID module’ and an FTDI adaptor to run that windows gui, yes?

        • Essentially, yes, that’s all you need. Depending how you lay out your PCB you would will need to re-characterize your 50 Ohm micro strip to get the max power output from your PCB or u.FL antenna connection.

          • Excellent, although I’m going to start out with your breakout board just to be sure. The thing about the PCB antenna vs. an external antenna is I don’t see a comparison of what you get out of your PCB board power out versus best case external antenna. From what I read it seems to imply that the PCB antenna can still give a respectable 16 feet. Would you agree? Also, the warning that output should be 8 inches from a person to comply with FCC rules kind of trips up me wanting this to be a wearable. I don’t suppose there is a way to directionally guide that output by ‘steering’ it somehow?

  • How secure is this? I’m interested in using it for a keyless entry/start for my car.

    • That’s a really tough question to answer as it depends on how you implement your specific system. If your system just looks for a given EPC, then I can create a tag with your same EPC and act like you. This is how I think I may have copied my ski pass.

      If your system looks for a given TID, then it’s more difficult (but not impossible) for me to create a tag with your TID.

      However, if you get more advanced, the Gen2 protocol has key authentication challenges meaning you can’t just duplicate a tag’s ID or EPC. For the vast majority of applications this is very secure. But as we’ve see with the recent SHA-1 hacks that took over 10 years, everything is vulnerable eventually.

  • Do you sell the external antenna? Also, do you plan on stocking a gen2 keyfob tag?

    • An external antenna will be listed in a few weeks. We don’t have plans to sell a keyfob Gen2 tag.

Customer Reviews

4 out of 5

Based on 11 ratings:

Currently viewing all customer reviews.

1 of 1 found this helpful:

I can read a tag from over 5 meter away using a 80mm ceramic antenna.

2 of 3 found this helpful:

Game Changer For Makers

The reader works great, even without the antenna the range is better than any other hobbyist RFID devices I’ve found for this price. The supporting documentation is very thorough and helpful. If you want to add a bigger range to your rfid projects, buy this.

1 of 2 found this helpful:

Arduino library not working

the board works well with the supplied thingmagic software, however the arduino library does not connect to the board.

No support from sparkfun for 4 days so far, may as well buy the chip diectly from thingmagic and bypass the sparkfun board.

Hello!

Sorry about the delay for support - the only case I see that you have open is #220744 that was submitted 23 hours ago. While our technical support team is very dedicated to offering the highest level of service that we can, at the same time they are a small department of 7 technicians that handle cases in the order in which they were received.

1 of 2 found this helpful:

Everything is great except switching to external antenna

This is mostly a great board. It works as advertised, and I’ve had no trouble using it. (I’m using it with Mercury API on a Raspberry Pi.) Based on that, I would have given it 5 stars.

However, the mechanism for switching from the internal to the external antenna leaves a lot to be desired. The solder jumpers that need to be changed are very small, and I ended up ruining my first board trying to switch to the external antenna. I bought a second one, and succeeded in enabling the external antenna on that one. But, I am cranky that I had to spend $400 instead of $200.

Also, it would be nice to be able to switch back and forth between the internal antenna and the external antenna. Some sort of DIP switch rather than a solder jumper?

Now that I’ve got the external antenna working, I’m a bit disappointed in its performance. I’ve sometimes been able to read tags 8 feet away, but other times I’ve had trouble reading tags 3 feet away. And I haven’t been able to pick up tags at anything close to the advertised 16 feet. (This is at maximum power, of course.) Also, if you want to read the user memory, the tag needs to be closer than if you just want to read the EPC.

Great product

It works as advertised. Range was not better than 8 feet with the recommended antenna at max power, however changing the antenna to the 80mm ceramic the range improve above the 18 feet. Thanks Sparkfun and Vince5 for your posting.

Stopped responding in 2 Hours

I am not harsh but unfortunately, it worked well and produced good results for 2 hours and suddenly the board is dead, no response at all. I do trust this company and product. I just reorder it. Hope this (new piece) will live way longer than previous one. Also when we order from India, we end up paying 100% import duty that is a bit hard.

I am willing to come and change this rating as soon as I receive the latest order and it works for me.

I’m sorry to hear that! Please contact our technical support team for help with this. They will be glad to help.

Great start

I’m using the SRTR to count laps for a charity walkathon. So far, I’ve soldered the header for Serial Basic, connected them via USB to my Ubuntu machine, and programmed with a python wrapper to the Mercury API (see github). Tags are read and written successfully using the PCB antenna. I’ll try the high-gain antenna soon. I appreciate SFE comments on power and thermal management, as those will definitely be a concern for my project.

0 of 3 found this helpful:

Major struggle to use this reader

After installation of the Universal Reader Assistant utility under Windows-7, and connection via a known working FTDI USB-to-Serial controller, the software will not connect to the device. It just hangs and so is useless. This has turned into an expensive “boat anchor”.

Works great

No issues what-so-ever. I followed Sparkfun’s tutorial (well written) and was reading RFID tags in a short time. Using windows 10 with Arduino.

Pretty amazing range

Longest range I have ever used on an RFID. Works a bit strange sometimes, but sparkfun tech help gave me some advice. Used in a large art installation. Going to purchase a second one for a zoo project!