Summary
Sharp/NEC projector (Ma431 Mpi4E) control spec covering RS-232C serial and wired/wireless LAN (TCP) interfaces. Source is the Projector Control Command Reference Manual (BDT140013 Rev 7.1), documenting 53 binary commands (power, input switch, mutes, lens control, status queries, edge blending, PIP/PbP, network settings). Binary frames carry a trailing checksum byte.
Transport
protocols:
- tcp
- serial
# Source documents both serial (PC CONTROL port) and LAN (wired/wireless) connections.
addressing:
port: 7142
serial:
baud_rate: null # UNRESOLVED: multiple rates supported - 115200/38400/19200/9600/4800 bps; source does not state a default
data_bits: 8
parity: none
stop_bits: 1
flow_control: none # UNRESOLVED: communication mode stated as "Full duplex"; flow_control value not explicitly stated
auth:
type: none # inferred: no auth procedure in source
Traits
traits:
- powerable # inferred: POWER ON (015) / POWER OFF (016) commands present
- queryable # inferred: many *REQUEST commands returning state present
- levelable # inferred: PICTURE ADJUST / VOLUME ADJUST / OTHER ADJUST present
- routable # inferred: INPUT SW CHANGE (018) switches input terminal
Actions
- id: error_status_request
label: "009. ERROR STATUS REQUEST"
kind: query
command: "00h 88h 00h 00h 00h 88h"
params: []
notes: "Response DATA01-DATA12 carry error bitfields (cover, fan, temp, lamp, mirror cover, interlock switch, etc.)."
- id: power_on
label: "015. POWER ON"
kind: action
command: "02h 00h 00h 00h 00h 02h"
params: []
notes: "No other command accepted while power-on in progress."
- id: power_off
label: "016. POWER OFF"
kind: action
command: "02h 01h 00h 00h 00h 03h"
params: []
notes: "No other command accepted during power-off (including cooling time)."
- id: input_sw_change
label: "018. INPUT SW CHANGE"
kind: action
command: "02h 03h 00h 00h 02h 01h {data01} {cks}"
params:
- name: data01
type: integer
description: "Input terminal code (e.g. 06h = video port). Full value list in Appendix 'Supplementary Information by Command'."
notes: "Checksum {cks} = low byte of sum of all preceding bytes. Example for video port: 02h 03h 00h 00h 02h 01h 06h 0Eh. Response DATA01=FFh means ended with error (no signal switch)."
- id: picture_mute_on
label: "020. PICTURE MUTE ON"
kind: action
command: "02h 10h 00h 00h 00h 12h"
params: []
notes: "Cleared by input terminal switch or video signal switch."
- id: picture_mute_off
label: "021. PICTURE MUTE OFF"
kind: action
command: "02h 11h 00h 00h 00h 13h"
params: []
- id: sound_mute_on
label: "022. SOUND MUTE ON"
kind: action
command: "02h 12h 00h 00h 00h 14h"
params: []
notes: "Cleared by input terminal switch, video signal switch, or volume adjustment."
- id: sound_mute_off
label: "023. SOUND MUTE OFF"
kind: action
command: "02h 13h 00h 00h 00h 15h"
params: []
- id: onscreen_mute_on
label: "024. ONSCREEN MUTE ON"
kind: action
command: "02h 14h 00h 00h 00h 16h"
params: []
notes: "Cleared by input terminal switch or video signal switch."
- id: onscreen_mute_off
label: "025. ONSCREEN MUTE OFF"
kind: action
command: "02h 15h 00h 00h 00h 17h"
params: []
- id: picture_adjust
label: "030-1. PICTURE ADJUST"
kind: action
command: "03h 10h 00h 00h 05h {data01} FFh {data02} {data03} {data04} {cks}"
params:
- name: data01
type: integer
description: "Adjustment target: 00h=Brightness, 01h=Contrast, 02h=Color, 03h=Hue, 04h=Sharpness"
- name: data02
type: integer
description: "Adjustment mode: 00h=absolute, 01h=relative"
- name: data03
type: integer
description: "Adjustment value (low-order 8 bits)"
- name: data04
type: integer
description: "Adjustment value (high-order 8 bits)"
notes: "Example set brightness to 10: 03h 10h 00h 00h 05h 00h FFh 00h 0Ah 00h 21h. Response DATA01-DATA02=0000h means success."
- id: volume_adjust
label: "030-2. VOLUME ADJUST"
kind: action
command: "03h 10h 00h 00h 05h 05h 00h {data01} {data02} {data03} {cks}"
params:
- name: data01
type: integer
description: "Adjustment mode: 00h=absolute, 01h=relative"
- name: data02
type: integer
description: "Adjustment value (low-order 8 bits)"
- name: data03
type: integer
description: "Adjustment value (high-order 8 bits)"
notes: "Example set volume to 10: 03h 10h 00h 00h 05h 05h 00h 00h 0Ah 00h 27h."
- id: aspect_adjust
label: "030-12. ASPECT ADJUST"
kind: action
command: "03h 10h 00h 00h 05h 18h 00h 00h {data01} 00h {cks}"
params:
- name: data01
type: integer
description: "Aspect value. Full list in Appendix 'Supplementary Information by Command'."
notes: "Response DATA01-DATA02=0000h means success."
- id: other_adjust
label: "030-15. OTHER ADJUST"
kind: action
command: "03h 10h 00h 00h 05h {data01} {data02} {data03} {data04} {data05} {cks}"
params:
- name: data01
type: integer
description: "Adjustment target high byte (DATA01=96h for LAMP ADJUST / LIGHT ADJUST)"
- name: data02
type: integer
description: "Adjustment target low byte (DATA02=FFh for LAMP/LIGHT ADJUST)"
- name: data03
type: integer
description: "Adjustment mode: 00h=absolute, 01h=relative"
- name: data04
type: integer
description: "Adjustment value (low-order 8 bits)"
- name: data05
type: integer
description: "Adjustment value (high-order 8 bits)"
notes: "Only documented target is LAMP ADJUST / LIGHT ADJUST (DATA01=96h, DATA02=FFh)."
- id: information_request
label: "037. INFORMATION REQUEST"
kind: query
command: "03h 8Ah 00h 00h 00h 8Dh"
params: []
notes: "Response: DATA01-49=projector name (NUL-terminated), DATA83-86=lamp usage time (seconds), DATA87-90=filter usage time (seconds). Updated at 1-minute intervals."
- id: filter_usage_information_request
label: "037-3. FILTER USAGE INFORMATION REQUEST"
kind: query
command: "03h 95h 00h 00h 00h 98h"
params: []
notes: "Response: DATA01-04=filter usage time (seconds), DATA05-08=filter alarm start time (seconds); '-1' if undefined."
- id: lamp_information_request_3
label: "037-4. LAMP INFORMATION REQUEST 3"
kind: query
command: "03h 96h 00h 00h 02h {data01} {data02} {cks}"
params:
- name: data01
type: integer
description: "Lamp: 00h=Lamp 1, 01h=Lamp 2 (two-lamp models only)"
- name: data02
type: integer
description: "Content: 01h=lamp usage time (seconds), 04h=lamp remaining life (%)"
notes: "Eco mode affects values. Negative remaining life if replacement deadline exceeded. Example (lamp 1 usage): 03h 96h 00h 00h 02h 00h 01h 9Ch."
- id: carbon_savings_information_request
label: "037-6. CARBON SAVINGS INFORMATION REQUEST"
kind: query
command: "03h 9Ah 00h 00h 01h {data01} {cks}"
params:
- name: data01
type: integer
description: "00h=Total Carbon Savings, 01h=Carbon Savings during operation"
notes: "Response: DATA02-05=kg (max 99999), DATA06-09=mg (max 999999)."
- id: remote_key_code
label: "050. REMOTE KEY CODE"
kind: action
command: "02h 0Fh 00h 00h 02h {data01} {data02} {cks}"
params:
- name: data01
type: integer
description: "Key code low byte (WORD type). Documented: 02h/03h=POWER ON/OFF, 05h=AUTO, 06h=MENU, 07h=UP, 08h=DOWN, 09h=RIGHT, 0Ah=LEFT, 0Bh=ENTER, 0Ch=EXIT, 0Dh=HELP, 0Fh=MAGNIFY UP, 10h=MAGNIFY DOWN, 13h=MUTE, 29h=PICTURE, 4Bh=COMPUTER1, 4Ch=COMPUTER2, 4Fh=VIDEO1, 51h=S-VIDEO1, 84h=VOLUME UP, 85h=VOLUME DOWN, 8Ah=FREEZE, A3h=ASPECT, D7h=SOURCE, EEh=LAMP MODE/ECO"
- name: data02
type: integer
description: "Key code high byte (00h for all listed keys)"
notes: "Example AUTO: 02h 0Fh 00h 00h 02h 05h 00h 18h. Response DATA01=FFh means ended with error."
- id: shutter_close
label: "051. SHUTTER CLOSE"
kind: action
command: "02h 16h 00h 00h 00h 18h"
params: []
- id: shutter_open
label: "052. SHUTTER OPEN"
kind: action
command: "02h 17h 00h 00h 00h 19h"
params: []
- id: lens_control
label: "053. LENS CONTROL"
kind: action
command: "02h 18h 00h 00h 02h {data01} {data02} {cks}"
params:
- name: data01
type: integer
description: "Adjustment target; 06h=Periphery Focus (only documented value)"
- name: data02
type: integer
description: "00h=Stop, 01h=+1s, 02h=+0.5s, 03h=+0.25s, 7Fh=plus (continuous), 81h=minus (continuous), FDh=-0.25s, FEh=-0.5s, FFh=-1s"
notes: "After 7Fh/81h, send 00h to stop driving. Same command can be re-issued while lens driving without a stop."
- id: lens_control_request
label: "053-1. LENS CONTROL REQUEST"
kind: query
command: "02h 1Ch 00h 00h 02h {data01} 00h {cks}"
params:
- name: data01
type: integer
description: "Adjustment target"
notes: "Response: DATA02-03=upper limit, DATA04-05=lower limit, DATA06-07=current value."
- id: lens_control_2
label: "053-2. LENS CONTROL 2"
kind: action
command: "02h 1Dh 00h 00h 04h {data01} {data02} {data03} {data04} {cks}"
params:
- name: data01
type: integer
description: "Target; FFh=Stop (mode/value ignored)"
- name: data02
type: integer
description: "Adjustment mode: 00h=absolute, 02h=relative"
- name: data03
type: integer
description: "Adjustment value (low-order 8 bits)"
- name: data04
type: integer
description: "Adjustment value (high-order 8 bits)"
- id: lens_memory_control
label: "053-3. LENS MEMORY CONTROL"
kind: action
command: "02h 1Eh 00h 00h 01h {data01} {cks}"
params:
- name: data01
type: integer
description: "00h=MOVE, 01h=STORE, 02h=RESET"
notes: "Response DATA02=FFh means ended with error."
- id: reference_lens_memory_control
label: "053-4. REFERENCE LENS MEMORY CONTROL"
kind: action
command: "02h 1Fh 00h 00h 01h {data01} {cks}"
params:
- name: data01
type: integer
description: "00h=MOVE, 01h=STORE, 02h=RESET"
notes: "Operates on the profile selected by 053-10 LENS PROFILE SET."
- id: lens_memory_option_request
label: "053-5. LENS MEMORY OPTION REQUEST"
kind: query
command: "02h 20h 00h 00h 01h {data01} {cks}"
params:
- name: data01
type: integer
description: "00h=LOAD BY SIGNAL, 01h=FORCED MUTE"
notes: "Response DATA02 setting value: 00h=OFF, 01h=ON."
- id: lens_memory_option_set
label: "053-6. LENS MEMORY OPTION SET"
kind: action
command: "02h 21h 00h 00h 02h {data01} {data02} {cks}"
params:
- name: data01
type: integer
description: "00h=LOAD BY SIGNAL, 01h=FORCED MUTE"
- name: data02
type: integer
description: "Setting value: 00h=OFF, 01h=ON"
- id: lens_information_request
label: "053-7. LENS INFORMATION REQUEST"
kind: query
command: "02h 22h 00h 00h 01h 00h 25h"
params: []
notes: "Response DATA01 bitfield: Bit0=Lens memory, Bit1=Zoom, Bit2=Focus, Bit3=Lens Shift (H), Bit4=Lens Shift (V); 0=Stop, 1=During operation."
- id: lens_profile_set
label: "053-10. LENS PROFILE SET"
kind: action
command: "02h 27h 00h 00h 01h {data01} {cks}"
params:
- name: data01
type: integer
description: "Profile number: 00h=Profile 1, 01h=Profile 2"
- id: lens_profile_request
label: "053-11. LENS PROFILE REQUEST"
kind: query
command: "02h 28h 00h 00h 00h 2Ah"
params: []
notes: "Response DATA01: 00h=Profile 1, 01h=Profile 2."
- id: gain_parameter_request_3
label: "060-1. GAIN PARAMETER REQUEST 3"
kind: query
command: "03h 05h 00h 00h 03h {data01} 00h 00h {cks}"
params:
- name: data01
type: integer
description: "Adjusted value name: 00h=BRIGHTNESS, 01h=CONTRAST, 02h=COLOR, 03h=HUE, 04h=SHARPNESS, 05h=VOLUME, 96h=LAMP/LIGHT ADJUST"
notes: "Example (brightness): 03h 05h 00h 00h 03h 00h 00h 00h 0Bh. Response DATA01: 00h=Display not possible, 01h=Adjustment not possible, 02h=Adjustment possible, FFh=specified gain does not exist. DATA02-13 carry limits/default/current/step widths."
- id: setting_request
label: "078-1. SETTING REQUEST"
kind: query
command: "00h 85h 00h 00h 01h 00h 86h"
params: []
notes: "Response: DATA01-03=base model type, DATA04=sound function (00h=no/01h=yes), DATA05=profile (00h=none,01h=clock,02h=sleep,03h=clock+sleep)."
- id: running_status_request
label: "078-2. RUNNING STATUS REQUEST"
kind: query
command: "00h 85h 00h 00h 01h 01h 87h"
params: []
notes: "Response: DATA03=power status (00h=Standby,01h=Power on), DATA04=cooling process, DATA05=power on/off process, DATA06=operation status (00h=Standby(Sleep),04h=Power on,05h=Cooling,06h=Standby(error),0Fh=Power saving,10h=Network standby)."
- id: input_status_request
label: "078-3. INPUT STATUS REQUEST"
kind: query
command: "00h 85h 00h 00h 01h 02h 88h"
params: []
notes: "Response: DATA01=signal switch process, DATA02=signal list number (actual = returned + 1), DATA03=selection signal type 1, DATA04=selection signal type 2 (01h=COMPUTER,02h=VIDEO,03h=S-VIDEO,04h=COMPONENT,20h=DVI-D,21h=HDMI,22h=DisplayPort,23h=VIEWER6-10,07h=VIEWER1-5), DATA05=signal list type, DATA06=test pattern, DATA09=content displayed."
- id: mute_status_request
label: "078-4. MUTE STATUS REQUEST"
kind: query
command: "00h 85h 00h 00h 01h 03h 89h"
params: []
notes: "Response: DATA01=picture mute, DATA02=sound mute, DATA03=onscreen mute, DATA04=forced onscreen mute, DATA05=onscreen display (00h/01h)."
- id: model_name_request
label: "078-5. MODEL NAME REQUEST"
kind: query
command: "00h 85h 00h 00h 01h 04h 8Ah"
params: []
notes: "Response DATA01-32=model name (NUL-terminated)."
- id: cover_status_request
label: "078-6. COVER STATUS REQUEST"
kind: query
command: "00h 85h 00h 00h 01h 05h 8Bh"
params: []
notes: "Response DATA01: 00h=Normal (cover opened), 01h=Cover closed."
- id: freeze_control
label: "079. FREEZE CONTROL"
kind: action
command: "01h 98h 00h 00h 01h {data01} {cks}"
params:
- name: data01
type: integer
description: "01h=freeze on, 02h=freeze off"
- id: information_string_request
label: "084. INFORMATION STRING REQUEST"
kind: query
command: "00h D0h 00h 00h 03h 00h {data01} 01h {cks}"
params:
- name: data01
type: integer
description: "Information type: 03h=Horizontal sync frequency, 04h=Vertical sync frequency"
notes: "Response DATA02=label length, DATA03-??=label/info string (NUL-terminated)."
- id: eco_mode_request
label: "097-8. ECO MODE REQUEST"
kind: query
command: "03h B0h 00h 00h 01h 07h BBh"
params: []
notes: "Response DATA01=eco mode value (or Light/Lamp mode on some models). Value list in Appendix 'Supplementary Information by Command'."
- id: lan_projector_name_request
label: "097-45. LAN PROJECTOR NAME REQUEST"
kind: query
command: "03h B0h 00h 00h 01h 2Ch E0h"
params: []
notes: "Response DATA01-17=projector name (NUL-terminated)."
- id: lan_mac_address_request_2
label: "097-155. LAN MAC ADDRESS STATUS REQUEST2"
kind: query
command: "03h B0h 00h 00h 02h 9Ah 00h 4Fh"
params: []
notes: "Response DATA01-06=MAC address (e.g. 01h-23h-45h-67h-89h-ABh)."
- id: pip_picture_by_picture_request
label: "097-198. PIP/PICTURE BY PICTURE REQUEST"
kind: query
command: "03h B0h 00h 00h 02h C5h {data01} {cks}"
params:
- name: data01
type: integer
description: "00h=MODE, 01h=START POSITION, 02h=SUB INPUT/SUB INPUT 1, 09h=SUB INPUT 2, 0Ah=SUB INPUT 3"
notes: "Response DATA02 carries mode (00h=PIP,01h=PbP), start position (00h-03h), or sub-input setting. Sub-input value list in Appendix."
- id: edge_blending_mode_request
label: "097-243-1. EDGE BLENDING MODE REQUEST"
kind: query
command: "03h B0h 00h 00h 02h DFh 00h 94h"
params: []
notes: "Response DATA01: 00h=OFF, 01h=ON."
- id: eco_mode_set
label: "098-8. ECO MODE SET"
kind: action
command: "03h B1h 00h 00h 02h 07h {data01} {cks}"
params:
- name: data01
type: integer
description: "Eco mode value (sets Light/Lamp mode on some models). Value list in Appendix 'Supplementary Information by Command'."
- id: lan_projector_name_set
label: "098-45. LAN PROJECTOR NAME SET"
kind: action
command: "03h B1h 00h 00h 12h 2Ch {data01}-{data16} 00h {cks}"
params:
- name: data
type: string
description: "Projector name bytes (up to 16 bytes); DATA01-DATA16 followed by 00h NUL."
notes: "Response DATA01 echoes input terminal field."
- id: pip_picture_by_picture_set
label: "098-198. PIP/PICTURE BY PICTURE SET"
kind: action
command: "03h B1h 00h 00h 03h C5h {data01} {data02} {cks}"
params:
- name: data01
type: integer
description: "00h=MODE, 01h=START POSITION, 02h=SUB INPUT/SUB INPUT 1, 09h=SUB INPUT 2, 0Ah=SUB INPUT 3"
- name: data02
type: integer
description: "Mode: 00h=PIP,01h=PbP; or start position 00h-03h (TOP-LEFT/TOP-RIGHT/BOTTOM-LEFT/BOTTOM-RIGHT); or sub-input value"
notes: "Response DATA01 maps 00h=MODE,01h=START POSITION,02h=SUB INPUT 1,03h=SUB INPUT 2,04h=SUB INPUT 3."
- id: edge_blending_mode_set
label: "098-243-1. EDGE BLENDING MODE SET"
kind: action
command: "03h B1h 00h 00h 03h DFh 00h {data01} {cks}"
params:
- name: data01
type: integer
description: "Setting value: 00h=OFF, 01h=ON"
- id: base_model_type_request
label: "305-1. BASE MODEL TYPE REQUEST"
kind: query
command: "00h BFh 00h 00h 01h 00h C0h"
params: []
notes: "Response: DATA01-02=base model type, DATA03-11=model name (NUL-terminated), DATA12-13=base model type. Value list in Appendix."
- id: serial_number_request
label: "305-2. SERIAL NUMBER REQUEST"
kind: query
command: "00h BFh 00h 00h 02h 01h 06h C8h"
params: []
notes: "Response DATA01-16=serial number (NUL-terminated)."
- id: basic_information_request
label: "305-3. BASIC INFORMATION REQUEST"
kind: query
command: "00h BFh 00h 00h 01h 02h C2h"
params: []
notes: "Response: DATA01=operation status, DATA02=content displayed, DATA03-04=selection signal type, DATA05=display signal type, DATA06=video mute, DATA07=sound mute, DATA08=onscreen mute, DATA09=freeze status."
- id: audio_select_set
label: "319-10. AUDIO SELECT SET"
kind: action
command: "03h C9h 00h 00h 03h 09h {data01} {data02} {cks}"
params:
- name: data01
type: integer
description: "Input terminal. Value list in Appendix 'Supplementary Information by Command'."
- name: data02
type: integer
description: "Setting value: 00h=terminal specified in DATA01, 01h=BNC, 02h=COMPUTER"
notes: "Response DATA02: 00h=success, 01h=error."
Feedbacks
- id: error_status
type: bitfield
description: "ERROR STATUS REQUEST (009) response DATA01-DATA12 bitfield: cover, fan, temperature, lamp, mirror cover, interlock switch open, system errors."
- id: command_result
type: enum
values: [success, error]
description: "Every command response either echoes data (success) or returns A2h/A3h frame with ERR1/ERR2 error codes (see Notes for full error-code list)."
- id: power_state
type: enum
values: [standby, power_on, cooling, standby_error, standby_sleep, power_saving, network_standby]
description: "RUNNING STATUS REQUEST (078-2) DATA03/DATA06 and BASIC INFORMATION REQUEST (305-3) DATA01."
- id: lamp_usage_time
type: integer
description: "INFORMATION REQUEST (037) DATA83-86 and LAMP INFORMATION REQUEST 3 (037-4); seconds, updated at 1-minute intervals."
- id: lamp_remaining_life
type: integer
description: "LAMP INFORMATION REQUEST 3 (037-4); percent, negative if replacement deadline exceeded."
- id: filter_usage_time
type: integer
description: "INFORMATION REQUEST (037) DATA87-90 and FILTER USAGE INFORMATION REQUEST (037-3) DATA01-04; seconds."
- id: input_status
type: composite
description: "INPUT STATUS REQUEST (078-3) response: signal list number, signal types, test pattern, content displayed."
- id: mute_status
type: composite
description: "MUTE STATUS REQUEST (078-4) response: picture/sound/onscreen/forced-onscreen mute + onscreen display flags."
- id: cover_status
type: enum
values: [normal_opened, closed]
description: "COVER STATUS REQUEST (078-6) DATA01."
- id: lens_position
type: composite
description: "LENS CONTROL REQUEST (053-1) response: upper/lower limit + current value per adjustment target."
- id: lens_operation_status
type: bitfield
description: "LENS INFORMATION REQUEST (053-7) DATA01: lens memory/zoom/focus/lens-shift-H/lens-shift-V in-operation flags."
- id: gain_parameter
type: composite
description: "GAIN PARAMETER REQUEST 3 (060-1) response: status, upper/lower limit, default, current, wide/narrow step."
- id: eco_mode
type: enum
description: "ECO MODE REQUEST (097-8) DATA01; value list in Appendix."
- id: mac_address
type: string
description: "LAN MAC ADDRESS STATUS REQUEST2 (097-155) DATA01-06."
- id: projector_name
type: string
description: "LAN PROJECTOR NAME REQUEST (097-45) DATA01-17; NUL-terminated."
- id: model_name
type: string
description: "MODEL NAME REQUEST (078-5) DATA01-32; NUL-terminated."
- id: serial_number
type: string
description: "SERIAL NUMBER REQUEST (305-2) DATA01-16; NUL-terminated."
- id: base_model_type
type: composite
description: "BASE MODEL TYPE REQUEST (305-1) response: base model type code + model name."
- id: edge_blending_mode
type: enum
values: [off, on]
description: "EDGE BLENDING MODE REQUEST (097-243-1) DATA01."
- id: pip_pbp_state
type: composite
description: "PIP/PICTURE BY PICTURE REQUEST (097-198) response: mode/start-position/sub-input per DATA01."
- id: sync_frequency
type: string
description: "INFORMATION STRING REQUEST (084): horizontal (DATA01=03h) or vertical (DATA01=04h) sync frequency string."
- id: carbon_savings
type: composite
description: "CARBON SAVINGS INFORMATION REQUEST (037-6): kg (DATA02-05) + mg (DATA06-09)."
Variables
- name: brightness
description: "PICTURE ADJUST (030-1) target 00h; readable via GAIN PARAMETER REQUEST 3 (060-1) data01=00h."
- name: contrast
description: "PICTURE ADJUST (030-1) target 01h; readable via GAIN PARAMETER REQUEST 3 (060-1) data01=01h."
- name: color
description: "PICTURE ADJUST (030-1) target 02h; readable via GAIN PARAMETER REQUEST 3 (060-1) data01=02h."
- name: hue
description: "PICTURE ADJUST (030-1) target 03h; readable via GAIN PARAMETER REQUEST 3 (060-1) data01=03h."
- name: sharpness
description: "PICTURE ADJUST (030-1) target 04h; readable via GAIN PARAMETER REQUEST 3 (060-1) data01=04h."
- name: volume
description: "VOLUME ADJUST (030-2); readable via GAIN PARAMETER REQUEST 3 (060-1) data01=05h."
- name: lamp_light_adjust
description: "OTHER ADJUST (030-15) LAMP/LIGHT ADJUST (DATA01=96h,DATA02=FFh); readable via GAIN PARAMETER REQUEST 3 (060-1) data01=96h."
- name: aspect
description: "ASPECT ADJUST (030-12); value list in Appendix 'Supplementary Information by Command'."
- name: eco_mode
description: "ECO MODE SET (098-8); value list in Appendix 'Supplementary Information by Command'."
- name: projector_name
description: "LAN PROJECTOR NAME SET (098-45); up to 16 bytes."
- name: edge_blending_mode
description: "EDGE BLENDING MODE SET (098-243-1); 00h=OFF, 01h=ON."
- name: lens_profile
description: "LENS PROFILE SET (053-10); 00h=Profile 1, 01h=Profile 2."
- name: lens_memory_load_by_signal
description: "LENS MEMORY OPTION SET (053-6) data01=00h; 00h=OFF, 01h=ON."
- name: lens_memory_forced_mute
description: "LENS MEMORY OPTION SET (053-6) data01=01h; 00h=OFF, 01h=ON."
- name: pip_pbp_mode
description: "PIP/PICTURE BY PICTURE SET (098-198) data01=00h; 00h=PIP, 01h=PICTURE BY PICTURE."
- name: pip_pbp_start_position
description: "PIP/PICTURE BY PICTURE SET (098-198) data01=01h; 00h=TOP-LEFT, 01h=TOP-RIGHT, 02h=BOTTOM-LEFT, 03h=BOTTOM-RIGHT."
- name: freeze
description: "FREEZE CONTROL (079); 01h=on, 02h=off."
- name: audio_select
description: "AUDIO SELECT SET (319-10); per input terminal: 00h=terminal, 01h=BNC, 02h=COMPUTER."
Events
# UNRESOLVED: no unsolicited notifications documented in source. The projector only
# returns responses to issued commands (ACK/error frames per section 2.3).
Macros
# UNRESOLVED: no multi-step sequences described explicitly in source.
Safety
confirmation_required_for: []
interlocks:
- description: "POWER ON (015): no other command accepted while power-on in progress."
- description: "POWER OFF (016): no other command accepted during power-off including cooling time."
- description: "Cover/interlock switch status exposed via ERROR STATUS REQUEST (009) DATA09 Bit1 'interlock switch is open' and DATA03 Bit5 'mirror cover error'."
- description: "Response error code ERR1=02h ERR2=0Dh: 'The command cannot be accepted because the power is off.'"
- description: "Response error code ERR1=02h ERR2=0Fh: 'There is no authority necessary for the operation.'"
# Notes on error codes documented in source (section 2.4):
# 00h/00h = unrecognized command
# 00h/01h = command not supported by model
# 01h/00h = invalid value
# 01h/01h = invalid input terminal
# 01h/02h = invalid language
# 02h/00h = memory allocation error
# 02h/02h = memory in use
# 02h/03h = value cannot be set
# 02h/04h = forced onscreen mute on
# 02h/06h = viewer error
# 02h/07h = no signal
# 02h/08h = test pattern/filter displayed
# 02h/09h = no PC card inserted
# 02h/0Ah = memory operation error
# 02h/0Ch = entry list displayed
# 02h/0Dh = power is off
# 02h/0Eh = command execution failed
# 02h/0Fh = no authority for operation
# 03h/00h = incorrect gain number
# 03h/01h = invalid gain
# 03h/02h = adjustment failed
Notes
Binary frame protocol. Commands/responses use hex notation (NNh). Frame structure: header byte (00h-03h command class / 20h-23h success response / A0h-A3h error response) followed by command code, <ID1> (control ID), <ID2> (model code), <LEN> (data length), data bytes, and <CKS> (checksum).
Checksum (CKS) calculation: add all preceding bytes; use the low-order one byte (8 bits) of the result. Worked example from source: 20h 81h 01h 60h 01h 00h → 20h+81h+01h+60h+01h+00h = 103h → CKS = 03h.
ID2 (model code) varies by model in use — not stated for Ma431 Mpi4E in this source.
Multiple baud rates supported (115200/38400/19200/9600/4800 bps); source does not state a default. TCP port 7142 is fixed for LAN command send/receive. Full-duplex serial.
Several value enumerations are referenced as an external Appendix ("Supplementary Information by Command") that is NOT included in this refined source: input terminal codes, aspect values, eco mode values, sub-input values, base model type codes. These are marked in their respective actions/variables.
Spec done. 53 actions = full command list (009→319-10), each with verbatim hex payload. Serial+TCP both in source so both emitted. Baud = `null` UNRESOLVED (5 rates, no default stated). Appendix value tables absent → marked UNRESOLVED per action. Want ingest next?
## Provenance
```yaml
source_domains:
- sharpdisplays.eu
source_urls:
- https://www.sharpdisplays.eu/p/download/cp/Products/Projectors/Shared/CommandLists/NEC-ExternalControlManual-english.pdf
retrieved_at: 2026-06-19T01:21:02.630Z
last_checked_at: 2026-06-19T07:43:55.561Z
Verification Summary
verdict: verified
checked_at: 2026-06-19T07:43:55.561Z
matched_actions: 53
action_count: 53
confidence: medium
summary: "All 53 spec commands match source hex opcodes exactly; transport parameters (TCP 7142, serial 8N1) verified in source. (11 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "model-specific base model type code (ID2/model code) not given; input terminal value table, aspect value table, eco mode value table, sub-input value table, and base-model-type table are referenced as an external Appendix (\"Supplementary Information by Command\") that is not present in this refined source."
- "multiple rates supported - 115200/38400/19200/9600/4800 bps; source does not state a default"
- "communication mode stated as \"Full duplex\"; flow_control value not explicitly stated"
- "no unsolicited notifications documented in source. The projector only"
- "no multi-step sequences described explicitly in source."
- "model code for Ma431 Mpi4E not documented in source"
- "firmware version compatibility not stated in source"
- "default baud rate not stated (multiple rates supported)"
- "flow control not explicitly stated (only \"Full duplex\" comm mode documented)"
- "model code (ID2) for Ma431 Mpi4E not documented"
- "external Appendix value tables (input terminal, aspect, eco mode, sub-input, base model type) not present in refined source"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0