Summary

Xilica Solaro xR1 Series DSP processors controlled via ASCII command protocol over TCP and UDP. TCP port 10007 carries command/response traffic with 60-second keep-alive requirement. UDP port 10008 carries subscription broadcast notifications. Control objects are user-defined strings configured in Xilica Designer and addressed by name.

Transport

protocols:
  - tcp
  - udp
addressing:
  port: 10007
auth:
  type: password  # source describes LOGIN command with password; device may or may not require it
serial: null  # N/A - serial not mentioned in source

Traits

# - levelable     (SET/INC/DEC gain, fader, EQ parameters present)
# - queryable     (GET/GETRAW/REFRESH commands present)
# - powerable     (REBOOT command present)
# - subscribable  (SUBSCRIBE/UNSUBSCRIBE with TCP/UDP notification present)

Actions

- id: set
  label: Set Control Object Value
  kind: action
  params:
    - name: control_object
      type: string
      description: "Control object or group name (groups prefixed with $)"
    - name: data
      type: string
      description: "Value to set - number, quoted string, or Boolean (TRUE/FALSE)"

- id: setraw
  label: Set Control Object Raw Value
  kind: action
  params:
    - name: control_object
      type: string
      description: "Control object or group name"
    - name: data
      type: number
      description: "Raw numeric value (e.g. -3200 for -3.2 dB)"

- id: get
  label: Get Control Object Formatted Value
  kind: query
  params:
    - name: control_object
      type: string
      description: "Control object or group name"

- id: getraw
  label: Get Control Object Raw Value
  kind: query
  params:
    - name: control_object
      type: string
      description: "Control object or group name"

- id: inc
  label: Increment Control Object
  kind: action
  params:
    - name: control_object
      type: string
      description: "Control object or group name"
    - name: step
      type: number
      description: "Increment amount (formatted units)"

- id: incraw
  label: Increment Control Object Raw
  kind: action
  params:
    - name: control_object
      type: string
      description: "Control object or group name"
    - name: step
      type: number
      description: "Increment amount (raw units)"

- id: dec
  label: Decrement Control Object
  kind: action
  params:
    - name: control_object
      type: string
      description: "Control object or group name"
    - name: step
      type: number
      description: "Decrement amount (formatted units)"

- id: decraw
  label: Decrement Control Object Raw
  kind: action
  params:
    - name: control_object
      type: string
      description: "Control object or group name"
    - name: step
      type: number
      description: "Decrement amount (raw units)"

- id: toggle
  label: Toggle Control Object
  kind: action
  params:
    - name: control_object
      type: string
      description: "Control object or group name (Boolean parameters only)"

- id: preset_recall
  label: Recall Preset
  kind: action
  params:
    - name: data
      type: string
      description: "Preset number or quoted preset name"

- id: subscribe
  label: Subscribe to Control Object
  kind: action
  params:
    - name: control_object
      type: string
      description: "Control object or group name"
    - name: transport
      type: string
      description: '"TCP" for unicast or "UDP" for broadcast (optional, default TCP)'

- id: unsubscribe
  label: Unsubscribe from Control Object
  kind: action
  params:
    - name: control_object
      type: string
      description: "Control object or group name"

- id: keepalive
  label: Keep-Alive
  kind: action
  params: []

- id: interval
  label: Set Subscription Interval
  kind: action
  params:
    - name: time_ms
      type: integer
      description: "Minimum interval in milliseconds (minimum 100)"

- id: login
  label: Login
  kind: action
  params:
    - name: password
      type: string
      description: "Password string (quoted)"

- id: reboot
  label: Reboot Device
  kind: action
  params: []

- id: refresh
  label: Refresh All Control Objects
  kind: query
  params: []

- id: create_group
  label: Create Control Group
  kind: action
  params:
    - name: group_name
      type: string
      description: "Group name (no $ prefix - added automatically)"

