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_OKPJREQPJACK) 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_onSends the PW1 command.
power_offSends the PW0 command. The projector enters cooldown for ~60s before returning to standby.
get_powerForces a refresh of the power_state attribute.
set_inputinputhdmi1 or hdmi2.
get_inputForces 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.