Skip to main content

RDM6300/EM4100 RFID reader library

Project description

Using the RDM6300 RFID reader from python

The project is primarly geared towards using the RDM6300 with a Raspberry PI and Python 3.

The unit tests are passing with Python 2, so it should work (tm), but I am using python3 for developing the module.

In theory the module should be working with anything that is compatible with the EM4100 wire protocol.

Please note that wiring the RDM6300 to an RPI is not entierly trivial (either it will not work, or you are risking frying your PI), so before tring this out please make sure you had read my blog post on this: https://the.mad-tinkerer.me/rdm-6300-raspberry-pi/

The reader code has almost 100% unit test coverage, so the code should be quite stable.

Please see the API documentation here

Usage (Easy mode)

Assuming that you had wired the RDM6300 correctly you can execute the following to create a working environment:

$ virtualenv -p python3 virtualenv
$ . virtualenv/bin/activate
$ pip install rdm6300

Afterwards you can use this code to start reading with the RFID reader (examples/simple.py):

import rdm6300

reader = rdm6300.Reader('/dev/ttyS0')
print("Please insert an RFID card")
while True:
    card = reader.read()
    if card:
        print(f"[{card.value}] read card {card}")

Usage (Real life scenario)

see examples/complex.py

import rdm6300

class Reader(rdm6300.BaseReader):
    def card_inserted(self, card):
        print(f"card inserted {card}")

    def card_removed(self, card):
        print(f"card removed {card}")

    def invalid_card(self, card):
        print(f"invalid card {card}")

r = Reader('/dev/ttyS0')
r.start()

Credits

The code is a rewrite of the library pyrfid: https://www.pm-codeworks.de/pyrfid.html

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for rdm6300, version 0.1.1
Filename, size File type Python version Upload date Hashes
Filename, size rdm6300-0.1.1-py3-none-any.whl (7.2 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size rdm6300-0.1.1.tar.gz (5.9 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page