MFRC522 - Length of time to check for check for tag/read tag value

Hello. I am wanting to use 5 of the RC-522 RFID readers to constantly check for the presence of a tag and, if a tag is present, read the value. I am also wanting to use an rs485 library which requires very fast and consistent loop times in order to keep up with the network communication.

I have used the rs485 library before and have had issues with an arduino getting out of sync because it takes too long for it to roll around and check to see if the rs485 channel has been updated, even with "simpler" tasks than reading an rfid tag.

I'm wondering if anyone can tell me how long it takes for a given card to read a tag, or to return null if no tag is present, assuming constant polling. My application requires pretty much instantaneous response from the reader, so I can't do something where it checks for a tag every x amount of time. I do have some of the cards, but not with me at the moment, and I'm wanting to rethink/rework my inclusion of the rs485 channel if the mfrc522 library is going to be too slow. This is the rfid library in question.

Thanks in advance for any guidance.

I took a quick glance at the source code and it looks like it will timout in about 35 msec if no card is present when attempting a read. That doesn't include all the register setup and function call overhead, but it is SPI so pretty fast.

It sounds like you may need a dedicated arduino to keep up with your rs485 channel and another to do the RFID stuff and then a bit of communication between them.

Hmm. Bummer. I'm willing to go that route, but it'd be great to not have to. Any pointers on where in the library I could reduce the timeout period? I'm looking through the source now and am not confident on where to start.

I just traced the CardPresent (?) function which calls a few more functions and finally boils down to a call where it send the data and then there is a for() loop (or while?) that cycles like 2000 times before a timeout.