Summary

Hisense commercial digital signage and interactive touch displays support RS-232 control. Three protocol variants exist: E SERIES (115200 baud, wake-on-LAN for power-on), M SERIES (9600 baud, 12-byte commands with XOR check), and WR SERIES (9600 baud, 9-byte commands with XOR check). Command syntax is HEX-encoded binary; no ASCII. The 100U75QGB consumer TV model is not directly covered by this source — this spec documents the commercial signage protocol family.

Transport

protocols:
  - serial
serial:
  baud_rate: 115200  # E SERIES; M/WR SERIES use 9600
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none
auth:
  type: none  # inferred: no auth procedure in source

Traits

- powerable      # power on/off commands present (E/M/WR)
- routable       # input selection commands present (E/M/WR)
- levelable      # volume, brightness settable (E/M/WR)
- queryable      # query commands for power state, input, volume (E/M/WR)

Actions

# E SERIES (baud 115200)
# Format: A6 xx [data...] yy  where xx=screen ID, yy=XOR check bit
- id: e_power_on
  label: E Series Power On
  kind: action
  params:
    - name: screen_id
      type: integer
      description: Screen ID 01-FF; 00 = broadcast
  notes: UART Wake On must be enabled on display
  hex: "A6 xx 00 00 00 04 01 18 02 yy"
  example: "A6 01 00 00 00 04 01 18 02 B8"

- id: e_power_off
  label: E Series Power Off
  kind: action
  params:
    - name: screen_id
      type: integer
      description: Screen ID 01-FF
  hex: "A6 xx 00 00 00 04 01 18 01 yy"
  example: "A6 01 00 00 00 04 01 18 01 BB"

- id: e_hdmi1_input
  label: E Series HDMI 1 Input
  kind: action
  params:
    - name: screen_id
      type: integer
      description: Screen ID 01-FF
  hex: "A6 xx 00 00 00 04 01 AC 0D yy"
  example: "A6 01 00 00 00 04 01 AC 0D 03"

- id: e_hdmi2_input
  label: E Series HDMI 2 Input
  kind: action
  params:
    - name: screen_id
      type: integer
      description: Screen ID 01-FF
  hex: "A6 xx 00 00 00 04 01 AC 06 yy"

- id: e_ops_input
  label: E Series OPS Input
  kind: action
  params:
    - name: screen_id
      type: integer
      description: Screen ID 01-FF
  hex: "A6 xx 00 00 00 04 01 AC 0B yy"

- id: e_cms_input
  label: E Series CMS Input
  kind: action
  params:
    - name: screen_id
      type: integer
      description: Screen ID 01-FF
  hex: "A6 xx 00 00 00 04 01 AC 15 yy"

- id: e_pdf_input
  label: E Series PDF Input
  kind: action
  params:
    - name: screen_id
      type: integer
      description: Screen ID 01-FF
  hex: "A6 xx 00 00 00 04 01 AC 17 yy"

- id: e_media_input
  label: E Series Media Input
  kind: action
  params:
    - name: screen_id
      type: integer
      description: Screen ID 01-FF
  hex: "A6 xx 00 00 00 04 01 AC 16 yy"

- id: e_usb_input
  label: E Series USB Input
  kind: action
  params:
    - name: screen_id
      type: integer
      description: Screen ID 01-FF
  hex: "A6 xx 00 00 00 04 01 AC 0C yy"

- id: e_set_volume
  label: E Series Set Volume
  kind: action
  params:
    - name: screen_id
      type: integer
      description: Screen ID 01-FF
    - name: level
      type: integer
      description: Volume level 0-100 (hex 00-64)
  hex: "A6 xx 00 00 00 04 01 44 vv yy"
  example: "A6 01 00 00 00 04 01 44 4D AB"  # vv=4D = volume 77

- id: e_set_mains_mode
  label: E Series Set Mains Application Mode
  kind: action
  params:
    - name: screen_id
      type: integer
      description: Screen ID 01-FF
    - name: mode
      type: integer
      description: 00=Standby, 01=Power On, 02=Last known state
  hex: "A6 xx 00 00 00 04 01 A3 ww yy"

- id: e_query_input
  label: E Series Query Input Selection
  kind: action
  params:
    - name: screen_id
      type: integer
      description: Screen ID 01-FF
  hex: "A6 xx 00 00 00 03 01 AD yy"
  response: "zz = 0D HDMI1, 06 HDMI2, 0B OPS, 15 CMS, 17 PDF, 16 Media, 0C USB, 14 Home"

