How to hack a UHPPOTE system to work with Apple Access Passes - AccessGrid Guides

How to hack a UHPPOTE system to work with Apple Access Passes

May 19, 2025

Auston Bunsen

Overview

In this guide, we’ll walk through integrating perhaps the worlds most popular access control system (at least according to Amazon.com), a basic UHPPOTE door access system, with reader that recognizes Apple Wallet-based credentials, using AccessGrid-issued passes. This setup should also work with Google Wallet based credentials as well.

We’ll integrate a mini Wiegand controller, wire up power, configure card number ranges, and replace the legacy reader with a VTAP 100 that supports the H10301 Wiegand format. This is ideal for replacing standalone keypads with modern NFC authentication with minimal disruption to the existing infrastructure.

Prerequisites

Getting Power Wired

You’ll need to provide stable 12V DC power to both the controller and the reader. We hotwired the UHPPOTE Power Supply Control directly into an Anker Prime 6-in-1 charging station ( Amazon link). To wire it up, just shove the power supply wires into the socket - be sure not to touch the exposed bits with your hands or you will get shocked! It doesn't matter which order they go in because it's an A/C 110 - 240 V power supply. This is how it should look:

Note: The power light is ON, that's how you know power is flowing.

Wiring the rest

OK, so now you've got power. Let's move on to wiring the rest of your set up.

🚨 "Unplug" your power supply so you don't die.

You need to wire the ground and power outputs from the power supply control to the TUYA wiegand microcontroller's ground and power inputs. Do this now. Map GND to GND, then +12V (power supply) to DC+ (controller).

Next you need to wire up the reader to the controller. If you pop open your VTAP 100, you'll see it has a green connector waiting for wires, map them in the following way:

VTAP 100 TUYA Controller
PWR+
Copy
DC+
Copy
GND
Copy
GND
Copy
D0
Copy
D0
Copy
D1
Copy
D1
Copy
GRN
Copy
LED
Copy
RED
Copy
--
Copy
BEEP
Copy
BZR
Copy

Note that you do not need to map the RED to anything, just leave off the wire. It should look something like this:

Selecting a Card Number Range & Programming the Microcontroller

UHPPOTE controllers must be programmed to recognize a range of Wiegand 26-bit card numbers. Use the IR remote that comes with the controller. It must be within 1 inch of the device to register inputs. I'm not kidding, 1 inch! Here's what we mean:

Now, "plug in" the power supply, wait for the red lights and using the remote (assuming you are using factory settings) press:

*123456# 1 # [Number of Cards, max 999] # [Starting Card Number, e.g., 19942069] #

For this, we'll allow 200 cards starting at 19942069 (site code: 199, card numbers 42069-42269):

*123456# 1 # 200 # 19942069 #

The controller will now accept Wiegand 26-bit cards in the configured range. The controller will take up to 2 minutes to program them all and it's LED will blink various colors throughout the process, ending at solid red once it is done.

Configuring Your Reader

Since this is just a proof of concept, we'll jump straight into reader config. You can use the AccessGrid config tool or futz with config.txt - your choice. Here's how our reader config tool looks:

Here's a sample for you, in case you don't yet have an AccessGrid account:

!VTAPconfig
; This section defines the Google Smart Tap collector ID and key for the pass you want to read
; This is AccessGrid's collector ID
ST1CollectorID=12345678
ST1KeySlot=2
ST1KeyVersion=1

; The following is for formatted Google SmartTap passes
PassFormat=2
AccessTCI=002000
NFCType4=D    ; Read type 4 cards and Wallet passes as DESFire
DESFireAppID=ACCE55
DESFireFileID=00
DESFireKeyNum=1
DESFireKeySlot=1  ; use appkey1 or above
; The following is for formatted DESFire cards and Apple Access DESFire passes
DESFireFormat=2

;Add Wiegand support, please contact support
; WiegandMode=1
KBLogMode=1

; This section controls how the LEDs and buzzer behave. Two beeps for a pass, one for a card:
LEDSelect=1
LEDDefaultRGB=FFFFFF
PassLED=00FF00,200,1,1
PassBeep=100,100,2
TagLED=00FF00,200
TagBeep=100

Of course, you'll need to add the keys and such, but this is basically the config. You need to make sure you have "unplugged" the power supply before proceeding!

Unplug the power supply before proceeding!

Now, plug in the reader with a microusb to usbc cord and load all of the config files onto the reader. Eject the device and restart it. We're going to test now.

Issuing Credentials

In order to test our setup, we need Apple and or Google credentials. AccessGrid makes issuing and managing Apple Wallet credentials simple! So go ahead and open an account, go through onboarding, we'll be right here.

Now that you're set up, go ahead and issue an NFC key. Here's a sample using our python library:

from accessgrid import AccessGrid

# get these from your access grid account
account_id = "[placeholder]"
secret_key = "[placeholder]"
card_template_id = "[placeholder]"

client = AccessGrid(account_id, secret_key)

card = client.access_cards.provision(
    card_template_id=card_template_id,
    employee_id="101010101",
    card_number="42169",
    site_code="199",
    full_name="Jose Casanova",
    email="j@csnv.com",
    phone_number="+17867212241",
    classification="Employee",
    title="CEO",
    start_date="2025-04-03T22:46:25.601Z",
    expiration_date="2026-04-20T22:46:25.601Z"
)

print(card.id)
print(card.url)

Note that we set the card number and site code to be in range based on the configuration we set on the TUYA microcontroller!

Download the pass using the link output from the script above. Each pass will transmit a compatible card number via the VTAP when tapped. Go ahead and "plug in" the power supply again, if everything is on, go ahead and tap! You should hear the "door" unlock, here's a video to help you out:

Conclusion

You’ve successfully converted a legacy UHPPOTE door system into a modern Apple Wallet-compatible setup using a VTAP 100 reader and AccessGrid credentials. This approach keeps existing infrastructure intact while introducing NFC security. By wiring in a Wiegand-compatible controller and using the VTAP’s flexible output modes, you can repeat this process for every door in the building.

If you run into issues, verify:

Let us know how your deployment goes — and don’t forget to share improvements or tricks you find along the way.