{
    "key": "mfrc522",
    "kind": "sensor",
    "model": {
        "aliases": [
            "mfrc522"
        ]
    },
    "driver": {
        "runtime": {
            "init": {
                "args": [],
                "class": "mfrc522.SimpleMFRC522"
            },
            "apt_packages": [],
            "pip_packages": [
                "mfrc522",
                "spidev"
            ],
            "python_module": "drivers.mfrc522"
        },
        "targets": [
            "raspberrypi"
        ],
        "verified": {
            "by": null,
            "os": null,
            "date": null,
            "board": null,
            "reviewed_by": null,
            "evidence_url": null
        },
        "interface": "spi",
        "connection": {
            "pins": [
                {
                    "role": "sck",
                    "notes": null,
                    "required": true
                },
                {
                    "role": "mosi",
                    "notes": null,
                    "required": true
                },
                {
                    "role": "miso",
                    "notes": null,
                    "required": true
                },
                {
                    "role": "sda",
                    "notes": "Chip select.",
                    "required": true
                },
                {
                    "role": "rst",
                    "notes": "Reset.",
                    "required": true
                }
            ],
            "supply_voltage": "3.3V",
            "level_shift_required": null
        },
        "constraints": {
            "warmup_seconds": null,
            "read_timeout_seconds": 2,
            "min_read_interval_seconds": 0.2
        },
        "failure_modes": [
            "3.3V part. Applying 5V to the supply pin destroys it.",
            "Reads MIFARE Classic. It does not read every 13.56MHz card, and NTAG or DESFire credentials will not enumerate with the common library.",
            "Presenting no card is the normal state, not an error. The read call blocks in some libraries and must be run non-blocking or on its own thread.",
            "Range is a few centimetres and drops further when the antenna is mounted against metal."
        ]
    },
    "source": "platform-seed",
    "status": "draft",
    "platform": {
        "name": "MFRC522 RFID Reader",
        "protocol": "spi",
        "readings": [
            {
                "slug": "uid",
                "unit": null,
                "label": "Card UID",
                "data_type": "string",
                "range_max": null,
                "range_min": null,
                "unit_symbol": null,
                "device_class": null,
                "decimal_places": null,
                "threshold_crit_low": null,
                "threshold_warn_low": null,
                "threshold_crit_high": null,
                "threshold_warn_high": null
            }
        ],
        "description": "SPI RFID reader for 13.56 MHz Mifare cards and tags. Common in access control and asset tracking.",
        "sensor_type": "identity",
        "manufacturer": "NXP Semiconductors",
        "model_number": "MFRC522",
        "datasheet_url": "https://www.nxp.com/docs/en/data-sheet/MFRC522.pdf",
        "read_interval_seconds": 1
    },
    "revision": 1
}