Summary

The tvONE 1T-VS-668 is a Universal Presentation Switcher/Scaler accepting HDMI, YPbPr, Video, and PC inputs. This spec covers the device's documented control interface: RS-232 (DB-9), Telnet over LAN, and a browser-based Web GUI. The same ASCII command set is shared by the RS-232 and Telnet transports; the Web GUI exposes the same functions through a web page but documents no programmatic HTTP API.

Transport

protocols:
  - serial
  - tcp
  - http
# Telnet ("tcp") implied from "Telnet" control section; source names it Telnet explicitly.
# HTTP ("http") from documented Web GUI control page.
serial:
  baud_rate: 19200
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none
addressing:
  port: null  # UNRESOLVED: no TCP/Telnet or HTTP port number stated in source
  base_url: null  # UNRESOLVED: only "unit's IP address" stated; no HTTP path pattern documented
auth:
  type: none  # inferred: no auth/login procedure described for RS-232, Telnet, or Web GUI

Traits

traits:
  - powerable    # inferred from S POWER command
  - queryable    # inferred from R <param> query commands
  - routable     # inferred from S SOURCE / PORT input-selection commands
  - levelable    # inferred from S VOLUME / S CONTRAST / S BRIGHTNESS etc.

Actions

# All commands are case-insensitive (source note). Each command must be followed
# by a carriage return (CR); some systems also require a line feed (LF).
# Parameterized commands show the variable part in {braces}; literal payloads
# are copied verbatim from the source command tables.

