Skip to main content

JVC Projector (PJ-Net)

GEM driver jvc_projector controls JVC DLA / NZ / RS-series projectors via the PJ-Net binary TCP protocol on port 20554.

What it does​

  • Power on, power off, and live power-state polling.
  • HDMI input switching and current-input readback.
  • Handles the standard JVC three-step handshake (PJ_OK → PJREQ → PJACK) on connect, including the NZ-series Network Password variant.

Prerequisites​

  • Network control enabled on the projector (the menu name varies — "Control4", "Network Control", or similar depending on model and firmware).
  • TCP port 20554 reachable on the LAN.
  • For NZ-series projectors with a Network Password configured in the menu, that password must be entered as the pair_password device attribute. Older DLA / RS-series projectors do not require a password.
  • No competing TCP client. JVC Auto Calibration software, the JVC Remote app, and Control4 driver all hold port 20554 exclusively.

Setup steps​

  1. Assign a static IP or DHCP reservation to the projector.
  2. In GEM, create a Device with driver jvc_projector and enter the IP. Port 20554 is the default.
  3. (NZ-series only) Enter the Network Password configured in the projector's menu under the pair_password attribute.
  4. Save. The driver completes the handshake automatically and begins polling power and input state every 30 seconds.

Attribute reference​

Device​

NameRequiredDescription
ipyesLAN IP or hostname of the projector.
portnoTCP port. Defaults to 20554.
pair_passwordnoNetwork Password (NZ series only). Stored encrypted.
status_intervalnoPolling interval in milliseconds. Defaults to 30000.
power_stateno (auto)Read-only runtime state: standby / on / cooling / warming / emergency.
inputno (auto)Read-only runtime state: hdmi1 / hdmi2.

Zone​

This driver is single-display and does not create zones. AV zones can link to it as a display target by device_id.

Commands​

NameArgsNotes
power_on—Sends the PW1 command.
power_off—Sends the PW0 command. The projector enters cooldown for ~60s before returning to standby.
get_power—Forces a refresh of the power_state attribute.
set_inputinputhdmi1 or hdmi2.
get_input—Forces a refresh of the input attribute.
set_picture_modemodeTODO — only a subset of picture modes is wired through. Returns not yet implemented.

Known limitations​

  • set_picture_mode is stubbed pending a per-model verification of the PMPM extended-op encoding. Other vendor-specific picture-mode codes are not supported.
  • Lens memory recall, gamma presets, and lamp/laser hour readback are not yet implemented.
  • Only HDMI 1 and HDMI 2 inputs are mapped; legacy component / VGA inputs are not.

Troubleshooting​

SymptomCheck
Driver loops connect / disconnect.Most often a wrong or missing pair_password on an NZ-series projector. The projector closes the socket without a PJNAK frame, so the driver only sees a TCP RST.
power_on succeeds but a follow-up power_off appears to be ignored.During cooldown the projector ignores commands for ~60s. The power_state attribute will read cooling until the lamp/laser shuts down.
No response from projector at all.Confirm only one TCP client is connected — JVC Auto Calibration, JVC Remote, and Control4 drivers all exclusively hold port 20554.
Status polling shows emergency.The projector reported a fault (lamp / laser / temp). Check the front-panel indicator and the projector's own diagnostic menu.

Protocol notes​

The JVC PJ-Net protocol uses framed binary packets:

  • Operation: 0x21 0x89 0x01 [op1] [op2] [data...] 0x0A
  • Reference (query): 0x3F 0x89 0x01 [op1] [op2] 0x0A
  • Ack from projector: 0x06 0x89 0x01 [op1] [op2] 0x0A
  • Response from projector: 0x40 0x89 0x01 [op1] [op2] [data...] 0x0A

Op codes used by this driver:

  • PW (0x50 0x57) — power. Data byte 0x31 = on, 0x30 = standby.
  • IP (0x49 0x50) — input. Data byte 0x36 = HDMI1, 0x37 = HDMI2.