# ProXR Public Release — protocol documentation and reference data National Control Devices (NCD) ProXR and ProXR Lite relay controllers: everything a developer, an integrator or an AI assistant needs to generate correct command bytes. Assembled 2026-10-20. | Path | What it is | Start here if… | |---|---|---| | `PROXR-PROGRAMMING-GUIDE.md` | The complete guide: transports (USB, RS-232, RS-485, Ethernet, Wi-Fi, Bluetooth, wireless), API framing with verified byte examples, device identification, every command group, EEPROM map, reply conventions, Python and Node samples, pitfalls | …you want to control a board | | `protocol/PROXR-COMMAND-REFERENCE-firmware.md` | The command decode tree as implemented in the controller firmware (device-side view), reconciled with the guide | …you need to know exactly what the firmware does with a byte | | `protocol/proxr-commands.json` | Machine-readable command table (63 commands: byte templates, parameters, responses) | …you are generating a library or test fixtures | | `protocol/proxr-eeprom-map.json` | Machine-readable 256-byte EEPROM map with access rules | …you are building a configuration tool | | `reference/` | Text copies of NCD's published API Codec, API Calculator and ProXR Quick Start guides, with links and known errata | …you want NCD's own wording | | `examples/proxr_checksum_check.py` | Verifies or builds API frames from the command line | …you want to sanity-check bytes before sending | | `examples/proxr_minimal.py`, `examples/proxr_minimal.mjs` | Minimal working clients (pyserial / node-serialport) | …you want a starting point in code | ## Essentials - Serial 115200 8N1 (USB virtual COM port) or TCP to the controller's IP on port 2101. - Wrap every command: `0xAA, LEN, payload…, CKSUM`, `CKSUM = (0xAA + LEN + Σpayload) AND 255`. Replies come back the same way. - `254,33` answers 85 (run), 86 (configuration) or 87 (lockdown). `254,108+R,B` turns relay R+1 of bank B on; `254,124,B` reads a bank. - Identify the board before anything else (guide §4): other NCD firmware families use some of these bytes differently. ## Scope and provenance ProXR family only (Standard, Enhanced, Lite, with notes on Fusion-class differences). Content was derived from the controller firmware, from NCD's host software, and from NCD's published guides, and cross-checked byte for byte; every example frame passes the checksum rule. Factory-only procedures (activation and serial-number programming) are intentionally not included. ## Verify ``` python3 examples/proxr_checksum_check.py "AA 03 FE 6C 01 18" "170,3,254,124,1,40" python3 examples/proxr_checksum_check.py --wrap 254,33 ``` © National Control Devices, LLC. Hardware and firmware are NCD products; this documentation accompanies the ProXR public release.