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_passworddevice 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
- Assign a static IP or DHCP reservation to the projector.
- In GEM, create a Device with driver
jvc_projectorand enter the IP. Port 20554 is the default. - (NZ-series only) Enter the Network Password configured in the projector's menu under the
pair_passwordattribute. - Save. The driver completes the handshake automatically and begins polling power and input state every 30 seconds.
Attribute reference
Device
| Name | Required | Description |
|---|---|---|
ip | yes | LAN IP or hostname of the projector. |
port | no | TCP port. Defaults to 20554. |
pair_password | no | Network Password (NZ series only). Stored encrypted. |
status_interval | no | Polling interval in milliseconds. Defaults to 30000. |
power_state | no (auto) | Read-only runtime state: standby / on / cooling / warming / emergency. |
input | no (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
| Name | Args | Notes |
|---|---|---|
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_input | input | hdmi1 or hdmi2. |
get_input | — | Forces a refresh of the input attribute. |
set_picture_mode | mode | TODO — only a subset of picture modes is wired through. Returns not yet implemented. |
Known limitations
set_picture_modeis stubbed pending a per-model verification of thePMPMextended-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
| Symptom | Check |
|---|---|
| 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 byte0x31= on,0x30= standby.IP(0x49 0x50) — input. Data byte0x36= HDMI1,0x37= HDMI2.