SparkFun Simultaneous RFID Tag Reader Setup/Library


Wanted to know if anyone has experience with the SparkFun Simultaneous RFID Tag Reader and connecting it to a Particle device.

It has an Arduino library, but haven’t seen an existing port in the Particle libraries. It seems to compile fine with the simple ‘Particle.h’ header adjustment but haven’t gotten it functional.

It communicates over serial connection and supports both HW-UART or SW-UART but I’ve only tried HW so far. The issue lies in the receiving of serial responses to the commands I’ve sent.

So if anyone has experience with this device and/or using/porting arduino serial based libraries on a particle device, I’d greatly appreciate the help.


I haven’t used this device - but perhaps some suggestions for trouble shooting, if I may:

NB: This reader and an UNO are 5V devices - so don’t use on GEN3 unless you have a level shifter in between


It also consume a lot of power - so make sure your supply is big enough - normal USB power might not be enough based on the technical documents.

Have you tried with an Arduino board (Uno or similar) - this will allow you to validate that the reader is functional and that the library works.

If you have access to a logic analyser - you could attach to the serial i/o and see what its being sent/received. Other wise modify the library to print to Serial when it sends or receives something?

However why not post some code and perhaps someone can contribute better suggestions?


I’ll be posting some code shortly, but in the meantime:

I’ve thought about logic shifting or voltage dividing but shouldn’t it theoretically work natively? With 5v tolerant pins on a photon, it shouldn’t be hurt and the logic HIGH signals should be more than enough to trigger the gate. On the reverse end, generally a 3.3v logic HIGH is enough to trigger a 5v gate’s 2.2(ish) threshold. Not saying its not a bad idea to try, but curious as to why that may be necessary.

On the point of using a Arduino, I got one in the mail today so I will be trying out the reader as they intend it to be used to see if that reveals anything. But I have already used the ‘Universal Reader’ software on a PC and tested and it works reasonably well.

I wish I had a logic analyzer but I do not. I will, however, be putting together a test suite where the Arduino and Photon will talk over Serial connection in an attempt to be able to do this analysis.


@rkast4321, as you had only specified “a Particle device” in your post, @shanevanj was stating that you couldn’t use a GEN3 device due to the voltage incompatibilities. As you indicated, using a Photon IS possible for reasons you stated. His concerns regarding power are still valid however.


You didn’t mention photon originally so a warning is always not a bad idea…

You could connect the arduino up and run softSerial to “snoop” on the serial traffic and print it to the usb serial so you can see what’s traversing between the two …


Sorry, thought I had specified a Photon, my bad. But I do have a few GEN3 devices and didn’t know about that incompatibility, so good info either way.

I’ll be posting code then running the softSerial test on an arduino in a little bit to see what I can find there. Also I may try out the SoftSerial library for Photon and see if that changes anything


@rkast4321, looking at the library for this device, I believe it should work as-is with the Photon. The choice of hardware or software serial is done in the user code. I suggest you use the hardware serial Serial1 port (TX/RX pins) on the Photon and refer to the hardware serial examples in the library.

The serial port is referenced as inherited “Stream” class (Serial1 is a child of this class). I have to test if passing the Serial1 object in the nano.begin() call works with the Particle code. If not, it will require minor fixes.


That’s been my software configuration so far. With your comments, I’m becoming increasingly confident that my issue relies somewhere in my hardware configuration, namely the power connection. I’ll will still be posting code shortly, to make sure I didn’t mess anything up there.

I appreciate, as always, the dedication you guys put into helping people learn and develop in this avid and active community.


Got delayed trying to find a mini-usb cable to power the arduino. But after hooking it all up via stackable headers and running the ‘Example1_Constant_Read’, the RFID board seems to be functioning correctly. I will rerun my Photon tests now.


Ok, after swapping around connections and trying different baudrates, I have gotten it working with the Photon.

The working configuration was as follows:
-Use the ‘Non-hat’ Serial connector pins on the RFID reader board
-Matching the Serial/Serial1 baudrates at 115200
-Power RFID Board and Photon off the 5v/GND pins of the idling Arduino with barrel power connector.

Not sure exactly which of those changes made the difference but likely a combination of them. I suspect that some of my other wiring configs may have worked but it’s possible I hurt those pins in my testing and/or soldering process.