Summary

The Sony ZRD-S12G is a LED display controller receiving/sending card. This spec covers its binary control protocol exposed over RS-232 serial (115200 8N1, hex), TCP (port 5200), and UDP (port 5201). Packets are 21-byte framed commands with a2-byte checksum covering brightness, presets, output modes (3D, low-latency, freeze, blackout), controller mode, and input source routing.

Transport

protocols:
  - serial
  - tcp
  - udp
addressing:
  tcp_port: 5200
  udp_port: 5201
serial:
  baud_rate: 115200
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none
auth:
  type: none  # inferred: no auth procedure in source

Traits

- levelable       # inferred: brightness adjustment commands present
- routable        # inferred: layer source switching commands present

Actions

- id: adjust_brightness
  label: Adjust Brightness
  kind: action
  command: "55 aa 00 00 fe ff 01 ff ff ff 01 00 01 00 00 02 01 {brightness} {chk_hi} {chk_lo}"
  params:
    - name: brightness
      type: integer
      description: Brightness value 00-FF (ratio = value / FF). 00 = 0%, FF = 100%.
    - name: chk_hi
      type: string
      description: Checksum high byte (computed: sum of protocol content bytes + 0x5555, little-endian)
    - name: chk_lo
      type: string
      description: Checksum low byte

- id: receiving_card_black_screen
  label: Receiving Card Black Screen
  kind: action
  command: "55 aa 00 00 fe ff 01 ff ff ff 01 00 00 01 00 02 01 00 ff 54 5b"
  params: []

- id: receiving_card_freeze
  label: Receiving Card Freeze
  kind: action
  command: "55 aa 00 00 fe ff 01 ff ff ff 01 00 02 01 00 02 01 00 ff 56 5b"
  params: []

- id: receiving_card_unfreeze
  label: Receiving Card Unfreeze
  kind: action
  command: "55 aa 00 00 fe ff 01 ff ff ff 01 00 02 01 00 02 01 00 00 57 5a"
  params: []

- id: receiving_card_normal_display
  label: Receiving Card Normal Display
  kind: action
  command: "55 aa 00 00 fe ff 01 ff ff ff 01 00 00 01 00 02 01 00 00 55 5a"
  params: []

- id: switch_preset_1
  label: Switch to Preset 1
  kind: action
  command: "55 aa 00 00 fe ff 01 ff ff ff 01 00 02 00 00 0a 01 00 01 5f 5a"
  params: []

- id: switch_preset_2
  label: Switch to Preset 2
  kind: action
  command: "55 aa 00 00 fe ff 01 ff ff ff 01 00 02 00 00 0a 01 00 02 60 5a"
  params: []

- id: enable_low_latency
  label: Enable Low Latency
  kind: action
  command: "55 aa 00 00 fe ff 01 ff ff ff 01 00 11 01 00 10 01 00 01 75 5a"
  params: []

- id: disable_low_latency
  label: Disable Low Latency
  kind: action
  command: "55 aa 00 00 fe ff 01 ff ff ff 01 00 11 01 00 10 01 00 00 74 5a"
  params: []

- id: enable_3d
  label: Enable 3D
  kind: action
  command: "55 aa 00 00 fe ff 01 ff ff ff 01 00 16 01 00 10 01 00 01 7a 5a"
  params: []

- id: disable_3d
  label: Disable 3D
  kind: action
  command: "55 aa 00 00 fe ff 01 ff ff ff 01 00 16 01 00 10 01 00 00 79 5a"
  params: []

- id: 3d_right_eye
  label: 3D Right Eye
  kind: action
  command: "55 aa 00 00 fe ff 01 ff ff ff 01 00 18 11 00 10 01 00 00 8b 5a"
  params: []

- id: 3d_left_eye
  label: 3D Left Eye
  kind: action
  command: "55 aa 00 00 fe ff 01 ff ff ff 01 00 18 11 00 10 01 00 01 8c 5a"
  params: []

- id: switch_all_in_one_controller_mode
  label: Switch to All-in-One Controller Mode
  kind: action
  command: "55 aa 00 00 fe ff 01 ff ff ff 01 00 f2 ff 08 00 01 00 01 4c 5c"
  params: []

- id: switch_send_only_controller_mode
  label: Switch to Send-Only Controller Mode
  kind: action
  command: "55 aa 00 00 fe ff 01 ff ff ff 01 00 f2 ff 08 00 01 00 00 4b 5c"
  params: []

- id: sending_card_black_screen_all
  label: Sending Card Black Screen (All Cards)
  kind: action
  command: "55 aa 00 00 fe ff 01 ff ff ff 01 00 00 01 00 10 02 00 ff 01 64 5b"
  params: []

