Multiple Mfrc522

Hi has anyone managed to get more than 2 x mfrc522 readers working on an uno? I have read lots of posts with issues and some saying multiple (2) are possible but I am unsure if I am just fighting a losing battle. I have 2 working perfectly sharing midi, miso, sck with separate ss and rst pins but as soon as I add a third everything stops working. I am close the throwing the whole thing in the bin >:( Just looking for someone to say they have managed it and a little bit of help on how they did it

Thx

pullups? on each board ? if yes: remove resistors from at least one board

Thanks for the reply I currently don't have pull-ups in my wiring setup.

Do you think this is the issue?

Has anyone got this to work with/without pull-ups? I am beginning to think spending more time on this will be fruitless and I should look at other solutions...

Assuming I wire in some pull-ups I assume from reading they need to be on each ss line but do they need to be on miso,mosi and sck as well?

As miso mosi and sck are shared lines would I need a pull-up for each card reader for these lines or a single one for each of the shared lines?

Thanks for your time

Netrack:
Thanks for the reply I currently don't have pull-ups in my wiring setup.

Do you think this is the issue?

Has anyone got this to work with/without pull-ups? I am beginning to think spending more time on this will be fruitless and I should look at other solutions...

Assuming I wire in some pull-ups I assume from reading they need to be on each ss line but do they need to be on miso,mosi and sck as well?

As miso mosi and sck are shared lines would I need a pull-up for each card reader for these lines or a single one for each of the shared lines?

Thanks for your time

Yes I managed to get 3 of them working simultaneously. More will give you trouble without extra hardware. You need quality cables, not cheap jumper cables. Go for CAT5E UTP cables at least. You can also use extra shielded cables, that should even give you better results.

Keep the cables as short as you can. The longer the wires, the chances of interference get higher.

If you want to hook up more then 3 you have a 2 options that I know.

First option: Buy a second Arduino, hook up the other readers to the second Arduino and link the 2 Arduino's together using Serial or I2C.

Second option: Read my thread where I asked the same question:

https://forum.arduino.cc/index.php?topic=461410.0

Grumpy_Mike said that using line drivers would probably solve the issues. I ordered the line drivers, but I never had time to figure out how to use them. Maybe you can and replay back how you used them.

I went for option one because I didnt had more time to try to get the line drivers to work.

Bottom line: You probably need extra hardware to get more then 3 RFID's to work simultaneously.

Thanks Lenny I am trying to work through what you have said :slight_smile: so it sounds like you managed to get three working without the multiplexer? I might go down the same route...rather than using a multiplexer as I am not sure I fully understand the wiring for that :frowning:

So the wire I am using is 22awg copper wire I guess that might not be good enough?

If I try and use cat5e it will come with four sets of twisted pair so 8 wires in total do you untwist the pairs and just use one wire per miso/mosi etc or do you need to keep the wires paired?

I see you ran the cat5e cable as a kind of backbone and then wired off to each of the readers (if I understood correctly?) how did you connect the cat5e (backbone) to the readers? I think you ran another set of wires from the backbone to the readers so how did you connect these wires?

Sorry for all the questions but trying to learn a bit and it's quite frustrating at times :slight_smile:

Thanks for your help it's greatly appreciated.

Netrack:
Thanks Lenny I am trying to work through what you have said :slight_smile: so it sounds like you managed to get three working without the multiplexer? I might go down the same route...rather than using a multiplexer as I am not sure I fully understand the wiring for that :frowning:

So the wire I am using is 22awg copper wire I guess that might not be good enough?

If I try and use cat5e it will come with four sets of twisted pair so 8 wires in total do you untwist the pairs and just use one wire per miso/mosi etc or do you need to keep the wires paired?

I see you ran the cat5e cable as a kind of backbone and then wired off to each of the readers (if I understood correctly?) how did you connect the cat5e (backbone) to the readers? I think you ran another set of wires from the backbone to the readers so how did you connect these wires?

Sorry for all the questions but trying to learn a bit and it's quite frustrating at times :slight_smile:

Thanks for your help it's greatly appreciated.

I don't know if 22awg copper wire is good enough or not. I don't have experience using that cable.

If you use cat5e cables then you will need 3 cables in total.

I soldered each cable to 1 reader, then I soldered mosi, miso, 3v, ground, and clk together and connected those lines to the Arduino. Make sure to use shrink tubes. Each reader will also need a seperate ss line.

For connecting the lines to the Arduino I soldered header pins on them.

old thread, but here's a new solution using a resistor and a FET to parallel multiple RC522 RFID readers.

IRQ is a RC522 output that stays low while an RFID is in the antenna's near field. I used this signal to short out MISO and MOSI. So as long as any RFID is detected by multiple detectors simultaneously, one should be able to parallel multiple RC522's and they'll stay off the bus until any one detects an RFID.

In summary, bus all the signals except IRQ. Connect IRQ through a pull-up resistor to 3.3V (e.g., 10kohm) and to the gate of a FET, e.g., VN10K, who's source and drain connect to MOSI and MISO. IRQ is inverted, so it goes low when an RFID is detected, making the FET essentially vanish (open) and that device exerts MOSI and MISO. Otherwise, with IRQ high, the two are shorted and signals pass to other devices on the bus.