Bluetooth System-Level Simulation

SkillMedia

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.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Bluetooth System-Level Simulation skill

What this skill tells your AI

The instructions your AI receives, as published by matlab/matlab-agentic-toolkit in skills-catalog/wireless-communications/matlab-simulate-bluetooth-network/SKILL.md and read by ahel’s review.

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-network instead)
  • 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

ScenarioReference
BLE realistic connection setup (advertising, scanning, GAP)references/ble-gap-connection.md
BLE point-to-point data, star network, ACL connectionsreferences/ble-connection.md
LE Audio unicast (stereo speakers, hearing aids, CIS/CIG)references/ble-cis.md
Classic Bluetooth earbuds, SCO voice, ACL datareferences/bluetooth-bredr.md
BLE + BR/EDR coexistence, adaptive frequency hoppingreferences/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=peer required. CIS also needs CISConfig=cfgCISOut.
  • BR/EDR SCO: No traffic call — implicit via SCOPacketType in connection config.

kpi() Availability

Topology"throughput""latency""PLR" / "PDR"Layer
BLE ACLLL onlyApp onlyBoth LL and App"LL" or "App"
BLE CISLL onlyApp onlyBoth LL and App"LL" or "App"
BR/EDRBasebandBaseband"Baseband"

Connection/Configuration Setup

TopologyConfig ObjectFunctionNotes
BLE ACLbluetoothLEConnectionConfigconfigureConnection(cfg, central, peripheral)Per-peripheral in loop; unique AccessAddress per connection
BLE CISbluetoothLEConnectionConfig + bluetoothLECISConfig[~, cfgCISOut] = configureConnection(cfg, central, peripheral, CISConfig=cfgCIS)Pass cfgCISOut to addTrafficSource(..., CISConfig=cfgCISOut)
BR/EDRbluetoothConnectionConfigconfigureConnection(cfg, central, peripherals)Single call with vector of peripherals

Common Mistakes

  • bluetoothNode for 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. Use updateChannelList for mid-sim channel updates.
  • configureConnection with peripheral vector for BLE: Must call per-peripheral in loop (BR/EDR accepts vector)
  • Unique AccessAddress per connection: Each BLE connection on same central needs different AccessAddress
  • DataRate in Kbps: DataRate=100 means 100 Kbps, not 100 bps
  • GeneratePacket=true is not valid: Not applicable for network-level simulation. Use OnTime=Inf for continuous traffic.

Signals

GitHub stars
1k
Forks
128
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
matlab-simulate-bluetooth-network
Source
github.com/matlab/matlab-agentic-toolkit