This repo provides x64-ready tooling for the PISWORDS USB UHF reader:
- Native x64 DLL (stdcall) with a simple API for any language (WinDev, C/C++, etc.)
- Workflow DLL with bundled actions (write+verify, unlock+write+verify, etc.) - custom layer built by us, not vendor firmware
- Managed .NET x64 DLL compatible with the vendor API (
ReaderB.StaticClassReaderB.*) - CLI tools for quick testing and automation
If this project is useful to you, you can support its development here:
| Use case | Recommended | Notes |
|---|---|---|
| Native / C / WinDev | UhfSimple.dll |
Simple x64 API |
| Bundled workflows | UhfWorkflows.dll |
Requires UhfSimple.dll |
| .NET (vendor‑compatible) | UHFReader09CSharp64.dll |
Same API as vendor |
| CLI testing | UhfSimpleCli*.exe |
Console + no‑console |
Mini‑map:
UhfWorkflows.dll --> UhfSimple.dll --> Raw COM protocol --> Reader (COM)
UhfSimpleCli*.exe --> UhfSimple.dll --> Raw COM protocol --> Reader (COM)
UHFReader09CSharp64.dll --> Raw COM protocol --> Reader (COM)
Note:
UhfSimpleCli*.exeandUhfWorkflows.dllrequiresUhfSimple.dllin the same folder.
docs/README.md(index)src/native/README.md(native DLL + CLI)src/workflows/README.md(workflow DLL)src/dotnet-compat/README.md(.NET compat DLL)src/protocol/README.md(low-level serial protocol CLI)
-
src/native/
Native x64 DLL + CLI (user-friendly hex API) -
src/protocol/
Low-level serial protocol implementation (COM) -
src/workflows/
Workflow DLL (bundled actions, depends on native DLL) -
src/dotnet-compat/
.NET x64 DLL that exposes the same API as the original vendor DLL -
samples/compat-test/
Small .NET test app for the compat DLL
cd src/native
mkdir build
cd build
cmake -A x64 ..
cmake --build . --config Release
Outputs:
src/native/build/Release/UhfSimple.dllsrc/native/build/Release/UhfWorkflows.dllsrc/native/build/Release/UhfSimpleCli.exesrc/native/build/Release/UhfSimpleCliConsole.exe
Tip: Prebuilt binaries are available from GitHub Releases.
dotnet build .\src\dotnet-compat\UHFReader09CSharp64.csproj -c Release
Output:
src/dotnet-compat/bin/Release/net48/UHFReader09CSharp64.dll
Tip: Prebuilt binaries are available from GitHub Releases.
See src/native/README.md for the full list and examples.
Key helpers:
UHF_IsConnected()-> 1 if port is open in this processUHF_IsReaderPresent(&port)-> probe: open/scan/close, returns 1/0
UhfSimpleCliConsole.exe info
UhfSimpleCliConsole.exe present
UhfSimpleCliConsole.exe inventory
UhfSimpleCliConsole.exe read E2806894000040319F6619DF 1 0 6 00000000
UhfSimpleCliConsole.exe write-epc E2806894000040319F6619AA 00000000
UhfSimpleCliConsole.exe buzzer 20 20 3
Verified with a real reader + tag:
- AutoOpen / GetInfo / Inventory
- Read EPC + TID
- Write EPC (and restore)
- Lock/Unlock EPC (reversible)
- Buzzer/LED (acousto-optic)
- Workflow DLL: ReadEpcFirst, WriteVerify, UnlockWriteVerifyEpc, WriteVerifyLockEpc, UnlockWriteVerifyLockEpc (EPC restored after test)
Notes:
- Power accepted on this unit: 0..13. Values >= 14 return 0xFF.
- The test tag had no User memory, so User-memory ops return
ret=252(tag error). EraseWriteVerifyon EPC bank returnedret=250on this tag (firmware limitation).- Some firmwares need 2–3 s between commands to avoid
Read length failed.
- The bridge x86 approach was removed (vendor DLL has issues with COM10+).
- Undocumented exports like
SetPWM/ReadPWMare not implemented. - Not affiliated with PISWORDS; trademarks belong to their owners.
This software is provided as is, without warranty. You are responsible for ensuring compliance with local RF regulations and safe use of the hardware.
- The original vendor x86 DLL is not redistributed here.
If you find extra official docs or headers, we can extend the API safely.