- id: e_query_power_state
  label: E Series Query Power State
  kind: action
  params:
    - name: screen_id
      type: integer
      description: Screen ID 01-FF
  hex: "A6 xx 00 00 00 03 01 19 yy"
  response: "zz = 01 Off, 02 On"

- id: e_query_sw_version
  label: E Series Query Software Version
  kind: action
  params:
    - name: screen_id
      type: integer
      description: Screen ID 01-FF
  hex: "A6 xx 00 00 00 04 01 A2 02 yy"

- id: e_query_volume
  label: E Series Query Volume Level
  kind: action
  params:
    - name: screen_id
      type: integer
      description: Screen ID 01-FF
  hex: "A6 xx 00 00 00 03 01 45 yy"

# E SERIES navigation (no screen_id prefix; fixed check byte)
- id: e_source_menu
  label: E Series Source Menu
  kind: action
  params: []
  hex: "A6 01 00 00 00 05 01 B0 00 FA"

- id: e_settings_menu
  label: E Series Settings Menu
  kind: action
  params: []
  hex: "A6 01 00 00 00 05 01 B0 00 FD"

- id: e_up
  label: E Series Up
  kind: action
  params: []
  hex: "A6 01 00 00 00 05 01 B0 00 67"

- id: e_down
  label: E Series Down
  kind: action
  params: []
  hex: "A6 01 00 00 00 05 01 B0 00 6C"

- id: e_ok
  label: E Series Ok
  kind: action
  params: []
  hex: "A6 01 00 00 00 05 01 B0 00 1C"

- id: e_right
  label: E Series Right
  kind: action
  params: []
  hex: "A6 01 00 00 00 05 01 B0 00 6A"

- id: e_left
  label: E Series Left
  kind: action
  params: []
  hex: "A6 01 00 00 00 05 01 B0 00 69"

- id: e_home
  label: E Series Home
  kind: action
  params: []
  hex: "A6 01 00 00 00 05 01 B0 00 66"

- id: e_vol_up
  label: E Series Volume Up
  kind: action
  params: []
  hex: "A6 01 00 00 00 05 01 B0 00 73"

- id: e_vol_down
  label: E Series Volume Down
  kind: action
  params: []
  hex: "A6 01 00 00 00 05 01 B0 00 72"

- id: e_return
  label: E Series Return
  kind: action
  params: []
  hex: "A6 01 00 00 00 05 01 B0 00 0A"

- id: e_back
  label: E Series Back
  kind: action
  params: []
  hex: "A6 01 00 00 00 05 01 B0 00 09"

- id: e_num_0
  label: E Series Num 0
  kind: action
  params: []
  hex: "A6 01 00 00 00 05 01 B0 00 30"

- id: e_num_1
  label: E Series Num 1
  kind: action
  params: []
  hex: "A6 01 00 00 00 05 01 B0 00 31"

- id: e_num_2
  label: E Series Num 2
  kind: action
  params: []
  hex: "A6 01 00 00 00 05 01 B0 00 32"

- id: e_num_3
  label: E Series Num 3
  kind: action
  params: []
  hex: "A6 01 00 00 00 05 01 B0 00 33"

- id: e_num_4
  label: E Series Num 4
  kind: action
  params: []
  hex: "A6 01 00 00 00 05 01 B0 00 34"

- id: e_num_5
  label: E Series Num 5
  kind: action
  params: []
  hex: "A6 01 00 00 00 05 01 B0 00 35"

- id: e_num_6
  label: E Series Num 6
  kind: action
  params: []
  hex: "A6 01 00 00 00 05 01 B0 00 36"

- id: e_num_7
  label: E Series Num 7
  kind: action
  params: []
  hex: "A6 01 00 00 00 05 01 B0 00 37"

- id: e_num_8
  label: E Series Num 8
  kind: action
  params: []
  hex: "A6 01 00 00 00 05 01 B0 00 38"

- id: e_num_9
  label: E Series Num 9
  kind: action
  params: []
  hex: "A6 01 00 00 00 05 01 B0 00 39"

- id: e_ch_up
  label: E Series Channel Up
  kind: action
  params: []
  hex: "A6 01 00 00 00 05 01 B0 00 63"

- id: e_ch_down
  label: E Series Channel Down
  kind: action
  params: []
  hex: "A6 01 00 00 00 05 01 B0 00 64"

- id: e_subtitle
  label: E Series Subtitle
  kind: action
  params: []
  hex: "A6 01 00 00 00 05 01 B0 00 71"

