Summary
Ad Notam CS-101 Display Frame Unit (DFU). RS-232 ASCII control protocol over a null-modem DB-9 cable, default 38400 baud 8N1, no handshake. Commands are 9-byte framed (&IDN:VAL<CR>) and acknowledged with %IDN:VAL<CR>; errors return !ERR:NNN. This spec catalogs every command row documented in the source.
Transport
protocols:
- serial
serial:
baud_rate: 38400 # default per source; 9600 and 19200 also supported, configurable via OSD service menu
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
auth:
type: none # inferred: no auth procedure in source
Traits
- powerable
- routable
- queryable
- levelable
Actions
# Power
- id: pwr_tog
label: Power Toggle
kind: action
command: "&PWR:TOG"
params: []
- id: pwr_on
label: Power On
kind: action
command: "&PWR:ON*"
params: []
- id: pwr_off
label: Power Off
kind: action
command: "&PWR:OFF"
params: []
- id: pwr_query
label: Get Power Status
kind: query
command: "&PWR?***"
params: []
# Boot behavior
- id: bot_on
label: Boot Set to On
kind: action
command: "&BOT:ON*"
params: []
- id: bot_sby
label: Boot Set to Standby
kind: action
command: "&BOT:SBY"
params: []
- id: bot_lst
label: Boot Set to Last State
kind: action
command: "&BOT:LST"
params: []
- id: bot_query
label: Get Boot Setup
kind: query
command: "&BOT?***"
params: []
# Signal loss timeout
- id: sls_05s
label: Signal Loss 5 Seconds
kind: action
command: "&SLS:05s"
params: []
- id: sls_10s
label: Signal Loss 10 Seconds
kind: action
command: "&SLS:10s"
params: []
- id: sls_30s
label: Signal Loss 30 Seconds
kind: action
command: "&SLS:30s"
params: []
- id: sls_01m
label: Signal Loss 1 Minute
kind: action
command: "&SLS:01m"
params: []
- id: sls_02m
label: Signal Loss 2 Minutes
kind: action
command: "&SLS:02m"
params: []
- id: sls_off
label: Signal Loss Off
kind: action
command: "&SLS:OFF"
params: []
- id: sls_query
label: Get Signal Loss Setup
kind: query
command: "&SLS?***"
params: []
# Sleep timer
- id: slp_015
label: Sleep Timer 15 Minutes
kind: action
command: "&SLP:015"
params: []
- id: slp_030
label: Sleep Timer 30 Minutes
kind: action
command: "&SLP:030"
params: []
- id: slp_045
label: Sleep Timer 45 Minutes
kind: action
command: "&SLP:045"
params: []
- id: slp_060
label: Sleep Timer 60 Minutes
kind: action
command: "&SLP:060"
params: []
- id: slp_090
label: Sleep Timer 90 Minutes
kind: action
command: "&SLP:090"
params: []
- id: slp_120
label: Sleep Timer 120 Minutes
kind: action
command: "&SLP:120"
params: []
- id: slp_off
label: Sleep Timer Off
kind: action
command: "&SLP:OFF"
params: []
- id: slp_query
label: Get Sleep Timer Status
kind: query
command: "&SLP?***"
params: []
# Numeric keypad digits
- id: num_001
label: Digit 1
kind: action
command: "&NUM:001"
params: []
- id: num_002
label: Digit 2
kind: action
command: "&NUM:002"
params: []
- id: num_003
label: Digit 3
kind: action
command: "&NUM:003"
params: []
- id: num_004
label: Digit 4
kind: action
command: "&NUM:004"
params: []
- id: num_005
label: Digit 5
kind: action
command: "&NUM:005"
params: []
- id: num_006
label: Digit 6
kind: action
command: "&NUM:006"
params: []
- id: num_007
label: Digit 7
kind: action
command: "&NUM:007"
params: []
- id: num_008
label: Digit 8
kind: action
command: "&NUM:008"
params: []
- id: num_009
label: Digit 9
kind: action
command: "&NUM:009"
params: []
- id: num_000
label: Digit 0
kind: action
command: "&NUM:000"
params: []
# Cursor / navigation
- id: crs_ok
label: OK
kind: action
command: "&CRS:OK*"
params: []
- id: crs_up
label: Up
kind: action
command: "&CRS:UP*"
params: []
- id: crs_dn
label: Down
kind: action
command: "&CRS:DN*"
params: []
- id: crs_lt
label: Left
kind: action
command: "&CRS:LT*"
params: []
- id: crs_rt
label: Right
kind: action
command: "&CRS:RT*"
params: []
# Volume
- id: vol_up
label: Volume Up
kind: action
command: "&VOL:UP*"
params: []
- id: vol_dn
label: Volume Down
kind: action
command: "&VOL:DN*"
params: []
- id: vol_query
label: Get Volume Level
kind: query
command: "&VOL?***"
params: []
# Mute
- id: mut_tog
label: Mute Toggle
kind: action
command: "&MUT:TOG"
params: []
- id: mut_on
label: Mute On
kind: action
command: "&MUT:ON*"
params: []
- id: mut_off
label: Mute Off
kind: action
command: "&MUT:OFF"
params: []
- id: mut_query
label: Get Mute Status
kind: query
command: "&MUT?***"
params: []
# Media transport
- id: fnc_ply
label: Play
kind: action
command: "&FNC:PLY"
params: []
- id: fnc_pse
label: Pause
kind: action
command: "&FNC:PSE"
params: []
- id: fnc_stp
label: Stop
kind: action
command: "&FNC:STP"
params: []
- id: fnc_nxt
label: Skip Forward / Chapter +
kind: action
command: "&FNC:NXT"
params: []
- id: fnc_prv
label: Skip Backward / Chapter -
kind: action
command: "&FNC:PRV"
params: []
- id: fnc_fwd
label: Fast Forward
kind: action
command: "&FNC:FWD"
params: []
- id: fnc_rwd
label: Fast Backward
kind: action
command: "&FNC:RWD"
params: []
# Exit
- id: ext
label: Exit
kind: action
command: "&EXT:***"
params: []
# OSD access
- id: osa_on
label: OSD Access On
kind: action
command: "&OSA:ON*"
params: []
- id: osa_off
label: OSD Access Off
kind: action
command: "&OSA:OFF"
params: []
- id: osa_query
label: Get OSD Access Status
kind: query
command: "&OSA?***"
params: []
# OSD open/close
- id: osd_tog
label: OSD Toggle (Open/Close)
kind: action
command: "&OSD:TOG"
params: []
- id: osd_on
label: OSD On (Open)
kind: action
command: "&OSD:ON*"
params: []
- id: osd_off
label: OSD Off (Close)
kind: action
command: "&OSD:OFF"
params: []
- id: osd_query
label: Get OSD Status
kind: query
command: "&OSD?***"
params: []
# Input source
- id: src_hd1
label: Input HDMI 1
kind: action
command: "&SRC:HD1"
params: []
- id: src_hd2
label: Input HDMI 2
kind: action
command: "&SRC:HD2"
params: []
- id: src_hd3
label: Input HDMI 3
kind: action
command: "&SRC:HD3"
params: []
- id: src_rgb
label: Input Component
kind: action
command: "&SRC:RGB"
params: []
- id: src_usb
label: Input USB / DMP
kind: action
command: "&SRC:USB"
params: []
- id: src_query
label: Get Input Status
kind: query
command: "&SRC?***"
params: []
# Aspect / zoom
- id: asp_169
label: Aspect 16:9
kind: action
command: "&ASP:169"
params: []
- id: asp_043
label: Aspect 4:3
kind: action
command: "&ASP:043"
params: []
- id: asp_zm1
label: Zoom 1
kind: action
command: "&ASP:ZM1"
params: []
- id: asp_zm2
label: Zoom 2
kind: action
command: "&ASP:ZM2"
params: []
- id: asp_query
label: Get Aspect Status
kind: query
command: "&ASP?***"
params: []
# Picture mode and color temp
- id: pct_std
label: Picture Mode Standard
kind: action
command: "&PCT:STD"
params: []
- id: pct_usr
label: Picture Mode User
kind: action
command: "&PCT:USR"
params: []
- id: pct_dyn
label: Picture Mode Dynamic
kind: action
command: "&PCT:DYN"
params: []
- id: pct_mld
label: Picture Mode Mild
kind: action
command: "&PCT:MLD"
params: []
- id: pct_col
label: Picture Temp Cool
kind: action
command: "&PCT:COL"
params: []
- id: pct_med
label: Picture Temp Medium
kind: action
command: "&PCT:MED"
params: []
- id: pct_wrm
label: Picture Temp Warm
kind: action
command: "&PCT:WRM"
params: []
# Brightness
- id: brt_up
label: Brightness Up
kind: action
command: "&BRT:UP*"
params: []
- id: brt_dn
label: Brightness Down
kind: action
command: "&BRT:DN*"
params: []
- id: brt_query
label: Get Brightness Level
kind: query
command: "&BRT?***"
params: []
# Contrast
- id: con_up
label: Contrast Up
kind: action
command: "&CON:UP*"
params: []
- id: con_dn
label: Contrast Down
kind: action
command: "&CON:DN*"
params: []
- id: con_query
label: Get Contrast Level
kind: query
command: "&CON?***"
params: []
# Saturation
- id: str_up
label: Saturation Up
kind: action
command: "&STR:UP*"
params: []
- id: str_dn
label: Saturation Down
kind: action
command: "&STR:DN*"
params: []
- id: str_query
label: Get Saturation Level
kind: query
command: "&STR?***"
params: []
# Sharpness
- id: srp_up
label: Sharpness Up
kind: action
command: "&SRP:UP*"
params: []
- id: srp_dn
label: Sharpness Down
kind: action
command: "&SRP:DN*"
params: []
- id: srp_query
label: Get Sharpness Level
kind: query
command: "&SRP?***"
params: []
# Backlight
- id: blt_up
label: Backlight Up
kind: action
command: "&BLT:UP*"
params: []
- id: blt_dn
label: Backlight Down
kind: action
command: "&BLT:DN*"
params: []
- id: blt_query
label: Get Backlight Level
kind: query
command: "&BLT?***"
params: []
# Audio mode
- id: aud_std
label: Audio Mode Standard
kind: action
command: "&AUD:STD"
params: []
- id: aud_usr
label: Audio Mode User
kind: action
command: "&AUD:USR"
params: []
- id: aud_mus
label: Audio Mode Music
kind: action
command: "&AUD:MUS"
params: []
- id: aud_mov
label: Audio Mode Movie
kind: action
command: "&AUD:MOV"
params: []
- id: aud_spr
label: Audio Mode Sports
kind: action
command: "&AUD:SPR"
params: []
# Bass
- id: bas_up
label: Bass Up
kind: action
command: "&BAS:UP*"
params: []
- id: bas_dn
label: Bass Down
kind: action
command: "&BAS:DN*"
params: []
- id: bas_query
label: Get Bass Level
kind: query
command: "&BAS?***"
params: []
# Treble
- id: trb_up
label: Treble Up
kind: action
command: "&TRB:UP*"
params: []
- id: trb_dn
label: Treble Down
kind: action
command: "&TRB:DN*"
params: []
- id: trb_query
label: Get Treble Level
kind: query
command: "&TRB?***"
params: []
# Balance
- id: bal_lt
label: Balance Left
kind: action
command: "&BAL:LT*"
params: []
- id: bal_rt
label: Balance Right
kind: action
command: "&BAL:RT*"
params: []
- id: bal_query
label: Get Balance Level
kind: query
command: "&BAL?***"
params: []
# Boot volume
- id: bvl_up
label: Boot Volume Up
kind: action
command: "&BVL:UP*"
params: []
- id: bvl_dn
label: Boot Volume Down
kind: action
command: "&BVL:DN*"
params: []
- id: bvl_query
label: Get Boot Volume Level
kind: query
command: "&BVL?***"
params: []
# RS232 echo
- id: eco_on
label: Set RS232 Echo On
kind: action
command: "&ECO:ON*"
params: []
- id: eco_off
label: Set RS232 Echo Off
kind: action
command: "&ECO:OFF"
params: []
Feedbacks
# Acknowledgement pattern: %IDN:VAL<CR>, 9 bytes, value field padded with '*' to 3 bytes.
# Error pattern: !ERR:NNN<CR>
- id: pwr_state
type: enum
values: [on, off]
pattern: "%PWR:XXX"
- id: bot_state
type: enum
values: [on, standby, last]
pattern: "%BOT:XXX"
- id: sls_state
type: enum
values: ["5s", "10s", "30s", "1m", "2m", off]
pattern: "%SLS:XXX"
- id: slp_state
type: enum
values: ["15min", "30min", "45min", "60min", "90min", "120min", off]
pattern: "%SLP:XXX"
- id: vol_level
type: integer
range: [0, 100]
pattern: "%VOL:XXX"
- id: mut_state
type: enum
values: [on, off]
pattern: "%MUT:XXX"
- id: osa_state
type: enum
values: [on, off]
pattern: "%OSA:XXX"
- id: osd_state
type: enum
values: [on, off]
pattern: "%OSD:XXX"
- id: src_state
type: enum
values: [hd1, hd2, hd3, rgb, usb]
pattern: "%SRC:XXX"
- id: asp_state
type: enum
values: ["169", "043", "zm1", "zm2"]
pattern: "%ASP:XXX"
- id: brt_level
type: integer
range: [0, 100]
pattern: "%BRT:XXX"
- id: con_level
type: integer
range: [0, 100]
pattern: "%CON:XXX"
- id: str_level
type: integer
range: [0, 100]
pattern: "%STR:XXX"
- id: srp_level
type: integer
range: [0, 100]
pattern: "%SRP:XXX"
- id: blt_level
type: integer
range: [0, 100]
pattern: "%BLT:XXX"
- id: bas_level
type: integer
range: [0, 100]
pattern: "%BAS:XXX"
- id: trb_level
type: integer
range: [0, 100]
pattern: "%TRB:XXX"
- id: bal_level
type: integer
range: [-50, 50]
pattern: "%BAL:XXX"
- id: bvl_level
type: integer
range: [0, 100]
pattern: "%BVL:XXX"
- id: error_code
type: enum
values: ["001", "002", "003", "004"]
pattern: "!ERR:NNN"
Variables
# Settable parameters that have a queryable numeric range and step-style UP/DN controls.
# The source documents range bounds; no continuous set command is provided for these -
# only UP/DN step commands. Listed here for range metadata.
- id: vol
label: Volume
type: integer
range: [0, 100]
controlled_by: [vol_up, vol_dn, vol_query]
- id: brt
label: Brightness
type: integer
range: [0, 100]
controlled_by: [brt_up, brt_dn, brt_query]
- id: con
label: Contrast
type: integer
range: [0, 100]
controlled_by: [con_up, con_dn, con_query]
- id: str
label: Saturation
type: integer
range: [0, 100]
controlled_by: [str_up, str_dn, str_query]
- id: srp
label: Sharpness
type: integer
range: [0, 100]
controlled_by: [srp_up, srp_dn, srp_query]
- id: blt
label: Backlight
type: integer
range: [0, 100]
controlled_by: [blt_up, blt_dn, blt_query]
- id: bas
label: Bass
type: integer
range: [0, 100]
controlled_by: [bas_up, bas_dn, bas_query]
- id: trb
label: Treble
type: integer
range: [0, 100]
controlled_by: [trb_up, trb_dn, trb_query]
- id: bal
label: Balance
type: integer
range: [-50, 50]
controlled_by: [bal_lt, bal_rt, bal_query]
- id: bvl
label: Boot Volume
type: integer
range: [0, 100]
controlled_by: [bvl_up, bvl_dn, bvl_query]
Events
# Unsolicited notifications. Source documents acknowledgement (response) per command but
# no asynchronous event/notification stream beyond that. ECHO controls whether acks are sent.
- id: echo_disabled
label: RS232 Echo Disabled
description: When ECHO is OFF, the device does not send acknowledgement messages after commands.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no safety warnings, interlock procedures, or power-on
# sequencing requirements beyond the timing note "wait 10 seconds after power on
# before sending next command" - that is a timing constraint, not a safety interlock.
Notes
Every command and acknowledgement is exactly 9 bytes including the trailing <CR> (0x0D). The value field is always 3 bytes; values shorter than 3 characters are right-padded with *. Commands use no whitespace between fields. Acknowledgement is controlled by the &ECO:ON* / &ECO:OFF pair — when echo is off the device does not reply to commands. Errors are reported with the !ERR:NNN<CR> pattern (codes 001 access denied, 002 not available, 003 not implemented, 004 value out of range). Host connection is a null-modem DB-9 cable (2↔3, 5↔5). Default baud is 38400; 9600 and 19200 are also supported and selectable from the OSD service menu. Timing: 10s after power-on, 500ms minimum between commands, 2s retry on no-response, 5s after 20-command bursts.
Provenance
source_domains:
- ad-notam.com
- cdn.shopify.com
- configurator.ad-notam.com
- applicationmarket.crestron.com
source_urls:
- https://www.ad-notam.com/download/RS232/ad_notam_RS232_protocol_DFU.pdf
- https://cdn.shopify.com/s/files/1/0793/9768/3467/files/TD_DFU_RS232-Protocol_v5.2_ASCII_Format_20200504.pdf
- https://configurator.ad-notam.com/service-support/product-support/notifications-technical-notes/control-integration
- https://www.ad-notam.com/attachment/244/download/dfu_rs232_protocol_v03_01_20131111.pdf
- https://applicationmarket.crestron.com/ad-notam-cs-101/
retrieved_at: 2026-06-01T22:37:06.903Z
last_checked_at: 2026-06-02T21:39:35.046Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T21:39:35.046Z
matched_actions: 112
action_count: 112
confidence: medium
summary: "All 112 spec actions matched literally in source table; transport parameters verified; 1-to-1 coverage. (2 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "firmware version compatibility not stated in source."
- "source contains no safety warnings, interlock procedures, or power-on"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0