About matlab-simulate-bluetooth-network
A Bluetooth-focused skill for MATLAB wireless network simulations, intended for users modeling BLE and classic Bluetooth networks. It covers connection setup, traffic rules, and topology-specific KPIs.
Key features
- 01Simulate BLE ACL and CIS networks
- 02Simulate BR/EDR piconets
- 03Configure connections and node roles
- 04Select KPIs and layers by topology
Use cases
- 01Evaluate BLE point-to-point or star connections
- 02Model LE Audio unicast connections
- 03Analyze classic Bluetooth audio and data networks
- 04Study BLE and BR/EDR coexistence
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ matlab/ matlab-agentic-toolkit --skill matlab-simulate-bluetooth-networkAfter installing, type/matlab-simulate-bluetooth-networkin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
manifest.yamlreferences/ble-cis.mdble-connection.mdble-gap-connection.mdbluetooth-bredr.mdbluetooth-coexistence.mdDetails
From the project READMEBluetooth System-Level Simulation
Entry 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).
When to Use
- BLE ACL point-to-point or star network connections
- LE Audio unicast with CIS/CIG (stereo speakers, hearing aids)
- BLE GAP connection establishment (advertising, scanning, connection timing)
- Classic BR/EDR piconets with ACL data or SCO voice
- BLE + BR/EDR coexistence with adaptive frequency hopping
- Any simulation using
bluetoothLENode,bluetoothNode
When Not to Use
- Non-Bluetooth wireless simulations (use
matlab-simulate-wireless-networkinstead) - PHY-layer or link level Bluetooth waveform generation, receiver analysis or BER analysis
- Generic simulator setup, traffic models, or mobility (use
matlab-simulate-wireless-network)
Scenario → Reference Routing
| Scenario | Reference |
|---|---|
| BLE realistic connection setup (advertising, scanning, GAP) | references/ble-gap-connection.md |
| BLE point-to-point data, star network, ACL connections | references/ble-connection.md |
| LE Audio unicast (stereo speakers, hearing aids, CIS/CIG) | references/ble-cis.md |
| Classic Bluetooth earbuds, SCO voice, ACL data | references/bluetooth-bredr.md |
| BLE + BR/EDR coexistence, adaptive frequency hopping | references/bluetooth-coexistence.md |
| Capture and visualization (PCAP, IQ, event tracing, traffic viewer) | See matlab-simulate-wireless-network skill |
Node Roles
- BLE (ACL, CIS):
bluetoothLENode("central"),bluetoothLENode("peripheral") - BR/EDR:
bluetoothNode("central"),bluetoothNode("peripheral")— max 7 peripherals per central
Traffic Attachment Rules
addTrafficSource(sourceNode, traffic, ...):
- ACL/CIS/BR/EDR:
DestinationNode=peerrequired. CIS also needsCISConfig=cfgCISOut. - BR/EDR SCO: No traffic call — implicit via
SCOPacketTypein connection config.
kpi() Availability
| Topology | "throughput" | "latency" | "PLR" / "PDR" | Layer |
|---|---|---|---|---|
| BLE ACL | LL only | App only | Both LL and App | "LL" or "App" |
| BLE CIS | LL only | App only | Both LL and App | "LL" or "App" |
| BR/EDR | Baseband | — | Baseband | "Baseband" |
Connection/Configuration Setup
| Topology | Config Object | Function | Notes |
|---|---|---|---|
| BLE ACL | bluetoothLEConnectionConfig | configureConnection(cfg, central, peripheral) | Per-peripheral in loop; unique AccessAddress per connection |
| BLE CIS | bluetoothLEConnectionConfig + bluetoothLECISConfig | [~, cfgCISOut] = configureConnection(cfg, central, peripheral, CISConfig=cfgCIS) | Pass cfgCISOut to addTrafficSource(..., CISConfig=cfgCISOut) |
| BR/EDR | bluetoothConnectionConfig | configureConnection(cfg, central, peripherals) | Single call with vector of peripherals |
Common Mistakes
bluetoothNodefor BLE (or vice versa): BR/EDR =bluetoothNode, BLE =bluetoothLENode- Wrong kpi Layer: BLE throughput →
"LL", BLE latency →"App", BR/EDR →"Baseband"only - Properties locked after
run(): Node/connection properties cannot change mid-sim. UseupdateChannelListfor mid-sim channel updates. configureConnectionwith peripheral vector for BLE: Must call per-peripheral in loop (BR/EDR accepts vector)- Unique
AccessAddressper connection: Each BLE connection on same central needs different AccessAddress - DataRate in Kbps:
DataRate=100means 100 Kbps, not 100 bps GeneratePacket=trueis not valid: Not applicable for network-level simulation. UseOnTime=Inffor continuous traffic.
Comments
Markdown supported