Summary
This spec describes control of the Barco Fsn3G 1804 via the Barco Pulse JSON-RPC 2.0 API over TCP/IP (port 9090), and over RS-232 using the documented serial parameters. The same JSON-RPC command set is available across both transports. Authentication via pass code is optional for end-user access; higher access levels require an authenticate call.
Transport
# Both TCP and RS-232 documented. Same JSON-RPC command set on both.
protocols:
- tcp
- serial
addressing:
port: 9090
serial:
baud_rate: 19200
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
auth:
type: passcode # inferred: source documents optional authenticate call with secret code
Traits
# powerable - system.poweron / system.poweroff present
# routable - image.window.main.source selection present
# queryable - property.get / system.state / environment.getcontrolblocks present
# levelable - image.brightness, contrast, gamma, saturation, sharpness present
# subscribable - property.subscribe / signal.subscribe present
Actions
# JSON-RPC 2.0 over TCP (and same commands over RS-232). All commands are JSON
# objects. The `command:` field below shows the JSON body verbatim. The
# `id` field is optional and not included in the template.
- id: power_on
label: Power On
kind: action
command: '{"jsonrpc": "2.0", "method": "system.poweron"}'
params: []
- id: power_off
label: Power Off
kind: action
command: '{"jsonrpc": "2.0", "method": "system.poweroff"}'
params: []
- id: get_system_state
label: Get System State
kind: query
command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": "system.state"}}'
params: []
- id: subscribe_system_state
label: Subscribe System State
kind: action
command: '{"jsonrpc": "2.0", "method": "property.subscribe", "params": {"property": "system.state"}}'
params: []
- id: list_sources
label: List Available Sources
kind: query
command: '{"jsonrpc": "2.0", "method": "image.source.list"}'
params: []
- id: list_connectors
label: List Available Connectors
kind: query
command: '{"jsonrpc": "2.0", "method": "image.connector.list"}'
params: []
- id: set_active_source
label: Set Active Source
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.window.main.source", "value": "{source}"}}'
params:
- name: source
type: string
description: Source name from `image.source.list` (e.g. "DisplayPort 1", "HDMI", "DVI 1", "SDI", "HDBaseT")
- id: get_active_source
label: Get Active Source
kind: query
command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": "image.window.main.source"}}'
params: []
- id: subscribe_active_source
label: Subscribe Active Source
kind: action
command: '{"jsonrpc": "2.0", "method": "property.subscribe", "params": {"property": "image.window.main.source"}}'
params: []
- id: set_window_position
label: Set Window Position
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.window.main.position", "value": {"x": "{x}", "y": "{y}"}}}'
params:
- name: x
type: integer
description: X coordinate
- name: y
type: integer
description: Y coordinate
- id: set_window_size
label: Set Window Size
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.window.main.size", "value": {"width": "{width}", "height": "{height}"}}}'
params:
- name: width
type: integer
description: Width in pixels
- name: height
type: integer
description: Height in pixels
- id: set_scaling_mode
label: Set Scaling Mode
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.window.main.scalingmode", "value": "{mode}"}}'
params:
- name: mode
type: string
enum: [Fill, OneToOne, FillScreen, Stretch]
- id: set_brightness
label: Set Brightness
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.brightness", "value": {value}}}'
params:
- name: value
type: float
min: -1
max: 1
description: Normalized brightness; 0 = default, 1 = 100% offset
- id: get_brightness
label: Get Brightness
kind: query
command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": "image.brightness"}}'
params: []
- id: set_contrast
label: Set Contrast
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.contrast", "value": {value}}}'
params:
- name: value
type: float
min: 0
max: 2
description: Normalized contrast; 1 = default
- id: get_contrast
label: Get Contrast
kind: query
command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": "image.contrast"}}'
params: []
- id: set_gamma
label: Set Gamma
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.gamma", "value": {value}}}'
params:
- name: value
type: float
min: 1
max: 3
description: Gamma value; default 2.2
- id: get_gamma
label: Get Gamma
kind: query
command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": "image.gamma"}}'
params: []
- id: set_saturation
label: Set Saturation
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.saturation", "value": {value}}}'
params:
- name: value
type: float
min: 0
max: 2
description: Normalized saturation; 1 = default
- id: set_sharpness
label: Set Sharpness
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.sharpness", "value": {value}}}'
params:
- name: value
type: integer
min: -2
max: 8
description: Sharpness level
- id: set_orientation
label: Set Orientation
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.orientation", "value": "{orientation}"}}'
params:
- name: orientation
type: string
enum: [DESKTOP_FRONT, DESKTOP_REAR, CEILING_FRONT, CEILING_REAR]
- id: get_illumination_state
label: Get Illumination State
kind: query
command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": "illumination.state"}}'
params: []
- id: subscribe_illumination_state
label: Subscribe Illumination State
kind: action
command: '{"jsonrpc": "2.0", "method": "property.subscribe", "params": {"property": "illumination.state"}}'
params: []
- id: get_laser_power
label: Get Laser Power
kind: query
command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": "illumination.sources.laser.power"}}'
params: []
- id: set_laser_power
label: Set Laser Power
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "illumination.sources.laser.power", "value": {value}}}'
params:
- name: value
type: integer
description: Power in percent
- id: get_laser_min_power
label: Get Laser Minimum Power
kind: query
command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": "illumination.sources.laser.minpower"}}'
params: []
- id: get_laser_max_power
label: Get Laser Maximum Power
kind: query
command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": "illumination.sources.laser.maxpower"}}'
params: []
- id: illumination_clo_engage
label: Engage CLO at Current Light Level
kind: action
command: '{"jsonrpc": "2.0", "method": "illumination.clo.engage"}'
params: []
- id: get_laser_serial
label: Get Laser Serial Number
kind: query
command: '{"jsonrpc": "2.0", "method": "illumination.laser.getserialnumber"}'
params: []
- id: set_warp_enable
label: Enable Warp
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.processing.warp.enable", "value": true}}'
params: []
- id: upload_warp_file
label: Upload Warp File
kind: action
command: 'curl -X POST -F file=@{file} http://{host}/api/image/processing/warp/file/transfer'
params:
- name: host
type: string
description: Projector IP address
- name: file
type: string
description: Local path to warp XML file
- id: select_warp_file
label: Select Warp File
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.processing.warp.file.selected", "value": "{filename}"}}'
params:
- name: filename
type: string
- id: enable_warp_file
label: Enable Warp File
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.processing.warp.file.enable", "value": true}}'
params: []
- id: upload_blend_mask
label: Upload Blend Mask
kind: action
command: 'curl -X POST -F file=@{file} http://{host}/api/image/processing/blend/file/transfer'
params:
- name: host
type: string
description: Projector IP address
- name: file
type: string
description: Local path to blend mask PNG (8 or 16-bit grayscale)
- id: select_blend_files
label: Select Blend Files
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.processing.blend.file.selected", "value": ["{filename}"]}}'
params:
- name: filename
type: string
- id: enable_blend_file
label: Enable Blend File
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.processing.blend.file.enable", "value": true}}'
params: []
- id: upload_blacklevel_mask
label: Upload Black Level Mask
kind: action
command: 'curl -X POST -F file=@{file} http://{host}/api/image/processing/blacklevel/file/transfer'
params:
- name: host
type: string
description: Projector IP address
- name: file
type: string
description: Local path to black level mask PNG (8 or 16-bit grayscale)
- id: select_blacklevel_file
label: Select Black Level File
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.processing.blacklevel.file.selected", "value": "{filename}"}}'
params:
- name: filename
type: string
- id: enable_blacklevel_file
label: Enable Black Level File
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.processing.blacklevel.file.enable", "value": true}}'
params: []
- id: get_environmental_sensors
label: Get Environmental Control Blocks
kind: query
command: '{"jsonrpc": "2.0", "method": "environment.getcontrolblocks", "params": {"type": "Sensor", "valuetype": "{valuetype}"}}'
params:
- name: valuetype
type: string
enum: [Temperature, Speed, PWM, Voltage, Current, Power, Altitude, Pressure, Humidity, ADC, Coordinate, Peltier, Waveform, Average, Delay, Difference, Interpolation, Limit, Median, Noise, Weighting, Comparison, Threshold, Formula, Driver, PID, Mode, State, Pump, Resistance, Simulation, Constant, Manual, Range, Any]
- id: get_environmental_alarms
label: Get Environmental Alarm Info
kind: query
command: '{"jsonrpc": "2.0", "method": "environment.getalarminfo"}'
params: []
- id: get_environmental_alarm_state
label: Get Environmental Alarm State
kind: query
command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": "environment.alarmstate"}}'
params: []
- id: set_shutter_position
label: Set Shutter Position
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "optics.shutter.position", "value": "{position}"}}'
params:
- name: position
type: string
enum: [Open, Closed]
- id: set_shutter_target
label: Set Shutter Target
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "optics.shutter.target", "value": "{target}"}}'
params:
- name: target
type: string
enum: [Open, Closed]
- id: get_zoom_position
label: Get Zoom Position
kind: query
command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": "optics.zoom.position"}}'
params: []
- id: get_focus_position
label: Get Focus Position
kind: query
command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": "optics.focus.position"}}'
params: []
- id: get_lensshift_horizontal
label: Get Lens Shift Horizontal
kind: query
command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": "optics.lensshift.horizontal.position"}}'
params: []
- id: get_lensshift_vertical
label: Get Lens Shift Vertical
kind: query
command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": "optics.lensshift.vertical.position"}}'
params: []
- id: set_dmx_mode
label: Set DMX Mode
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "dmx.mode", "value": "{mode}"}}'
params:
- name: mode
type: string
- id: set_dmx_startchannel
label: Set DMX Start Channel
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "dmx.startchannel", "value": {channel}}}'
params:
- name: channel
type: integer
min: 1
max: 512
- id: set_dmx_shutdown
label: Set DMX Shutdown
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "dmx.shutdown", "value": {value}}}'
params:
- name: value
type: boolean
- id: list_dmx_channels
label: List DMX Channels
kind: query
command: '{"jsonrpc": "2.0", "method": "dmx.listchannels"}'
params: []
- id: list_dmx_modes
label: List DMX Modes
kind: query
command: '{"jsonrpc": "2.0", "method": "dmx.listmodes"}'
params: []
- id: set_system_standby_enable
label: Enable Standby State
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "system.standby.enable", "value": {value}}}'
params:
- name: value
type: boolean
- id: set_system_eco_enable
label: Enable ECO State
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "system.eco.enable", "value": {value}}}'
params:
- name: value
type: boolean
- id: get_network_ip4_config
label: Get IPv4 Config
kind: query
command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": "network.device.lan.ip4config"}}'
params: []
- id: get_network_state
label: Get Network State
kind: query
command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": "network.device.lan.state"}}'
params: []
- id: authenticate
label: Authenticate
kind: action
command: '{"jsonrpc": "2.0", "method": "authenticate", "params": {"id": 1, "code": {code}}}'
params:
- name: code
type: integer
description: Secret pass code; required only for elevated access levels
- id: introspect
label: Introspect Object
kind: query
command: '{"jsonrpc": "2.0", "method": "introspect", "params": {"object": "{object}", "recursive": {recursive}}}'
params:
- name: object
type: string
description: Dot-notation object name (empty string for full introspection)
- name: recursive
type: boolean
description: true for full tree, false for one level
- id: introspect_alt
label: Introspect Object (Alt Form)
kind: query
command: '{"jsonrpc": "2.0", "method": "introspect", "params": ["{object}", {recursive}]}'
params:
- name: object
type: string
- name: recursive
type: boolean
- id: introspect_motors
label: Introspect Motors (Non-Recursive)
kind: query
command: '{"jsonrpc": "2.0", "method": "introspect", "params": {"object": "motors", "recursive": false}}'
params: []
- id: introspect_motors_alt
label: Introspect Motors (Alt Form)
kind: query
command: '{"jsonrpc": "2.0", "method": "introspect", "params": ["motors", false]}'
params: []
- id: property_set
label: Set Property (Generic)
kind: action
command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "{property}", "value": {value}}}'
params:
- name: property
type: string
description: Dot-notation property name
- name: value
type: string
description: New value (string, number, bool, or object as JSON)
- id: property_get
label: Get Property (Generic)
kind: query
command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": "{property}"}}'
params:
- name: property
type: string
description: Dot-notation property name
- id: property_get_multi
label: Get Multiple Properties
kind: query
command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": ["{prop1}", "{prop2}"]}}'
params:
- name: prop1
type: string
- name: prop2
type: string
- id: property_subscribe
label: Subscribe Property (Generic)
kind: action
command: '{"jsonrpc": "2.0", "method": "property.subscribe", "params": {"property": "{property}"}}'
params:
- name: property
type: string
- id: property_subscribe_multi
label: Subscribe Multiple Properties
kind: action
command: '{"jsonrpc": "2.0", "method": "property.subscribe", "params": {"property": ["{prop1}", "{prop2}"]}}'
params:
- name: prop1
type: string
- name: prop2
type: string
- id: property_unsubscribe
label: Unsubscribe Property
kind: action
command: '{"jsonrpc": "2.0", "method": "property.unsubscribe", "params": {"property": "{property}"}}'
params:
- name: property
type: string
- id: property_unsubscribe_multi
label: Unsubscribe Multiple Properties
kind: action
command: '{"jsonrpc": "2.0", "method": "property.unsubscribe", "params": {"property": ["{prop1}", "{prop2}"]}}'
params:
- name: prop1
type: string
- name: prop2
type: string
- id: signal_subscribe
label: Subscribe Single Signal
kind: action
command: '{"jsonrpc": "2.0", "method": "signal.subscribe", "params": {"signal": "{signal}"}}'
params:
- name: signal
type: string
description: Signal name (e.g. "modelupdated")
- id: signal_subscribe_multi
label: Subscribe Multiple Signals
kind: action
command: '{"jsonrpc": "2.0", "method": "signal.subscribe", "params": {"signal": ["{signal1}", "{signal2}"]}}'
params:
- name: signal1
type: string
- name: signal2
type: string
- id: signal_unsubscribe
label: Unsubscribe Single Signal
kind: action
command: '{"jsonrpc": "2.0", "method": "signal.unsubscribe", "params": {"signal": "{signal}"}}'
params:
- name: signal
type: string
- id: signal_unsubscribe_multi
label: Unsubscribe Multiple Signals
kind: action
command: '{"jsonrpc": "2.0", "method": "signal.unsubscribe", "params": {"signal": ["{signal1}", "{signal2}"]}}'
params:
- name: signal1
type: string
- name: signal2
type: string
- id: led_blink
label: Blink LED
kind: action
command: '{"jsonrpc": "2.0", "method": "ledctrl.blink", "params": {"led": "systemstatus", "color": "red", "period": 42}}'
params:
- name: led
type: string
- name: color
type: string
- name: period
type: integer
- id: list_firmware_components
label: List Firmware Components
kind: query
command: '{"jsonrpc": "2.0", "method": "firmware.listcomponents"}'
params: []
- id: list_firmware_version_status
label: List Firmware Version Status
kind: query
command: '{"jsonrpc": "2.0", "method": "firmware.listcomponentversionstatus"}'
params: []
- id: schedule_firmware_upgrade
label: Schedule Firmware Upgrade at Next Reboot
kind: action
command: '{"jsonrpc": "2.0", "method": "firmware.schedulecomponentupgrade"}'
params: []
- id: p7_copy_preset_to_custom
label: P7 Copy Preset to Custom
kind: action
command: '{"jsonrpc": "2.0", "method": "image.color.p7.custom.copypresettocustom", "params": {"presetname": "{preset}"}}'
params:
- name: preset
type: string
- id: p7_reset_preset
label: P7 Reset Preset to Default
kind: action
command: '{"jsonrpc": "2.0", "method": "image.color.p7.custom.resetpreset", "params": {"presetname": "{preset}"}}'
params:
- name: preset
type: string
- id: p7_reset_to_native
label: P7 Reset to Native
kind: action
command: '{"jsonrpc": "2.0", "method": "image.color.p7.custom.resettonative"}'
params: []
- id: rgb_mode_next
label: Cycle to Next RGB Mode
kind: action
command: '{"jsonrpc": "2.0", "method": "image.color.rgbmode.nextrgbmode"}'
params: []
- id: get_connector_signal
label: Get Connector Detected Signal
kind: query
command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": "image.connector.{name}.detectedsignal"}}'
params:
- name: name
type: string
description: Concrete connector name (e.g. "l1hdmi", "displayport1")
- id: list_source_connectors
label: List Connectors of Source
kind: query
command: '{"jsonrpc": "2.0", "method": "image.source.{name}.listconnectors"}'
params:
- name: name
type: string
description: Source object name derived from source name (e.g. "displayport1")
- id: serial_eco_wakeup
label: Wake from ECO via RS-232
kind: action
command: ':POWR1\r'
params: []
notes: Send as ASCII characters on the serial port to wake projector from ECO mode.
Feedbacks
- id: system_state
type: enum
description: Operation state of the projector; observed via `property.get` "system.state" or `property.subscribe`
values: [boot, eco, standby, ready, conditioning, on, service, deconditioning, error]
- id: illumination_state
type: enum
description: Light source on/off state
values: [On, Off]
- id: environment_alarm_state
type: enum
description: Aggregated environmental alarm level
values: [Fatal, Error, Alert, Warning, Ok]
- id: network_state
type: enum
description: LAN state
values: [CONNECTED, DISCONNECTED]
- id: shutter_position
type: enum
values: [Open, Closed]
- id: scaling_mode
type: enum
values: [Fill, OneToOne, FillScreen, Stretch]
- id: orientation
type: enum
values: [DESKTOP_FRONT, DESKTOP_REAR, CEILING_FRONT, CEILING_REAR]
- id: firmware_component_status
type: enum
description: Per-component upgrade status
values: [Unknown, OK, Upgradable]
Variables
- id: image_brightness
type: float
min: -1
max: 1
description: Normalized brightness; 0 = default, 1 = 100% offset
- id: image_contrast
type: float
min: 0
max: 2
description: Normalized contrast; 1 = default
- id: image_gamma
type: float
min: 1
max: 3
description: Gamma value; default 2.2
- id: image_saturation
type: float
min: 0
max: 2
description: Normalized saturation; 1 = default
- id: image_sharpness
type: integer
min: -2
max: 8
- id: illumination_laser_power
type: integer
description: Laser power in percent
min: 0
max: 100
- id: illumination_laser_min_power
type: integer
description: Read-only dynamic minimum laser power in percent
- id: illumination_laser_max_power
type: integer
description: Read-only dynamic maximum laser power in percent
- id: window_position
type: object
schema: {x: int, y: int}
- id: window_size
type: object
schema: {width: int, height: int}
- id: dmx_mode
type: string
- id: dmx_startchannel
type: integer
min: 1
max: 512
- id: dmx_shutdown
type: boolean
- id: system_standby_enable
type: boolean
- id: system_eco_enable
type: boolean
- id: optics_zoom_position
type: integer
- id: optics_focus_position
type: integer
- id: optics_lensshift_horizontal_position
type: integer
- id: optics_lensshift_vertical_position
type: integer
- id: network_ip4_config
type: object
schema:
Address: string
Mask: string
Gateway: string
NameServers: string
Events
- id: property_changed
method: property.changed
direction: device=>client
payload: |
{ "jsonrpc": "2.0", "method": "property.changed", "params": { "property": [ { "<dot.path>": <value> } ] } }
description: Unsolicited notification when one or more subscribed properties change.
- id: signal_callback
method: signal.callback
direction: device=>client
payload: |
{ "jsonrpc": "2.0", "method": "signal.callback", "params": { "signal": [ { "<signal>": { ...args } } ] } }
description: Unsolicited notification when a subscribed signal fires.
- id: modelupdated_signal
method: signal.subscribe target
direction: device=>client
description: Triggered when the introspect object structure changes (objects added/removed).
- id: introspect_objectchanged
method: signal.callback payload example
payload: |
{ "jsonrpc": "2.0", "method": "signal.callback", "params": { "signal": [ { "introspect.objectchanged": { "object": "motors.motor1", "newobject": true } } ] } }
Macros
# UNRESOLVED: source does not define composite macros beyond the named
# procedural examples (power-on / warp / blend / blacklevel workflows).
# Operators may compose these as multi-step scripts at the application layer.
Safety
confirmation_required_for:
- power_off
- firmware.schedulecomponentupgrade
interlocks:
# Source notes: power_on is a no-op unless system.state is "standby" or "ready".
# power_off is a no-op unless system.state is "on". Operators should verify state
# before issuing power commands.
- verify_standby_before_power_on
- verify_on_before_power_off
# UNRESOLVED: no hardware-level interlocks, fault-recovery sequences, or
# safety warnings present in the source beyond the state-check recommendations.
Notes
- API surface is dynamic: source explicitly states that the API depends on installed peripherals, lens type, DMX mode, and other runtime factors. Always call
introspectto discover what is actually present on the connected device. - Source document covers the Barco Pulse API which is shared across Pulse-family projectors. The Fsn3G 1804 is a live-video processor/multiviewer; some of the optical/illumination properties (zoom, focus, laser, illumination) likely do not apply. Operators must introspect before issuing commands against unfamiliar subsystems.
- ECO-mode wake requires Wake-on-LAN, remote/keypad power, or the serial escape sequence
:POWR1\r. The JSON-RPC layer is not usable while the projector is in ECO. property.setis fire-and-confirm; do not flood the server with consecutive sets of the same property without waiting for the confirmation.- Same JSON-RPC commands work over both TCP (port 9090) and RS-232.
- DMX: in basic mode only 2 channels are present; extended mode exposes more.
- Warp file format matches MCM500/400.
- Blend/blacklevel masks: grayscale PNG up to 16-bit, JPEG, or TIFF. File uploads use HTTP POST to
/api/image/processing/{warp,blend,blacklevel}/file/transfer. - "Rs232" command
:POWR1\r(with CR) is the documented ASCII wake sequence.
Provenance
source_domains:
- audiogeneral.com
source_urls:
- "https://www.audiogeneral.com/barco/UDX%20Series/JSON_ReferenceGuide.pdf"
retrieved_at: 2026-08-02T06:04:04.973Z
last_checked_at: 2026-08-05T08:07:26.903Z
Verification Summary
verdict: verified
checked_at: 2026-08-05T08:07:26.903Z
matched_actions: 84
action_count: 84
confidence: medium
summary: "All 84 spec actions map to a literal JSON-RPC method, HTTP endpoint, or serial escape present verbatim in the source; transport parameters port 9090 and serial 19200/8/N/1/N all appear verbatim; coverage ratio 84/84. (4 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "source document is the \"Pulse API\" reference, which applies to the Pulse projector family. The Fsn3G 1804 is a live-video processor/multiviewer; this spec assumes the Pulse API applies to it. Operator must verify."
- "source does not define composite macros beyond the named"
- "no hardware-level interlocks, fault-recovery sequences, or"
- "device-specific firmware compatibility, exact list of runtime properties for the Fsn3G 1804, and any device-specific safety limits are not stated in the source."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0