Summary
Ad Notam Display Frame Unit (DFU) controlled by ASCII RS-232 protocol. Commands always 9 bytes including CR: header (& for command, % for ack), 3-byte identifier, optional : or ? separator, 3-byte value (* padding), <CR> terminator. Error responses prefixed with !. Default baud 38400; 9600/19200/38400 configurable via OSD service menu.
Transport
protocols:
- serial
serial:
baud_rate: 38400 # default per source; 9600/19200/38400 configurable
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
auth:
type: none # inferred: no auth procedure in source
Traits
- powerable # inferred from power command examples
- routable # inferred from input routing commands
- queryable # inferred from query command examples
- levelable # volume / bass / treble / brightness / contrast / saturation / sharpness / backlight / balance / boot volume present
Actions
- id: power_toggle
label: Power Toggle
kind: action
command: "&PWR:TOG<CR>"
params: []
- id: power_on
label: Power On
kind: action
command: "&PWR:ON*<CR>"
params: []
- id: power_off
label: Power Off
kind: action
command: "&PWR:OFF<CR>"
params: []
- id: power_status_query
label: Get Power Status
kind: query
command: "&PWR?***<CR>"
params: []
- id: boot_on
label: Boot Set To On
kind: action
command: "&BOT:ON*<CR>"
params: []
- id: boot_standby
label: Boot Set To Standby
kind: action
command: "&BOT:SBY<CR>"
params: []
- id: boot_last
label: Boot Set To Last
kind: action
command: "&BOT:LST<CR>"
params: []
- id: boot_setup_query
label: Get Boot Setup
kind: query
command: "&BOT?***<CR>"
params: []
- id: signal_loss_5s
label: Signal Loss 5 Seconds
kind: action
command: "&SLS:05s<CR>"
params: []
- id: signal_loss_10s
label: Signal Loss 10 Seconds
kind: action
command: "&SLS:10s<CR>"
params: []
- id: signal_loss_30s
label: Signal Loss 30 Seconds
kind: action
command: "&SLS:30s<CR>"
params: []
- id: signal_loss_1m
label: Signal Loss 1 Minute
kind: action
command: "&SLS:01m<CR>"
params: []
- id: signal_loss_2m
label: Signal Loss 2 Minutes
kind: action
command: "&SLS:02m<CR>"
params: []
- id: signal_loss_off
label: Signal Loss Off
kind: action
command: "&SLS:OFF<CR>"
params: []
- id: signal_loss_query
label: Get Signal Loss Setup
kind: query
command: "&SLS?***<CR>"
params: []
- id: sleep_timer_15
label: Sleep Timer 15 Minutes
kind: action
command: "&SLP:015<CR>"
params: []
- id: sleep_timer_30
label: Sleep Timer 30 Minutes
kind: action
command: "&SLP:030<CR>"
params: []
- id: sleep_timer_45
label: Sleep Timer 45 Minutes
kind: action
command: "&SLP:045<CR>"
params: []
- id: sleep_timer_60
label: Sleep Timer 60 Minutes
kind: action
command: "&SLP:060<CR>"
params: []
- id: sleep_timer_90
label: Sleep Timer 90 Minutes
kind: action
command: "&SLP:090<CR>"
params: []
- id: sleep_timer_120
label: Sleep Timer 120 Minutes
kind: action
command: "&SLP:120<CR>"
params: []
- id: sleep_timer_off
label: Sleep Timer Off
kind: action
command: "&SLP:OFF<CR>"
params: []
- id: sleep_timer_query
label: Get Sleep Timer Status
kind: query
command: "&SLP?***<CR>"
params: []
- id: digit_0
label: Digit 0
kind: action
command: "&NUM:000<CR>"
params: []
- id: digit_1
label: Digit 1
kind: action
command: "&NUM:001<CR>"
params: []
- id: digit_2
label: Digit 2
kind: action
command: "&NUM:002<CR>"
params: []
- id: digit_3
label: Digit 3
kind: action
command: "&NUM:003<CR>"
params: []
- id: digit_4
label: Digit 4
kind: action
command: "&NUM:004<CR>"
params: []
- id: digit_5
label: Digit 5
kind: action
command: "&NUM:005<CR>"
params: []
- id: digit_6
label: Digit 6
kind: action
command: "&NUM:006<CR>"
params: []
- id: digit_7
label: Digit 7
kind: action
command: "&NUM:007<CR>"
params: []
- id: digit_8
label: Digit 8
kind: action
command: "&NUM:008<CR>"
params: []
- id: digit_9
label: Digit 9
kind: action
command: "&NUM:009<CR>"
params: []
- id: cursor_ok
label: Cursor OK
kind: action
command: "&CRS:OK*<CR>"
params: []
- id: cursor_up
label: Cursor Up
kind: action
command: "&CRS:UP*<CR>"
params: []
- id: cursor_down
label: Cursor Down
kind: action
command: "&CRS:DN*<CR>"
params: []
- id: cursor_left
label: Cursor Left
kind: action
command: "&CRS:LT*<CR>"
params: []
- id: cursor_right
label: Cursor Right
kind: action
command: "&CRS:RT*<CR>"
params: []
- id: volume_up
label: Volume +
kind: action
command: "&VOL:UP*<CR>"
params: []
- id: volume_down
label: Volume -
kind: action
command: "&VOL:DN*<CR>"
params: []
- id: volume_query
label: Get Volume Level
kind: query
command: "&VOL?***<CR>"
params: []
- id: mute_toggle
label: Mute Toggle
kind: action
command: "&MUT:TOG<CR>"
params: []
- id: mute_on
label: Mute On
kind: action
command: "&MUT:ON*<CR>"
params: []
- id: mute_off
label: Mute Off
kind: action
command: "&MUT:OFF<CR>"
params: []
- id: mute_query
label: Get Mute Status
kind: query
command: "&MUT?***<CR>"
params: []
- id: play
label: Play
kind: action
command: "&FNC:PLY<CR>"
params: []
- id: pause
label: Pause
kind: action
command: "&FNC:PSE<CR>"
params: []
- id: stop
label: Stop
kind: action
command: "&FNC:STP<CR>"
params: []
- id: skip_forward
label: Skip Forward / Chapter +
kind: action
command: "&FNC:NXT<CR>"
params: []
- id: skip_backward
label: Skip Backward / Chapter -
kind: action
command: "&FNC:PRV<CR>"
params: []
- id: fast_forward
label: Fast Forward
kind: action
command: "&FNC:FWD<CR>"
params: []
- id: fast_backward
label: Fast Backward
kind: action
command: "&FNC:RWD<CR>"
params: []
- id: exit
label: Exit
kind: action
command: "&EXT:***<CR>"
params: []
- id: osd_access_on
label: OSD Access On
kind: action
command: "&OSA:ON*<CR>"
params: []
- id: osd_access_off
label: OSD Access Off
kind: action
command: "&OSA:OFF<CR>"
params: []
- id: osd_access_query
label: Get OSD Access Status
kind: query
command: "&OSA?***<CR>"
params: []
- id: osd_toggle
label: OSD Toggle
kind: action
command: "&OSD:TOG<CR>"
params: []
- id: osd_on
label: OSD On
kind: action
command: "&OSD:ON*<CR>"
params: []
- id: osd_off
label: OSD Off
kind: action
command: "&OSD:OFF<CR>"
params: []
- id: osd_query
label: Get OSD Status
kind: query
command: "&OSD?***<CR>"
params: []
- id: input_hdmi1
label: Input HDMI 1
kind: action
command: "&SRC:HD1<CR>"
params: []
- id: input_hdmi2
label: Input HDMI 2
kind: action
command: "&SRC:HD2<CR>"
params: []
- id: input_hdmi3
label: Input HDMI 3
kind: action
command: "&SRC:HD3<CR>"
params: []
- id: input_component
label: Input Component
kind: action
command: "&SRC:RGB<CR>"
params: []
- id: input_usb_dmp
label: Input USB / DMP
kind: action
command: "&SRC:USB<CR>"
params: []
- id: input_query
label: Get Input Status
kind: query
command: "&SRC?***<CR>"
params: []
- id: aspect_16_9
label: Aspect 16:9
kind: action
command: "&ASP:169<CR>"
params: []
- id: aspect_4_3
label: Aspect 4:3
kind: action
command: "&ASP:043<CR>"
params: []
- id: aspect_zoom1
label: Aspect Zoom 1
kind: action
command: "&ASP:ZM1<CR>"
params: []
- id: aspect_zoom2
label: Aspect Zoom 2
kind: action
command: "&ASP:ZM2<CR>"
params: []
- id: aspect_query
label: Get Aspect Status
kind: query
command: "&ASP?***<CR>"
params: []
- id: picture_mode_standard
label: Picture Mode Standard
kind: action
command: "&PCT:STD<CR>"
params: []
- id: picture_mode_user
label: Picture Mode User
kind: action
command: "&PCT:USR<CR>"
params: []
- id: picture_mode_dynamic
label: Picture Mode Dynamic
kind: action
command: "&PCT:DYN<CR>"
params: []
- id: picture_mode_mild
label: Picture Mode Mild
kind: action
command: "&PCT:MLD<CR>"
params: []
- id: picture_temp_cool
label: Picture Temperature Cool
kind: action
command: "&PCT:COL<CR>"
params: []
- id: picture_temp_medium
label: Picture Temperature Medium
kind: action
command: "&PCT:MED<CR>"
params: []
- id: picture_temp_warm
label: Picture Temperature Warm
kind: action
command: "&PCT:WRM<CR>"
params: []
- id: brightness_up
label: Brightness +
kind: action
command: "&BRT:UP*<CR>"
params: []
- id: brightness_down
label: Brightness -
kind: action
command: "&BRT:DN*<CR>"
params: []
- id: brightness_query
label: Get Brightness Level
kind: query
command: "&BRT?***<CR>"
params: []
- id: contrast_up
label: Contrast +
kind: action
command: "&CON:UP*<CR>"
params: []
- id: contrast_down
label: Contrast -
kind: action
command: "&CON:DN*<CR>"
params: []
- id: contrast_query
label: Get Contrast Level
kind: query
command: "&CON?***<CR>"
params: []
- id: saturation_up
label: Saturation +
kind: action
command: "&STR:UP*<CR>"
params: []
- id: saturation_down
label: Saturation -
kind: action
command: "&STR:DN*<CR>"
params: []
- id: saturation_query
label: Get Saturation Level
kind: query
command: "&STR?***<CR>"
params: []
- id: sharpness_up
label: Sharpness +
kind: action
command: "&SRP:UP*<CR>"
params: []
- id: sharpness_down
label: Sharpness -
kind: action
command: "&SRP:DN*<CR>"
params: []
- id: sharpness_query
label: Get Sharpness Level
kind: query
command: "&SRP?***<CR>"
params: []
- id: backlight_up
label: Backlight +
kind: action
command: "&BLT:UP*<CR>"
params: []
- id: backlight_down
label: Backlight -
kind: action
command: "&BLT:DN*<CR>"
params: []
- id: backlight_query
label: Get Backlight Level
kind: query
command: "&BLT?***<CR>"
params: []
- id: audio_mode_standard
label: Audio Mode Standard
kind: action
command: "&AUD:STD<CR>"
params: []
- id: audio_mode_user
label: Audio Mode User
kind: action
command: "&AUD:USR<CR>"
params: []
- id: audio_mode_music
label: Audio Mode Music
kind: action
command: "&AUD:MUS<CR>"
params: []
- id: audio_mode_movie
label: Audio Mode Movie
kind: action
command: "&AUD:MOV<CR>"
params: []
- id: audio_mode_sports
label: Audio Mode Sports
kind: action
command: "&AUD:SPR<CR>"
params: []
- id: bass_up
label: Bass +
kind: action
command: "&BAS:UP*<CR>"
params: []
- id: bass_down
label: Bass -
kind: action
command: "&BAS:DN*<CR>"
params: []
- id: bass_query
label: Get Bass Level
kind: query
command: "&BAS?***<CR>"
params: []
- id: treble_up
label: Treble +
kind: action
command: "&TRB:UP*<CR>"
params: []
- id: treble_down
label: Treble -
kind: action
command: "&TRB:DN*<CR>"
params: []
- id: treble_query
label: Get Treble Level
kind: query
command: "&TRB?***<CR>"
params: []
- id: balance_left
label: Balance Left
kind: action
command: "&BAL:LT*<CR>"
params: []
- id: balance_right
label: Balance Right
kind: action
command: "&BAL:RT*<CR>"
params: []
- id: balance_query
label: Get Balance Level
kind: query
command: "&BAL?***<CR>"
params: []
- id: boot_volume_up
label: Boot Volume Level +
kind: action
command: "&BVL:UP*<CR>"
params: []
- id: boot_volume_down
label: Boot Volume Level -
kind: action
command: "&BVL:DN*<CR>"
params: []
- id: boot_volume_query
label: Get Boot Volume Level
kind: query
command: "&BVL?***<CR>"
params: []
- id: echo_on
label: Set RS232 Echo On
kind: action
command: "&ECO:ON*<CR>"
params: []
- id: echo_off
label: Set RS232 Echo Off
kind: action
command: "&ECO:OFF<CR>"
params: []
Feedbacks
- id: power_state
type: enum
values: [ON*, OFF]
response_template: "%PWR:XXX<CR>"
- id: boot_setup_state
type: enum
values: [ON*, SBY, LST]
response_template: "%BOT:XXX<CR>"
- id: signal_loss_state
type: enum
values: [05s, 10s, 30s, 01m, 02m, OFF]
response_template: "%SLS:XXX<CR>"
- id: sleep_timer_state
type: enum
values: [015, 030, 045, 060, 090, 120, OFF]
response_template: "%SLP:XXX<CR>"
- id: volume_level
type: integer
range: [0, 100]
response_template: "%VOL:XXX<CR>"
- id: mute_state
type: enum
values: [ON*, OFF]
response_template: "%MUT:XXX<CR>"
- id: osd_access_state
type: enum
values: [ON*, OFF]
response_template: "%OSA:XXX<CR>"
- id: osd_state
type: enum
values: [ON*, OFF]
response_template: "%OSD:XXX<CR>"
- id: input_state
type: enum
values: [HD1, HD2, HD3, RGB, USB]
response_template: "%SRC:XXX<CR>"
- id: aspect_state
type: enum
values: [169, "043", ZM1, ZM2]
response_template: "%ASP:XXX<CR>"
- id: brightness_level
type: integer
range: [0, 100]
response_template: "%BRT:XXX<CR>"
- id: contrast_level
type: integer
range: [0, 100]
response_template: "%CON:XXX<CR>"
- id: saturation_level
type: integer
range: [0, 100]
response_template: "%STR:XXX<CR>"
- id: sharpness_level
type: integer
range: [0, 100]
response_template: "%SRP:XXX<CR>"
- id: backlight_level
type: integer
range: [0, 100]
response_template: "%BLT:XXX<CR>"
- id: bass_level
type: integer
range: [0, 100]
response_template: "%BAS:XXX<CR>"
- id: treble_level
type: integer
range: [0, 100]
response_template: "%TRB:XXX<CR>"
- id: balance_level
type: integer
range: [-50, 50]
response_template: "%BAL:XXX<CR>"
- id: boot_volume_level
type: integer
range: [0, 100]
response_template: "%BVL:XXX<CR>"
- id: error_response
type: enum
values: ["!ERR:001", "!ERR:002", "!ERR:003", "!ERR:004"]
description: >
Error response prefixed with `!`. 001=Access denied (command disabled by unit settings);
002=Not available (command currently not available); 003=Not implemented;
004=Value out of range.
Variables
# UNRESOLVED: no directly-settable numeric variables documented - levels are mutated only via UP/DN actions in the source.
Events
# UNRESOLVED: source documents only solicited acknowledgements (`%...`) and error replies (`!ERR:...`); no unsolicited notifications described.
Macros
# UNRESOLVED: no multi-step macro sequences described in source.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no safety warnings, interlock procedures, or power-on sequencing beyond timing constraints (see Notes).
Notes
- Command framing: every command is exactly 9 bytes including the trailing
<CR>(0x0D). Header is&for commands and%for acknowledgements. Identifier is 3 ASCII bytes, case sensitive. Separator is:(set) or?(query). Value field is 3 bytes; short values are right-padded with*. - Acknowledgement is ON by default and can be toggled with
&ECO:ON*/&ECO:OFF. - Error replies start with
!and follow the same length rules; seeerror_responsefeedback. - Timing constraints from source: wait 10 s after power-on before first command; wait for response before next command; minimum 2 s before resending if no response; minimum 500 ms between commands; minimum 5 s pause after every 20 commands.
- Baud rate is configurable in the OSD service menu among 9600 / 19200 / 38400; spec lists the documented default of 38400.
- Wiring (null-modem DE-9): host pin 2↔DFU pin 3, host pin 3↔DFU pin 2, host pin 5↔DFU pin 5.
Provenance
source_domains:
- ad-notam.com
source_urls:
- https://www.ad-notam.com/download/RS232/ad_notam_RS232_protocol_DFU.pdf
- https://www.ad-notam.com/attachment/741/download/td_dfu_rs232-protocol_v4-1_ascii-format_20150901.pdf
retrieved_at: 2026-05-04T15:17:36.583Z
last_checked_at: 2026-06-02T21:39:34.282Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T21:39:34.282Z
matched_actions: 112
action_count: 112
confidence: medium
summary: "All 112 spec actions matched literally in source command table; transport parameters (38400 baud default + 9600/19200/38400 options, 8 data bits, no parity, 1 stop bit, no flow control) all verified; source command inventory fully represented. (6 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "no directly-settable numeric variables documented - levels are mutated only via UP/DN actions in the source."
- "source documents only solicited acknowledgements (`%...`) and error replies (`!ERR:...`); no unsolicited notifications described."
- "no multi-step macro sequences described in source."
- "source contains no safety warnings, interlock procedures, or power-on sequencing beyond timing constraints (see Notes)."
- "firmware version compatibility not stated in source."
- "physical / electrical specs (voltage, current, port pinout beyond Rx/Tx/GND) not in source."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0