Summary
RS-232C external serial control documented for the North American JVC HD-56FH96, HD-61FH96 and HD-70FH96 rear-projection HDTV models. Applicability to HD-61FH97 and HD-70FH97 is UNRESOLVED: the source does not list those models, and these repairs do not establish support for them. Source doc explicitly states D-SUB 9 pin male, asynchronous ASCII, 19200 bps, 8/Odd/1, no flow control. Frame = header (1) + Unit ID (2) + Command (2) + Data[n] + terminator 0x0A. Authentication requirements are UNRESOLVED; the source provides no authentication procedure.
Transport
protocols:
- serial
serial:
baud_rate: 19200
data_bits: 8
parity: odd
stop_bits: 1
flow_control: none
interface: RS-232C
connector: D-SUB 9-pin male
communication_code: ASCII
auth:
type: UNRESOLVED # Authentication requirements are not stated in source.
Frame Format
header:
value: 0x21
ascii: "!"
unit_id:
machine_code: 0x82
individual_code: 0x80 # settable via SU/IC subcommand
command: 2 bytes; ASCII mnemonic except NULL (0x00 0x00)
data: 0..n bytes
terminator: 0x0A # LineFeed, fixed
Traits
- powerable # PW command
- routable # IP input switching
- levelable # VL volume, VS video status, AS aspect
- queryable # UNRESOLVED: state queries and NULL response behavior are not documented.
Actions
- id: null_command
label: NULL command
kind: action
command: "0x21 0x82 0x80 0x00 0x00 0x0A"
params: []
notes: No parameters.
- id: power_set
label: Power source set
kind: action
command: "0x21 0x82 0x80 0x50 0x57 {data} 0x0A"
params:
- name: data
type: string
values: ["0x30", "0x31", "0x2B", "0x2D"]
description: "0x30=OFF, 0x31=ON, 0x2B/0x2D=toggle"
- id: power_on
label: Power ON
kind: action
command: "0x21 0x82 0x80 0x50 0x57 0x31 0x0A"
params: []
- id: power_off
label: Power OFF
kind: action
command: "0x21 0x82 0x80 0x50 0x57 0x30 0x0A"
params: []
- id: power_toggle
label: Power toggle
kind: action
command: "0x21 0x82 0x80 0x50 0x57 0x2B 0x0A"
params: []
- id: input_set
label: Input switching
kind: action
command: "0x21 0x82 0x80 0x49 0x50 {data} 0x0A"
params:
- name: data
type: string
values: ["0x30", "0x31", "0x32", "0x33", "0x34", "0x35", "0x36", "0x37", "0x2B", "0x2D"]
description: "0x30=TV, 0x31=VIDEO1, 0x32=VIDEO2, 0x33=VIDEO3, 0x34=VIDEO4, 0x35=DIGITAL-1, 0x36=DIGITAL-2, 0x37=i.Link, 0x2B=input+toggle switching, 0x2D=input-toggle switching"
notes: "Source states data length 1 or 2 but defines only Data 0. UNRESOLVED: meaning and encoding of any second data byte."
- id: input_tv
label: Select TV input
kind: action
command: "0x21 0x82 0x80 0x49 0x50 0x30 0x0A"
params: []
- id: input_video1
label: Select VIDEO1
kind: action
command: "0x21 0x82 0x80 0x49 0x50 0x31 0x0A"
params: []
- id: input_video2
label: Select VIDEO2
kind: action
command: "0x21 0x82 0x80 0x49 0x50 0x32 0x0A"
params: []
- id: input_video3
label: Select VIDEO3
kind: action
command: "0x21 0x82 0x80 0x49 0x50 0x33 0x0A"
params: []
- id: input_video4
label: Select VIDEO4
kind: action
command: "0x21 0x82 0x80 0x49 0x50 0x34 0x0A"
params: []
- id: input_digital1
label: Select DIGITAL-1
kind: action
command: "0x21 0x82 0x80 0x49 0x50 0x35 0x0A"
params: []
- id: input_digital2
label: Select DIGITAL-2
kind: action
command: "0x21 0x82 0x80 0x49 0x50 0x36 0x0A"
params: []
- id: input_ilink
label: Select i.Link
kind: action
command: "0x21 0x82 0x80 0x49 0x50 0x37 0x0A"
params: []
- id: input_toggle
label: Input toggle
kind: action
command: "0x21 0x82 0x80 0x49 0x50 0x2B 0x0A"
params: []
- id: volume_set
label: Sound volume set
kind: action
command: "0x21 0x82 0x80 0x56 0x4C {data} 0x0A"
params:
- name: data
type: string
description: "0x30-0x39 = ASCII digits for direct numerical volume setting; 0x2B = UP; 0x2D = DOWN. Data length 1 or 2. UNRESOLVED: accepted numerical volume range."
- id: volume_up
label: Volume UP
kind: action
command: "0x21 0x82 0x80 0x56 0x4C 0x2B 0x0A"
params: []
- id: volume_down
label: Volume DOWN
kind: action
command: "0x21 0x82 0x80 0x56 0x4C 0x2D 0x0A"
params: []
- id: audio_mute_set
label: Audio muting set
kind: action
command: "0x21 0x82 0x80 0x41 0x4D {data} 0x0A"
params:
- name: data
type: string
values: ["0x30", "0x31", "0x2B", "0x2D"]
description: "0x30=MUTE OFF, 0x31=MUTE ON, 0x2B/0x2D=toggle"
- id: audio_mute_on
label: Audio MUTE ON
kind: action
command: "0x21 0x82 0x80 0x41 0x4D 0x31 0x0A"
params: []
- id: audio_mute_off
label: Audio MUTE OFF
kind: action
command: "0x21 0x82 0x80 0x41 0x4D 0x30 0x0A"
params: []
- id: audio_mute_toggle
label: Audio MUTE toggle
kind: action
command: "0x21 0x82 0x80 0x41 0x4D 0x2B 0x0A"
params: []
- id: channel_set
label: Channel select
kind: action
command: "0x21 0x82 0x80 0x43 0x48 {data} 0x0A"
params:
- name: data
type: string
description: "0x30-0x39 = ASCII digits for direct decimal channel specification (data length 1-7); 0x2B = CH UP; 0x2D = CH DOWN/sub channel"
- id: channel_up
label: Channel UP
kind: action
command: "0x21 0x82 0x80 0x43 0x48 0x2B 0x0A"
params: []
- id: channel_down
label: Channel DOWN
kind: action
command: "0x21 0x82 0x80 0x43 0x48 0x2D 0x0A"
params: []
- id: video_status_set
label: Video status set
kind: action
command: "0x21 0x82 0x80 0x56 0x53 {data} 0x0A"
params:
- name: data
type: string
values: ["0x30", "0x31", "0x32", "0x33", "0x2B", "0x2D"]
description: "0x30=Standard, 0x31=Dynamic, 0x32=Theater, 0x33=Game, 0x2B/0x2D=toggle"
- id: video_status_standard
label: Video status Standard
kind: action
command: "0x21 0x82 0x80 0x56 0x53 0x30 0x0A"
params: []
- id: video_status_dynamic
label: Video status Dynamic
kind: action
command: "0x21 0x82 0x80 0x56 0x53 0x31 0x0A"
params: []
- id: video_status_theater
label: Video status Theater
kind: action
command: "0x21 0x82 0x80 0x56 0x53 0x32 0x0A"
params: []
- id: video_status_game
label: Video status Game
kind: action
command: "0x21 0x82 0x80 0x56 0x53 0x33 0x0A"
params: []
- id: video_status_toggle
label: Video status toggle
kind: action
command: "0x21 0x82 0x80 0x56 0x53 0x2B 0x0A"
params: []
- id: aspect_set
label: Aspect set
kind: action
command: "0x21 0x82 0x80 0x41 0x53 {data} 0x0A"
params:
- name: data
type: string
values: ["0x30", "0x31", "0x32", "0x33", "0x2B", "0x2D"]
description: "0x30=PANORAMA/P.ZOOM, 0x31=CINEMA/C.ZOOM, 0x32=FULL, 0x33=REGULAR/SLIM, 0x2B/0x2D=toggle"
- id: aspect_panorama
label: Aspect PANORAMA / P.ZOOM
kind: action
command: "0x21 0x82 0x80 0x41 0x53 0x30 0x0A"
params: []
- id: aspect_cinema
label: Aspect CINEMA / C.ZOOM
kind: action
command: "0x21 0x82 0x80 0x41 0x53 0x31 0x0A"
params: []
- id: aspect_full
label: Aspect FULL
kind: action
command: "0x21 0x82 0x80 0x41 0x53 0x32 0x0A"
params: []
- id: aspect_regular
label: Aspect REGULAR / SLIM
kind: action
command: "0x21 0x82 0x80 0x41 0x53 0x33 0x0A"
params: []
- id: aspect_toggle
label: Aspect toggle
kind: action
command: "0x21 0x82 0x80 0x41 0x53 0x2B 0x0A"
params: []
- id: remote_passthrough
label: Remote control code pass-through
kind: action
command: "0x21 0x82 0x80 0x52 0x43 {d0} {d1} {d2} {d3} 0x0A"
params:
- name: d0
type: string
description: "0x30-0x39 or 0x41-0x46 (4 nibbles total)"
- name: d1
type: string
description: "0x30-0x39 or 0x41-0x46"
- name: d2
type: string
description: "0x30-0x39 or 0x41-0x46"
- name: d3
type: string
description: "0x30-0x39 or 0x41-0x46"
notes: Data length 4; each byte is 0-9 or A-F.
- id: setup_individual_code
label: Setup - Individual code
kind: action
command: "0x21 0x82 0x80 0x53 0x55 0x49 0x43 {code} 0x0A"
params:
- name: code
type: string
description: "0x80-0xFF. Default 0x80. Last memory: yes."
- id: setup_remote_control_enable
label: Setup - Remote control operation enable
kind: action
command: "0x21 0x82 0x80 0x53 0x55 0x52 0x4D {data} 0x0A"
params:
- name: data
type: string
values: ["0x30", "0x31"]
description: "0x30=Disable, 0x31=Enable. Last memory: no."
- id: setup_front_key_enable
label: Setup - Front key operation enable
kind: action
command: UNRESOLVED
params:
- name: data
type: string
values: ["0x30", "0x31"]
description: "0x30=Disable, 0x31=Enable in the parameter section. Data length 1. UNRESOLVED: applicability of these settings to the table's FK subcommand because the parameter section names FH."
notes: |
UNRESOLVED: section 3.10 conflicts internally. The mandatory subcommand
table identifies front-key operation as 0x46 0x4B ('F', 'K'), with last
memory 'no'. Its parameter section instead identifies 0x46 0x48
('F', 'H') and lists 0x30=Disable and 0x31=Enable.
The enclosing setup command is 0x53 0x55 ('S', 'U'), followed by a
two-byte subcommand and setting. Neither conflicting front-key
subcommand is selected as an executable command pending clarification.
Feedbacks
# Source documents three header values but does not specify
# the body of ACK/NAK responses or which commands elicit them.
# Capture the header taxonomy explicitly; mark body as unresolved.
- id: response_ack
type: enum
values: [ack]
description: |
Response header 0x06 (ACK). Source does not document body structure
or which commands trigger an ACK response.
notes: |
# UNRESOLVED: ACK payload structure not stated in source.
- id: response_nak
type: enum
values: [nak]
description: |
Response header 0x15 (NAK). Source does not document body structure,
error codes, or which commands trigger a NAK response.
notes: |
# UNRESOLVED: NAK payload structure not stated in source.
- id: response_headers
type: enum
values: [operation, ack, nak]
description: |
Source-defined header table (section 2.3): Operation (0x21),
ACK (0x06), and NAK (0x15). Operation is the operation-command header.
notes: |
# UNRESOLVED: query syntax (e.g. "PW?") for retrieving device state
# is not documented in source; no status-query mechanism or mapping
# of commands to ACK/NAK responses is specified.
Variables
# VL documents direct numerical volume setting using ASCII digits,
# with data length 1 or 2; it is represented by volume_set above.
# UNRESOLVED: accepted numerical volume range and padding rules.
# CH documents direct decimal channel specification with data length
# 1-7; it is represented by channel_set above.
# UNRESOLVED: exact sub-channel encoding and accepted channel range.
Events
# UNRESOLVED: unsolicited notifications not documented in source.
Macros
# UNRESOLVED: no multi-step sequences documented in source.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings, interlocks, or power-on sequencing
# requirements stated in source.
Notes
- Source filename
lt-fh_hd-fh_series.pdf(Crestron-hosted). The doc is JVC-issued per Crestron Application Market conventions, but first-party URL not confirmed. Markeddeclared_confidence: lowaccordingly. - The supplied source explicitly lists only North American HD-70FH96, HD-61FH96 and HD-56FH96. Applicability to HD-61FH97 and HD-70FH97 is UNRESOLVED; no repair establishes command support for those models.
- Authentication requirements are UNRESOLVED. Absence of an authentication procedure in the source does not establish that authentication is unnecessary.
- Header 0x21 ('!') is "Operation command". Source also defines ACK (0x06) and NAK (0x15) as response headers but does not document their payload structure.
+/-parameters on PW, AM, VS and AS are described as toggle switching. IP distinguishes "input+toggle switching" and "input-toggle switching". UNRESOLVED: detailed toggle behavior beyond these descriptions.- VL documents direct numerical volume setting with ASCII digits and data length "1 or 2". UNRESOLVED: accepted numerical range and padding rules; the source does not establish an accepted 00-99 range.
- IP lists "i.Link" (0x37) without per-model filtering. UNRESOLVED: model-specific availability; no regional exclusion is documented.
- Machine code is 0x82. The individual code is settable via SU/IC in the source-defined 0x80-0xFF range, with default 0x80 and last memory "yes". The command frames shown use individual code 0x80; addressing after changing the individual code must reflect the configured code.
- Front-key setup command encoding is UNRESOLVED: the source table gives
0x46 0x4B (FK), while the parameter section gives 0x46 0x48 (FH).
setup_front_key_enableis preserved with an unknown command rather than selecting either conflicting encoding.
Provenance
source_domains:
- support.jvc.com
source_urls:
- https://support.jvc.com/consumer/custrel/television/RS-232Cver13.pdf
retrieved_at: 2026-07-24T18:36:05.682Z
last_checked_at: 2026-10-07T10:37:05.109Z
Verification Summary
verdict: verified
checked_at: 2026-10-07T10:37:05.109Z
matched_actions: 41
action_count: 41
confidence: medium
summary: "All 41 actions match source opcodes and parameters and transport values are supported; setup_front_key_enable matches semantically (spec leaves its FK/FH conflict UNRESOLVED). (19 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "the source does not list those models, and these repairs do not establish support for them. Source doc explicitly states D-SUB 9 pin male, asynchronous ASCII, 19200 bps, 8/Odd/1, no flow control. Frame = header (1) + Unit ID (2) + Command (2) + Data[n] + terminator 0x0A. Authentication requirements are UNRESOLVED; the source provides no authentication procedure."
- "firmware version range; model-specific availability of the listed i.Link input; detailed toggle behavior beyond the source descriptions."
- "state queries and NULL response behavior are not documented."
- "meaning and encoding of any second data byte.\""
- "accepted numerical volume range.\""
- "applicability of these settings to the table's FK subcommand because the parameter section names FH.\""
- "section 3.10 conflicts internally. The mandatory subcommand"
- "ACK payload structure not stated in source."
- "NAK payload structure not stated in source."
- "query syntax (e.g. \"PW?\") for retrieving device state"
- "accepted numerical volume range and padding rules."
- "exact sub-channel encoding and accepted channel range."
- "unsolicited notifications not documented in source."
- "no multi-step sequences documented in source."
- "no safety warnings, interlocks, or power-on sequencing"
- "detailed toggle behavior beyond these descriptions."
- "accepted numerical range and padding rules;"
- "model-specific availability; no regional exclusion is documented."
- "the source table gives"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0