Sub-GHz Radio (CC1101)
Sub-GHz Radio (CC1101)
The Snake-V1 incorporates the Texas Instruments CC1101 low-power sub-1GHz transceiver. This module allows the device to interact with a wide range of wireless devices operating in the industrial, scientific, and medical (ISM) bands. Paired with a custom-tuned Tapered Helical Antenna, the system is optimized for a balance between compact form factor and transmission range.
Overview
The Sub-GHz subsystem is designed for signal analysis, packet sniffing, and custom protocol transmission. It interfaces with the STM32WB microcontroller via SPI, providing high-speed control over the radio's frequency, modulation, and packet handling.
Key Capabilities
- Frequency Range: Support for common bands including 315MHz, 433MHz, 868MHz, and 915MHz.
- Modulation Support: 2-FSK, GFSK, MSK, ASK, and OOK.
- Customizable Data Rates: Configurable from 0.6 to 600 kbps.
- Signal Strength: Integrated RSSI (Received Signal Strength Indicator) for signal locating and analysis.
Configuration and Control
To interact with the Sub-GHz radio, the system provides a high-level configuration interface. Users can define the operating parameters to match the target device or protocol.
Setting the Operating Frequency
The frequency is set by calculating the carrier frequency based on the CC1101's internal crystal oscillator. In the Snake-V1 firmware, this is typically handled via a simple frequency assignment:
// Example: Setting the radio to the 433.92 MHz band
Radio.setFrequency(433920000);
Modulation and Packet Format
For effective communication, the modulation must match the target peripheral. The CC1101 is highly flexible:
| Modulation | Typical Use Case | | :--- | :--- | | OOK / ASK | Common in simple remote controls (garage doors, doorbells). | | GFSK / 2-FSK | Used in more modern digital sensors and smart meters. | | MSK | Efficient for higher data rate digital communications. |
Example configuration for a standard OOK (On-Off Keying) signal:
// Configure for 433.92MHz OOK sniffing
SubGHz_Config config = {
.frequency = 433920000,
.modulation = MODULATION_ASK_OOK,
.baud_rate = 2400,
.channel_spacing = 199951 // 200kHz
};
CC1101.configure(config);
Antenna Performance
The Snake-V1 utilizes a Tapered Helical Antenna. Unlike standard wire antennas, the tapered design provides:
- Wide Bandwidth: Better performance across multiple Sub-GHz bands (315–915MHz) without requiring manual antenna swapping.
- Compact Integration: High gain within a small physical footprint, fitting the handheld profile of the tool.
- Resonance Stability: Reduced detuning effects when the device is held in the hand.
Usage Guide
- Scanning: Set the radio to "Listen" mode with a broad bandwidth to detect nearby signals. Use the RSSI value to determine proximity to the transmitter.
- Capturing: Once a frequency is identified, configure the modulation (e.g., OOK for most remotes) and capture the raw bitstream to the microSD card.
- Replaying/Transmitting: Load a saved signal or generate a custom packet. Ensure the
TX_POWERis configured appropriately for your local regulations and distance requirements.
Note: The CC1101 interface is an internal hardware abstraction. While the library handles SPI communication and register buffering automatically, high-level control is exposed through the
SubGHzAPI for user applications.