# M SERIES (baud 9600)
# Format: DD FF 00 LL C1 SS 00 00 xx VV yy BB CC [response] CD CD
# where xx=device ID, VV=data, yy=XOR check
- id: m_power_on
  label: M Series Power On
  kind: action
  params:
    - name: device_id
      type: integer
      description: Device ID 01-FF in hex
  hex: "DD FF 00 08 C1 15 00 00 xx BB BB yy BB CC"
  example: "DD FF 00 08 C1 15 00 00 01 BB BB DD BB CC"
  response: "DD BB CC AB AB 00 08 C1 15 00 00 xx BB BB yy CD CD"

- id: m_power_off
  label: M Series Power Off
  kind: action
  params:
    - name: device_id
      type: integer
      description: Device ID 01-FF in hex
  hex: "DD FF 00 08 C1 15 00 00 xx AA AA yy BB CC"
  response: "DD BB CC AB AB 00 08 C1 15 00 00 xx AA AA yy CD CD"

- id: m_displayport_input
  label: M Series DisplayPort Input
  kind: action
  params:
    - name: device_id
      type: integer
      description: Device ID 01-FF in hex
  hex: "DD FF 00 07 C1 08 00 00 xx 16 yy BB CC"
  response: "CD CD"

- id: m_vga_input
  label: M Series VGA Input
  kind: action
  params:
    - name: device_id
      type: integer
      description: Device ID 01-FF in hex
  hex: "DD FF 00 07 C1 08 00 00 xx 17 yy BB CC"
  response: "CD CD"

- id: m_hdmi_input
  label: M Series HDMI Input
  kind: action
  params:
    - name: device_id
      type: integer
      description: Device ID 01-FF in hex
  hex: "DD FF 00 07 C1 08 00 00 xx 08 yy BB CC"
  response: "CD CD"

- id: m_dvi_input
  label: M Series DVI Input
  kind: action
  params:
    - name: device_id
      type: integer
      description: Device ID 01-FF in hex
  hex: "DD FF 00 07 C1 08 00 00 xx 09 yy BB CC"
  response: "CD CD"

- id: m_mute_audio_on
  label: M Series Mute Audio On
  kind: action
  params:
    - name: device_id
      type: integer
      description: Device ID 01-FF in hex
  hex: "DD FF 00 07 C1 26 00 00 xx 01 yy BB CC"

- id: m_mute_audio_off
  label: M Series Mute Audio Off
  kind: action
  params:
    - name: device_id
      type: integer
      description: Device ID 01-FF in hex
  hex: "DD FF 00 07 C1 26 00 00 xx 00 yy BB CC"

- id: m_set_volume
  label: M Series Set Volume
  kind: action
  params:
    - name: device_id
      type: integer
      description: Device ID 01-FF in hex
    - name: level
      type: integer
      description: Volume level 0-100 in hex
  hex: "DD FF 00 07 C1 27 00 00 xx vv yy BB CC"

- id: m_query_status
  label: M Series Query Status
  kind: action
  params:
    - name: device_id
      type: integer
      description: Device ID 01-FF in hex
  hex: "DD FF 00 06 C1 28 00 00 xx yy BB CC"
  response: "aa=volume, bb cc=input (05 02 DVI, 05 03 displayport, 05 04 HDMI, 08 01 VGA), dd=power (00 on, FF off), ee=mute (01 muted, 00 unmuted), ff=signal (00 absent, 01 present)"

# WR SERIES (baud 9600)
# Format: DD FF [addr bytes] C1 SS [data] xx [check] BB CC / CD CD
- id: wr_power_on
  label: WR Series Power On
  kind: action
  params: []
  hex: "DD FF 01 04 A1 00 00 00 BB CC AB AB 01 04 A1 00 00 00 CD CD"
  feedback: "CD CD"

- id: wr_power_off
  label: WR Series Power Off
  kind: action
  params: []
  hex: "DD FF 01 04 A1 01 00 00 BB CC AB AB 01 04 A1 01 00 00 CD CD"

- id: wr_pc_input
  label: WR Series PC Input
  kind: action
  params: []
  hex: "DD FF 00 07 C1 08 00 00 01 04 CB BB CC AB AB 00 07 C1 08 00 00 01 04 CB BB CC"
  response: "CD CD"

- id: wr_hdmi1_input
  label: WR Series HDMI 1 Input
  kind: action
  params: []
  hex: "DD FF 00 07 C1 08 00 00 01 05 CA BB CC AB AB 00 07 C1 08 00 00 01 05 CA BB CC"

