Summary

Casio XJ-H2650 data projector with RS-232C serial control. Commands use ASCII characters and decimal format integers. Read queries return setting range and current value; write commands set values. Requires YK-5 serial conversion cable and straight serial cable.

Transport

protocols:
  - serial
serial:
  baud_rate: 19200
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none
auth:
  type: none  # inferred: no auth procedure in source

Traits

traits:
  - powerable    # PWR command controls on/off
  - routable     # SRC command switches input sources
  - queryable    # read commands return current settings
  - levelable    # VOL command adjusts volume

Actions

actions:
  - id: power_on
    label: Power On
    kind: action
    command: "(PWR1)"
    params: []

  - id: power_off
    label: Power Off
    kind: action
    command: "(PWR0)"
    params: []

  - id: select_input
    label: Select Input Source
    kind: action
    command: "(SRC{value})"
    params:
      - name: value
        type: integer
        enum: [0, 1, 2, 5, 6, 7, 8]
        description: "0: RGB, 1: Component, 2: Video, 5: USB, 6: Auto, 7: HDMI, 8: Wireless"

  - id: blank_screen_on
    label: Blank Screen On
    kind: action
    command: "(BLK1)"
    params: []

  - id: blank_screen_off
    label: Blank Screen Off
    kind: action
    command: "(BLK0)"
    params: []

  - id: set_volume
    label: Set Volume
    kind: action
    command: "(VOL{value})"
    params:
      - name: value
        type: integer
        min: 0
        max: 50
        description: "Volume level (0-50, or 0-30 depending on model)"

  - id: set_color_mode
    label: Set Color Mode
    kind: action
    command: "(PST{value})"
    params:
      - name: value
        type: integer
        enum: [0, 1, 2, 3, 4, 5]
        description: "0: Presentation, 1: Graphics, 2: Theater, 3: Standard, 4: Blackboard, 5: Game"

  - id: set_aspect_ratio
    label: Set Aspect Ratio
    kind: action
    command: "(ARZ{value})"
    params:
      - name: value
        type: integer
        enum: [0, 1, 2, 3, 4, 5, 6]
        description: "0: Normal (RGB/HDMI PC), 1: 16:9, 2: Normal (Video/Component/HDMI DTV), 3: Letter Box, 4: Full, 5: True, 6: 4:3"

  - id: optical_zoom_shift
    label: Optical Zoom Shift
    kind: action
    command: "(OZM{value})"
    params:
      - name: value
        type: integer
        enum: [0, 1, 2]
        description: "0: No change, 1: Wide, 2: Tele"

  - id: optical_focus_shift
    label: Optical Focus Shift
    kind: action
    command: "(OFC{value})"
    params:
      - name: value
        type: integer
        enum: [0, 1, 2]
        description: "0: No change, 1: Near, 2: Far"

  - id: reset_lamp_time
    label: Reset Lamp Time
    kind: action
    command: "(LRT1)"
    params: []
    notes: "Only when lamp time exceeds 2100 hours and projector power is off"

Feedbacks

feedbacks:
  - id: power_state
    label: Power State
    query: "(PWR?)"
    response_format: "(0-1,{value})"
    type: enum
    values: ["0", "1"]
    description: "0: Off, 1: On"

  - id: input_source
    label: Input Source
    query: "(SRC?)"
    response_format: "({range},{value})"
    type: enum
    values: ["0", "1", "2", "5", "6", "7", "8"]
    description: "Current input source"

  - id: blank_screen_state
    label: Blank Screen State
    query: "(BLK?)"
    response_format: "(0-1,{value})"
    type: enum
    values: ["0", "1"]
    description: "0: Off, 1: On"

  - id: volume_level
    label: Volume Level
    query: "(VOL?)"
    response_format: "(0-50,{value})"
    type: integer
    description: "Current volume setting"

  - id: color_mode
    label: Color Mode
    query: "(PST?)"
    response_format: "({range},{value})"
    type: enum
    values: ["0", "1", "2", "3", "4", "5"]
    description: "Current color mode"

  - id: aspect_ratio
    label: Aspect Ratio
    query: "(ARZ?)"
    response_format: "({range},{value})"
    type: enum
    values: ["0", "1", "2", "3", "4", "5", "6"]
    description: "Current aspect ratio"

  - id: lamp_time
    label: Lamp Time
    query: "(LMP?)"
    response_format: "(0-,{value})"
    type: integer
    unit: hours
    description: "Cumulative lamp usage in hours"

Variables

variables:
  - id: volume
    label: Volume
    command: "(VOL{value})"
    query: "(VOL?)"
    type: integer
    min: 0
    max: 50
    description: "Volume level (0-50 or 0-30 depending on model)"

Events

# UNRESOLVED: no unsolicited event/notification protocol described in source

Macros

# UNRESOLVED: no multi-step sequences described in source

Safety

confirmation_required_for:
  - power_off
  - reset_lamp_time
interlocks:
  - description: "After power off, must wait for cooldown before powering back on"
  - description: "After power on, wait at least one minute before powering off"
  - description: "Lamp time reset only when lamp exceeds 2100 hours and power is off"
# UNRESOLVED: exact cooldown duration not stated in source

Notes

  • All commands use ASCII characters and decimal format integers.
  • Commands wrapped in parentheses: (CMD?) for read, (CMDvalue) for write.
  • Projector returns ? for unrecognized commands.
  • Out-of-range values for settings like VOL change to maximum value rather than being ignored.
  • Must wait for previous command to complete before sending next command.
  • Most read/write commands disabled while projector is off (exceptions: PWR read, PWR write on, LMP read, LRT write).
  • Valid signal input required for blank screen and aspect ratio commands.
  • Volume range varies by model (0-50 or 0-30).

Provenance

source_domains:
  - support.casio.com
source_urls:
  - https://support.casio.com/pdf/007/YK-5_RS-232C_Control_E.pdf
retrieved_at: 2026-05-20T00:27:05.504Z
last_checked_at: 2026-06-03T06:28:15.148Z

Verification Summary

verdict: verified
checked_at: 2026-06-03T06:28:15.148Z
matched_actions: 11
action_count: 11
confidence: medium
summary: "All 11 actions present with correct command formats (7 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "exact model variants supported not stated beyond XJ-H2650"
- "no unsolicited event/notification protocol described in source"
- "no multi-step sequences described in source"
- "exact cooldown duration not stated in source"
- "exact cooldown time after power off not stated"
- "response timeout duration not stated"
- "maximum command queue depth not stated"

From the AI4AV catalog (https://ai4av.net) · ODbL-1.0