- id: remove_group
  label: Remove Control Group
  kind: action
  params:
    - name: group_name
      type: string
      description: "Group name with $ prefix"

- id: join_group
  label: Join Control Object to Group
  kind: action
  params:
    - name: group_name
      type: string
      description: "Group name with $ prefix"
    - name: control_object
      type: string
      description: "Control object name (quoted)"

- id: leave_group
  label: Leave Control Object from Group
  kind: action
  params:
    - name: group_name
      type: string
      description: "Group name with $ prefix"
    - name: control_object
      type: string
      description: "Control object name (quoted)"

Feedbacks

- id: control_object_value
  type: string
  description: "Response to GET/GETRAW: <CONTROL OBJECT>=<DATA>"

- id: control_object_notification
  type: string
  description: "Subscription notification: #<CONTROL OBJECT>=<DATA>"

- id: error_response
  type: enum
  values:
    - "101"
    - "102"
    - "103"
    - "104"
    - "105"
    - "106"
    - "107"
    - "108"
    - "109"
    - "110"
    - "111"
    - "112"
    - "113"
    - "114"
    - "115"
    - "116"
    - "117"
    - "118"

- id: ok_response
  type: enum
  values: ["OK"]

Variables

# UNRESOLVED: specific DSP parameter ranges (gain min/max, filter frequency ranges, etc.)
# not enumerated in source - control object names and ranges are configured per-design in Xilica Designer

Events

- id: subscription_notification
  description: "Unsolicited notification on subscribed control object value change, sent via TCP unicast or UDP broadcast"
  format: "#<CONTROL OBJECT>=<DATA><CR>"

Macros

# UNRESOLVED: no multi-step sequences described in source

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings or interlock procedures found in source

Notes

  • Commands and control object names are case-sensitive.
  • Fields separated by exactly one space; extra whitespace causes parse errors.
  • Messages terminated with carriage return (<CR>).
  • TCP keep-alive required every 60 seconds or connection drops.
  • On TCP disconnect all subscriptions and group settings are lost and must be reconfigured.
  • Control groups: member objects must share same type and support same commands.
  • Solaro-specific: INTERVAL command is global across all connections (unlike Neutrino where it is per-connection).
  • REBOOT on Solaro: no response returned, device reboots immediately.
  • Password protection is optional per-device; LOGIN persists only for the duration of the TCP connection.
  • Control object names are user-defined in Xilica Designer, up to 32 ASCII chars, no double quotes, cannot start with $.
  • UDP port 10008 used for subscription broadcast when "UDP" transport selected.

Provenance

source_domains:
  - cdn.xilica.com
  - support.xilica.com
source_urls:
  - https://cdn.xilica.com/designer/FAQ/X22_Solaro_API_Guide.pdf
  - https://support.xilica.com/en/articles/3940994
  - https://support.xilica.com/en/articles/3942530
retrieved_at: 2026-05-27T13:14:51.144Z
last_checked_at: 2026-05-31T22:46:44.300Z

Verification Summary

verdict: verified
checked_at: 2026-05-31T22:46:44.300Z
matched_actions: 21
action_count: 21
confidence: medium
summary: "All 21 spec actions match source commands one-to-one; transport parameters (TCP port 10007, keep-alive 60s, password auth) verified. (11 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "specific xR1 model variants (e.g. xR1-8x8, xR1-16x16) not enumerated in source"
- "firmware version compatibility not stated in source"
- "maximum number of simultaneous TCP connections not stated"
- "specific DSP parameter ranges (gain min/max, filter frequency ranges, etc.)"
- "no multi-step sequences described in source"
- "no safety warnings or interlock procedures found in source"
- "maximum subscription count not stated (error 107 implies a limit exists)"
- "maximum control group count not stated (error 112 implies a limit exists)"
- "maximum objects per group not stated (error 113 implies a limit exists)"
- "raw value scaling factors not documented (e.g. how many raw units per dB)"
- "verbose/simple mode described as future implementation, not yet available"

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