- id: wr_hdmi2_input
  label: WR Series HDMI 2 Input
  kind: action
  params: []
  hex: "DD FF 00 07 C1 08 00 00 01 06 C9 BB CC AB AB 00 07 C1 08 00 00 01 06 C9 BB CC"

- id: wr_vga_input
  label: WR Series VGA Input
  kind: action
  params: []
  hex: "DD FF 00 07 C1 08 00 00 01 07 C8 BB CC AB AB 00 07 C1 08 00 00 01 07 C8 BB CC"

- id: wr_displayport_input
  label: WR Series DisplayPort Input
  kind: action
  params: []
  hex: "DD FF 00 07 C1 08 00 00 01 0B C4 BB CC AB AB 00 07 C1 08 00 00 01 0B C4 BB CC"

- id: wr_reboot
  label: WR Series Reboot TV
  kind: action
  params: []
  hex: "DD FF 00 06 C1 1E 00 00 01 D8 BB CC AB AB 00 06 C1 1E 00 00 01 CD CD"

- id: wr_set_volume
  label: WR Series Set Volume
  kind: action
  params:
    - name: level
      type: integer
      description: Volume value (hex)
  hex: "DD FF 01 04 A1 07 00 xx BB CC AB AB 01 04 A1 07 00 xx CD CD"
  feedback: "CD CD"

- id: wr_video_mute_on
  label: WR Series Video Mute On
  kind: action
  params: []
  hex: "DD FF 00 07 C1 31 00 00 01 00 F6 BB CC AB AB 00 07 C1 31 00 00 01 00 F6 CD CD"

- id: wr_video_mute_off
  label: WR Series Video Mute Off
  kind: action
  params: []
  hex: "DD FF 00 07 C1 31 00 00 01 01 F7 BB CC AB AB 00 07 C1 31 00 00 01 01 F7 CD CD"

- id: wr_set_brightness
  label: WR Series Set Brightness
  kind: action
  params:
    - name: level
      type: integer
      description: Brightness value (hex)
  hex: "DD FF 01 04 A1 08 00 xx BB CC AB AB 01 04 A1 08 00 00 CD CD"
  feedback: "CD CD"

- id: wr_set_date
  label: WR Series Set Date
  kind: action
  params:
    - name: year
      type: integer
      description: Year (ww)
    - name: month
      type: integer
      description: Month (xx)
    - name: day
      type: integer
      description: Day (yy)
    - name: check
      type: integer
      description: XOR check bit (zz)
  hex: "DD FF 00 09 C1 1C 00 00 01 ww xx yy zz BB CC AB AB 00 09 C1 1C 00 00 01 ww xx yy zz CD CD"

- id: wr_set_time
  label: WR Series Set Time
  kind: action
  params:
    - name: hour
      type: integer
      description: Hour (ww)
    - name: minute
      type: integer
      description: Minute (xx)
    - name: second
      type: integer
      description: Seconds (yy)
    - name: check
      type: integer
      description: XOR check bit (zz)
  hex: "DD FF 00 09 C1 1D 00 00 01 ww xx yy zz BB CC AB AB 00 09 C1 1D 00 00 01 ww xx yy zz CD CD"

- id: wr_query_input
  label: WR Series Query Input Selection
  kind: action
  params: []
  hex: "DD FF 00 06 C1 1A 00 00 01 DC BB CC AB AB 00 09 C1 1A 00 00 01 ww xx yy zz CD CD"
  response: "05 03 02=PC, 06 04 00=VGA, 05 05 00=HDMI1, 05 03 01=HDMI2, 05 03 03=Displayport"

- id: wr_query_power_state
  label: WR Series Query Power State
  kind: action
  params: []
  hex: "DD FF 00 06 C1 32 00 00 01 F4 BB CC AB AB 00 07 C1 32 00 00 01 xx yy CD CD"
  response: "xx=00 off, 01 on"

- id: wr_query_sw_version
  label: WR Series Query Software Version
  kind: action
  params: []
  hex: "DD FF 00 06 C1 1B 00 00 01 DD BB CC AB AB 00 07 C1 1B 00 00 01 xx yy CD CD"

- id: wr_query_volume
  label: WR Series Query Volume Level
  kind: action
  params: []
  hex: "DD FF 00 06 C1 33 00 00 01 E0 BB CC AB AB 00 07 C1 33 00 00 01 xx yy CD CD"
  response: "xx=volume level"

Feedbacks

# E SERIES feedback (echoed command with computed check bit)
- id: e_feedback
  label: E Series Command Echo
  type: string
  description: Echoes the sent command with computed check bit yy