- id: sending_card_black_screen_card
  label: Sending Card Black Screen (By Card Number)
  kind: action
  command: "55 aa 00 00 fe ff 01 ff ff ff 01 00 00 01 00 10 02 00 {card_num} 01 {chk_hi} {chk_lo}"
  params:
    - name: card_num
      type: integer
      description: Output card number (1-based). For single-card controllers use FF.
    - name: chk_hi
      type: string
      description: Checksum high byte    - name: chk_lo
      type: string
      description: Checksum low byte

- id: sending_card_freeze_card
  label: Sending Card Freeze (By Card Number)
  kind: action
  command: "55 aa 00 00 fe ff 01 ff ff ff 01 00 00 01 00 10 02 00 {card_num} 02 {chk_hi} {chk_lo}"
  params:
    - name: card_num
      type: integer
      description: Output card number (1-based)
    - name: chk_hi
      type: string
      description: Checksum high byte
    - name: chk_lo
      type: string
      description: Checksum low byte

- id: sending_card_normal_display_card
  label: Sending Card Normal Display (By Card Number)
  kind: action
  command: "55 aa 00 00 fe ff 01 ff ff ff 01 00 00 01 00 10 02 00 {card_num} 00 {chk_hi} {chk_lo}"
  params:
    - name: card_num
      type: integer
      description: Output card number (1-based)
    - name: chk_hi
      type: string
      description: Checksum high byte
    - name: chk_lo
      type: string
      description: Checksum low byte

- id: switch_layer_source
  label: Switch Layer Source
  kind: action
  command: "55 aa 00 00 fe ff 01 ff ff ff 01 00 03 00 00 0a 03 00 {layer_num} {input_card_num} {input_iface_num} {chk_hi} {chk_lo}"
  params:
    - name: layer_num
      type: integer
      description: Layer number    - name: input_card_num
      type: integer
      description: Input card number (0-based)
    - name: input_iface_num
      type: integer
      description: Input card interface number (0-based)
    - name: chk_hi
      type: string
      description: Checksum high byte
    - name: chk_lo
      type: string
      description: Checksum low byte

Feedbacks

# UNRESOLVED: source describes a generic response packet ("aa 55 00 00 ff fe 01 ff ff ff 01 00 f2 ff 08 00 00 00 49 5d")
# indicating an ACK-style confirmation, but does not define a structured feedback schema per command.

Variables

# UNRESOLVED: source defines no query commands returning state values.

Events

# UNRESOLVED: source documents no unsolicited notifications.

Macros

# UNRESOLVED: source documents no multi-step sequences.

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no explicit safety warnings, interlocks, or power-on sequencing requirements.

Notes

All commands share a fixed 16-byte prefix 55 aa 00 00 fe ff 01 ff ff ff 01 00 followed by register address (bytes 0x0c-0x0f, little-endian), data length (0x10-0x11), data payload (0x12+), and a 2-byte checksum at 0x13-0x14. Checksum = sum of protocol content bytes + 0x5555, written little-endian. For "Switch to Preset N", preset1 = byte 0x01, preset 26 = 0x1A, etc. (1-indexed hex). Source identifies as sony_zrd_s12g_unknown — variant suffix not documented in source.

Provenance

source_domains:
  - oss.novastar.tech
source_urls:
  - https://oss.novastar.tech/uploads/2025/09/Central-Control-Protocol-Instructions-V1.5.0.pdf
retrieved_at: 2026-09-09T00:04:01.012Z
last_checked_at: 2026-09-22T11:45:50.670Z

Verification Summary

verdict: verified
checked_at: 2026-09-22T11:45:50.670Z
matched_actions: 20
action_count: 20
confidence: medium
summary: "All 20 spec actions match hex byte-for-byte against the source; transport parameters (115200 8N1, TCP 5200, UDP 5201) verified verbatim. (7 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "firmware version compatibility not stated in source. Source identifies as ZRD-S12G \"unknown\" variant — no model-variant qualifier documented."
- "source describes a generic response packet (\"aa 55 00 00 ff fe 01 ff ff ff 01 00 f2 ff 08 00 00 00 49 5d\")"
- "source defines no query commands returning state values."
- "source documents no unsolicited notifications."
- "source documents no multi-step sequences."
- "source contains no explicit safety warnings, interlocks, or power-on sequencing requirements."
- "firmware version compatibility not stated in source. Preset index upper bound (only presets 1 and 2 are explicitly exemplified; protocol address0x0a000002 implies 0x01-0xFF range but no explicit maximum is stated)."

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