Skip to main content

PN5180-tagomatic

USB based RFID reader with Python interface

Python CI REUSE status PyPI version

Overview

PN5180-tagomatic is a USB-based RFID reader that provides a Python interface for reading NFC/RFID tags using the PN5180 NFC Frontend module and a Raspberry Pi Pico (Zero).

Features

  • Python library for easy integration.
  • Uses USB serial communication to the reader.
  • Cross-platform support (Linux, Windows, macOS).
  • Finds and selects single ISO/IEC 14443 cards.
  • Uses NFC FORUM commands to read/write 14443-A cards' memories.
  • Can authenticate against Mifare classic cards to read their memories.
  • Finds ISO/IEC 15693 cards, uses 15693-3 commands to read/write their memories.

Multiple cards in the RFID field is currently not really supported, the hardware and arduino sketch supports all commands for it.

Installation

Python Package

Install from PyPI:

pip install pn5180-tagomatic

Install from source:

git clone https://github.com/bofh69/PN5180-tagomatic.git
cd PN5180-tagomatic
pip install -e .

Firmware

See sketch/README.md for instructions on building and uploading the Raspberry Pi Pico firmware.

Usage

from pn5180_tagomatic import PN5180


# Create reader instance and use it
with PN5180("/dev/ttyACM0") as reader:
    versions = reader.ll.read_eeprom(0x10, 6)
    with reader.start_session(0x00, 0x80) as session:
        card = session.connect_one_iso14443a()
        print(f"Reading from card {card.uid.hex(':')}")
        if len(card.uid) == 4:
            memory = card.read_mifare_memory()
        else:
            memory = card.read_memory()

Example Program

A few simple example programs are in the examples/ directory.

Development

Setting up development environment

# Clone the repository
git clone https://github.com/bofh69/PN5180-tagomatic.git
cd PN5180-tagomatic

# Install development dependencies
pip install -e .[dev]
# or:
make install-dev

Running tests

pytest or make test

Code quality checks

# Linting
make check

# Formatting
make format

# Type checking
make type-check

License

This project is licensed under the GNU General Public License v3.0 or later (GPL-3.0-or-later).

See LICENSE for the full license text.

Contributing

Contributions are welcome! Please ensure that:

  1. All code passes linting and type checking
  2. Tests are added for new functionality
  3. All files include proper REUSE-compliant license headers
  4. Code follows the project's style guidelines

Acknowledgments

This project uses FastLED by Daniel Garcia et al.

SimpleRPC by Jeroen F.J. Laros, Chris Flesher et al is also used.

Metadata

Release files for pn5180-tagomatic 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pn5180-tagomatic 0.0.3
File Size Uploaded
pn5180_tagomatic-0.0.3.tar.gz 52.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pn5180-tagomatic 0.0.3
File Interpreter ABI Platform
pn5180_tagomatic-0.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 84.0 kB

Release files / pn5180_tagomatic-0.0.3.tar.gz

Download URL pn5180_tagomatic-0.0.3.tar.gz
Size 52.1 kB
Tags Source
SHA-256 checksum
How to use checksums
a745642bdf739aaec10e739f1d22389fc46377a91eeeb6a7f0518af657d42315
BLAKE2b-256 checksum
How to use checksums
d78b7f4d252f1d02b4ac2cc89d4d345c859584d68813dfc2454c0ea95b934dd2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 9, 2026.

Transparency log

Release files / pn5180_tagomatic-0.0.3-py3-none-any.whl

Download URL pn5180_tagomatic-0.0.3-py3-none-any.whl
Size 31.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
513d295ccf6725b06ce166a32600227ece0335e72bccc8112070c9d20d7fb759
BLAKE2b-256 checksum
How to use checksums
da99ed3b336ccf3f53353233494727b069a86e390bbfc743981230cacd900cc0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 9, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page