actions:
  # --- POWER ---
  - id: set_power
    label: Set Power
    kind: action
    command: "S POWER {x}"
    params:
      - name: x
        type: integer
        enum: [0, 1]
        enum_labels: {0: OFF, 1: ON}

  - id: query_power
    label: Query Power
    kind: query
    command: "R POWER"
    params: []

  # --- SOURCE / INPUT ROUTING ---
  - id: set_source
    label: Set Source
    kind: action
    command: "S SOURCE {x}"
    params:
      - name: x
        type: integer
        enum: [1, 2, 3, 4, 5, 6, 7, 8]
        enum_labels: {1: "HDMI 1", 2: "HDMI 2", 3: "HDMI 3", 4: YPbPr, 5: VIDEO, 6: "PC 1", 7: "PC 2", 8: "PC 3"}

  - id: query_source
    label: Query Source
    kind: query
    command: "R SOURCE"
    params: []

  - id: set_default_power_on_port
    label: Set Default Input Port at Power-On
    kind: action
    command: "PORT {x}"
    params:
      - name: x
        type: integer
        enum: [0, 1, 2, 3, 4, 5, 6, 7, 8]
        enum_labels: {0: "LAST MEMORY", 1: "HDMI 1", 2: "HDMI 2", 3: "HDMI 3", 4: YPbPr, 5: VIDEO, 6: "PC 1", 7: "PC 2", 8: "PC 3"}

  # --- OUTPUT RESOLUTION ---
  - id: set_output
    label: Set Output Resolution
    kind: action
    command: "S OUTPUT {x}"
    params:
      - name: x
        type: integer
        enum: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
        enum_labels: {0: "640x480", 1: "800x600", 2: "1024x768", 3: "1280x768", 4: "1360x768", 5: "1280x720", 6: "1280x800", 7: "1280x1024", 8: "1440x900", 9: "1400x1050", 10: "1680x1050", 11: "1600x1200", 12: "1920x1080", 13: "1920x1200", 14: "480p@60", 15: "720p@60", 16: "1080i@60", 17: "1080p@60", 18: "576p@50", 19: "720p@50", 20: "1080i@50", 21: "1080p@50"}
        notes: "0-13 RGB encoded; 14-21 YUV encoded"

  - id: query_output
    label: Query Output Resolution
    kind: query
    command: "R OUTPUT"
    params: []

  # --- SIZE / ASPECT ---
  - id: set_size
    label: Set Size / Aspect
    kind: action
    command: "S SIZE {x}"
    params:
      - name: x
        type: integer
        enum: [0, 1, 2, 3, 4, 5, 6]
        enum_labels: {0: OVERSCAN, 1: FULL, 2: "FOLLOW INPUT", 3: "PAN SCAN", 4: LETTERBOX, 5: "UNDER 2", 6: "UNDER 1"}

  - id: query_size
    label: Query Size / Aspect
    kind: query
    command: "R SIZE"
    params: []

  # --- INPUT HDCP ---
  - id: set_input_hdcp
    label: Set Input HDCP
    kind: action
    command: "S INPUT HDCP {x}"
    params:
      - name: x
        type: integer
        enum: [0, 1]
        enum_labels: {0: ON, 1: OFF}

  - id: query_input_hdcp
    label: Query Input HDCP
    kind: query
    command: "R INPUT HDCP"
    params: []

  # --- CONTRAST ---
  - id: set_contrast
    label: Set Contrast
    kind: action
    command: "S CONTRAST {x}"
    params:
      - name: x
        type: integer
        range: {min: 0, max: 60}

  - id: query_contrast
    label: Query Contrast
    kind: query
    command: "R CONTRAST"
    params: []

  # --- BRIGHTNESS ---
  - id: set_brightness
    label: Set Brightness
    kind: action
    command: "S BRIGHTNESS {x}"
    params:
      - name: x
        type: integer
        range: {min: 0, max: 60}

  - id: query_brightness
    label: Query Brightness
    kind: query
    command: "R BRIGHTNESS"
    params: []

  # --- HUE ---
  - id: set_hue
    label: Set Hue
    kind: action
    command: "S HUE {x}"
    params:
      - name: x
        type: integer
        range: {min: 0, max: 60}

  - id: query_hue
    label: Query Hue
    kind: query
    command: "R HUE"
    params: []

  # --- SATURATION ---
  - id: set_saturation
    label: Set Saturation
    kind: action
    command: "S SATURATION {x}"
    params:
      - name: x
        type: integer
        range: {min: 0, max: 60}

  - id: query_saturation
    label: Query Saturation
    kind: query
    command: "R SATURATION"
    params: []

  # --- SHARPNESS ---
  - id: set_sharpness
    label: Set Sharpness
    kind: action
    command: "S SHARPNESS {x}"
    params:
      - name: x
        type: integer
        range: {min: 0, max: 30}

  - id: query_sharpness
    label: Query Sharpness
    kind: query
    command: "R SHARPNESS"
    params: []

  # --- NOISE REDUCTION ---
  - id: set_noise_reduction
    label: Set Noise Reduction
    kind: action
    command: "S NR {x}"
    params:
      - name: x
        type: integer
        enum: [0, 1, 2, 3]
        enum_labels: {0: OFF, 1: LOW, 2: MIDDLE, 3: HIGH}

  - id: query_noise_reduction
    label: Query Noise Reduction
    kind: query
    command: "R NR"
    params: []

  # --- VOLUME ---
  - id: set_volume
    label: Set Volume
    kind: action
    command: "S VOLUME {x}"
    params:
      - name: x
        type: integer
        range: {min: 0, max: 100}

  - id: query_volume
    label: Query Volume
    kind: query
    command: "R VOLUME"
    params: []

  - id: volume_up
    label: Volume Up
    kind: action
    command: "VOL +"
    params: []

  - id: volume_down
    label: Volume Down
    kind: action
    command: "VOL -"
    params: []

  # --- AUDIO DELAY ---
  - id: set_audio_delay
    label: Set Audio Delay
    kind: action
    command: "S AUDIO DELAY {x}"
    params:
      - name: x
        type: integer
        enum: [0, 1, 2, 3]
        enum_labels: {0: OFF, 1: "40ms", 2: "110ms", 3: "150ms"}

  - id: query_audio_delay
    label: Query Audio Delay
    kind: query
    command: "R AUDIO DELAY"
    params: []

  # --- AUDIO MUTE ---
  - id: set_audio_mute
    label: Set Audio Mute
    kind: action
    command: "S AUDIO MUTE {x}"
    params:
      - name: x
        type: integer
        enum: [0, 1]
        enum_labels: {0: ON, 1: MUTE}

  - id: query_audio_mute
    label: Query Audio Mute
    kind: query
    command: "R AUDIO MUTE"
    params: []

  # --- HDMI AUDIO SOURCE ---
  - id: set_hdmi_audio
    label: Set HDMI Audio Source
    kind: action
    command: "S HDMI AUDIO {x}"
    params:
      - name: x
        type: integer
        enum: [0, 1]
        enum_labels: {0: AUTO, 1: EXT}

  - id: query_hdmi_audio
    label: Query HDMI Audio Source
    kind: query
    command: "R HDMI AUDIO"
    params: []

  # --- KEY LOCK ---
  - id: set_key_lock
    label: Set Key Lock
    kind: action
    command: "S KEY LOCK {x}"
    params:
      - name: x
        type: integer
        enum: [0, 1]
        enum_labels: {0: ENABLE, 1: DISABLE}

  - id: query_key_lock
    label: Query Key Lock
    kind: query
    command: "R KEY LOCK"
    params: []

  # --- FREERUN COLOR ---
  - id: set_freerun_color
    label: Set Freerun Color
    kind: action
    command: "S FREERUNCOLOR {x}"
    params:
      - name: x
        type: integer
        enum: [0, 1]
        enum_labels: {0: BLACK, 1: BLUE}

  - id: query_freerun_color
    label: Query Freerun Color
    kind: query
    command: "R FREERUNCOLOR"
    params: []

  # --- SYSTEM ---
  - id: factory_reset
    label: Factory Reset
    kind: action
    command: "S RESET 1"
    params: []

  - id: query_system_status
    label: Query System Status (Firmware + Source)
    kind: query
    command: "ST"
    params: []
    notes: "Returns VERSION, SOURCE, and PORT ON info (firmware version + source + power-on port)"

  - id: list_commands
    label: List Available Commands
    kind: query
    command: "?"
    params: []
    notes: "Telnet session only; lists all available commands"

  - id: quit_session
    label: Quit Session
    kind: action
    command: "QUIT"
    params: []
    notes: "Telnet only"

