{"id":16908649,"url":"https://github.com/micolous/pcprox","last_synced_at":"2025-04-11T15:42:08.070Z","repository":{"id":139103190,"uuid":"155991093","full_name":"micolous/pcprox","owner":"micolous","description":"Library for pcProx USB RFID reader","archived":false,"fork":false,"pushed_at":"2022-02-20T02:29:51.000Z","size":112,"stargazers_count":21,"open_issues_count":2,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-25T11:52:15.705Z","etag":null,"topics":["hid-prox","hidapi","python3-library"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/micolous.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-11-03T14:31:57.000Z","updated_at":"2024-10-09T20:00:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"a5f2668f-57ed-4b1f-95a3-32812c1ec012","html_url":"https://github.com/micolous/pcprox","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micolous%2Fpcprox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micolous%2Fpcprox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micolous%2Fpcprox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micolous%2Fpcprox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/micolous","download_url":"https://codeload.github.com/micolous/pcprox/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248433158,"owners_count":21102517,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hid-prox","hidapi","python3-library"],"created_at":"2024-10-13T18:52:19.478Z","updated_at":"2025-04-11T15:42:08.059Z","avatar_url":"https://github.com/micolous.png","language":"Python","readme":"# pcprox python module\n\nThis is an open-source reimplementation of the functionality available in the\n`CmdpcProx` utility for the RFIDeas pcProx USB readers, as a Python 3 module.\n\nThis has been tested with the RDR-6081AKU/APU (pcProx 125kHz HID Prox Desktop\nUSB reader). It might work with other readers, but I don't have any other\nreaders to test.\n\nThis implements [the proprietary and undocumented USB HID commands][1] that\n`CmdpcProx` uses to control the device.\n\nThis differs from some [other][2] [implementations][3] in that it **does not**\nuse `evdev` to access the device. This also **does not** require the closed\nsource `CmdpcProx` executable (which is only available for Linux x86 and\nWindows x86).\n\nThis **does not** support USB Serial or other non-USB interfaces.\n\n## Requirements\n\n* Python 3.x\n* [cython-hidapi][0] (generally packaged as `python3-hid` or `python3-hidapi`)\n\n*Note:* There are multiple Python libraries called `hid` or `hidapi`; this\nlibrary was tested with the [Trezor fork][0].\n\n_Python 2.x is not supported, and will not be supported._\n\n## Platform support\n\nKnown-working platforms:\n\n* Linux (tested on `x86_64`, but will probably work on any Linux-supported CPU\n  architecture, including ARM).\n* Mac OS X (tested on 10.14)\n\nNon-working platforms:\n\n* Windows ([would require this hidapi patch][4])\n\nOtherwise, this should run wherever hidapi runs, as long as one can send USB HID\nfeature reports to keyboard devices (which pcProx simulates).\n\n## Setting up permissions\n\n### Linux\n\nCopy [the udev rules](./udev/60-rfideas-permissions.rules) (as root):\n\n```bash\ninstall -o0 -g0 -m0644 udev/60-rfideas-permissions.rules /etc/udev/rules.d/\nudevadm control --reload-rules\n```\n\nThen disconnect the pcProx (if connected), and then reconnect it.\n\nThese rules use _uaccess_, which should grant access to anyone logged in locally\nvia `systemd-logind` (which includes most recent Linux distros).\n\nIf you're using this with a user which is not logged in locally, or are not\nusing `systemd`, modify this configuration to replace `TAG+=\"uaccess\"` with\nsomething like `GROUP=\"rfidusers\"`, which will instead set ACLs based on group\nmembership.\n\n### Mac OS X\n\nMac OS X requires that all applications requesting direct access to a keyboard\ndevice run as `root`.\n\n## Examples\n\n* [configure.py](./configure.py): A basic configuration utility that supports\n  dumping and changing settings at the command line, and storing the running\n  configuration in the EEPROM.\n\n* [usbtest.py](./usbtest.py): An example application that runs the pcProx in\n  non-keyboard mode, and flashes the LEDs on the device.\n\n## Other resources\n\n* [Protocol documentation][1] (also explains the behaviour of different device\n  settings)\n\n* [Physical disassembly notes](./disassembly.md)\n\n* [Docker container for running `CmdpcProx`](./cmdpcprox_docker)\n\n[0]: https://github.com/trezor/cython-hidapi/\n[1]: ./protocol.md\n[2]: https://github.com/goliatone/rfid-poc\n[3]: https://github.com/google/makerspace-auth/blob/master/software/authbox/badgereader_hid_keystroking.py\n[4]: https://github.com/signal11/hidapi/pull/335\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicolous%2Fpcprox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmicolous%2Fpcprox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicolous%2Fpcprox/lists"}