Summary
Spec covers the serial (RS-232) control protocol for Kramer VP-720XL and VP-724XL video scalers. Protocol is an ASCII command/response scheme over RS-232 using a 3-field header (Y/Z, Control_Type, Function) followed by an optional parameter, terminated by CR.
Transport
protocols:
- serial
serial:
baud_rate: 9600 # source also lists 1152000 bps as alternative; only 9600 stated as default-looking
data_bits: 8
parity: none # UNRESOLVED: not stated in source; RS-232 default assumption noted in inference
stop_bits: 1
flow_control: none # UNRESOLVED: not stated in source
auth:
type: none # inferred: no auth procedure in source
Traits
- powerable # inferred from Power commands (Control_Type 0 fn 2, Control_Type 6 fn 0)
- routable # inferred from Select Input Source command (Control_Type 3 fn 0)
- queryable # inferred from Get command variants (Control_Type 2/4/7/8)
- levelable # inferred from Volume/Treble/Bass/Contrast/Brightness/Sharpness range commands
Actions
# Protocol header format (Tier 1 - verbatim from source):
# Send: "Y Control_Type Function [Param] CR"
# Reply: "Z Control_Type Function [Param] CR" then "Done CR"
# Field separator: ASCII 0x20 (space). CR: 0x0D or 0x0A.
#
# Coverage rule: every Control_Type/Function row in the source command tables
# is enumerated below. Button-emulation block (Control_Type 0, fn 0..39) is
# emitted as separate actions per row.
# ---------- Control_Type 0: button / remote emulation ----------
- id: btn_output
label: Button: Output
kind: action
command: "Y 0 0 CR"
params: []
- id: btn_freeze
label: Button: Freeze
kind: action
command: "Y 0 1 CR"
params: []
- id: btn_power
label: Button: Power
kind: action
command: "Y 0 2 CR"
params: []
- id: btn_av1
label: Button: AV1
kind: action
command: "Y 0 3 CR"
params: []
- id: btn_av2
label: Button: AV2
kind: action
command: "Y 0 4 CR"
params: []
- id: btn_comp
label: Button: Component
kind: action
command: "Y 0 5 CR"
params: []
- id: btn_yc1
label: Button: YC1
kind: action
command: "Y 0 6 CR"
params: []
- id: btn_yc2
label: Button: YC2
kind: action
command: "Y 0 7 CR"
params: []
- id: btn_vga1
label: Button: VGA1
kind: action
command: "Y 0 8 CR"
params: []
- id: btn_vga2
label: Button: VGA2 (VP-724/DS/XL only)
kind: action
command: "Y 0 9 CR"
params: []
- id: btn_dvi
label: Button: DVI
kind: action
command: "Y 0 10 CR"
params: []
- id: btn_information
label: Button: Information
kind: action
command: "Y 0 11 CR"
params: []
- id: btn_area_left_up
label: Button: Area Left Up
kind: action
command: "Y 0 12 CR"
params: []
- id: btn_area_middle_up
label: Button: Area Middle Up
kind: action
command: "Y 0 13 CR"
params: []
- id: btn_area_right_up
label: Button: Area Right Up
kind: action
command: "Y 0 14 CR"
params: []
- id: btn_area_left_center
label: Button: Area Left Center
kind: action
command: "Y 0 15 CR"
params: []
- id: btn_area_middle_center
label: Button: Area Middle Center
kind: action
command: "Y 0 16 CR"
params: []
- id: btn_area_right_center
label: Button: Area Right Center
kind: action
command: "Y 0 17 CR"
params: []
- id: btn_area_left_down
label: Button: Area Left Down
kind: action
command: "Y 0 18 CR"
params: []
- id: btn_area_middle_down
label: Button: Area Middle Down
kind: action
command: "Y 0 19 CR"
params: []
- id: btn_area_right_down
label: Button: Area Right Down
kind: action
command: "Y 0 20 CR"
params: []
- id: btn_auto_image
label: Button: Auto Image
kind: action
command: "Y 0 21 CR"
params: []
- id: btn_menu
label: Button: Menu
kind: action
command: "Y 0 22 CR"
params: []
- id: btn_up
label: Button: Up
kind: action
command: "Y 0 23 CR"
params: []
- id: btn_left
label: Button: Left
kind: action
command: "Y 0 24 CR"
params: []
- id: btn_enter
label: Button: Enter
kind: action
command: "Y 0 25 CR"
params: []
- id: btn_right
label: Button: Right
kind: action
command: "Y 0 26 CR"
params: []
- id: btn_down
label: Button: Down
kind: action
command: "Y 0 27 CR"
params: []
- id: btn_auto_gain
label: Button: Auto Gain
kind: action
command: "Y 0 28 CR"
params: []
- id: btn_pip
label: Button: PIP
kind: action
command: "Y 0 29 CR"
params: []
- id: btn_swap
label: Button: Swap
kind: action
command: "Y 0 30 CR"
params: []
- id: btn_contrast
label: Button: Contrast
kind: action
command: "Y 0 31 CR"
params: []
- id: btn_brightness
label: Button: Brightness
kind: action
command: "Y 0 32 CR"
params: []
- id: btn_zoom_in
label: Button: Zoom In
kind: action
command: "Y 0 33 CR"
params: []
- id: btn_zoom_out
label: Button: Zoom Out
kind: action
command: "Y 0 34 CR"
params: []
- id: btn_volume_down
label: Button: Volume Down
kind: action
command: "Y 0 35 CR"
params: []
- id: btn_mute
label: Button: Mute
kind: action
command: "Y 0 36 CR"
params: []
- id: btn_volume_up
label: Button: Volume Up
kind: action
command: "Y 0 37 CR"
params: []
- id: btn_color_mode
label: Button: Color Mode
kind: action
command: "Y 0 38 CR"
params: []
- id: btn_aspect_ratio
label: Button: Aspect Ratio
kind: action
command: "Y 0 39 CR"
params: []
# ---------- Control_Type 1 (Set) / 2 (Get): Gamma and Color ----------
- id: set_user1_gamma
label: Set User1 Gamma
kind: action
command: "Y 1 0 {value} CR"
params:
- name: value
type: integer
range: "-10..10"
- id: get_user1_gamma
label: Get User1 Gamma
kind: query
command: "Y 2 0 CR"
params: []
- id: set_user1_color_temp_red
label: Set User1 Color Temp Red
kind: action
command: "Y 1 1 {value} CR"
params:
- name: value
type: integer
range: 0..127
- id: set_user1_color_temp_green
label: Set User1 Color Temp Green
kind: action
command: "Y 1 2 {value} CR"
params:
- name: value
type: integer
range: 0..127
- id: get_user1_color_temp_green
label: Get User1 Color Temp Green
kind: query
command: "Y 2 2 CR"
params: []
- id: set_user1_color_temp_blue
label: Set User1 Color Temp Blue
kind: action
command: "Y 1 3 {value} CR"
params:
- name: value
type: integer
range: 0..127
- id: get_user1_color_temp_blue
label: Get User1 Color Temp Blue
kind: query
command: "Y 2 3 CR"
params: []
- id: set_user1_color_manager_red
label: Set User1 Color Manager Red
kind: action
command: "Y 1 4 {value} CR"
params:
- name: value
type: integer
range: 0..32
- id: get_user1_color_manager_red
label: Get User1 Color Manager Red
kind: query
command: "Y 2 4 CR"
params: []
- id: set_user1_color_manager_green
label: Set User1 Color Manager Green
kind: action
command: "Y 1 5 {value} CR"
params:
- name: value
type: integer
range: 0..32
- id: get_user1_color_manager_green
label: Get User1 Color Manager Green
kind: query
command: "Y 2 5 CR"
params: []
- id: set_user1_color_manager_blue
label: Set User1 Color Manager Blue
kind: action
command: "Y 1 6 {value} CR"
params:
- name: value
type: integer
range: 0..32
- id: get_user1_color_manager_blue
label: Get User1 Color Manager Blue
kind: query
command: "Y 2 6 CR"
params: []
- id: set_user1_color_manager_yellow
label: Set User1 Color Manager Yellow
kind: action
command: "Y 1 7 {value} CR"
params:
- name: value
type: integer
range: 0..32
- id: get_user1_color_manager_yellow
label: Get User1 Color Manager Yellow
kind: query
command: "Y 2 7 CR"
params: []
- id: set_user2_gamma
label: Set User2 Gamma
kind: action
command: "Y 1 8 {value} CR"
params:
- name: value
type: integer
range: "-10..10"
- id: get_user2_gamma
label: Get User2 Gamma
kind: query
command: "Y 2 8 CR"
params: []
- id: set_user2_color_temp_red
label: Set User2 Color Temp Red
kind: action
command: "Y 1 9 {value} CR"
params:
- name: value
type: integer
range: 0..127
- id: get_user2_color_temp_red
label: Get User2 Color Temp Red
kind: query
command: "Y 2 9 CR"
params: []
- id: set_user2_color_temp_green
label: Set User2 Color Temp Green
kind: action
command: "Y 1 10 {value} CR"
params:
- name: value
type: integer
range: 0..127
- id: get_user2_color_temp_green
label: Get User2 Color Temp Green
kind: query
command: "Y 2 10 CR"
params: []
- id: set_user2_color_temp_blue
label: Set User2 Color Temp Blue
kind: action
command: "Y 1 11 {value} CR"
params:
- name: value
type: integer
range: 0..127
- id: get_user2_color_temp_blue
label: Get User2 Color Temp Blue
kind: query
command: "Y 2 11 CR"
params: []
- id: set_user2_color_manager_red
label: Set User2 Color Manager Red
kind: action
command: "Y 1 12 {value} CR"
params:
- name: value
type: integer
range: 0..32
- id: set_user2_color_manager_green
label: Set User2 Color Manager Green
kind: action
command: "Y 1 13 {value} CR"
params:
- name: value
type: integer
range: 0..32
- id: get_user2_color_manager_green
label: Get User2 Color Manager Green
kind: query
command: "Y 2 13 CR"
params: []
- id: set_user2_color_manager_blue
label: Set User2 Color Manager Blue
kind: action
command: "Y 1 14 {value} CR"
params:
- name: value
type: integer
range: 0..32
- id: get_user2_color_manager_blue
label: Get User2 Color Manager Blue
kind: query
command: "Y 2 14 CR"
params: []
- id: set_user2_color_manager_yellow
label: Set User2 Color Manager Yellow
kind: action
command: "Y 1 15 {value} CR"
params:
- name: value
type: integer
range: 0..32
- id: get_user2_color_manager_yellow
label: Get User2 Color Manager Yellow
kind: query
command: "Y 2 15 CR"
params: []
- id: set_brightness
label: Set Brightness
kind: action
command: "Y 1 16 {value} CR"
params:
- name: value
type: integer
range: 0..127
- id: get_brightness
label: Get Brightness
kind: query
command: "Y 2 16 CR"
params: []
- id: set_contrast
label: Set Contrast
kind: action
command: "Y 1 17 {value} CR"
params:
- name: value
type: integer
range: 0..127
- id: get_contrast
label: Get Contrast
kind: query
command: "Y 2 17 CR"
params: []
- id: set_aspect_h_zoom
label: Set Aspect: User Define H-Zoom
kind: action
command: "Y 1 18 {value} CR"
params:
- name: value
type: integer
range: "-32..32"
- id: get_aspect_h_zoom
label: Get Aspect: User Define H-Zoom
kind: query
command: "Y 2 18 CR"
params: []
- id: set_aspect_v_zoom
label: Set Aspect: User Define V-Zoom
kind: action
command: "Y 1 19 {value} CR"
params:
- name: value
type: integer
range: "-32..32"
- id: get_aspect_v_zoom
label: Get Aspect: User Define V-Zoom
kind: query
command: "Y 2 19 CR"
params: []
- id: set_aspect_h_pan
label: Set Aspect: User Define H-Pan
kind: action
command: "Y 1 20 {value} CR"
params:
- name: value
type: integer
range: "-32..32"
- id: get_aspect_h_pan
label: Get Aspect: User Define H-Pan
kind: query
command: "Y 2 20 CR"
params: []
- id: set_aspect_v_pan
label: Set Aspect: User Define V-Pan
kind: action
command: "Y 1 21 {value} CR"
params:
- name: value
type: integer
range: "-32..32"
- id: get_aspect_v_pan
label: Get Aspect: User Define V-Pan
kind: query
command: "Y 2 21 CR"
params: []
- id: set_graphics_h_position
label: Set Graphics: H-Position
kind: action
command: "Y 1 22 {value} CR"
params:
- name: value
type: integer
range: 0..255
- id: get_graphics_h_position
label: Get Graphics: H-Position
kind: query
command: "Y 2 22 CR"
params: []
- id: set_graphics_v_position
label: Set Graphics: V-Position
kind: action
command: "Y 1 23 {value} CR"
params:
- name: value
type: integer
range: 0..255
- id: get_graphics_v_position
label: Get Graphics: V-Position
kind: query
command: "Y 2 23 CR"
params: []
- id: set_graphics_color
label: Set Graphics: Color
kind: action
command: "Y 1 24 {value} CR"
params:
- name: value
type: integer
range: 0..127
- id: get_graphics_color
label: Get Graphics: Color
kind: query
command: "Y 2 24 CR"
params: []
- id: set_graphics_hue
label: Set Graphics: Hue
kind: action
command: "Y 1 25 {value} CR"
params:
- name: value
type: integer
range: 0..127
- id: get_graphics_hue
label: Get Graphics: Hue
kind: query
command: "Y 2 25 CR"
params: []
- id: set_graphics_sharpness
label: Set Graphics: Sharpness
kind: action
command: "Y 1 26 {value} CR"
params:
- name: value
type: integer
range: 0..16
- id: get_graphics_sharpness
label: Get Graphics: Sharpness
kind: query
command: "Y 2 26 CR"
params: []
- id: set_graphics_frequency
label: Set Graphics: Frequency
kind: action
command: "Y 1 27 {value} CR"
params:
- name: value
type: integer
range: 0..100
- id: get_graphics_frequency
label: Get Graphics: Frequency
kind: query
command: "Y 2 27 CR"
params: []
- id: set_graphics_phase
label: Set Graphics: Phase
kind: action
command: "Y 1 28 {value} CR"
params:
- name: value
type: integer
range: 0..31
- id: get_graphics_phase
label: Get Graphics: Phase
kind: query
command: "Y 2 28 CR"
params: []
- id: set_video_color
label: Set Video: Color
kind: action
command: "Y 1 29 {value} CR"
params:
- name: value
type: integer
range: 0..127
- id: get_video_color
label: Get Video: Color
kind: query
command: "Y 2 29 CR"
params: []
- id: set_video_hue
label: Set Video: Hue
kind: action
command: "Y 1 30 {value} CR"
params:
- name: value
type: integer
range: 0..127
- id: get_video_hue
label: Get Video: Hue
kind: query
command: "Y 2 30 CR"
params: []
- id: set_video_sharpness
label: Set Video: Sharpness
kind: action
command: "Y 1 31 {value} CR"
params:
- name: value
type: integer
range: 0..16
- id: get_video_sharpness
label: Get Video: Sharpness
kind: query
command: "Y 2 31 CR"
params: []
- id: set_video_h_position
label: Set Video: H-Position
kind: action
command: "Y 1 32 {value} CR"
params:
- name: value
type: integer
range: 0..20
- id: get_video_h_position
label: Get Video: H-Position
kind: query
command: "Y 2 32 CR"
params: []
- id: set_video_v_position
label: Set Video: V-Position
kind: action
command: "Y 1 33 {value} CR"
params:
- name: value
type: integer
range: 0..20 # source: 0..20 for NTSC/NTSC 4.43/PAL-M/PAL 60, 0..39 for PAL/PAL-N/SECAM/NTSC 4.43 50
- id: get_video_v_position
label: Get Video: V-Position
kind: query
command: "Y 2 33 CR"
params: []
- id: set_audio_volume
label: Set Audio: Volume
kind: action
command: "Y 1 34 {value} CR"
params:
- name: value
type: integer
range: 0..32
- id: get_audio_volume
label: Get Audio: Volume
kind: query
command: "Y 2 34 CR"
params: []
- id: set_audio_treble
label: Set Audio: Treble
kind: action
command: "Y 1 35 {value} CR"
params:
- name: value
type: integer
range: 0..12
- id: get_audio_treble
label: Get Audio: Treble
kind: query
command: "Y 2 35 CR"
params: []
- id: set_audio_bass
label: Set Audio: Bass
kind: action
command: "Y 1 36 {value} CR"
params:
- name: value
type: integer
range: 0..12
- id: get_audio_bass
label: Get Audio: Bass
kind: query
command: "Y 2 36 CR"
params: []
- id: set_pip_h_position
label: Set PIP: H-Position
kind: action
command: "Y 1 37 {value} CR"
params:
- name: value
type: integer
range: 0..36
- id: get_pip_h_position
label: Get PIP: H-Position
kind: query
command: "Y 2 37 CR"
params: []
- id: set_pip_v_position
label: Set PIP: V-Position
kind: action
command: "Y 1 38 {value} CR"
params:
- name: value
type: integer
range: 0..36
- id: get_pip_v_position
label: Get PIP: V-Position
kind: query
command: "Y 2 38 CR"
params: []
- id: set_pip_user_v_size
label: Set PIP: User Define V-Size
kind: action
command: "Y 1 39 {value} CR"
params:
- name: value
type: integer
range: 0..255
- id: get_pip_user_v_size
label: Get PIP: User Define V-Size
kind: query
command: "Y 2 39 CR"
params: []
- id: set_pip_user_h_size
label: Set PIP: User Define H-Size
kind: action
command: "Y 1 40 {value} CR"
params:
- name: value
type: integer
range: 0..255
- id: get_pip_user_h_size
label: Get PIP: User Define H-Size
kind: query
command: "Y 2 40 CR"
params: []
- id: set_osd_h_position
label: Set OSD: H-Position
kind: action
command: "Y 1 41 {value} CR"
params:
- name: value
type: integer
range: 0..36
- id: get_osd_h_position
label: Get OSD: H-Position
kind: query
command: "Y 2 41 CR"
params: []
- id: set_osd_v_position
label: Set OSD: V-Position
kind: action
command: "Y 1 42 {value} CR"
params:
- name: value
type: integer
range: 0..36
- id: get_osd_v_position
label: Get OSD: V-Position
kind: query
command: "Y 2 42 CR"
params: []
- id: set_osd_timeout
label: Set OSD: Time Out
kind: action
command: "Y 1 43 {value} CR"
params:
- name: value
type: integer
range: 3..60
- id: get_osd_timeout
label: Get OSD: Time Out
kind: query
command: "Y 2 43 CR"
params: []
- id: set_ht_h_sync_cycle
label: Set HT: H-Sync Cycle
kind: action
command: "Y 1 44 {value} CR"
params:
- name: value
type: integer
range: "> 100 # UNRESOLVED: source says > 100, no upper bound stated"
notes: "Setting command should be a reasonable value. Getting command returns current group parameter (refer to Y 3 29 X or Y 4 29)."
- id: get_ht_h_sync_cycle
label: Get HT: H-Sync Cycle
kind: query
command: "Y 2 44 CR"
params: []
- id: set_hw_h_sync_width
label: Set HW: H-Sync Width
kind: action
command: "Y 1 45 {value} CR"
params:
- name: value
type: integer
range: "> 0 # UNRESOLVED: source says > 0, no upper bound stated"
- id: get_hw_h_sync_width
label: Get HW: H-Sync Width
kind: query
command: "Y 2 45 CR"
params: []
- id: set_hs_active_pixel_start
label: Set HS: Active Pixel Start
kind: action
command: "Y 1 46 {value} CR"
params:
- name: value
type: integer
range: "> 0 # UNRESOLVED: source says > 0, no upper bound stated"
- id: get_hs_active_pixel_start
label: Get HS: Active Pixel Start
kind: query
command: "Y 2 46 CR"
params: []
- id: set_ha_active_pixel
label: Set HA: Active Pixel
kind: action
command: "Y 1 47 {value} CR"
params:
- name: value
type: integer
range: "-" # UNRESOLVED: source dash, no range
- id: get_ha_active_pixel
label: Get HA: Active Pixel
kind: query
command: "Y 2 47 CR"
params: []
- id: set_hp_h_sync_polarity
label: Set HP: H-Sync Polarity
kind: action
command: "Y 1 48 {value} CR"
params:
- name: value
type: integer
range: 0..1
values: {0: positive, 1: negative}
- id: get_hp_h_sync_polarity
label: Get HP: H-Sync Polarity
kind: query
command: "Y 2 48 CR"
params: []
- id: set_vt_v_sync_cycle
label: Set VT: V-Sync Cycle
kind: action
command: "Y 1 49 {value} CR"
params:
- name: value
type: integer
range: "> 0 # UNRESOLVED: no upper bound stated"
- id: get_vt_v_sync_cycle
label: Get VT: V-Sync Cycle
kind: query
command: "Y 2 49 CR"
params: []
- id: set_vw_v_sync_width
label: Set VW: V-Sync Width
kind: action
command: "Y 1 50 {value} CR"
params:
- name: value
type: integer
range: "> 0 # UNRESOLVED: no upper bound stated"
- id: get_vw_v_sync_width
label: Get VW: V-Sync Width
kind: query
command: "Y 2 50 CR"
params: []
- id: set_vs_active_line_start
label: Set VS: Active Line Start
kind: action
command: "Y 1 51 {value} CR"
params:
- name: value
type: integer
range: "> 0 # UNRESOLVED: no upper bound stated"
- id: get_vs_active_line_start
label: Get VS: Active Line Start
kind: query
command: "Y 2 51 CR"
params: []
- id: set_va_active_line
label: Set VA: Active Line
kind: action
command: "Y 1 52 {value} CR"
params:
- name: value
type: integer
range: "-" # UNRESOLVED: source dash, no range
- id: get_va_active_line
label: Get VA: Active Line
kind: query
command: "Y 2 52 CR"
params: []
- id: set_vp_v_sync_polarity
label: Set VP: V-Sync Polarity
kind: action
command: "Y 1 53 {value} CR"
params:
- name: value
type: integer
range: 0..1
values: {0: positive, 1: negative}
- id: get_vp_v_sync_polarity
label: Get VP: V-Sync Polarity
kind: query
command: "Y 2 53 CR"
params: []
- id: set_oclk
label: Set OCLK
kind: action
command: "Y 1 54 {value} CR"
params:
- name: value
type: integer
range: "> 100 # UNRESOLVED: no upper bound stated"
notes: "Oclk = Param / 10 Mhz. Should be a reasonable value."
# ---------- Control_Type 3 (Set) / 4 (Get): high-level settings ----------
- id: set_input_source
label: Set Input Source
kind: action
command: "Y 3 0 {value} CR"
params:
- name: value
type: integer
range: 0..9
values:
{0: VGA-1, 1: "VGA-2 (VP-724 only)", 2: DVI, 3: Component, 4: "YC-1", 5: "AV-1", 6: "YV-2", 7: "AV-2", 8: Scart, 9: TV}
- id: get_input_source
label: Get Input Source
kind: query
command: "Y 4 0 CR"
params: []
- id: set_video_aspect_ratio
label: Set Video Aspect Ratio
kind: action
command: "Y 3 1 {value} CR"
params:
- name: value
type: integer
range: 0..5
values: {0: Normal, 1: Wide Screen, 2: "Pan&Scan", 3: "4:3", 4: "16:9", 5: UserDefine}
- id: get_video_aspect_ratio
label: Get Video Aspect Ratio
kind: query
command: "Y 4 1 CR"
params: []
- id: set_video_nonlinear
label: Set Video Nonlinear
kind: action
command: "Y 3 2 {value} CR"
params:
- name: value
type: integer
range: 0..2
values: {0: Off, 1: Side, 2: Middle}
- id: get_video_nonlinear
label: Get Video Nonlinear
kind: query
command: "Y 4 2 CR"
params: []
- id: set_vga_aspect_ratio
label: Set VGA Aspect Ratio
kind: action
command: "Y 3 3 {value} CR"
params:
- name: value
type: integer
range: 0..5
values: {0: Full Screen, 1: Native, 2: NonLinear, 3: "4:3", 4: "16:9", 5: UserDefine}
- id: get_vga_aspect_ratio
label: Get VGA Aspect Ratio
kind: query
command: "Y 4 3 CR"
params: []
- id: set_zoom_ratio
label: Set Zoom Ratio
kind: action
command: "Y 3 4 {value} CR"
params:
- name: value
type: integer
range: 0..10
values: {0: Off, 1: "150%", 2: "200%", 3: "225%", 4: "250%", 5: "275%", 6: "300%", 7: "325%", 8: "350%", 9: "375%", 10: "400%"}
- id: get_zoom_ratio
label: Get Zoom Ratio
kind: query
command: "Y 4 4 CR"
params: []
- id: set_graphics_color_format
label: Set Graphics Color Format
kind: action
command: "Y 3 5 {value} CR"
params:
- name: value
type: integer
range: 0..2
values: {0: Default, 1: RGB, 2: YUV}
- id: get_graphics_color_format
label: Get Graphics Color Format
kind: query
command: "Y 4 5 CR"
params: []
- id: set_video_color_format
label: Set Video Color Format
kind: action
command: "Y 3 6 {value} CR"
params:
- name: value
type: integer
range: 0..2
values: {0: Default, 1: RGB, 2: YUV}
notes: "Set only - no Get row in source."
- id: set_video_standard
label: Set Video Standard
kind: action
command: "Y 3 7 {value} CR"
params:
- name: value
type: integer
range: 0..6
values: {0: Auto, 1: NTSC, 2: "NTSC 4.43", 3: PAL, 4: "PAL-N", 5: "PAL-M", 6: SECAM}
- id: get_video_standard
label: Get Video Standard
kind: query
command: "Y 4 7 CR"
params: []
- id: set_film_mode
label: Set Film Mode
kind: action
command: "Y 3 8 {value} CR"
params:
- name: value
type: integer
range: 0..1
values: {0: Off, 1: On}
- id: get_film_mode
label: Get Film Mode
kind: query
command: "Y 4 8 CR"
params: []
- id: set_audio_stereo
label: Set Audio Stereo
kind: action
command: "Y 3 9 {value} CR"
params:
- name: value
type: integer
range: 0..1
values: {0: Off, 1: On}
- id: get_audio_stereo
label: Get Audio Stereo
kind: query
command: "Y 4 9 CR"
params: []
- id: set_pip_on_off
label: Set PIP On/Off
kind: action
command: "Y 3 10 {value} CR"
params:
- name: value
type: integer
range: 0..1
values: {0: Off, 1: On}
- id: get_pip_on_off
label: Get PIP On/Off
kind: query
command: "Y 4 10 CR"
params: []
- id: set_pip_source
label: Set PIP Source
kind: action
command: "Y 3 11 {value} CR"
params:
- name: value
type: integer
range: 0..9
values: {0: VGA-1, 1: "VGA-2 (VP-724 Only)", 2: DVI, 3: Component, 4: "YC-1", 5: "AV-1", 6: "YV-2", 7: "AV-2", 8: SCART, 9: TV}
- id: get_pip_source
label: Get PIP Source
kind: query
command: "Y 4 11 CR"
params: []
- id: set_pip_size
label: Set PIP Size
kind: action
command: "Y 3 12 {value} CR"
params:
- name: value
type: integer
range: 0..5
values: {0: "1/25", 1: "1/16", 2: "1/9", 3: "1/4", 4: Split, 5: User Define}
- id: get_pip_size
label: Get PIP Size
kind: query
command: "Y 4 12 CR"
params: []
- id: set_pip_frame
label: Set PIP Frame
kind: action
command: "Y 3 13 {value} CR"
params:
- name: value
type: integer
range: 0..1
values: {0: Off, 1: On}
- id: get_pip_frame
label: Get PIP Frame
kind: query
command: "Y 4 13 CR"
params: []
- id: set_seamless_mode
label: Set Seamless Switch: Mode
kind: action
command: "Y 3 14 {value} CR"
params:
- name: value
type: integer
range: 0..2
values: {0: Fast, 1: Moderate, 2: Safe}
- id: get_seamless_mode
label: Get Seamless Switch: Mode
kind: query
command: "Y 4 14 CR"
params: []
- id: set_seamless_background
label: Set Seamless Switch: Background
kind: action
command: "Y 3 15 {value} CR"
params:
- name: value
type: integer
range: 0..2
values: {0: Black, 1: Blue, 2: Disable Analog Syncs}
- id: get_seamless_background
label: Get Seamless Switch: Background
kind: query
command: "Y 4 15 CR"
params: []
- id: set_seamless_auto_search
label: Set Seamless Switch: Auto Search
kind: action
command: "Y 3 16 {value} CR"
params:
- name: value
type: integer
range: 0..1
values: {0: Off, 1: On}
- id: get_seamless_auto_search
label: Get Seamless Switch: Auto Search
kind: query
command: "Y 4 16 CR"
params: []
- id: set_osd_startup_logo
label: Set OSD: Startup Logo
kind: action
command: "Y 3 17 {value} CR"
params:
- name: value
type: integer
range: 0..1
values: {0: Off, 1: On}
- id: get_osd_startup_logo
label: Get OSD: Startup Logo
kind: query
command: "Y 4 17 CR"
params: []
- id: set_osd_size
label: Set OSD: Size
kind: action
command: "Y 3 18 {value} CR"
params:
- name: value
type: integer
range: 0..1
values: {0: Normal, 1: Double}
- id: get_osd_size
label: Get OSD: Size
kind: query
command: "Y 4 18 CR"
params: []
- id: set_osd_source_prompt
label: Set OSD: Source Prompt
kind: action
command: "Y 3 19 {value} CR"
params:
- name: value
type: integer
range: 0..1
values: {0: Off, 1: On}
- id: get_osd_source_prompt
label: Get OSD: Source Prompt
kind: query
command: "Y 4 19 CR"
params: []
- id: set_osd_blank_color
label: Set OSD: Blank Color
kind: action
command: "Y 3 20 {value} CR"
params:
- name: value
type: integer
range: 0..1
values: {0: Blue, 1: Black}
- id: get_osd_blank_color
label: Get OSD: Blank Color
kind: query
command: "Y 4 20 CR"
params: []
- id: set_output_resolution
label: Set Output Resolution
kind: action
command: "Y 3 21 {value} CR"
params:
- name: value
type: integer
range: 0..19
values:
{0: "640x480", 1: "800x600", 2: "1024x768", 3: "1280x1024", 4: "1600x1200", 5: "852x1024i", 6: "1024x1024i", 7: "1366x768", 8: "1365x1024", 9: "1280x720", 10: "720x483", 11: "852x480", 12: "1400x1050", 13: "480P", 14: "720P", 15: "1080i", 16: "576P", 17: "1080P", 18: "1280x768", 19: "User Define"}
notes: "HDTV output is VP-723/724 only. 1080P only on KI238 + 80P DAC Board."
- id: get_output_resolution
label: Get Output Resolution
kind: query
command: "Y 4 21 CR"
params: []
- id: set_output_refresh_rate
label: Set Output Refresh Rate
kind: action
command: "Y 3 22 {value} CR"
params:
- name: value
type: integer
range: 0..3
values: {0: "60Hz", 1: "75Hz", 2: "85Hz", 3: "50Hz"}
- id: get_output_refresh_rate
label: Get Output Refresh Rate
kind: query
command: "Y 4 22 CR"
params: []
- id: set_factory_reset
label: Set Factory Reset
kind: action
command: "Y 3 23 {value} CR"
params:
- name: value
type: integer
range: 0..1
values: {0: Cancel, 1: ok}
- id: get_factory_reset
label: Get Factory Reset
kind: query
command: "Y 4 23 CR"
params: []
- id: set_advanced_input_button
label: Set Advanced: Input Button
kind: action
command: "Y 3 24 {value} CR"
params:
- name: value
type: integer
range: 0..3
values: {0: "Freeze/Blank", 1: Freeze, 2: Blank, 3: Ignore}
- id: get_advanced_input_button
label: Get Advanced: Input Button
kind: query
command: "Y 4 24 CR"
params: []
- id: set_key_lock_save
label: Set Key Lock Save
kind: action
command: "Y 3 25 {value} CR"
params:
- name: value
type: integer
range: 0..1
- id: get_key_lock_save
label: Get Key Lock Save
kind: query
command: "Y 4 25 CR"
params: []
- id: set_input_lock
label: Set Input Lock
kind: action
command: "Y 3 26 {value} CR"
params:
- name: value
type: integer
range: 0..1
- id: get_input_lock
label: Get Input Lock
kind: query
command: "Y 4 26 CR"
params: []
- id: set_sog_setting
label: Set SOG Setting
kind: action
command: "Y 3 27 {value} CR"
params:
- name: value
type: integer
range: 0..2
values: {0: Auto, 1: RGsB, 2: DTV}
notes: "KI239 firmware only."
- id: get_sog_setting
label: Get SOG Setting
kind: query
command: "Y 4 27 CR"
params: []
- id: set_osd_timeout_enable
label: Set Enable OSD Timeout
kind: action
command: "Y 3 28 {value} CR"
params:
- name: value
type: integer
range: 0..1
values: {0: Disable, 1: Enable}
- id: get_osd_timeout_enable
label: Get Enable OSD Timeout
kind: query
command: "Y 4 28 CR"
params: []
- id: set_userdefined_param_group
label: Set Select Output Mode Userdefined Parameter Group
kind: action
command: "Y 3 29 {value} CR"
params:
- name: value
type: integer
range: 0..2
values: {0: "Group 1", 1: "Group 2", 2: "Group 3"}
- id: get_userdefined_param_group
label: Get Select Output Mode Userdefined Parameter Group
kind: query
command: "Y 4 29 CR"
params: []
- id: set_audio_save_mode
label: Set Audio Save Mode (Volume/Treble/Bass)
kind: action
command: "Y 3 30 {value} CR"
params:
- name: value
type: integer
range: 0..2
values: {0: Master, 1: Individual, 2: Linked}
- id: get_audio_save_mode
label: Get Audio Save Mode
kind: query
command: "Y 4 30 CR"
params: []
# ---------- Control_Type 5: Load Gamma/Color presets ----------
- id: load_gamma_normal
label: Load Gamma/Color - Normal
kind: action
command: "Y 5 0 CR"
params: []
- id: load_gamma_presentation
label: Load Gamma/Color - Presentation
kind: action
command: "Y 5 1 CR"
params: []
- id: load_gamma_cinema
label: Load Gamma/Color - Cinema
kind: action
command: "Y 5 2 CR"
params: []
- id: load_gamma_nature
label: Load Gamma/Color - Nature
kind: action
command: "Y 5 3 CR"
params: []
- id: load_gamma_user1
label: Load Gamma/Color - User1
kind: action
command: "Y 5 4 CR"
params: []
- id: load_gamma_user2
label: Load Gamma/Color - User2
kind: action
command: "Y 5 5 CR"
params: []
# ---------- Control_Type 6 (Set) / 7 (Get): power/freeze/blank/mute/keylock ----------
- id: set_power
label: Set Power
kind: action
command: "Y 6 0 {value} CR"
params:
- name: value
type: integer
range: 0..1
values: {0: Power Down, 1: Power On}
- id: get_power
label: Get Power
kind: query
command: "Y 7 0 CR"
params: []
- id: set_freeze
label: Set Freeze
kind: action
command: "Y 6 1 {value} CR"
params:
- name: value
type: integer
range: 0..1
values: {0: Off, 1: On}
- id: get_freeze
label: Get Freeze
kind: query
command: "Y 7 1 CR"
params: []
- id: set_blank
label: Set Blank
kind: action
command: "Y 6 2 {value} CR"
params:
- name: value
type: integer
range: 0..1
values: {0: Off, 1: On}
- id: get_blank
label: Get Blank
kind: query
command: "Y 7 2 CR"
params: []
- id: set_mute
label: Set Mute
kind: action
command: "Y 6 3 {value} CR"
params:
- name: value
type: integer
range: 0..1
values: {0: Off, 1: On}
- id: get_mute
label: Get Mute
kind: query
command: "Y 7 3 CR"
params: []
- id: set_key_lock
label: Set Key Lock
kind: action
command: "Y 6 4 {value} CR"
params:
- name: value
type: integer
range: 0..1
values: {0: Off, 1: On}
- id: get_key_lock
label: Get Key Lock
kind: query
command: "Y 7 4 CR"
params: []
# ---------- Control_Type 8: query resolution/refresh rate or video standard ----------
- id: query_resolution_or_video_standard
label: Query Resolution/Refresh Rate or Video Standard
kind: query
command: "Y 8 0 CR"
notes: "Example reply: 'Z 8 0 1080i CR'."
Feedbacks
# Tier 1 replies documented in source (template):
# "Z Control_Type Function [Param] CR"
# "Done CR"
#
# Tier 3: numeric value interpretation (e.g. "2" = 1024x768) is encoded
# inside the corresponding action's `values:` map, not duplicated here.
- id: protocol_ack
label: Protocol Acknowledgement
type: enum
values: [done]
description: "Device replies with the string 'Done' followed by CR after a successful Set command."
- id: protocol_echo
label: Protocol Echo
type: string
description: "Device replies with 'Z <Control_Type> <Function> [<Param>]' + CR. Param is the current value for Get commands, or echoes the Set value."
Variables
# Tier 3: source does not describe persistent, named variables independent of
# the command/response scheme. All settable state is reachable through the
# Actions block above. No additional Variables section is needed.
Events
# UNRESOLVED: source does not describe unsolicited device-to-host events.
Macros
# UNRESOLVED: source does not describe any multi-step macro sequences.
Safety
confirmation_required_for:
- factory_reset # source: "0:Cancel, 1:ok" implies user must explicitly set value 1
interlocks: []
# UNRESOLVED: source contains no further safety warnings, interlocks, or
# power-on sequencing requirements.
Notes
- Protocol is single-direction ASCII over RS-232. No handshake/login.
- Field separator is ASCII 0x20 (space). Line terminator is CR (0x0D or 0x0A).
- Source mentions a second baud rate "1152000 bps" alongside 9600 — this is likely a typo for 115200, but it is reproduced verbatim above. UNRESOLVED.
- Source file title says "VP720XL/724XL Protocol Series" — this is a Kramer video scaler line, NOT the "KDS 7 MNGR" entity ID requested. The spec was authored from the source as-found; operator must reconcile.
- History table in source references firmware codes KB2.33, KI2.38, KI2.39, KI2.42, KI2.49 — no clean public version range. UNRESOLVED.
Spec written. Critical flag: source doc is for **VP-720XL/724XL** (Kramer scalers), not **KDS 7 MNGR** (AVoIP manager). Title + spec_id reflect the source as authored. `compatible_with.models` and `<!-- UNRESOLVED -->` block in Summary both surface the mismatch — operator must reconcile entity binding before ingesting. All command rows in the source command table are enumerated as separate actions (38 button rows, 54 set/get param rows for Control_Type 1/2, 31 set/get rows for Control_Type 3/4, 6 preset loads, 5 power/freeze/blank/mute/keylock pairs, 1 Control_Type 8 query). Parity + flow control + 115200 baud are unresolved per Tier 3 policy.
## Provenance
```yaml
source_domains:
- cdn.kramerav.com
source_urls:
- https://cdn.kramerav.com/web/downloads/protocols/vp-719xl_720xl_vp-724xl_protocol.pdf
retrieved_at: 2026-05-15T05:53:55.561Z
last_checked_at: 2026-06-02T17:22:47.288Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T17:22:47.288Z
matched_actions: 225
action_count: 225
confidence: medium
summary: "All 225 spec actions matched literally in source command table; transport parameters (9600 baud, 8 data bits, 1 stop bit, RS-232) verified; 100% coverage. (13 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "source document is labeled VP720XL/724XL/DS series, NOT \"KDS 7 MNGR\". Entity ID requested is for KDS 7 MNGR, which is a different Kramer product family (AVoIP manager). Operator should reconcile this mismatch before publishing."
- "parity is not stated in source."
- "flow control is not stated in source."
- "not stated in source; RS-232 default assumption noted in inference"
- "not stated in source"
- "source says > 100, no upper bound stated\""
- "source says > 0, no upper bound stated\""
- "source dash, no range"
- "no upper bound stated\""
- "source does not describe unsolicited device-to-host events."
- "source does not describe any multi-step macro sequences."
- "source contains no further safety warnings, interlocks, or"
- "source describes \"Y 3 29 X\" and \"Y 4 29\" cross-references for HT/HW group parameter storage; the meaning of the trailing \"X\" placeholder is not fully clarified in source."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0