Summary
JVC KENWOOD DLA-V70R home theater projector (D-ILA) with external control over RS-232C (D-Sub 9, 19200 8N1 binary) and TCP/IP LAN (port 20554). This spec covers the binary command framing (header + unit ID 8901 + command + data + end 0A) for power, input selection, remote-button emulation, connection check, and reference (query) commands.
Transport
protocols:
- tcp
- serial
addressing:
port: 20554 # TCP/IP control port (source: "TCPポート番号 20554")
serial:
baud_rate: 19200 # source: "データ速度 19200 bps"
data_bits: 8 # source: "キャラクター長 8ビット"
parity: none # source: "パリティ なし"
stop_bits: 1 # source: "ストップビット 1"
flow_control: none # UNRESOLVED: flow control not explicitly stated; connector pins 1,4,6-9 are N/C
auth:
# Two different auth situations exist (one per protocol):
# - TCP: explicit connection-authentication handshake (PJ_OK → PJREQ → PJACK), documented in source.
# - RS-232C: no login procedure in source → none (inferred).
type: handshake # source documents PJ_OK→PJREQ→PJACK connection authentication for TCP
notes: |
TCP flow: after TCP 3-way handshake the projector sends "PJ_OK"; the controller
must reply "PJREQ" within 5 seconds; the projector replies "PJACK" (accepted),
or "PJ_NG" / "PJNAK" (rejected, retry from TCP connect). RS-232C has no such
handshake (auth.type: none inferred for serial).
Traits
# - powerable (power on/off commands present: op 5057 31/30) # inferred from power command examples
# - queryable (reference commands 3F returning state present: power, input) # inferred from query command examples
# - routable (input source selection present: 4950 36/37) # inferred from input select command
traits:
- powerable
- queryable
- routable
Actions
# Command framing: Header(1) + UnitID(2)=8901 + Command(2) + Data(n) + End(1)=0A
# Headers: 21=operation, 3F=reference(query), 40=response, 06=ACK
# All command: fields are VERBATIM hex bytes from the source.
# --- Operation commands (header 21) ---
- id: connection_check
label: Connection Check (Operation)
kind: action
command: "21 89 01 00 00 0A"
params: []
notes: "PC→projector: 21 89 01 00 00 0A. Projector→PC ACK: 06 89 01 00 00 0A."
- id: power_set
label: Set Power
kind: action
command: "21 89 01 50 57 {state} 0A"
params:
- name: state
type: enum
description: "Power state byte. 31 = power on (from standby); 30 = power off / standby (from on)."
values:
"31": Power ON
"30": Power OFF (standby)
notes: |
Power ON full frame: 21 89 01 50 57 31 0A → ACK 06 89 01 50 57 0A.
Power OFF full frame: 21 89 01 50 57 30 0A → ACK 06 89 01 50 57 0A.
- id: select_input
label: Select Input
kind: action
command: "21 89 01 49 50 {input} 0A"
params:
- name: input
type: enum
description: "Input source byte (power-on state only)."
values:
"36": HDMI 1
"37": HDMI 2
notes: "Command valid only in power-on state. ACK: 06 89 01 49 50 0A."
# --- Remote-button emulation (operation command 5243, header 21) ---
# Source lists each remote button as a distinct row with a distinct 4-byte hex code;
# each is a separate action per the granularity rule. Full frame: 21 89 01 52 43 {code} 0A.
# All remote buttons return ACK: 06 89 01 52 43 0A.
- id: remote_standby
label: Remote STANDBY
kind: action
command: "21 89 01 52 43 37 33 30 36 0A"
params: []
- id: remote_on
label: Remote ON
kind: action
command: "21 89 01 52 43 37 33 30 35 0A"
params: []
- id: remote_input
label: Remote INPUT
kind: action
command: "21 89 01 52 43 37 33 30 38 0A"
params: []
- id: remote_setting_memory
label: Remote SETTING MEMORY
kind: action
command: "21 89 01 52 43 37 33 44 34 0A"
params: []
- id: remote_lens_control
label: Remote LENS CONTROL
kind: action
command: "21 89 01 52 43 37 33 33 30 0A"
params: []
- id: remote_hide
label: Remote HIDE
kind: action
command: "21 89 01 52 43 37 33 31 44 0A"
params: []
- id: remote_info
label: Remote INFO.
kind: action
command: "21 89 01 52 43 37 33 37 34 0A"
params: []
- id: remote_j
label: Remote J
kind: action
command: "21 89 01 52 43 37 33 30 31 0A"
params: []
- id: remote_k
label: Remote K
kind: action
command: "21 89 01 52 43 37 33 30 32 0A"
params: []
- id: remote_i
label: Remote I
kind: action
command: "21 89 01 52 43 37 33 33 34 0A"
params: []
- id: remote_h
label: Remote H
kind: action
command: "21 89 01 52 43 37 33 33 36 0A"
params: []
- id: remote_ok
label: Remote OK
kind: action
command: "21 89 01 52 43 37 33 32 46 0A"
params: []
- id: remote_menu
label: Remote MENU
kind: action
command: "21 89 01 52 43 37 33 32 45 0A"
params: []
- id: remote_back
label: Remote BACK
kind: action
command: "21 89 01 52 43 37 33 30 33 0A"
params: []
- id: remote_picture_mode
label: Remote PICTURE MODE
kind: action
command: "21 89 01 52 43 37 33 46 34 0A"
params: []
- id: remote_color_profile
label: Remote COLOR PROFILE
kind: action
command: "21 89 01 52 43 37 33 38 38 0A"
params: []
- id: remote_gamma_settings
label: Remote GAMMA SETTINGS
kind: action
command: "21 89 01 52 43 37 33 46 35 0A"
params: []
- id: remote_cmd
label: Remote C.M.D.
kind: action
command: "21 89 01 52 43 37 33 38 41 0A"
params: []
- id: remote_mpc
label: Remote MPC
kind: action
command: "21 89 01 52 43 37 33 46 30 0A"
params: []
- id: remote_advanced_menu
label: Remote ADVANCED MENU
kind: action
command: "21 89 01 52 43 37 33 37 33 0A"
params: []
# --- Reference (query) commands (header 3F) ---
- id: query_connection
label: Connection Check (Reference)
kind: query
command: "3F 89 01 00 00 0A"
params: []
- id: query_power
label: Power State Query
kind: query
command: "3F 89 01 50 57 0A"
params: []
notes: |
PC→projector: 3F 89 01 50 57 0A.
ACK: 06 89 01 50 57 0A.
Response (header 40): 40 89 01 50 57 {state} 0A where state:
30 = standby, 31 = power on, 32 = cooldown mode, 34 = abnormal/error state.
- id: query_input
label: Input State Query
kind: query
command: "3F 89 01 49 50 0A"
params: []
notes: |
PC→projector: 3F 89 01 49 50 0A.
ACK: 06 89 01 49 50 0A.
Response (header 40): 40 89 01 49 50 {input} 0A where input:
36 = HDMI 1, 37 = HDMI 2.
Feedbacks
# Observable states returned by reference-command responses (header 40) and operation ACKs (header 06).
- id: power_state
type: enum
values:
"30": standby
"31": power_on
"32": cooldown
"34": abnormal
notes: "Returned in query_power response data byte (40 89 01 50 57 {state} 0A)."
- id: input_state
type: enum
values:
"36": hdmi_1
"37": hdmi_2
notes: "Returned in query_input response data byte (40 89 01 49 50 {input} 0A)."
- id: command_ack
type: raw
values:
- "06 89 01 {cmd} 0A"
notes: "ACK frame sent by projector for every accepted command (header 06 + unit ID + echoed command bytes + 0A)."
Variables
# UNRESOLVED: source documents no settable scalar parameters (volume/gain/delay/etc.).
# Power and input are discrete actions; no continuous variables enumerated.
Events
# Unsolicited / connection-phase messages from the projector:
- id: pj_ok
type: raw
value: "PJ_OK"
notes: "Sent by projector unsolicited immediately after TCP 3-way handshake (initiates auth)."
- id: pjack
type: raw
value: "PJACK"
notes: "Auth-accepted reply to PJREQ."
- id: pj_ng
type: raw
value: "PJ_NG"
notes: "Auth-rejected (not accepted). Retry from TCP connect."
- id: pjnak
type: raw
value: "PJNAK"
notes: "Auth-rejected (negative ack). Retry from TCP connect."
# UNRESOLVED: source documents no other unsolicited runtime events (e.g. lamp/fault push notifications).
Macros
# Source describes the TCP connection-establishment sequence as a required procedure (not a user macro).
- id: tcp_connect_handshake
steps:
- "Establish TCP connection (3-way handshake) to port 20554."
- "Wait for projector to send PJ_OK."
- "Within 5 seconds, send PJREQ."
- "Expect PJACK (proceed to control). If PJ_NG or PJNAK, or 5s timeout, restart from TCP connect."
notes: "Required before any binary control command over TCP. RS-232C does not use this handshake."
Safety
confirmation_required_for: []
interlocks:
- id: eco_mode_blocks_standby_control
description: |
When "ECO Mode" is ON, RS-232C and LAN (TCP) communication are UNAVAILABLE in
standby. ECO Mode must be set to OFF to allow external control during standby
(or when using Control4). Source also notes: in ECO Mode ON, auto power-off
occurs after 15 min of no signal and no operation while projecting.
source: "RS-232C/LAN仕様 + ECO Mode section (P.76/P.94)"
- id: input_command_power_gate
description: "Input selection command (4950) is valid only in power-on state."
source: "operation command table: 電源オン時 (during power-on)"
# UNRESOLVED: source contains a TRIGGER terminal hardware warning ("接続を誤ると、機器破損の原因" /
# wrong connection causes equipment damage) for the DC 12 V 100 mA trigger output - this is a
# hardware-wiring interlock, not a control-command safety rule, and voltage/current specs are
# not populated into structured fields per population policy (Tier 3). See Notes.
Notes
- Control interface: RS-232C (D-Sub 9-pin male, cross cable) AND TCP/IP LAN (RJ-45). Network port is control-only, not for video signal transport.
- Binary framing is fixed:
Header + 8901 + Command(2) + Data(n) + 0A. Unit ID8901and End0Aare fixed for this device. - Header semantics:
21=operation (PC→projector),3F=reference/query (PC→projector),40=response (projector→PC),06=ACK (projector→PC on accepted command). - RS-232C pinout (source): pin 2=RxD (PC←projector), pin 3=TxD (projector→PC), pin 5=GND, pins 1/4/6-9=N/C.
- All operation and reference commands return an ACK frame
06 89 01 {command} 0A; reference commands additionally return a40 ...response frame carrying the queried value. - TRIGGER terminal (source-stated hardware spec, kept here, not in structured fields per policy): DC 12 V, 100 mA output; Tip = +12 V, Sleeve = GND; used to drive a motorized screen with trigger input. Wrong wiring causes equipment damage. Trigger output behavior is configurable (off / power-on / anamorphic / installation memory modes 1–10).
- Network settings exposed in source: DHCP client (on/off), manual IP/subnet/gateway, MAC address display, Control4 SDDP discovery (on/off).
- DLA-V70R shares the JVC D-ILA PJREQ/PJACK + 8901-framed protocol family with related models (V80R, V9R, NZ-series); command set here is limited to what the V70R source explicitly documents.
Provenance
source_domains:
- manuals.jvckenwood.com
source_urls:
- https://manuals.jvckenwood.com/download/files/B5A-3961-30.pdf
retrieved_at: 2026-06-23T10:15:30.082Z
last_checked_at: 2026-06-24T12:07:06.349Z
Verification Summary
verdict: verified
checked_at: 2026-06-24T12:07:06.349Z
matched_actions: 26
action_count: 26
confidence: medium
summary: "All 26 spec actions matched literally to source commands; transport parameters (port 20554, 19200 bps, 8N1, TCP/serial auth) confirmed verbatim in Japanese source document. (10 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "firmware version compatibility not stated in source. Full command catalogue beyond power/input/remote/connection not enumerated (source only documents these categories)."
- "flow control not explicitly stated; connector pins 1,4,6-9 are N/C"
- "source documents no settable scalar parameters (volume/gain/delay/etc.)."
- "source documents no other unsolicited runtime events (e.g. lamp/fault push notifications)."
- "source contains a TRIGGER terminal hardware warning (\"接続を誤ると、機器破損の原因\" /"
- "firmware version compatibility not stated in source."
- "full command catalogue beyond power/input/remote/connection not provided — source only documents these categories for the V70R. Lamp, picture-mode, lens, anamorphic, installation-memory, and trigger-setting direct commands are referenced only as remote-button emulations, not as native opcodes."
- "RS-232C flow control not explicitly stated (only baud/data/parity/stop bits given)."
- "command timing / inter-command spacing not stated (only the 5-second PJREQ window for TCP auth is given)."
- "TRIGGER terminal voltage (12 V) and current (100 mA) are source-stated but not placed in structured fields per Tier-3 population policy."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0