Skip to content
View uhppoted's full-sized avatar

Block or report uhppoted

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
uhppoted/README.md

uhppoted implements a set of cross-platform building blocks for access control systems based on the UHPPOTE UT0311-L0x TCP/IP Wiegand access control boards. Currently available components include:

The components supplement the manufacturer supplied application which is 'Windows-only' and provides limited support for integration with other systems.

Hardware:

Note:

FYA, after much discussion it has been decided that uhppoted is pronounced u-hop-id-ay-d (juː hɒp ɪt eɪd).

Operating systems

Supported operating systems:

  • Linux
  • MacOS
  • Windows
  • RaspberryPi (ARM/ARM7/ARM6)

Language Bindings

The primary development language for this repository is Go, but code generated native bindings for the following languages also exist:

shared-lib/dylib/DLL

uhppoted-dll implements a shared-lib/DLL for interop with languages other than Go. The implementation includes bindings to:

  • C
  • C++
  • C#
  • Python
  • Clozure Common Lisp

3rd party integrations

Compatible Hardware

As per this issue [Question] Compatible Hardware, UHPPOTE appears to be a specific branding (or distributor) for the access control boards manufactured by Shenzhen Wiegand Industrial Co., Ltd.

The software in this repository has been tested and is known to work with these specific boards:

Source Item
Amazon UHPPOTE Professional Wiegand 26-40 Bit TCP IP Network Access Control Board with Software For 4 Door 4 Reader
AliExpress TCP/IP RFID ACCESS CONTROL SYSTEM Wiegand 26

Firmware versions

Version Notes
6.56 Minimum firmware version (cf. carbonsphere/UHPPOTE
6.62 Lowest firmware version in use
8.92 Latest tested firmware version
9.158 (provisional) there may be a firmware bug that corrupts the cards list when deleting a card

Notes:

  1. Firmware v6.62 sends anomalous listen events with 0x19 as the start of message identifier. This appears to have been fixed in later firmware versions but patches to support these events are included in:

Readers

Almost any reader with a Wiegand-26 interface should probably work (there have been reports of offbrand readers that don't) but the readers below are in active use:

Reader Notes
HID ProxPoint Plus 6500 Old stock and/or refurbished readers are often available on ebay
IKeys barcode and QR code scanner Ref. Put Card - Date with Time
Newland FM430L barcode and QR code scanner Ref. Put Card - Date with Time

Release Notes

Current Release

0.9.1 - 2026-10-14

  1. Migrated from github to _codeberg.
  2. Created uhppoted-lib-ada Ada library.
  3. Added set-first-card API for managing first-card swipe privileges.
  4. Added first-card privileges to get-card, get-card-by-index and put-card APIs.
  5. Added first-card privileges to get-acl, compare-acl and load-acl APIs.
  6. Added check and retry for send-to-self to UDP and TCP transports.
  7. Updated to Go v1.27 and modern Go (using go fix).
  8. Renamed uhppote-simulator to uhppoted-simulator.
  9. Renamed uhppote-cli to uhppoted-cli.

Modules

Module Description
uhppoted-core core library, implements the UP interface to UT0311-L0x controllers
uhppoted-lib common utility function library
uhppoted-simulator UT0311-L04 simulator for development use
uhppoted-cli command line interface
uhppoted-rest daemon/service with REST API for managing UT0311-L0x controllers
uhppoted-mqtt daemon/service with MQTT endpoint for managing UT0311-L0x controllers
uhppoted-app-s3 cron'able utility to manage access control lists with AWS S3
uhppoted-app-sheets cron'able utility to manage access control lists with Google Sheets
uhppoted-app-db cron'able utility to download/upload access control lists from/to a SQL DB
uhppoted-app-wild-apricot cron'able utility to manage access control lists from Wild Apricot
uhppoted-app-home-assistant Home Assistant custom component
uhppoted-lib-node-red NodeJS nodes for Node-RED low code environment
uhppoted-lib-nodejs Standalone NodeJS module
uhppoted-lib-python Standalone Python package for PyPI
uhppoted-lib-dotnet .NET package for NuGet
uhppoted-lib-go Standalone Go library (for external use)
uhppoted-lib-ada Alire create for Ada
uhppoted-dll shared-lib/DLL for cross-language interop
uhppoted-codegen Model based code generator for native language bindings
uhppoted-tunnel UDP tunnel for remote access

Integrations

Module Description
uhppoted-app-db cron'able utility to manage access control lists with a SQL DB
uhppoted-app-s3 cron'able utility to manage access control lists with AWS S3
uhppoted-app-sheets cron'able utility to manage access control lists with Google Sheets
uhppoted-app-wild-apricot cron'able utility to manage access control lists with Wild Apricot
uhppoted-app-home-assistant Home Assistant custom component
node-red-contrib-uhppoted NodeJS nodes for Node-RED low code environment
kBrausew/ioBroker.wiegand-tcpip ioBroker

UI

Module Description
uhppoted-cli Command line interface
uhppoted-httpd HTML browser interface

Hardware

Module Description
uhppoted-wiegand M5Stack form factor Wiegand reader/emulator
uhppoted-breakout Customisable replacement CPU board

Installation

Binaries for Linux, Windows, MacOS and Raspbian/ARM7 are distributed in the tarball for each release. To install the binaries, download and extract the tarball to a directory of your choice.

The NodeRED, NodeJS and Python packages are installable from the public repositories:

Building from source

uhppoted is the parent project for the individual components which are referenced as git submodules - to clone the entire source tree:

git clone --recurse-submodules https://codeberg.org/uhppoted/uhppoted.git

The supplied Makefile has targets to build binaries for all the supported operating systems:

make build

or

make release

To pull upstream changes for all submodules:

git submodule update --remote

Donations

If you like the project and you really want to 🙂:

References and related projects

  1. carbonsphere/UHPPOTE PHP
  2. carbonsphere/DoorControl PHP
  3. andrewvaughan/uhppote-rfid Python
  4. tachoknight/uhppote-tools: Go
  5. jjhuff/uhppote-go: Go
  6. pawl/Chinese-RFID-Access-Control-Library
  7. Dallas Makerspace:Reverse Engineering RFID Reader
  8. wemakerspace/wiegand-daemon
  9. wemakerspace/weigeng-js
  10. realashleybailey/DoorControl
  11. kBrausew/ioBroker.wiegand-tcpip
  12. TCP/IP Wiegand Access Controller (Zutrittskontrolle)
  13. YouTube: UHPPOTE 2 door basic set-up
  14. wouterdebie/uhppote-rs

Pinned Loading

  1. uhppoted uhppoted Public

    Cross-platform components for building access control systems based on the UHPPOTE UT0311 TCP/IP access controller boards.

    Python 43 9

  2. uhppote-cli uhppote-cli Public

    Go CLI for the UHPPOTE UT0311 TCP/IP access controller boards

    Go 8 6

  3. uhppoted-app-wild-apricot uhppoted-app-wild-apricot Public

    Wild Apricot integration for uhppoted

    Go 4

  4. uhppoted-lib-node-red uhppoted-lib-node-red Public

    Node-RED module wrapper for UHPPOTE Wiegand Access Controllers

    JavaScript 6 2

  5. uhppote-core uhppote-core Public

    Go device level API for the UHPPOTE UT0311 TCP/IP access controller boards

    Go 10 5

  6. uhppoted-rest uhppoted-rest Public

    Go REST API for the UHPPOTE UT0311 TCP/IP access controller boards

    Go 9 3