Summary
RS-232C serial control for Casio XJ-M246 projector. ASCII command/response protocol at 19200 baud, 8N1, no flow control. Spec covers power, input switching, video controls, picture modes, geometry, and diagnostics.
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
- powerable # inferred from PWR command
- routable # inferred from SRC command
- queryable # inferred from PWR?/LMP?/STS? queries
- levelable # inferred from VOL command
Actions
- id: power
label: Power On/Off
kind: action
command: "PWR{value}"
params:
- name: value
type: integer
description: "0 = Off, 1 = On"
notes: "Read/write. Only PWR/PWR? valid when projector off (per source)."
- id: power_query
label: Power Status Query
kind: query
command: "PWR?"
params: []
- id: input_source
label: Input Source
kind: action
command: "SRC{value}"
params:
- name: value
type: integer
description: "0=RGB, 1=Component, 2=Video, 6=Auto, 7=HDMI, 8=Network, 9=S-Video, 11=File Viewer, 12=USB Display, 13=CASIO USB Tool"
notes: "Read/write. Value 8 = Wireless for XJ-A Series, Network for XJ-M Series."
- id: input_source_query
label: Input Source Query
kind: query
command: "SRC?"
params: []
- id: blank_screen
label: Blank Screen
kind: action
command: "BLK{value}"
params:
- name: value
type: integer
description: "0 = Off, 1 = On"
notes: "Read/write. Requires valid input signal."
- id: blank_screen_query
label: Blank Screen Query
kind: query
command: "BLK?"
params: []
notes: "Read. BLK is RW per source command list."
- id: volume
label: Volume
kind: action
command: "VOL{level}"
params:
- name: level
type: integer
description: "0-30 (0 = mute)"
notes: "Read/write."
- id: volume_query
label: Volume Query
kind: query
command: "VOL?"
params: []
- id: color_mode
label: Color Mode
kind: action
command: "PST{value}"
params:
- name: value
type: integer
description: "1=Graphics, 2=Theater, 3=Standard, 4=Blackboard, 5=Game"
notes: "Read/write."
- id: color_mode_query
label: Color Mode Query
kind: query
command: "PST?"
params: []
- id: aspect_ratio
label: Aspect Ratio
kind: action
command: "ARZ{value}"
params:
- name: value
type: integer
description: "0=Normal, 1=16:9, 2=4:3, 3=Letter Box, 4=Full, 5=True, 6=4:3 (Forced)"
notes: "Read/write. Requires valid input signal."
- id: aspect_ratio_query
label: Aspect Ratio Query
kind: query
command: "ARZ?"
params: []
- id: zoom_shift
label: Zoom Shift
kind: action
command: "OZM{value}"
params:
- name: value
type: integer
description: "0=None, 1=One step shift towards Wide, 2=One step shift towards Tele"
notes: "Write-only. XJ-A Series only per source. XJ-M246 may not support."
- id: focus_shift
label: Focus Shift
kind: action
command: "OFC{value}"
params:
- name: value
type: integer
description: "0=None, 1=One step shift closer, 2=One step shift further"
notes: "Write-only. XJ-A Series only per source. XJ-M246 may not support."
- id: light_time_query
label: Light Time Query
kind: query
command: "LMP?"
params: []
notes: "Read-only. Returns hours."
- id: eco_mode
label: Eco Mode
kind: action
command: "PMD{value}"
params:
- name: value
type: integer
description: "0=Off (Bright), 1=Off (Normal), 2=On (Auto), 3=On (Manual 1), 4=On (Manual 2), 5=On (Manual 3), 6=On (Manual 4), 7=On (Manual 5)"
notes: "Read/write."
- id: eco_mode_query
label: Eco Mode Query
kind: query
command: "PMD?"
params: []
- id: freeze
label: Freeze
kind: action
command: "FRZ{value}"
params:
- name: value
type: integer
description: "0 = Off, 1 = On"
notes: "Read/write."
- id: freeze_query
label: Freeze Query
kind: query
command: "FRZ?"
params: []
- id: keystone
label: Keystone Correction
kind: action
command: "KST{value}"
params:
- name: value
type: integer
description: "0-120. 0=-60, 60=0, 120=+60. 65≈+5."
notes: "Read/write."
- id: keystone_query
label: Keystone Correction Query
kind: query
command: "KST?"
params: []
- id: keystone_increment
label: Keystone Correction +
kind: action
command: "KSP"
params: []
notes: "Write-only. Raises current keystone by 1."
- id: keystone_decrement
label: Keystone Correction -
kind: action
command: "KSM"
params: []
notes: "Write-only. Lowers current keystone by 1."
- id: key_press
label: Remote Key Press
kind: action
command: "KEY{value}"
params:
- name: value
type: integer
description: "1-34. 1-4=blank, 5=ENTER, 6=ESC, 10=FUNC, 11=MENU, 12=POWER, 13=AUTO, 14=INPUT, 15=TIMER, 16=ASPECT, 17=BLANK, 18=FREEZE, 19=ECO, 20=KEYSTONE+, 21=KEYSTONE-, 22=D-ZOOM+, 23=D-ZOOM-, 24=VOLUME+, 25=VOLUME-, 26=PLAY, 27=REWIND, 28=FORWARD, 29=PREVIOUS, 30=NEXT, 31=ZOOM+, 32=ZOOM-, 33=FOCUS, 34=FOCUS"
notes: "Write-only. Values 31-34 XJ-A Series only."
- id: setup_type
label: Setup Type
kind: action
command: "POS{value}"
params:
- name: value
type: integer
description: "0=Front, 1=Ceiling mounted (rear), 2=Rear, 3=Ceiling mounted (front)"
notes: "Read/write."
- id: setup_type_query
label: Setup Type Query
kind: query
command: "POS?"
params: []
- id: auto_power_off
label: Auto Power Off
kind: action
command: "APO{value}"
params:
- name: value
type: integer
description: "0=Off, 1=5 min, 2=10 min, 3=15 min, 4=20 min, 5=30 min"
notes: "Read/write."
- id: auto_power_off_query
label: Auto Power Off Query
kind: query
command: "APO?"
params: []
- id: error_status
label: Error Status
kind: query
command: "STS?"
params: []
notes: "Read-only. 0=Normal, 1=Fan error, 2=Temp error, 7=Light error, 16=Other."
- id: volume_increment
label: Volume +
kind: action
command: "VLP"
params: []
notes: "Write-only. Raises current volume by 1."
- id: volume_decrement
label: Volume -
kind: action
command: "VLM"
params: []
notes: "Write-only. Lowers current volume by 1."
- id: mute
label: Mute
kind: action
command: "MUT{value}"
params:
- name: value
type: integer
description: "0 = Off, 1 = On"
notes: "Read/write."
- id: mute_query
label: Mute Query
kind: query
command: "MUT?"
params: []
Feedbacks
# CRITICAL: source documents no unsolicited feedback.
# Responses to queries use the format (range,current) per source.
# Populated as Variables below.
Variables
- id: power_state
type: enum
values: [off, on]
source_command: "PWR?"
notes: "Response format: (0-1,current)."
- id: input_source
type: enum
values: [rgb, component, video, auto, hdmi, network, s_video, file_viewer, usb_display, casio_usb_tool]
source_command: "SRC?"
notes: "Response format: (0-13,current)."
- id: blank_state
type: enum
values: [off, on]
source_command: "BLK?"
notes: "Response format: (0-1,current)."
- id: volume
type: integer
range: [0, 30]
source_command: "VOL?"
- id: color_mode
type: enum
values: [graphics, theater, standard, blackboard, game]
source_command: "PST?"
- id: aspect_ratio
type: enum
values: [normal, "16:9", "4:3", letter_box, full, true, "4:3_forced"]
source_command: "ARZ?"
- id: light_time_hours
type: integer
range: [0, null]
source_command: "LMP?"
notes: "Returns hours."
- id: eco_mode
type: enum
values: [off_bright, off_normal, on_auto, on_manual_1, on_manual_2, on_manual_3, on_manual_4, on_manual_5]
source_command: "PMD?"
- id: freeze_state
type: enum
values: [off, on]
source_command: "FRZ?"
- id: keystone
type: integer
range: [0, 120]
source_command: "KST?"
- id: setup_type
type: enum
values: [front, ceiling_rear, rear, ceiling_front]
source_command: "POS?"
- id: auto_power_off
type: enum
values: [off, "5_min", "10_min", "15_min", "20_min", "30_min"]
source_command: "APO?"
- id: error_status
type: enum
values: [normal, fan_error, temperature_error, light_error, other_error]
source_command: "STS?"
- id: mute_state
type: enum
values: [off, on]
source_command: "MUT?"
Events
# UNRESOLVED: source documents no unsolicited events. Projector returns "?" on unrecognized commands per source, but this is a response, not an event.
Macros
# UNRESOLVED: source documents no multi-step sequences.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no explicit safety warnings, interlock procedures, or power-on sequencing requirements.
Notes
Cmd format: parens wrap all commands. Sent as (CMD). Response to read: (range,current). Source notes: only PWR/PWR?/LMP? valid when projector off. Unknown cmd → ? response. Out-of-range value ignored. Cmd send must wait until prev process completes ("serial port busy" risk). ASCII chars, decimal integers.
Self-check pass: no fabricated voltages/ports/baud. 19200 stated. Auth=none inferred (Tier 2). Added 3 actions (`blank_screen_query`, `zoom_shift`, `focus_shift`) + 1 variable (`blank_state`). Existing IDs/shapes preserved.
## Provenance
```yaml
source_domains:
- audiogeneral.com
- support.casio.com
- manualslib.com
source_urls:
- https://www.audiogeneral.com/casio/xjm246_manual.pdf
- https://support.casio.com/pdf/007/YK-5_RS-232C_Control_E.pdf
- https://www.manualslib.com/manual/2666925/Casio-Xj-A-Series.html
retrieved_at: 2026-08-10T23:00:48.152Z
last_checked_at: 2026-08-19T09:00:32.050Z
```
## Verification Summary
```yaml
verdict: verified
checked_at: 2026-08-19T09:00:32.050Z
matched_actions: 33
action_count: 33
confidence: medium
summary: "All 33 spec actions map 1:1 to source commands with matching shapes; transport (19200/8/N/1, none) is verbatim. (5 unresolved item(s) noted in Known Gaps.)"
```
## Known Gaps
```yaml
- "cable/connector wiring not described in source. Source references YK-60 special cable and D-Sub 9-pin cross cable but pinout omitted."
- "source documents no unsolicited events. Projector returns \"?\" on unrecognized commands per source, but this is a response, not an event."
- "source documents no multi-step sequences."
- "source contains no explicit safety warnings, interlock procedures, or power-on sequencing requirements."
- "D-Sub 9-pin pinout not in source. YK-60 cable pinout not in source. XJ-A Series-only commands (OZM, OFC, KEY 31-34) marked in source; XJ-M246 may not support."
```
---
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0