PiicoDev RFID Module with Pi Pico not responding


I am trying to get a PiicoDev RFID module working with a Pi Pico using directly soldered connections:

I have followed the guide from the website and have downloaded everything as required to the pico. Documentation I have found appears to indicate that the Pico expansion board also uses GP8 & GP9 for I2C connections - so I would assume the default code should work as is.

When I run the default code:

from PiicoDev_RFID import PiicoDev_RFID
from PiicoDev_Unified import sleep_ms

rfid = PiicoDev_RFID()   # Initialise the RFID module

print('Place tag near the PiicoDev RFID Module')

while True:    
    if rfid.tagPresent():    # if an RFID tag is present
        id = rfid.readID()   # get the id
#         id = rfid.readID(detail=True) # gets more details eg. tag type

        print(id)            # print the id


I get the following output - but nothing more when I place a tag on the reader:

MicroPython v1.18 on 2022-01-17; Raspberry Pi Pico with RP2040

Type “help()” for more information.
Place tag near the PiicoDev RFID Module

I have tried the following test code - which appears to indicate that the Pico connection to the RFID module is correct:

import machine
i2c=machine.I2C(0,sda=sda, scl=scl, freq=400000)

Which gives an output of:


Does this mean my RFID module is faulty - or am I doing something else wrong? I am new to the Pi Pico and micro python.

I have tried several different tags, which all respond correctly to a Home Assistant Tag Reader




Hi Brent,

Thanks for making a topic!

Would it be possible to get a photo of how you have everything connected?
What RFID/NFC tags were you using? (Mifare tags will work with both your PN532 and the PiicoDev reader).

If you move the card around the coil end of the reader do you get anything coming through the REPL?

From the sounds of it, there might be a fault somewhere in the system (not ruling out a faulty reader or Pico).


1 Like

Hi Liam,

I have tried several different tags - most of which show as Mifare (both original and “possibly cloned” ) when scanned with NXP TagInfo on my mobile. I’ve also tried a NTAG2115 which also does not work.
Below are a couple of photos:


1 Like

Hi Brent,

Nothing seems to be jumping out, were you able to test the module before soldering it with the Pico (an expansion board and PiicoDev cable would be the way to go)?

With the module being so close to the Pico I wonder if there is some sort of interference/damping created, does moving it a bit further away have any effect?

I’ve sent through an email in the event that none of the above work :smiley:


1 Like

I have same issue, the RFID hardware works fine when it is connected to PI-4 but on pi pico and python library it is not working.
There is one more issue , occasionally it works with the card but never with tag.

I have a similar issue. I have connected a generic pn532 breakboard to a rpi pico via i2c. When scanning I get :

Scan i2c bus...
i2c devices found: 1
Decimal address:  36  | Hexa address:  0x24

When I run read_id.py I get:

 File "<stdin>", line 6, in <module>
  File "PiicoDev_RFID.py", line 79, in __init__
  File "PiicoDev_RFID.py", line 284, in reset
  File "PiicoDev_RFID.py", line 95, in _wreg
OSError: [Errno 5] EIO

line 79 in “PiicoDev_RFID.py” referes to a soft reset of the device.
Any suggestions? Thank you