Summary
Shure SBC220 and SBC240 are networked battery charging systems with Ethernet (TCP/IP) control. Connected to control systems (AMX, Crestron, Extron, DSPs) as servers. Port 2202. ASCII command strings protocol with GET/SET/REP pattern.
Transport
protocols:
- tcp
addressing:
port: 2202
auth:
type: none # inferred: no auth procedure in source
Traits
- queryable # inferred: GET commands return REPORT with parameter values
Actions
# SET / control commands (preserve existing IDs, add verbatim payloads)
- id: flash
label: Flash Device
kind: action
command: "< SET FLASH ON >"
params: []
description: Identifies device via flashing; device initiates an Identify then stops flashing
- id: reboot
label: Reboot Device
kind: action
command: "< SET REBOOT >"
params: []
description: Reboots the device. Does not generate REPorts.
- id: set_device_id
label: Set Device ID
kind: action
command: "< SET DEVICE_ID {device_id} >"
params:
- name: device_id
type: string
description: '1-8 characters from set A-Z,a-z,0-9,!"#$%&''()*+,-./:;<=>?@[\]^_`~ and space. Device always responds with 31-character padded ID.'
- id: set_net_settings
label: Set Network Settings
kind: action
command: "< SET NET_SETTINGS {interface} {ip_mode} {ip_addr} {subnet_mask} {gateway} >"
params:
- name: interface
type: string
enum: [SC, D1, D2]
description: "SC=Shure Control, D1=Dante Primary, D2=Dante Secondary"
- name: ip_mode
type: string
enum: [AUTO, MANUAL]
- name: ip_addr
type: string
description: "IP address, or \"na\" for AUTO mode"
- name: subnet_mask
type: string
description: "Subnet mask, or \"na\" for AUTO mode"
- name: gateway
type: string
description: "Gateway, or \"na\" for AUTO mode (000.000.000.000 means no gateway)"
description: "When setting Shure Control settings, reconnect at new IP. When setting Dante settings, device reboots automatically. Dante Secondary only applicable in Split/Redundant switch config."
- id: set_storage_mode
label: Set Storage Mode
kind: action
command: "< SET STORAGE_MODE {mode} >"
params:
- name: mode
type: string
enum: [ON, OFF, TOGGLE]
description: "TOGGLE switches between ON and OFF"
# Query commands (GET) - all documented status queries enumerated
- id: get_all
label: Get All Properties
kind: query
command: "< GET {bay} ALL >"
params:
- name: bay
type: integer
description: "Bay/module/channel number; 0 = all bays"
- id: get_batt_bars
label: Get Battery Bars
kind: query
command: "< GET {bay} BATT_BARS >"
params:
- name: bay
type: integer
description: "Bay number; 0 = all bays"
- id: get_batt_capacity_max
label: Get Battery Max Capacity
kind: query
command: "< GET {bay} BATT_CAPACITY_MAX >"
params:
- name: bay
type: integer
description: "Bay number; 0 = all bays"
- id: get_batt_charge
label: Get Battery Charge Level
kind: query
command: "< GET {bay} BATT_CHARGE >"
params:
- name: bay
type: integer
description: "Bay number; 0 = all bays"
- id: get_batt_current_capacity
label: Get Current Battery Capacity
kind: query
command: "< GET {bay} BATT_CURRENT_CAPACITY >"
params:
- name: bay
type: integer
description: "Bay number; 0 = all bays"
- id: get_batt_current_capacity_max
label: Get Current Max Capacity
kind: query
command: "< GET {bay} BATT_CURRENT_CAPACITY_MAX >"
params:
- name: bay
type: integer
description: "Bay number; 0 = all bays"
- id: get_batt_cycle
label: Get Battery Cycle Count
kind: query
command: "< GET {bay} BATT_CYCLE >"
params:
- name: bay
type: integer
description: "Bay number; 0 = all bays"
- id: get_batt_detected
label: Get Battery Detected
kind: query
command: "< GET {bay} BATT_DETECTED >"
params:
- name: bay
type: integer
description: "Bay number; 0 = all bays"
- id: get_batt_error
label: Get Battery Error Status
kind: query
command: "< GET {bay} BATT_ERROR >"
params:
- name: bay
type: integer
description: "Bay number; 0 = all bays"
- id: get_batt_health
label: Get Battery Health
kind: query
command: "< GET {bay} BATT_HEALTH >"
params:
- name: bay
type: integer
description: "Bay number; 0 = all bays"
- id: get_batt_module_type
label: Get Battery Module Type
kind: query
command: "< GET {bay} BATT_MODULE_TYPE >"
params:
- name: bay
type: integer
description: "Module number; 0 = all modules"
- id: get_batt_state
label: Get Battery State
kind: query
command: "< GET {bay} BATT_STATE >"
params:
- name: bay
type: integer
description: "Bay number; 0 = all bays"
- id: get_batt_temp_c
label: Get Battery Temperature (Celsius)
kind: query
command: "< GET {bay} BATT_TEMP_C >"
params:
- name: bay
type: integer
description: "Bay number; 0 = all bays"
- id: get_batt_temp_f
label: Get Battery Temperature (Fahrenheit)
kind: query
command: "< GET {bay} BATT_TEMP_F >"
params:
- name: bay
type: integer
description: "Bay number; 0 = all bays"
- id: get_batt_time_to_full
label: Get Time to Full Charge
kind: query
command: "< GET {bay} BATT_TIME_TO_FULL >"
params:
- name: bay
type: integer
description: "Bay number; 0 = all bays"
- id: get_device_id
label: Get Device ID
kind: query
command: "< GET DEVICE_ID >"
params: []
- id: get_fw_ver
label: Get Firmware Version
kind: query
command: "< GET FW_VER >"
params: []
- id: get_model
label: Get Model Name
kind: query
command: "< GET MODEL >"
params: []
- id: get_net_settings
label: Get Network Settings
kind: query
command: "< GET NET_SETTINGS {interface} >"
params:
- name: interface
type: string
enum: [SC, D1, D2]
description: "SC=Shure Control, D1=Dante Primary, D2=Dante Secondary"
description: "No asynchronous REPorts for NET_SETTINGS; use GET to retrieve current values."
- id: get_storage_mode
label: Get Storage Mode
kind: query
command: "< GET STORAGE_MODE >"
params: []
Feedbacks
- id: all_status
label: All Device Properties
description: Response to GET ALL - returns all device properties and metered values
kind: report
- id: batt_bars
label: Battery Bar Count
type: integer
values_description: "000-005: bars, 254: error, 255: unknown"
- id: batt_capacity_max
label: Battery Max Capacity
type: integer
values_description: "00000-65533 mAh, 65534: error, 65535: no battery"
- id: batt_charge
label: Battery Charge Level
type: integer
values_description: "000-100 percent, 254: error, 255: unknown"
- id: batt_current_capacity
label: Current Battery Capacity
type: integer
values_description: "00000-65533 mAh, 65534: error, 65535: no battery"
- id: batt_current_capacity_max
label: Current Max Capacity
type: integer
values_description: "00000-65533 mAh, 65534: error, 65535: no battery"
- id: batt_cycle
label: Battery Cycle Count
type: integer
values_description: "00000-65533 cycles, 65534: error, 65535: unknown"
- id: batt_detected
label: Battery Detected
type: enum
values: [YES, NO]
- id: batt_error
label: Battery Error Status
type: integer
values_description: "000: no error, 001: unknown module, 002: unrecognized battery, 003: deep discharge recovery failed, 004: charge failed, 005: check battery, 006: check charger, 007: communication failure, 254-255: no battery"
- id: batt_health
label: Battery Health
type: integer
values_description: "000-100 percent, 254: error, 255: unknown"
- id: batt_module_type
label: Battery Module Type
type: integer
values_description: "000: no module, 129: primary, 133: secondary or primary, 255: invalid/unsupported"
- id: batt_state
label: Battery State
type: enum
values: [FULL, CALCULATING, NORMAL, WARM, WARM_FULL, HOT, COLD, PRECHARGE, READY_TO_STORE, DISCHARGE_CALC, DISCHARGING, DISCHARGING_WARM, DISCHARGING_COLD, ERROR, NO_BATT]
- id: batt_temp_c
label: Battery Temperature (Celsius)
type: integer
values_description: "Actual = reported - 40. 000-253 C, 254: error, 255: unknown"
- id: batt_temp_f
label: Battery Temperature (Fahrenheit)
type: integer
values_description: "Actual = reported - 40. 000-253 F, 254: error, 255: unknown"
- id: batt_time_to_full
label: Time to Full Charge
type: integer
values_description: "Minutes to target. 00000-65528: minutes, 65529: fully charged, 65533: calculating, 65534: error, 65535: unknown"
- id: device_id
label: Device ID
type: string
description: "31-character padded string"
- id: fw_ver
label: Firmware Version
type: string
description: "Format: Maj.Min.Pack.Build. * suffix indicates self-test failure. 24-character padded response"
- id: flash_state
label: Flash State
type: enum
values: [ON]
- id: model
label: Model Name
type: string
description: 32-character padded string
- id: net_settings
label: Network Settings
type: object
properties:
- interface: SC|D1|D2
- ip_mode: AUTO|MANUAL
- ip_addr: string
- subnet_mask: string
- gw_addr: string
- mac_addr: string
- id: storage_mode
label: Storage Mode
type: enum
values: [ON, OFF]
Variables
# UNRESOLVED: no standalone settable parameters beyond actions above
Events
# Device sends unsolicited REP when monitored battery values change (charge level,
# temperature, time-to-full, bars, cycle count, state). Example:
# < REP 1 BATT_TIME_TO_FULL 00107 >
# NET_SETTINGS has NO asynchronous REPorts - use GET to poll.
Macros
# UNRESOLVED: no macro sequences documented
Safety
confirmation_required_for: []
interlocks:
- "When setting Shure Control network settings, must reconnect at new IP address"
- "When setting Dante network settings, device reboots automatically - must reconnect"
# UNRESOLVED: no safety warnings or interlock procedures in source
Notes
Command syntax: < GET x PARAM > and < REP x PARAM value > — angle brackets, space-separated ASCII. Device acts as TCP server; control system is client. GET returns REP; SET returns REP. Unsolicited REP sent when monitored values change. No authentication required. All messages ASCII. BATT_TEMP_C / BATT_TEMP_F have +40 offset (actual = reported - 40).
Upgrade done. Changes vs on-disk spec:
- **Added `command:` payload** to all 5 existing SET actions (flash, reboot, set_device_id, set_net_settings, set_storage_mode) — verbatim with angle brackets + params templated
- **Added 20 GET query actions** (kind: query) covering all 17 GET-only mnemonics + GET forms of the 3 dual GET/SET mnemonics — every documented `GET` row now has an action
- Preserved all IDs, transport, traits, feedbacks, events, safety, notes shapes
Coverage: all 22 documented mnemonics now represented.
## Provenance
```yaml
source_domains:
- shure.com
source_urls:
- https://www.shure.com/en-US/docs/commandstrings/SBC220-240
- https://www.shure.com/en-US/docs/commandstrings/SBRC
retrieved_at: 2026-05-04T14:18:09.958Z
last_checked_at: 2026-07-22T01:10:16.509Z
Verification Summary
verdict: verified
checked_at: 2026-07-22T01:10:16.509Z
matched_actions: 25
action_count: 25
confidence: medium
summary: "All 25 spec actions matched verbatim in source; all source command tokens represented; transport verified. (5 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "source documents SBC220/SBC240; user provided SBRC as device name — verify if SBRC shares same protocol"
- "no standalone settable parameters beyond actions above"
- "no macro sequences documented"
- "no safety warnings or interlock procedures in source"
- "SBRC device not found in source — source is SBC220/SBC240 command strings"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0