Summary
RS-232 ASCII protocol for Ad Notam Display Frame Unit (DFU). 9-byte framed commands: & header + 3-byte identifier + 1-byte separator + 3-byte value + <CR>. DFU acks with % header same shape; errors with !ERR:NNN. Crossed DB9 cable, 8N1. IR remote activity on the DFU emits matching ACK frames on the RS-232 bus.
Transport
protocols:
- serial
serial:
baud_rate: 38400 # default; source also states 9600 and 19200 are configurable from 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
- id: power_toggle
label: Power Toggle
kind: action
command: "&PWR:TOG\r"
params: []
- id: power_on
label: Power ON
kind: action
command: "&PWR:ON*\r"
params: []
- id: power_off
label: Power OFF
kind: action
command: "&PWR:OFF\r"
params: []
- id: power_status_query
label: Get Power Status
kind: query
command: "&PWR?***\r"
params: []
- id: boot_on
label: Boot set to ON
kind: action
command: "&BOT:ON*\r"
params: []
- id: boot_standby
label: Boot set to Standby
kind: action
command: "&BOT:SBY\r"
params: []
- id: boot_last
label: Boot set to Last
kind: action
command: "&BOT:LST\r"
params: []
- id: boot_instant
label: Boot set to Instant
kind: action
command: "&BOT:INS\r"
params: []
- id: boot_status_query
label: Get Boot Setup
kind: query
command: "&BOT?***\r"
params: []
- id: signal_loss_5s
label: Signal Loss 5 Sec
kind: action
command: "&SLS:05s\r"
params: []
- id: signal_loss_10s
label: Signal Loss 10 Sec
kind: action
command: "&SLS:10s\r"
params: []
- id: signal_loss_30s
label: Signal Loss 30 Sec
kind: action
command: "&SLS:30s\r"
params: []
- id: signal_loss_1min
label: Signal Loss 1 min
kind: action
command: "&SLS:001\r"
params: []
- id: signal_loss_2min
label: Signal Loss 2 min
kind: action
command: "&SLS:002\r"
params: []
- id: signal_loss_off
label: Signal Loss OFF
kind: action
command: "&SLS:OFF\r"
params: []
- id: signal_loss_status_query
label: Get Signal Loss Setup
kind: query
command: "&SLS?***\r"
params: []
- id: sleep_15
label: Sleep Timer 15 min
kind: action
command: "&SLP:015\r"
params: []
- id: sleep_30
label: Sleep Timer 30 min
kind: action
command: "&SLP:030\r"
params: []
- id: sleep_45
label: Sleep Timer 45 min
kind: action
command: "&SLP:045\r"
params: []
- id: sleep_60
label: Sleep Timer 60 min
kind: action
command: "&SLP:060\r"
params: []
- id: sleep_90
label: Sleep Timer 90 min
kind: action
command: "&SLP:090\r"
params: []
- id: sleep_120
label: Sleep Timer 120 min
kind: action
command: "&SLP:120\r"
params: []
- id: sleep_off
label: Sleep Timer OFF
kind: action
command: "&SLP:OFF\r"
params: []
- id: sleep_status_query
label: Get Sleep Timer Status
kind: query
command: "&SLP?***\r"
params: []
- id: digit_1
label: Digit 1
kind: action
command: "&NUM:001\r"
params: []
- id: digit_2
label: Digit 2
kind: action
command: "&NUM:002\r"
params: []
- id: digit_3
label: Digit 3
kind: action
command: "&NUM:003\r"
params: []
- id: digit_4
label: Digit 4
kind: action
command: "&NUM:004\r"
params: []
- id: digit_5
label: Digit 5
kind: action
command: "&NUM:005\r"
params: []
- id: digit_6
label: Digit 6
kind: action
command: "&NUM:006\r"
params: []
- id: digit_7
label: Digit 7
kind: action
command: "&NUM:007\r"
params: []
- id: digit_8
label: Digit 8
kind: action
command: "&NUM:008\r"
params: []
- id: digit_9
label: Digit 9
kind: action
command: "&NUM:009\r"
params: []
- id: digit_0
label: Digit 0
kind: action
command: "&NUM:000\r"
params: []
- id: key_text
label: TEXT
kind: action
command: "&KEY:TXT\r"
params: []
- id: key_epg
label: EPG
kind: action
command: "&KEY:EPG\r"
params: []
- id: key_tvr
label: TV/R
kind: action
command: "&KEY:TVR\r"
params: []
- id: key_menu
label: MENU
kind: action
command: "&KEY:MNU\r"
params: []
- id: key_goto
label: GOTO
kind: action
command: "&KEY:GTO\r"
params: []
- id: key_fav
label: FAV
kind: action
command: "&KEY:FAV\r"
params: []
- id: key_back
label: BACK
kind: action
command: "&KEY:BCK\r"
params: []
- id: key_info
label: INFO
kind: action
command: "&KEY:NFO\r"
params: []
- id: cursor_ok
label: OK
kind: action
command: "&CRS:OK*\r"
params: []
- id: cursor_up
label: UP
kind: action
command: "&CRS:UP*\r"
params: []
- id: cursor_down
label: DOWN
kind: action
command: "&CRS:DN*\r"
params: []
- id: cursor_left
label: LEFT
kind: action
command: "&CRS:LT*\r"
params: []
- id: cursor_right
label: RIGHT
kind: action
command: "&CRS:RT*\r"
params: []
- id: color_red
label: RED
kind: action
command: "&CLR:RED\r"
params: []
- id: color_green
label: GREEN
kind: action
command: "&CLR:GRN\r"
params: []
- id: color_blue
label: BLUE
kind: action
command: "&CLR:BLU\r"
params: []
- id: color_yellow
label: YELLOW
kind: action
command: "&CLR:YLO\r"
params: []
- id: volume_up
label: Volume +
kind: action
command: "&VOL:UP*\r"
params: []
- id: volume_down
label: Volume -
kind: action
command: "&VOL:DN*\r"
params: []
- id: volume_set
label: Set Volume Level
kind: action
command: "&VOL:{level}\r"
params:
- name: level
type: integer
description: Volume level 000-100
- id: volume_status_query
label: Get Volume Level
kind: query
command: "&VOL?***\r"
params: []
- id: volume_limit
label: Set Volume Limit
kind: action
command: "&VLM:{level}\r"
params:
- name: level
type: integer
description: Volume limit 000-100
- id: mute_toggle
label: Mute Toggle
kind: action
command: "&MUT:TOG\r"
params: []
- id: mute_on
label: Mute On
kind: action
command: "&MUT:ON*\r"
params: []
- id: mute_off
label: Mute Off
kind: action
command: "&MUT:OFF\r"
params: []
- id: mute_status_query
label: Get Mute Status
kind: query
command: "&MUT?***\r"
params: []
- id: channel_up
label: CH+
kind: action
command: "&CHN:UP*\r"
params: []
- id: channel_down
label: CH-
kind: action
command: "&CHN:DN*\r"
params: []
- id: function_play
label: PLAY
kind: action
command: "&FNC:PLY\r"
params: []
- id: function_pause
label: PAUSE
kind: action
command: "&FNC:PSE\r"
params: []
- id: function_stop
label: STOP
kind: action
command: "&FNC:STP\r"
params: []
- id: function_record
label: RECORD
kind: action
command: "&FNC:RCD\r"
params: []
- id: function_skip_next
label: SKIP NEXT
kind: action
command: "&FNC:NXT\r"
params: []
- id: function_skip_back
label: SKIP BACK
kind: action
command: "&FNC:PRV\r"
params: []
- id: function_fast_forward
label: Fast Forward
kind: action
command: "&FNC:FWD\r"
params: []
- id: function_fast_rewind
label: Fast Rewind
kind: action
command: "&FNC:RWD\r"
params: []
- id: exit
label: EXIT
kind: action
command: "&EXT:***\r"
params: []
- id: osd_access_on
label: OSD Access ON
kind: action
command: "&OSA:ON*\r"
params: []
- id: osd_access_off
label: OSD Access OFF
kind: action
command: "&OSA:OFF\r"
params: []
- id: osd_access_status_query
label: Get OSD Access Status
kind: query
command: "&OSA?***\r"
params: []
- id: osd_toggle
label: SETUP (open/close)
kind: action
command: "&OSD:TOG\r"
params: []
- id: osd_on
label: OSD ON (open)
kind: action
command: "&OSD:ON*\r"
params: []
- id: osd_off
label: OSD OFF (close)
kind: action
command: "&OSD:OFF\r"
params: []
- id: osd_status_query
label: Get OSD Status
kind: query
command: "&OSD?***\r"
params: []
- id: input_hdmi1
label: Input HDMI 1
kind: action
command: "&SRC:HD1\r"
params: []
- id: input_hdmi2
label: Input HDMI 2
kind: action
command: "&SRC:HD2\r"
params: []
- id: input_hdmi3
label: Input HDMI 3
kind: action
command: "&SRC:HD3\r"
params: []
- id: input_component
label: Input Component
kind: action
command: "&SRC:RGB\r"
params: []
- id: input_usb
label: Input USB / DMP
kind: action
command: "&SRC:USB\r"
params: []
- id: input_vga
label: Input VGA
kind: action
command: "&SRC:VGA\r"
params: []
- id: input_status_query
label: Get Input Status
kind: query
command: "&SRC?***\r"
params: []
- id: vga_auto_adjust
label: VGA Auto Adjust
kind: action
command: "&VGA:ADJ\r"
params: []
- id: dc5_off
label: 5VDC Out OFF
kind: action
command: "&05V:OFF\r"
params: []
- id: dc5_follow_dfu
label: 5VDC Out Follow DFU
kind: action
command: "&05V:DFU\r"
params: []
- id: dc5_on
label: 5VDC Out Always ON
kind: action
command: "&05V:ON*\r"
params: []
- id: dc5_status_query
label: Get 5VDC Out Status
kind: query
command: "&05V?***\r"
params: []
- id: dc12_off
label: 12VDC Out OFF
kind: action
command: "&12V:OFF\r"
params: []
- id: dc12_follow_dfu
label: 12VDC Out Follow DFU
kind: action
command: "&12V:DFU\r"
params: []
- id: dc12_on
label: 12VDC Out Always ON
kind: action
command: "&12V:ON*\r"
params: []
- id: dc12_status_query
label: Get 12VDC Out Status
kind: query
command: "&12V?***\r"
params: []
- id: aspect_169
label: Aspect 16:9
kind: action
command: "&ASP:169\r"
params: []
- id: aspect_43
label: Aspect 4:3
kind: action
command: "&ASP:043\r"
params: []
- id: zoom_1
label: Zoom 1
kind: action
command: "&ASP:ZM1\r"
params: []
- id: zoom_2
label: Zoom 2
kind: action
command: "&ASP:ZM2\r"
params: []
- id: zoom_3
label: Zoom 3 (24VDC models only)
kind: action
command: "&ASP:ZM3\r"
params: []
- id: aspect_status_query
label: Get Aspect Status
kind: query
command: "&ASP?***\r"
params: []
- id: zoom3_topleft
label: Zoom 3 position Top Left (24VDC models only)
kind: action
command: "&Z3P:TLF\r"
params: []
- id: zoom3_topright
label: Zoom 3 position Top Right (24VDC models only)
kind: action
command: "&Z3P:TRT\r"
params: []
- id: zoom3_bottomleft
label: Zoom 3 position Bottom Left (24VDC models only)
kind: action
command: "&Z3P:BLF\r"
params: []
- id: zoom3_bottomright
label: Zoom 3 position Bottom Right (24VDC models only)
kind: action
command: "&Z3P:BRT\r"
params: []
- id: zoom3_position_query
label: Get Zoom 3 position (24VDC models only)
kind: query
command: "&Z3P?***\r"
params: []
- id: picture_mode_standard
label: Picture Mode Standard
kind: action
command: "&PCT:STD\r"
params: []
- id: picture_mode_user
label: Picture Mode User
kind: action
command: "&PCT:USR\r"
params: []
- id: picture_mode_dynamic
label: Picture Mode Dynamic
kind: action
command: "&PCT:DYN\r"
params: []
- id: picture_mode_mild
label: Picture Mode Mild
kind: action
command: "&PCT:MLD\r"
params: []
- id: picture_temp_cool
label: Picture Temp Cool
kind: action
command: "&PCT:COL\r"
params: []
- id: picture_temp_medium
label: Picture Temp Medium
kind: action
command: "&PCT:MED\r"
params: []
- id: picture_temp_warm
label: Picture Temp Warm
kind: action
command: "&PCT:WRM\r"
params: []
- id: picture_mute_on
label: Picture Mute On (backlight off)
kind: action
command: "&PCT:MUT\r"
params: []
- id: picture_mute_off
label: Picture Mute Off (backlight on)
kind: action
command: "&PCT:UMT\r"
params: []
- id: brightness_up
label: Brightness +
kind: action
command: "&BRT:UP*\r"
params: []
- id: brightness_down
label: Brightness -
kind: action
command: "&BRT:DN*\r"
params: []
- id: brightness_set
label: Set Brightness Level
kind: action
command: "&BRT:{level}\r"
params:
- name: level
type: integer
description: Brightness 000-100
- id: brightness_query
label: Get Brightness Level
kind: query
command: "&BRT?***\r"
params: []
- id: contrast_up
label: Contrast +
kind: action
command: "&CON:UP*\r"
params: []
- id: contrast_down
label: Contrast -
kind: action
command: "&CON:DN*\r"
params: []
- id: contrast_set
label: Set Contrast Level
kind: action
command: "&CON:{level}\r"
params:
- name: level
type: integer
description: Contrast 000-100
- id: contrast_query
label: Get Contrast Level
kind: query
command: "&CON?***\r"
params: []
- id: saturation_up
label: Saturation +
kind: action
command: "&STR:UP*\r"
params: []
- id: saturation_down
label: Saturation -
kind: action
command: "&STR:DN*\r"
params: []
- id: saturation_set
label: Set Saturation Level
kind: action
command: "&STR:{level}\r"
params:
- name: level
type: integer
description: Saturation 000-100
- id: saturation_query
label: Get Saturation Level
kind: query
command: "&STR?***\r"
params: []
- id: sharpness_up
label: Sharpness +
kind: action
command: "&SRP:UP*\r"
params: []
- id: sharpness_down
label: Sharpness -
kind: action
command: "&SRP:DN*\r"
params: []
- id: sharpness_set
label: Set Sharpness Level
kind: action
command: "&SRP:{level}\r"
params:
- name: level
type: integer
description: Sharpness 000-100
- id: sharpness_query
label: Get Sharpness Level
kind: query
command: "&SRP?***\r"
params: []
- id: backlight_up
label: Backlight +
kind: action
command: "&BLT:UP*\r"
params: []
- id: backlight_down
label: Backlight -
kind: action
command: "&BLT:DN*\r"
params: []
- id: backlight_set
label: Set Backlight Level
kind: action
command: "&BLT:{level}\r"
params:
- name: level
type: integer
description: Backlight 020-100
- id: backlight_query
label: Get Backlight Level
kind: query
command: "&BLT?***\r"
params: []
- id: audio_mode_standard
label: Audio Mode Standard
kind: action
command: "&AUD:STD\r"
params: []
- id: audio_mode_music
label: Audio Mode Music
kind: action
command: "&AUD:MUS\r"
params: []
- id: audio_mode_movie
label: Audio Mode Movie
kind: action
command: "&AUD:MOV\r"
params: []
- id: audio_mode_sports
label: Audio Mode Sports
kind: action
command: "&AUD:SPR\r"
params: []
- id: audio_mode_user
label: Audio Mode User
kind: action
command: "&AUD:USR\r"
params: []
- id: bass_up
label: Bass +
kind: action
command: "&BAS:UP*\r"
params: []
- id: bass_down
label: Bass -
kind: action
command: "&BAS:DN*\r"
params: []
- id: bass_set
label: Set Bass Level
kind: action
command: "&BAS:{level}\r"
params:
- name: level
type: integer
description: Bass 000-100
- id: bass_query
label: Get Bass Level
kind: query
command: "&BAS?***\r"
params: []
- id: treble_up
label: Treble +
kind: action
command: "&TRB:UP*\r"
params: []
- id: treble_down
label: Treble -
kind: action
command: "&TRB:DN*\r"
params: []
- id: treble_set
label: Set Treble Level
kind: action
command: "&TRB:{level}\r"
params:
- name: level
type: integer
description: Treble 000-100
- id: treble_query
label: Get Treble Level
kind: query
command: "&TRB?***\r"
params: []
- id: balance_left
label: Balance Left
kind: action
command: "&BAL:LT*\r"
params: []
- id: balance_right
label: Balance Right
kind: action
command: "&BAL:RT*\r"
params: []
- id: balance_set
label: Set Balance Level
kind: action
command: "&BAL:{level}\r"
params:
- name: level
type: integer
description: Balance -50 to +50
- id: balance_query
label: Get Balance Level
kind: query
command: "&BAL?***\r"
params: []
- id: boot_volume_last
label: Boot Volume Last
kind: action
command: "&BVL:LST\r"
params: []
- id: boot_volume_user
label: Boot Volume User
kind: action
command: "&BVL:USR\r"
params: []
- id: boot_volume_up
label: Boot Volume Level +
kind: action
command: "&BVL:UP*\r"
params: []
- id: boot_volume_down
label: Boot Volume Level -
kind: action
command: "&BVL:DN*\r"
params: []
- id: boot_volume_set
label: Set Boot Volume Level
kind: action
command: "&BVL:{level}\r"
params:
- name: level
type: integer
description: Boot volume 000-100
- id: boot_volume_query
label: Get Boot Volume Level
kind: query
command: "&BVL?***\r"
params: []
- id: logo_show
label: Show Logo
kind: action
command: "&LGO:ON*\r"
params: []
- id: logo_hide
label: Hide Logo
kind: action
command: "&LGO:OFF\r"
params: []
- id: echo_on
label: Set RS232 Echo ON
kind: action
command: "&ECO:ON*\r"
params: []
- id: echo_off
label: Set RS232 Echo OFF
kind: action
command: "&ECO:OFF\r"
params: []
Feedbacks
- id: power_state
type: enum
values: [on, off]
- id: boot_state
type: enum
values: [on, standby, last, instant]
- id: signal_loss_state
type: enum
values: ["5s", "10s", "30s", "1min", "2min", off]
- id: sleep_state
type: enum
values: ["15min", "30min", "45min", "60min", "90min", "120min", off]
- id: volume_level
type: integer
range: [0, 100]
- id: volume_limit_level
type: integer
range: [0, 100]
- id: mute_state
type: enum
values: [on, off]
- id: input_state
type: enum
values: [component, hdmi1, hdmi2, hdmi3, usb, vga]
- id: osd_access_state
type: enum
values: [on, off]
- id: osd_state
type: enum
values: [on, off]
- id: dc5_state
type: enum
values: [off, follow_dfu, on]
- id: dc12_state
type: enum
values: [off, follow_dfu, on]
- id: aspect_state
type: enum
values: ["16:9", "4:3", "zoom1", "zoom2", "zoom3"]
- id: zoom3_position
type: enum
values: [top_left, top_right, bottom_left, bottom_right]
- id: brightness_level
type: integer
range: [0, 100]
- id: contrast_level
type: integer
range: [0, 100]
- id: saturation_level
type: integer
range: [0, 100]
- id: sharpness_level
type: integer
range: [0, 100]
- id: backlight_level
type: integer
range: [20, 100]
- id: bass_level
type: integer
range: [0, 100]
- id: treble_level
type: integer
range: [0, 100]
- id: balance_level
type: integer
range: [-50, 50]
- id: boot_volume_level
type: integer
range: [0, 100]
- id: error_code
type: enum
values: [access_denied, not_available, not_implemented, value_out_of_range]
# Source: !ERR:001 access_denied; !ERR:002 not_available; !ERR:003 not_implemented; !ERR:004 value_out_of_range
Variables
# UNRESOLVED: source defines no continuous settable parameters beyond command-encoded
# numeric ranges (volume, brightness, etc.); these are exposed via set/query actions
# above rather than as standalone Variables.
Events
- id: ir_remote_ack
description: >
When DFU receives an IR remote command, it emits a matching RS-232 ACK
frame (%XXX:YYY<CR>) on the bus, unsolicited from the controller's
perspective. Same 9-byte ACK frame shape as command-driven acks. Only fires
while echo is enabled (&ECO:ON*). Note: not all IR commands have an
equivalent RS-232 command, but they still emit an ACK if mapped.
Macros
# UNRESOLVED: no multi-step sequences defined in source.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: no explicit safety warnings, interlocks, or power-on sequencing
# requirements stated in source.
Notes
Cable: crossed (null-modem) DB9 — pin2↔pin3, pin5↔pin5. DFU end is male DB9 (2=RXD, 3=TXD, 5=GND). Baud rate default 38400; 9600 and 19200 also supported (OSD service menu configurable, not via RS-232 command). Frame: 9 bytes incl. CR (0x0D). Value field <3 bytes padded with *. Acknowledgement is auto-sent by default; disable via &ECO:OFF / re-enable with &ECO:ON*. IR remote activity emits equivalent ACKs on the bus even when IR command not exposed via RS-232. Error responses use !ERR:001 (access denied), !ERR:002 (not available), !ERR:003 (not implemented), !ERR:004 (value out of range). Volume limit (&VLM:XXX) is set-only — source documents no &VLM?*** query. Timing: wait 10s after power-on, ≥500ms between commands, ≥2s resend timeout, ≥5s pause after every 20 commands; wait-for-response between commands.
Provenance
source_domains:
- cdn.shopify.com
source_urls:
- "https://cdn.shopify.com/s/files/1/0793/9768/3467/files/TD_DFU_RS232-Protocol_v5.2_ASCII_Format_20200504.pdf?v=1741266010"
retrieved_at: 2026-04-29T21:04:16.985Z
last_checked_at: 2026-06-02T21:39:36.608Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T21:39:36.608Z
matched_actions: 161
action_count: 161
confidence: medium
summary: "All 161 spec actions match literally in source command table; transport parameters verified; complete bidirectional coverage. (5 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "firmware compatibility range not stated in source"
- "source defines no continuous settable parameters beyond command-encoded"
- "no multi-step sequences defined in source."
- "no explicit safety warnings, interlocks, or power-on sequencing"
- "Zoom 3 commands and Z3P position commands apply only to 24VDC DFU models; source marks these as model-dependent."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0