Summary
Pulse API control surface for Barco Pulse-based projectors, covering JSON-RPC 2.0 over TCP port 9090 and RS-232 serial. Spec describes power, source selection, illumination, picture settings, warping, blending, environment, and introspection.
Note: provided source document describes Barco Pulse projector API; converter-specific behavior not documented in source.
Transport
protocols:
- tcp
- serial
addressing:
port: 9090
serial:
baud_rate: 19200
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
auth:
type: code # source: "authenticate" method with passcode; required for elevated access only
# UNRESOLVED: passcode format/length not stated
Traits
- powerable # system.poweron / system.poweroff present
- routable # image.window.main.source, input source selection
- queryable # property.get, image.source.list, environment.getcontrolblocks
- levelable # brightness, contrast, gamma, saturation, sharpness
Actions
- 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 Changes
kind: action
command: '{"jsonrpc":"2.0","method":"property.subscribe","params":{"property":"system.state"}}'
params: []
- id: authenticate
label: Authenticate
kind: action
command: '{"jsonrpc":"2.0","method":"authenticate","params":{"id":1,"code":98765}}'
params:
- name: code
type: integer
description: Passcode
- id: get_property
label: Get Property
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"objectname.propertyname"}}'
params:
- name: property
type: string
description: Property name in dot notation
- id: set_property
label: Set Property
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"objectname.propertyname","value":100}}'
params:
- name: property
type: string
description: Property name in dot notation
- name: value
type: string
description: Value appropriate for property type
- id: get_properties_multi
label: Get Multiple Properties
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":["image.brightness","image.contrast"]}}'
params:
- name: property
type: array
description: List of property names
- id: subscribe_property
label: Subscribe Property
kind: action
command: '{"jsonrpc":"2.0","method":"property.subscribe","params":{"property":"image.brightness"}}'
params:
- name: property
type: string
description: Property name or array
- id: unsubscribe_property
label: Unsubscribe Property
kind: action
command: '{"jsonrpc":"2.0","method":"property.unsubscribe","params":{"property":"image.brightness"}}'
params:
- name: property
type: string
description: Property name or array
- id: subscribe_signal
label: Subscribe Signal
kind: action
command: '{"jsonrpc":"2.0","method":"signal.subscribe","params":{"signal":"modelupdated"}}'
params:
- name: signal
type: string
description: Signal name or array
- id: unsubscribe_signal
label: Unsubscribe Signal
kind: action
command: '{"jsonrpc":"2.0","method":"signal.unsubscribe","params":{"signal":"modelupdated"}}'
params:
- name: signal
type: string
description: Signal name or array
- id: introspect
label: Introspect (recursive)
kind: query
command: '{"jsonrpc":"2.0","method":"introspect","params":{"object":"foo","recursive":true}}'
params:
- name: object
type: string
description: Object name (dot notation)
- name: recursive
type: boolean
description: Recursive enumeration
- id: introspect_nonrecursive
label: Introspect (non-recursive)
kind: query
command: '{"jsonrpc":"2.0","method":"introspect","params":{"object":"motors","recursive":false}}'
params:
- name: object
type: string
description: Object name
- id: select_input
label: Set Active Source
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.window.main.source","value":"DisplayPort 1"}}'
params:
- name: value
type: string
description: Source name (e.g. "DisplayPort 1", "HDMI", "SDI")
- 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: list_sources
label: List Available Sources
kind: query
command: '{"jsonrpc":"2.0","method":"image.source.list"}'
params: []
- id: list_connectors
label: List Connectors
kind: query
command: '{"jsonrpc":"2.0","method":"image.connector.list"}'
params: []
- id: list_source_connectors
label: List Connectors for Source
kind: query
command: '{"jsonrpc":"2.0","method":"image.source.displayport1.listconnectors"}'
params:
- name: source
type: string
description: Source object name (e.g. "displayport1")
- id: get_signal_info
label: Get Connector Signal Info
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.connector.displayport1.detectedsignal"}}'
params:
- name: connector
type: string
description: Connector object name
- 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":40}}'
params:
- name: value
type: integer
description: Power percent
- id: get_laser_min_power
label: Get Laser Min 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 Max Power
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"illumination.sources.laser.maxpower"}}'
params: []
- id: engage_clo
label: Engage CLO
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: get_brightness
label: Get Brightness
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.brightness"}}'
params: []
- id: set_brightness
label: Set Brightness
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.brightness","value":0.15}}'
params:
- name: value
type: float
description: -1 to 1
- id: get_contrast
label: Get Contrast
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.contrast"}}'
params: []
- id: set_contrast
label: Set Contrast
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.contrast","value":1}}'
params:
- name: value
type: float
description: 0 to 2
- id: get_gamma
label: Get Gamma
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.gamma"}}'
params: []
- id: set_gamma
label: Set Gamma
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.gamma","value":2.2}}'
params:
- name: value
type: float
description: 1 to 3
- id: get_saturation
label: Get Saturation
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.saturation"}}'
params: []
- id: set_saturation
label: Set Saturation
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.saturation","value":1}}'
params:
- name: value
type: float
description: 0 to 2
- id: get_sharpness
label: Get Sharpness
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.sharpness"}}'
params: []
- id: set_sharpness
label: Set Sharpness
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.sharpness","value":0}}'
params:
- name: value
type: integer
description: -2 to 8
- id: get_orientation
label: Get Orientation
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.orientation"}}'
params: []
- id: set_orientation
label: Set Orientation
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.orientation","value":"DESKTOP_FRONT"}}'
params:
- name: value
type: string
description: "DESKTOP_FRONT | DESKTOP_REAR | CEILING_FRONT | CEILING_REAR"
- id: get_scaling_mode
label: Get Scaling Mode
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.window.main.scalingmode"}}'
params: []
- id: set_scaling_mode
label: Set Scaling Mode
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.window.main.scalingmode","value":"Fill"}}'
params:
- name: value
type: string
description: "Fill | OneToOne | FillScreen | Stretch"
- id: get_window_position
label: Get Window Position
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.window.main.position"}}'
params: []
- id: get_window_size
label: Get Window Size
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.window.main.size"}}'
params: []
- id: enable_warp
label: Enable Warp
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.processing.warp.enable","value":true}}'
params:
- name: value
type: boolean
description: Enable/disable
- 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":"warp.xml"}}'
params:
- name: value
type: string
description: Filename
- 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:
- name: value
type: boolean
- id: upload_warp_file
label: Upload Warp File
kind: action
command: 'curl -X POST -F file=@warp.xml http://192.168.1.100/api/image/processing/warp/file/transfer'
params:
- name: file
type: string
description: Local filename
- id: select_blend_file
label: Select Blend File
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.processing.blend.file.selected","value":"mask.png"}}'
params:
- name: value
type: string
description: Filename
- 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:
- name: value
type: boolean
- id: upload_blend_file
label: Upload Blend Mask
kind: action
command: 'curl -X POST -F file=@mask.png http://192.168.1.100/api/image/processing/blend/file/transfer'
params:
- name: file
type: string
description: Local PNG filename
- 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":"blacklevel.png"}}'
params:
- name: value
type: string
description: Filename
- 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:
- name: value
type: boolean
- id: upload_blacklevel_file
label: Upload Black Level Mask
kind: action
command: 'curl -X POST -F file=@blacklevel.png http://192.168.1.100/api/image/processing/blacklevel/file/transfer'
params:
- name: file
type: string
description: Local PNG filename
- id: get_temperatures
label: Get Temperatures
kind: query
command: '{"jsonrpc":"2.0","method":"environment.getcontrolblocks","params":{"type":"Sensor","valuetype":"Temperature"}}'
params: []
- id: get_fan_speeds
label: Get Fan Speeds
kind: query
command: '{"jsonrpc":"2.0","method":"environment.getcontrolblocks","params":{"type":"Sensor","valuetype":"Speed"}}'
params: []
- id: get_environmental
label: Get Environmental Readings
kind: query
command: '{"jsonrpc":"2.0","method":"environment.getcontrolblocks"}'
params:
- name: type
type: string
description: "Sensor | Filter | Controller | Actuator | Alarm | GenericBlock"
- name: valuetype
type: string
description: "Temperature | Speed | PWM | Voltage | Current | Power | etc."
- id: get_alarm_state
label: Get Alarm State
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"environment.alarmstate"}}'
params: []
- id: get_alarm_info
label: Get Alarm Info
kind: query
command: '{"jsonrpc":"2.0","method":"environment.getalarminfo"}'
params: []
- id: get_lan_state
label: Get LAN State
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"network.device.lan.state"}}'
params: []
- id: get_lan_ip4_config
label: Get LAN IPv4 Config
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"network.device.lan.ip4config"}}'
params: []
- id: get_shutter_position
label: Get Shutter Position
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"optics.shutter.position"}}'
params: []
- id: set_shutter_target
label: Set Shutter Target
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"optics.shutter.target","value":"Open"}}'
params:
- name: value
type: string
description: "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_h
label: Get Horizontal Lens Shift
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"optics.lensshift.horizontal.position"}}'
params: []
- id: get_lensshift_v
label: Get Vertical Lens Shift
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"optics.lensshift.vertical.position"}}'
params: []
- id: get_standby_enable
label: Get Standby Enable
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"system.standby.enable"}}'
params: []
- id: set_standby_enable
label: Set Standby Enable
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"system.standby.enable","value":true}}'
params:
- name: value
type: boolean
- id: get_eco_enable
label: Get ECO Mode Enable
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"system.eco.enable"}}'
params: []
- id: set_eco_enable
label: Set ECO Mode Enable
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"system.eco.enable","value":true}}'
params:
- name: value
type: boolean
- id: serial_wake_eco
label: Wake from ECO via Serial
kind: action
command: ':POWR1\r'
params: []
- id: get_dmx_mode
label: Get DMX Mode
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"dmx.mode"}}'
params: []
- id: get_dmx_startchannel
label: Get DMX Start Channel
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"dmx.startchannel"}}'
params: []
- id: get_dmx_shutdown
label: Get DMX Shutdown
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"dmx.shutdown"}}'
params: []
- 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: list_firmware_components
label: List Firmware Components
kind: query
command: '{"jsonrpc":"2.0","method":"firmware.listcomponents"}'
params: []
- id: list_firmware_versions
label: List Firmware Component Versions
kind: query
command: '{"jsonrpc":"2.0","method":"firmware.listcomponentversionstatus"}'
params: []
- id: schedule_firmware_upgrade
label: Schedule Firmware Component Upgrade
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:
- name: presetname
type: string
- id: p7_reset_preset
label: P7 Reset Preset to Defaults
kind: action
command: '{"jsonrpc":"2.0","method":"image.color.p7.custom.resetpreset"}'
params:
- name: presetname
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_next_mode
label: RGB Mode Next
kind: action
command: '{"jsonrpc":"2.0","method":"image.color.rgbmode.nextrgbmode"}'
params: []
- id: led_blink
label: LED Blink
kind: action
command: '{"jsonrpc":"2.0","method":"ledctrl.blink","params":{"led":"systemstatus","color":"red","period":42}}'
params:
- name: led
type: string
description: LED name
- name: color
type: string
description: LED color
- name: period
type: integer
description: Blink period
Feedbacks
- id: system_state
type: enum
values: [boot, eco, standby, ready, conditioning, on, service, deconditioning, error]
- id: illumination_state
type: enum
values: [On, Off]
- id: alarm_state
type: enum
values: [Fatal, Error, Alert, Warning, Ok]
- id: lan_state
type: enum
values: [CONNECTED, DISCONNECTED]
- id: shutter_position
type: enum
values: [Open, Closed]
- id: orientation
type: enum
values: [DESKTOP_FRONT, DESKTOP_REAR, CEILING_FRONT, CEILING_REAR]
- id: scaling_mode
type: enum
values: [Fill, OneToOne, FillScreen, Stretch]
- id: firmware_upgrade_status
type: enum
values: [Unknown, OK, Upgradable]
Variables
# UNRESOLVED: source describes properties via set/get; limiting to dynamic settable params listed in programmable guide.
- id: image_brightness
type: float
range: [-1, 1]
step: 0.01
description: Image brightness/offset, 0 default, 1 is 100% offset
- id: image_contrast
type: float
range: [0, 2]
step: 0.01
description: Image contrast/gain, 1 default
- id: image_gamma
type: float
range: [1, 3]
step: 0.1
description: Image gamma, 2.2 default
- id: image_saturation
type: float
range: [0, 2]
step: 0.01
description: Image color saturation, 1 default
- id: image_sharpness
type: integer
range: [-2, 8]
step: 1
description: Image sharpness
- id: illumination_laser_power
type: integer
range: [0, 100]
description: Target power percent
- id: dmx_startchannel
type: integer
range: [1, 512]
Events
- id: property_changed
description: 'Sent by server when a subscribed property changes. Format: { "jsonrpc": "2.0", "method": "property.changed", "params": { "property": [ { "objectname.propertyname": value } ] } }'
- id: signal_callback
description: 'Sent by server when a subscribed signal is emitted. Format: { "jsonrpc": "2.0", "method": "signal.callback", "params": { "signal": [ { "objectname.signalname": { arg1, arg2 } } ] } }'
- id: modelupdated
description: Triggered when object structure changes (objects added or removed)
- id: introspect_objectchanged
description: 'Argument: { object: string, isnew: bool }'
Macros
# UNRESOLVED: no explicit multi-step sequences documented beyond warp/blend upload recipes.
# Example macro pattern documented in source: upload_warp_file -> select_warp_file -> enable_warp_file
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source mentions best practice to verify state before power on/off but no explicit interlock or safety procedure.
Notes
- All commands are JSON-RPC 2.0 messages. Order of params keys does not matter.
- File uploads use HTTP POST to
/api/...endpoints; JSON-RPC is used to select and enable uploaded files. - API documentation is dynamic; introspection is the authoritative way to discover available properties/methods on a configured unit.
- ECO mode wake requires ASCII
:POWR1\ron serial port, or Wake-on-LAN, or physical power button. - Set-property best practice: wait for confirmation before issuing further property.set on same property.
Provenance
source_domains:
- audiogeneral.com
source_urls:
- "https://www.audiogeneral.com/barco/UDX%20Series/JSON_ReferenceGuide.pdf"
retrieved_at: 2026-08-07T06:10:19.365Z
last_checked_at: 2026-08-19T08:32:01.883Z
Verification Summary
verdict: verified
checked_at: 2026-08-19T08:32:01.883Z
matched_actions: 85
action_count: 85
confidence: medium
summary: "All 85 spec actions match Barco Pulse API methods/properties documented in the refined source; transport port 9090 and serial params19200/8N1 verified. (6 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "title refers to \"HD SDI3G To HDMIDVI Converter\" but source content covers Pulse projector API broadly."
- "passcode format/length not stated"
- "source describes properties via set/get; limiting to dynamic settable params listed in programmable guide."
- "no explicit multi-step sequences documented beyond warp/blend upload recipes."
- "source mentions best practice to verify state before power on/off but no explicit interlock or safety procedure."
- "source provided is titled \"Barco HD SDI3G To HDMIDVI Converter\" but content describes Barco Pulse projector API. Converter-specific commands not found in source."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0