# M SERIES status query response breakdown
- id: m_status_response
  label: M Series Status Response
  type: object
  fields:
    aa: Volume level
    bb_cc: Input source (05 02=DVI, 05 03=displayport, 05 04=HDMI, 08 01=VGA)
    dd: Power state (00=on, FF=off)
    ee: Mute state (01=muted, 00=unmuted)
    ff: Signal presence (00=absent, 01=present)

# WR SERIES responses
- id: wr_command_ack
  label: WR Series Command Ack
  type: string
  description: "CD CD" acknowledgement byte pair
- id: wr_query_input_response
  label: WR Series Input Query Response
  type: object
  fields:
    source: Input source code (05 03 02=PC, 06 04 00=VGA, 05 05 00=HDMI1, 05 03 01=HDMI2, 05 03 03=Displayport)
- id: wr_query_power_response
  label: WR Series Power Query Response
  type: object
  fields:
    state: Power state (00=off, 01=on)

Variables

# E SERIES levelable parameters
- id: e_volume
  label: E Series Volume
  type: integer
  range: [0, 100]
  default: 0

# M SERIES levelable parameters
- id: m_volume
  label: M Series Volume
  type: integer
  range: [0, 100]
  default: 0

# WR SERIES levelable parameters
- id: wr_volume
  label: WR Series Volume
  type: integer
  range: [0, 100]
  default: 0
- id: wr_brightness
  label: WR Series Brightness
  type: integer
  range: [0, 100]
  default: 0
- id: wr_date
  label: WR Series Date
  type: object
  fields:
    year: integer
    month: integer
    day: integer
- id: wr_time
  label: WR Series Time
  type: object
  fields:
    hour: integer
    minute: integer
    second: integer

Events

# UNRESOLVED: source does not describe unsolicited event notifications

Macros

# UNRESOLVED: no explicit multi-step macros described in source

Safety

confirmation_required_for: []
interlocks:
  - id: e_wake_on lan
    description: |
      E SERIES Power On command (A6 xx ... 18 02 yy) requires UART Wake On 
      feature to be enabled on the display. Without this setting, the power-on 
      command will have no effect.
      Source: "Uart Wake On function must be On" - External RS232 Control Guide

Notes

Three distinct RS-232 protocol variants documented for Hisense commercial display series.

E SERIES — 115200 baud, 9-byte commands, XOR check bit, supports full IR-emulation navigation + input/volume/power control. Check bit calculated over all bytes highlighted in red in the source table.

M SERIES — 9600 baud, 12-byte commands, XOR check bit, supports power, input, audio mute, volume, and status query. Status query returns full state block (volume, input, power, mute, signal).

WR SERIES — 9600 baud, 9-byte commands, XOR check bit, adds date/time setting, brightness control, video mute, and reboot. Input query returns encoded source tuple.

XOR check calculation — all three series use XOR of specific bytes (highlighted in green/red in source) to generate the check bit. Example calculator: https://onlinehextools.com/xor-hex-numbers. The check bit value changes with screen/device ID.

100U75QGB compatibility note — this source covers E/M/WR commercial signage series. The consumer TV model 100U75QGB was not directly documented; family compatibility is inferred from manufacturer lineage only. Consumer TV models may use different command syntax.

Provenance

source_domains:
  - hisense-b2b.com
source_urls:
  - "https://www.hisense-b2b.com/Attachment/DownloadFile?downloadId=5"
  - "https://www.hisense-b2b.com/Attachment/DownloadFile?downloadId=698"
  - https://www.hisense-b2b.com
retrieved_at: 2026-05-14T10:38:42.272Z
last_checked_at: 2026-06-02T21:41:49.082Z

Verification Summary

verdict: verified
checked_at: 2026-06-02T21:41:49.082Z
matched_actions: 68
action_count: 68
confidence: medium
summary: "All 68 spec actions match verbatim source hex sequences across E/M/WR series; e_power_off byte 6 now correctly 04; transport verified; source fully represented. (7 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "100U75QGB consumer TV series not present in source; compatibility inferred from manufacturer family only"
- "source does not describe unsolicited event notifications"
- "no explicit multi-step macros described in source"
- "IP control protocol for this model not in source; prior attempt noted IP control guide at hisense-b2b.com but it was not retrieved for this spec"
- "specific 100U75QGB RS-232 command protocol not confirmed; used commercial signage protocol family"
- "firmware version compatibility not stated in source"
- "TCP/IP port number not stated in source (TCP not supported by this doc)"

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