Summary
Shinybow SB-5645 is a 6-input × 4-output matrix switcher controllable via RS-232. This spec covers the 8-byte ASCII command protocol documented in the vendor's "RS-232 Protocol Version 1.0" guide (Part no. Encl00RS23200a0, FEB 2016), including power, routing, panel lock, reset, and status-query commands plus their feedback acknowledgements.
Transport
protocols:
- serial
serial:
baud_rate: 9600
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
auth:
type: UNRESOLVED # source does not state this (was inferred none: no auth procedure in source)
Traits
- powerable # inferred from SBSYSMON / SBSYSMOF power commands
- routable # inferred from SBI{input}O{output} routing commands
- queryable # inferred from SBASKSTA status query
Actions
- id: power_on
label: Power On
kind: action
command: "SBSYSMON"
params: []
- id: power_off
label: Power Off
kind: action
command: "SBSYSMOF"
params: []
- id: route_to_output_1
label: Channel 1 Setting (route input to output 1)
kind: action
command: "SBI{input}O01"
params:
- name: input
type: string
description: Input number as zero-padded two-digit ASCII (01..06)
enum: ["01", "02", "03", "04", "05", "06"]
- id: route_to_output_2
label: Channel 2 Setting (route input to output 2)
kind: action
command: "SBI{input}O02"
params:
- name: input
type: string
description: Input number as zero-padded two-digit ASCII (01..06)
enum: ["01", "02", "03", "04", "05", "06"]
- id: route_to_output_3
label: Channel 3 Setting (route input to output 3)
kind: action
command: "SBI{input}O03"
params:
- name: input
type: string
description: Input number as zero-padded two-digit ASCII (01..06)
enum: ["01", "02", "03", "04", "05", "06"]
- id: route_to_output_4
label: Channel 4 Setting (route input to output 4)
kind: action
command: "SBI{input}O04"
params:
- name: input
type: string
description: Input number as zero-padded two-digit ASCII (01..06)
enum: ["01", "02", "03", "04", "05", "06"]
- id: panel_lock_on
label: Front Panel Lock Toggle On
kind: action
command: "SBSYSMLK"
params: []
- id: panel_lock_off
label: Front Panel Lock Toggle Off
kind: action
command: "SBSYSMUK"
params: []
- id: reset
label: Reset (all destinations to Source 1)
kind: action
command: "SBALLRST"
params: []
- id: ask_status
label: Ask Status
kind: query
command: "SBASKSTA"
params: []
# Device replies sequentially with: status ack (SBSTATAK), power state (SBALONAK/SBALOFAK),
# IN/OUT state (SBUD0000XXYY), and lock state (SBSYSLOK/SBSYSULK).
Feedbacks
- id: power_on_ack
label: Power On Acknowledgement
type: literal
command: "SBALONAK"
query_command: "SBASKSTA"
- id: power_off_ack
label: Power Off Acknowledgement
type: literal
command: "SBALOFAK"
query_command: "SBASKSTA"
- id: channel_1_updated
label: Channel 1 Updated
type: pattern
command: "SBUD{input}O1"
query_command: "SBASKSTA"
params:
- name: input
type: string
description: Selected source as zero-padded two-digit ASCII (01..06)
- id: channel_2_updated
label: Channel 2 Updated
type: pattern
command: "SBUD{input}O2"
query_command: "SBASKSTA"
params:
- name: input
type: string
description: Selected source as zero-padded two-digit ASCII (01..06)
- id: channel_3_updated
label: Channel 3 Updated
type: pattern
command: "SBUD{input}O4" # verbatim from source row 5; description says channel 3
query_command: "SBASKSTA"
params:
- name: input
type: string
description: Selected source as zero-padded two-digit ASCII (01..06)
# UNRESOLVED: source row maps suffix O4 to "Channel 3 Updated", but the
# ask-status reply format note (SBUD0000XXYY where YY is output port) implies
# YY should equal the output number. Likely vendor doc typo or OCR artifact;
# confirm against a real device before relying on this suffix.
- id: channel_4_updated
label: Channel 4 Updated
type: pattern
command: "SBUD{input}O3" # verbatim from source row 6; description says channel 4
query_command: "SBASKSTA"
params:
- name: input
type: string
description: Selected source as zero-padded two-digit ASCII (01..06)
# UNRESOLVED: same suffix-vs-channel mismatch as channel_3_updated.
- id: lock_on
label: Lock On
type: literal
command: "SBSYSLOK"
query_command: "SBASKSTA"
- id: lock_off
label: Lock Off
type: literal
command: "SBSYSULK"
query_command: "SBASKSTA"
- id: reset_ack
label: Reset Acknowledgement
type: literal
command: "SBRSTACK"
- id: status_ack
label: Status Acknowledge (first frame in status reply sequence)
type: literal
command: "SBSTATAK"
query_command: "SBASKSTA"
- id: status_in_out_state
label: IN/OUT State (per output, returned during status reply)
type: pattern
command: "SBUD0000{input}{output}"
query_command: "SBASKSTA"
params:
- name: input
type: string
description: Input port as zero-padded two-digit ASCII (01..06)
- name: output
type: string
description: Output port as zero-padded two-digit ASCII (01..06)
# Per source note: SBUD0000XXYY - XX = input port, YY = output port.
Variables
# UNRESOLVED: source documents no settable parameters separate from the
# discrete action / feedback opcodes above (no volume, gain, EDID, etc.).
Events
# UNRESOLVED: source does not describe unsolicited (push) events outside of
# the feedback acks emitted in response to controller commands.
Macros
# UNRESOLVED: source documents no multi-step macro sequences.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no safety warnings, interlock procedures, or
# power-sequencing requirements.
Notes
- All commands are exactly 8 ASCII bytes, sent from controller to device. No terminator (CR/LF) is documented in the source; verify against a real device.
- "When locked on, all status' are changed by RS-232 only" — front-panel lock affects panel input, not RS-232. Source uses the same phrasing for both lock-on (SBSYSMLK) and lock-off (SBSYSMUK) descriptions, which appears to be a vendor doc copy-paste error; assume SBSYSMUK re-enables front-panel control.
SBALLRSTresets all 4 outputs to Source 1.SBASKSTAtriggers a multi-frame reply sequence (status ack, power state, per-output IN/OUT state, lock state) per the remark at the end of the feedback table.- Source command spellings have OCR-induced mixed case (e.g. "SBSYSmon"); normalized to all-uppercase here to match the explicit uppercase examples in the status-reply note ("SBASKSTA", "SBUD0000XXYY"). Verify byte-exact case against a real device.
- Protocol header states "RS-232 Protocol Version 1.0, applies to all devices except SB-5688". SB-5645 is therefore in scope.
Provenance
source_domains:
- shinybowusa.com
source_urls:
- https://shinybowusa.com/PDF/RS232_V1.0.pdf
retrieved_at: 2026-06-01T22:48:42.875Z
last_checked_at: 2026-10-07T18:44:52.302Z
Verification Summary
verdict: verified
checked_at: 2026-10-07T18:44:52.302Z
matched_actions: 20
action_count: 20
confidence: medium
summary: "All 20 action units match source commands and feedback frames, the serial parameters are confirmed, and the spec covers essentially the whole command catalogue. (12 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "source describes no TCP/IP, REST, UDP, or OSC control path"
- "firmware version compatibility not stated in source"
- "source row maps suffix O4 to \"Channel 3 Updated\", but the"
- "same suffix-vs-channel mismatch as channel_3_updated."
- "source documents no settable parameters separate from the"
- "source does not describe unsolicited (push) events outside of"
- "source documents no multi-step macro sequences."
- "source contains no safety warnings, interlock procedures, or"
- "command terminator (CR / LF / none) not stated in source"
- "response timing / inter-command delay not stated"
- "serial connector pinout and cable wiring (straight vs null-modem) not stated in the refined source"
- "behavior when an out-of-range input (e.g. 07+) is requested not stated"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0