Feedbacks

# Each R <param> query returns the numeric value for that setting.
# Response string format per value not specified verbatim beyond "Reports the
# numeric/numerical value for <setting>".
feedbacks:
  - id: power_state
    type: enum
    values: [{0: OFF}, {1: ON}]
  - id: source_state
    type: enum
    values: [{1: "HDMI 1"}, {2: "HDMI 2"}, {3: "HDMI 3"}, {4: YPbPr}, {5: VIDEO}, {6: "PC 1"}, {7: "PC 2"}, {8: "PC 3"}]
  - id: output_resolution_state
    type: enum
    values: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
    # 0-13 RGB encoded; 14-21 YUV encoded
  - id: size_state
    type: enum
    values: [{0: OVERSCAN}, {1: FULL}, {2: "FOLLOW INPUT"}, {3: "PAN SCAN"}, {4: LETTERBOX}, {5: "UNDER 2"}, {6: "UNDER 1"}]
  - id: input_hdcp_state
    type: enum
    values: [{0: ON}, {1: OFF}]
  - id: contrast_level
    type: range
    range: {min: 0, max: 60}
  - id: brightness_level
    type: range
    range: {min: 0, max: 60}
  - id: hue_level
    type: range
    range: {min: 0, max: 60}
  - id: saturation_level
    type: range
    range: {min: 0, max: 60}
  - id: sharpness_level
    type: range
    range: {min: 0, max: 30}
  - id: noise_reduction_state
    type: enum
    values: [{0: OFF}, {1: LOW}, {2: MIDDLE}, {3: HIGH}]
  - id: volume_level
    type: range
    range: {min: 0, max: 100}
  - id: audio_delay_state
    type: enum
    values: [{0: OFF}, {1: "40ms"}, {2: "110ms"}, {3: "150ms"}]
  - id: audio_mute_state
    type: enum
    values: [{0: ON}, {1: MUTE}]
  - id: hdmi_audio_state
    type: enum
    values: [{0: AUTO}, {1: EXT}]
  - id: key_lock_state
    type: enum
    values: [{0: ENABLE}, {1: DISABLE}]
  - id: freerun_color_state
    type: enum
    values: [{0: BLACK}, {1: BLUE}]
