Wireless Protocols Skill
Overview
This skill provides wireless protocol implementation expertise for embedded IoT devices, covering LoRa/LoRaWAN, Zigbee, Thread, and Matter protocols.
Capabilities
LoRa/LoRaWAN
- LoRaWAN stack configuration
- Class A/B/C device implementation
- OTAA and ABP activation
- ADR (Adaptive Data Rate) configuration
- Channel plan configuration
- Downlink handling
- MAC command processing
Zigbee
- Coordinator/router/end device setup
- Zigbee Cluster Library (ZCL)
- Network formation and joining
- Binding and reporting configuration
- OTA upgrade support
- Green Power device support
Thread
- OpenThread configuration
- Network dataset management
- Commissioner and joiner roles
- Border router setup
- SRP (Service Registration Protocol)
- DNS-SD integration
Matter
- Matter device implementation
- Device type configuration
- Cluster implementation
- Commissioning flow
- Multi-admin support
- OTA provider/requestor
RF Configuration
- Antenna matching analysis
- TX power configuration
- Frequency selection
- Channel hopping setup
- Interference mitigation
- RSSI/LQI monitoring
Certification Preparation
- RF testing requirements
- Protocol compliance testing
- Interoperability testing
- Documentation preparation
Target Processes
device-driver-development.js- Wireless driver implementationlow-power-design.js- Low-power wireless optimizationfunctional-safety-certification.js- Wireless certification
Dependencies
- LoRaWAN stack (LoRaMac-node, LMIC)
- Zigbee SDK (Silicon Labs, NXP)
- OpenThread
- Matter SDK (connectedhomeip)
Usage Context
This skill is invoked when tasks require:
- LoRaWAN device implementation
- Zigbee network development
- Thread/Matter device creation
- Wireless protocol optimization
- RF certification preparation
Protocol Comparison
| Protocol | Range | Data Rate | Power | Mesh | |----------|-------|-----------|-------|------| | LoRaWAN | 15km | 0.3-50 kbps | Low | No | | Zigbee | 100m | 250 kbps | Low | Yes | | Thread | 100m | 250 kbps | Low | Yes | | Matter | 100m | Varies | Low | Via Thread |
Configuration Examples
LoRaWAN OTAA
static uint8_t DevEui[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
static uint8_t AppEui[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
static uint8_t AppKey[] = { 0x00, ..., 0x00 }; // 16 bytes
MibRequestConfirm_t mibReq;
mibReq.Type = MIB_DEV_EUI;
mibReq.Param.DevEui = DevEui;
LoRaMacMibSetRequestConfirm(&mibReq);
Thread Network Configuration
otOperationalDataset dataset;
otDatasetCreateNewNetwork(instance, &dataset);
dataset.mChannel = 15;
dataset.mPanId = 0x1234;
otDatasetSetActive(instance, &dataset);
Matter Device Type
const EmberAfCluster clusters[] = {
OnOff::Id,
LevelControl::Id,
Descriptor::Id,
Identify::Id
};