Matlab simulate bluetooth network
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.From its SKILL.md
npx -y skills add matlab/matlab-agentic-toolkit --skill matlab-simulate-bluetooth-networkAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
What its file declares
Copied from the file, not written here
The file declares its own license as MathWorks BSD-3-Clause. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
4.7 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it
Bluetooth 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.
What ships with it: 6 files
28.8 KB alongside SKILL.md
references/
- ble-cis.md5.9 KB
- ble-connection.md4.9 KB
- ble-gap-connection.md6.3 KB
- bluetooth-bredr.md6.2 KB
- bluetooth-coexistence.md5.1 KB
- manifest.yaml522 B