1---2name: matlab-simulate-bluetooth-network3description: Simulate Bluetooth system-level networks using the Bluetooth Toolbox. Use this skill for any Bluetooth topology: BLE ACL (Asynchronous Connection-Less) data connections, CIS (Connected Isochronous Stream) and LE Audio for stereo speakers or hearing aids, BLE GAP (Generic Access Profile) connection establishment with advertising and scanning, Classic BR/EDR piconets with ACL data and SCO (Synchronous Connection-Oriented) voice links, and BLE+BR/EDR coexistence with adaptive frequency hopping. Covers bluetoothLENode, bluetoothNode, bluetoothLEConnectionConfig, bluetoothLECISConfig, bluetoothLEGAPConfig, bluetoothConnectionConfig, configureConnection, kpi (), updateChannelList, and all Bluetooth statistics.4license: https://www.mathworks.com/content/dam/mathworks/license/pmrl/lic5---67# Bluetooth System-Level Simulation89Entry point for all Bluetooth system-level simulation. All Bluetooth simulations use `sim = wirelessNetworkSimulator.init` and follow the workflow defined in `matlab-simulate-wireless-network` (simulator init, traffic, mobility, instrumentation, addNodes, run).1011## When to Use1213- BLE ACL point-to-point or star network connections14- LE Audio unicast with CIS/CIG (stereo speakers, hearing aids)15- BLE GAP connection establishment (advertising, scanning, connection timing)16- Classic BR/EDR piconets with ACL data or SCO voice17- BLE + BR/EDR coexistence with adaptive frequency hopping18- Any simulation using `bluetoothLENode`, `bluetoothNode`1920## When Not to Use2122- Non-Bluetooth wireless simulations (use `matlab-simulate-wireless-network` instead)23- PHY-layer or link level Bluetooth waveform generation, receiver analysis or BER analysis24- Generic simulator setup, traffic models, or mobility (use `matlab-simulate-wireless-network`)2526## Scenario → Reference Routing2728| Scenario | Reference |29|----------|-----------|30| BLE realistic connection setup (advertising, scanning, GAP) | `references/ble-gap-connection.md` |31| BLE point-to-point data, star network, ACL connections | `references/ble-connection.md` |32| LE Audio unicast (stereo speakers, hearing aids, CIS/CIG) | `references/ble-cis.md` |33| Classic Bluetooth earbuds, SCO voice, ACL data | `references/bluetooth-bredr.md` |34| BLE + BR/EDR coexistence, adaptive frequency hopping | `references/bluetooth-coexistence.md` |35| Capture and visualization (PCAP, IQ, event tracing, traffic viewer) | See `matlab-simulate-wireless-network` skill |3637## Node Roles3839- BLE (ACL, CIS): `bluetoothLENode("central")`, `bluetoothLENode("peripheral")`40- BR/EDR: `bluetoothNode("central")`, `bluetoothNode("peripheral")` — max 7 peripherals per central4142## Traffic Attachment Rules4344`addTrafficSource(sourceNode, traffic, ...)`:45- **ACL/CIS/BR/EDR**: `DestinationNode=peer` required. CIS also needs `CISConfig=cfgCISOut`.46- **BR/EDR SCO**: No traffic call — implicit via `SCOPacketType` in connection config.4748## kpi() Availability4950| Topology | `"throughput"` | `"latency"` | `"PLR"` / `"PDR"` | Layer |51|----------|:-:|:-:|:-:|-------|52| BLE ACL | LL only | App only | Both LL and App | `"LL"` or `"App"` |53| BLE CIS | LL only | App only | Both LL and App | `"LL"` or `"App"` |54| BR/EDR | Baseband | — | Baseband | `"Baseband"` |5556## Connection/Configuration Setup5758| Topology | Config Object | Function | Notes |59|----------|--------------|----------|-------|60| BLE ACL | `bluetoothLEConnectionConfig` | `configureConnection(cfg, central, peripheral)` | Per-peripheral in loop; unique `AccessAddress` per connection |61| BLE CIS | `bluetoothLEConnectionConfig` + `bluetoothLECISConfig` | `[~, cfgCISOut] = configureConnection(cfg, central, peripheral, CISConfig=cfgCIS)` | Pass `cfgCISOut` to `addTrafficSource(..., CISConfig=cfgCISOut)` |62| BR/EDR | `bluetoothConnectionConfig` | `configureConnection(cfg, central, peripherals)` | Single call with vector of peripherals |6364## Common Mistakes6566- **`bluetoothNode` for BLE** (or vice versa): BR/EDR = `bluetoothNode`, BLE = `bluetoothLENode`67- **Wrong kpi Layer**: BLE throughput → `"LL"`, BLE latency → `"App"`, BR/EDR → `"Baseband"` only68- **Properties locked after `run()`**: Node/connection properties cannot change mid-sim. Use `updateChannelList` for mid-sim channel updates.69- **`configureConnection` with peripheral vector for BLE**: Must call per-peripheral in loop (BR/EDR accepts vector)70- **Unique `AccessAddress` per connection**: Each BLE connection on same central needs different AccessAddress71- **DataRate in Kbps**: `DataRate=100` means 100 Kbps, not 100 bps72- **`GeneratePacket=true` is not valid**: Not applicable for network-level simulation. Use `OnTime=Inf` for continuous traffic.7374<!-- Copyright 2026 The MathWorks, Inc. -->75