Skip to content

jbjardine/piswords-uhfreader-toFx64

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PISWORDS UHF Reader x64 Toolkit

Release Latest Release License

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:

Support

What to use

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*.exe and UhfWorkflows.dll requires UhfSimple.dll in the same folder.

Documentation

  • 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)

Project layout

  • 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

Build

Native DLL + CLI (Windows)

cd src/native
mkdir build
cd build
cmake -A x64 ..
cmake --build . --config Release

Outputs:

  • src/native/build/Release/UhfSimple.dll
  • src/native/build/Release/UhfWorkflows.dll
  • src/native/build/Release/UhfSimpleCli.exe
  • src/native/build/Release/UhfSimpleCliConsole.exe

Tip: Prebuilt binaries are available from GitHub Releases.

.NET compat DLL

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.

Quick usage

Native DLL (simple API)

See src/native/README.md for the full list and examples.
Key helpers:

  • UHF_IsConnected() -> 1 if port is open in this process
  • UHF_IsReaderPresent(&port) -> probe: open/scan/close, returns 1/0

CLI (console)

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

Tested on hardware (COM16)

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).
  • EraseWriteVerify on EPC bank returned ret=250 on this tag (firmware limitation).
  • Some firmwares need 2–3 s between commands to avoid Read length failed.

Notes

  • The bridge x86 approach was removed (vendor DLL has issues with COM10+).
  • Undocumented exports like SetPWM/ReadPWM are not implemented.
  • Not affiliated with PISWORDS; trademarks belong to their owners.

Disclaimer

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.