-
-
Notifications
You must be signed in to change notification settings - Fork 0
Hardware Support
This page documents all Zigbee hardware adapters supported by the analyzer, including setup instructions, capabilities, and known limitations.
| Device | Status | Capture | TX | RSSI | Price | Availability |
|---|---|---|---|---|---|---|
| TI CC2531 | ✅ Stable | ✅ | ❌ | ✅ | ~$10 | Common |
| TI CC2652R | 🚧 Beta | ✅ | 🚧 | ✅ | ~$25 | Common |
| TI CC2652P | 📋 Planned | - | - | - | ~$30 | Common |
| TI CC2652RB | 📋 Planned | - | - | - | ~$25 | Moderate |
| Atmel RZRaven | 📋 Planned | - | - | - | ~$50 | Rare |
| nRF52840 Dongle | 📋 Planned | - | - | - | ~$10 | Common |
| HUSBZB-1 | 📋 Research | - | - | - | ~$40 | Moderate |
# Linux - check USB
lsusb | grep 0451
Check dmesg for errors
dmesg | tail -50 | grep -i usb
Windows - Device Manager
Look under "Ports (COM & LPT)"
If device behaves incorrectly:
- Re-flash firmware
- Try different firmware version
- Check antenna connection
- Test on different USB port/hub
If experiencing packet drops:
- Use better hardware (CC2652 over CC2531)
- Reduce capture channel congestion
- Check USB bandwidth (other devices on same hub?)
- Increase system priority (nice level on Linux)
Want to add support for new hardware? See Driver Development for:
- Hardware abstraction trait implementation
- Protocol reverse engineering tips
- Testing requirements
- Pull request process
Currently needed:
- nRF52840 driver
- Atmel RZRaven support
- Sub-GHz radio support (CC1352)
See Also:
- Getting Started - Initial setup guide
- Driver Development - Adding new hardware
- Architecture - Understanding the HAL layer
This page documents all Zigbee hardware adapters supported by the analyzer, including setup instructions, capabilities, and known limitations.
| Device | Status | Capture | TX | RSSI | Price | Availability |
|---|---|---|---|---|---|---|
| TI CC2531 | ✅ Stable | ✅ | ❌ | ✅ | ~$10 | Common |
| TI CC2652R | 🚧 Beta | ✅ | 🚧 | ✅ | ~$25 | Common |
| TI CC2652P | 📋 Planned | - | - | - | ~$30 | Common |
| TI CC2652RB | 📋 Planned | - | - | - | ~$25 | Moderate |
| Atmel RZRaven | 📋 Planned | - | - | - | ~$50 | Rare |
| nRF52840 Dongle | 📋 Planned | - | - | - | ~$10 | Common |
| HUSBZB-1 | 📋 Research | - | - | - | ~$40 | Moderate |
Legend:
- ✅ Fully supported
- 🚧 In development / Beta
- 📋 Planned / Not yet implemented
- ❌ Not supported (hardware limitation)
The TI CC2531 is the most common and affordable Zigbee sniffer. It's a USB dongle based on Texas Instruments' 8051 core with a CC2530 radio.
- Chipset: CC2531 (8051 MCU + 2.4GHz radio)
- Frequency: 2.4 GHz (2400-2483.5 MHz)
- Channels: 11-26 (IEEE 802.15.4)
- Sensitivity: -97 dBm (typical)
- Output Power: +4.5 dBm
- Interface: USB 2.0
- Flash: 256KB
- RAM: 8KB
Vendor ID: 0x0451 (Texas Instruments)
Product ID: 0x16AE (CC2531 EMK)
✅ Supported:
- Packet capture (promiscuous mode)
- Channel selection (11-26)
- RSSI reporting
- LQI (Link Quality Indicator)
- 2.4 GHz only
❌ Not Supported:
- Packet injection/transmission
- Sub-GHz (868/915 MHz)
- Hardware encryption/decryption
Required: CC2531 must be flashed with sniffer firmware.
Official Firmware:
- TI's "Packet Sniffer 2" firmware
- Download from [TI's website](https://www.ti.com/tool/PACKET-SNIFFER)
Flashing:
# Using CC Debugger (hardware programmer required)
# 1. Install TI's Flash Programmer
# 2. Connect CC Debugger to CC2531
# 3. Flash sniffer_fw_cc2531.hexAlternative - DIY Flashing:
# Using CCLoader (software-only, some boards)
git clone https://github.com/RedBearLab/CCLoader
cd CCLoader/Python
sudo python cc_loader.py -e -w sniffer_fw_cc2531.hex- Create udev rule:
sudo tee /etc/udev/rules.d/99-cc2531.rules << EOF
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="16ae", MODE="0666"
EOF
sudo udevadm control --reload-rules
sudo udevadm trigger- Verify device:
lsusb | grep 0451
# Should show: Bus XXX Device YYY: ID 0451:16ae Texas Instruments, Inc.
ls -la /dev/ttyACM* | grep 0451
# Should show: /dev/ttyACM0 or similar- Test:
cargo run --example simple_capture- Install drivers (usually automatic)
- Check Device Manager: Should appear as "TI CC2531 USB CDC"
- Note COM port: e.g., COM3
- Test:
cargo run --example simple_captureUsually works without additional setup:
# Find device
ls /dev/tty.usbmodem*
# Test
cargo run --example simple_captureThe CC2531 uses a simple serial protocol:
Frame Structure:
[SOF] [LEN] [CMD] [DATA...] [FCS]
0xFE 1byte 1byte n bytes 1byte
Commands:
-
0x22: Start capture -
0x23: Stop capture -
0x24: Set channel -
0x80: Packet indication (device → host)
Example - Start Capture:
TX: FE 00 22 22 (Start on current channel)
RX: FE 01 22 00 23 (ACK)
Example - Packet Received:
RX: FE 1E 80 [19 bytes of data] [FCS]
│ │ │
│ │ └─ Packet indication
│ └─ Length (30 bytes)
└─ Start of Frame
- Max packet rate: ~1000 packets/sec
- Typical latency: 5-10ms
- Buffer size: Limited (may drop packets under heavy load)
Where to Buy:
- AliExpress: ~$8-12 (CC2531 + antenna)
- Amazon: ~$10-15
- eBay: ~$10-15
What to Look For:
- "CC2531 USB Zigbee Sniffer"
- "CC2531 EMK" (evaluation module)
- Includes external antenna (better range)
- Pre-flashed with sniffer firmware (rare, usually need to flash yourself)
-
Buffer overflow: Can drop packets at high traffic rates
- Solution: Use lower traffic channels or reduce network load
-
Windows driver issues: Some boards don't enumerate properly
- Solution: Use Zadig to install WinUSB driver
-
Range limitations: ~10-20m line of sight
- Solution: Use external antenna, get closer to target network
-
No timestamp: Firmware doesn't provide hardware timestamps
- Solution: Software timestamps in driver (less accurate)
The TI CC2652 is a modern, more capable alternative to the CC2531. It features a 48MHz ARM Cortex-M4F processor and improved radio performance.
- Chipset: CC2652R/P (ARM Cortex-M4F + 2.4GHz radio)
- Frequency: 2.4 GHz
- Channels: 11-26
- Sensitivity: -100 dBm (CC2652R), -105 dBm (CC2652P)
- Output Power: +5 dBm (CC2652R), +20 dBm (CC2652P - high power variant)
- Interface: USB 2.0
- Flash: 352KB
- RAM: 80KB
Vendor ID: 0x0451 (Texas Instruments)
Product ID: 0x16C8 (CC2652R)
0x16C9 (CC2652P)
0x16CA (CC2652RB)
✅ Supported:
- All CC2531 features, plus:
- Higher packet capture rate
- Better RSSI accuracy
- Lower latency
- Larger buffers (fewer dropped packets)
🚧 In Development:
- Packet injection
- TX power control
- Sub-GHz support (CC2652P7)
CC2652R: Standard version
- +5 dBm TX power
- -100 dBm sensitivity
- Most common variant
CC2652P: High-power version
- +20 dBm TX power (100mW!)
- -105 dBm sensitivity
- External PA/LNA
CC2652RB: New revision
- Similar to CC2652R
- Improved manufacturing
Required: Must be flashed with Z-Stack firmware in sniffer mode.
Firmware Options:
- Z-Stack: TI's official Zigbee stack
- Zigbee2MQTT firmware: Modified for better capture
- Custom firmware: For advanced users
Flashing:
# Using cc2538-bsl (Python tool)
pip install cc2538-bsl
# Flash firmware
cc2538-bsl.py -p /dev/ttyUSB0 -evw firmware.hexSimilar to CC2531, but uses different USB VID/PID:
# Linux udev rule
sudo tee /etc/udev/rules.d/99-cc2652.rules << EOF
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="16c8", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="16c9", MODE="0666"
EOFUses an extended version of the CC2531 protocol with additional commands:
-
0x85: Set TX power -
0x88: Inject packet -
0x89: Get configuration
- Max packet rate: ~5000 packets/sec
- Typical latency: <2ms
- Buffer size: Much larger than CC2531
Where to Buy:
- Electrolama zig-a-zig-ah!: ~$25 (highly recommended)
- Slaesh's CC2652RB stick: ~$25
- AliExpress: Various clones ~$20-30
- Official TI LaunchPad: ~$30
Recommended:
- Electrolama zig-a-zig-ah! - Well-designed, good antenna
Working:
- Basic packet capture
- Channel selection
- RSSI/LQI reading
In Progress:
- Packet injection
- Extended commands
- Optimizations
Status: 📋 Planned
Popular low-cost dongle with good Zigbee support:
- ARM Cortex-M4F @ 64MHz
- Excellent radio performance
- USB dongle form factor
- ~$10
Status: 📋 Planned
Legacy but capable platform:
- Atmel AVR + 2.4GHz radio
- LCD display
- Joystick for standalone use
- Becoming rare, ~$50+
Status: 📋 Research
Dual Zigbee/Z-Wave USB stick:
- Zigbee + Z-Wave combo
- Common in Home Assistant setups
- May have limited sniffer capabilities
For basic packet capture, you need:
- USB 2.0 port
- Supported dongle (e.g., CC2531)
- Appropriate firmware flashed
For best experience:
- CC2652R/P dongle
- USB extension cable (for better positioning)
- External antenna (improves range)
- USB hub with individual power switches (for resets)
For serious research/pentesting:
- Multiple dongles (capture multiple channels)
- CC2652P high-power variant (for injection)
- Directional antennas
- Laptop with good USB stack
| Feature | CC2531 | CC2652R | CC2652P | nRF52840 |
|---|---|---|---|---|
| Price | $ | $$ | $$$ | $ |
| Availability | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
| Capture Rate | 1K pps | 5K pps | 5K pps | 3K pps |
| Sensitivity | -97 dBm | -100 dBm | -105 dBm | -95 dBm |
| TX Power | +4.5 dBm | +5 dBm | +20 dBm | +8 dBm |
| Injection | ❌ | 🚧 | 🚧 | 📋 |
| Range | ~20m | ~30m | ~100m+ | ~25m |
| Latency | 5-10ms | <2ms | <2ms | <3ms |
| Buffer | Small | Large | Large | Medium |
# Linux - check USB
lsusb | grep 0451
# Check dmesg for errors
dmesg | tail -50 | grep -i usb
# Windows - Device Manager
# Look under "Ports (COM & LPT)"If device behaves incorrectly:
- Re-flash firmware
- Try different firmware version
- Check antenna connection
- Test on different USB port/hub
If experiencing packet drops:
- Use better hardware (CC2652 over CC2531)
- Reduce capture channel congestion
- Check USB bandwidth (other devices on same hub?)
- Increase system priority (nice level on Linux)
Want to add support for new hardware? See Driver Development for:
- Hardware abstraction trait implementation
- Protocol reverse engineering tips
- Testing requirements
- Pull request process
Currently needed:
- nRF52840 driver
- Atmel RZRaven support
- Sub-GHz radio support (CC1352)
See Also:
- Getting Started - Initial setup guide
- Driver Development - Adding new hardware
- Architecture - Understanding the HAL layer