Skip to content

micolous/pcprox

Repository files navigation

pcprox python module

This is an open-source reimplementation of the functionality available in the CmdpcProx utility for the RFIDeas pcProx USB readers, as a Python 3 module.

This has been tested with the RDR-6081AKU/APU (pcProx 125kHz HID Prox Desktop USB reader). It might work with other readers, but I don't have any other readers to test.

This implements the proprietary and undocumented USB HID commands that CmdpcProx uses to control the device.

This differs from some other implementations in that it does not use evdev to access the device. This also does not require the closed source CmdpcProx executable (which is only available for Linux x86 and Windows x86).

This does not support USB Serial or other non-USB interfaces.

Requirements

  • Python 3.x
  • cython-hidapi (generally packaged as python3-hid or python3-hidapi)

Note: There are multiple Python libraries called hid or hidapi; this library was tested with the Trezor fork.

Python 2.x is not supported, and will not be supported.

Platform support

Known-working platforms:

  • Linux (tested on x86_64, but will probably work on any Linux-supported CPU architecture, including ARM).
  • Mac OS X (tested on 10.14)

Non-working platforms:

Otherwise, this should run wherever hidapi runs, as long as one can send USB HID feature reports to keyboard devices (which pcProx simulates).

Setting up permissions

Linux

Copy the udev rules (as root):

install -o0 -g0 -m0644 udev/60-rfideas-permissions.rules /etc/udev/rules.d/
udevadm control --reload-rules

Then disconnect the pcProx (if connected), and then reconnect it.

These rules use uaccess, which should grant access to anyone logged in locally via systemd-logind (which includes most recent Linux distros).

If you're using this with a user which is not logged in locally, or are not using systemd, modify this configuration to replace TAG+="uaccess" with something like GROUP="rfidusers", which will instead set ACLs based on group membership.

Mac OS X

Mac OS X requires that all applications requesting direct access to a keyboard device run as root.

Examples

  • configure.py: A basic configuration utility that supports dumping and changing settings at the command line, and storing the running configuration in the EEPROM.

  • usbtest.py: An example application that runs the pcProx in non-keyboard mode, and flashes the LEDs on the device.

Other resources

About

Library for pcProx USB RFID reader

Topics

Resources

License

LGPL-3.0, GPL-3.0 licenses found

Licenses found

LGPL-3.0
COPYING.LESSER
GPL-3.0
COPYING

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published