# UNRESOLVED: exact response string/byte framing for each query not specified verbatim in source.

Variables

# All settable parameters are exposed as discrete S <param> {x} actions above.
# No settable parameter lacks a dedicated command, so this section is N/A.

Events

# No unsolicited notifications documented in source.
# UNRESOLVED: device may emit asynchronous state-change messages but none are described.

Macros

# No multi-step command sequences described in source.
# UNRESOLVED: none documented.

Safety

confirmation_required_for: []
interlocks: []
# No safety warnings, interlock procedures, or power-on sequencing requirements
# stated in the source. Note: OSD-only FACTORY RESET does not fully reset the
# system (use remote-control reset button for a complete reset); not a safety
# interlock.

Notes

  • Commands are case-insensitive (source note 2, §5.5 and §5.6).
  • Every command must be terminated with a carriage return (CR); some systems also require a line feed (LF). This terminator is part of the wire format but is not part of the command mnemonic.
  • RS-232 uses a DB-9 connector; pinout: 2=Tx, 3=Rx, 5=GND (pins 1,4,6,7,8,9 NC). Use a modem (null-modem) cable between controller and 1T-VS-668.
  • The same ASCII command set applies to both RS-232 and Telnet sessions. The ? (list) and QUIT commands are documented for Telnet only.
  • Output resolutions 0–13 are RGB encoded; 14–21 are YUV encoded.
  • OSD-only FACTORY RESET resets only part of the settings; a full system reset requires the reset button on the remote control.
  • The unit's IP address is obtained from the OSD Information menu (needed for Telnet and Web GUI).

## Provenance

```yaml
source_domains:
  - tvone.com
  - manualslib.com
source_urls:
  - https://tvone.com/filestore/Manuals-Other-Products/Manual-1T-VS-668.pdf
  - https://www.manualslib.com/manual/893665/Tvone-1t-Vs-668.html
  - https://tvone.com/support
retrieved_at: 2026-07-01T14:09:53.118Z
last_checked_at: 2026-08-05T08:47:40.797Z
```

## Verification Summary

```yaml
verdict: verified
checked_at: 2026-08-05T08:47:40.797Z
matched_actions: 41
action_count: 41
confidence: medium
summary: "All 41 spec actions match source command set literally; transport 19200/8/N/1 verified; source has no extra RS-232/Telnet commands. (7 unresolved item(s) noted in Known Gaps.)"
```

## Known Gaps

```yaml
- "Telnet/TCP port number not stated in source. Web GUI base URL/path not stated in source. Firmware version compatibility not stated. HTTP command payloads (if any) not documented beyond the Web GUI UI."
- "no TCP/Telnet or HTTP port number stated in source"
- "only \"unit's IP address\" stated; no HTTP path pattern documented"
- "exact response string/byte framing for each query not specified verbatim in source."
- "device may emit asynchronous state-change messages but none are described."
- "none documented."
- "Telnet/TCP port number not stated (do not assume 23). Web GUI HTTP base URL/path not stated (only IP address given). Exact response framing for R queries not specified. Firmware version compatibility not stated. No voltage/power/current specs populated (not in scope of control protocol and not present in this excerpt)."
```

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