BLE & Wi-Fi Connectivity
Bluetooth Low Energy (BLE)
The Snake-V1 leverages the STM32WB35CEU6A, a dual-core microcontroller featuring an integrated 2.4GHz radio. This allows for native BLE support without the need for external wireless chips, ensuring low latency and high power efficiency.
Features
- Version Support: BLE 5.0 compatible.
- Dual-Core Architecture: The radio stack runs on a dedicated M0+ core, leaving the M4 core free for user applications and peripheral management.
- Integrated Antenna: Optimized for short-to-medium range testing and communication.
Usage and Interaction
The BLE module is primarily used for remote control and data exfiltration. Depending on the loaded firmware, you can interact with BLE in the following ways:
- Remote Terminal: Access the Snake-V1 command-line interface (CLI) over a wireless GATT service.
- Peripheral Emulation: Emulate standard BLE profiles (e.g., HID for keyboards/mice, Heart Rate Monitors) for testing mobile application responses.
- Signal Sniffing: Monitor advertisement packets from nearby BLE devices to analyze signal strength (RSSI) and manufacturer data.
# Example: Starting a BLE Advertisement via CLI
snake-cli ble advertise --name "SnakeV1-Node" --mode "discoverable"
Wi-Fi Connectivity
While the STM32WB handles BLE natively, Wi-Fi functionality on the Snake-V1 is achieved via external module expansion. The board is designed to interface with common 2.4GHz Wi-Fi modules (such as the ESP8266 or ESP32 series) through the dedicated GPIO headers.
External Module Integration
To utilize Wi-Fi, an external module must be connected to the Snake-V1's peripheral headers. The system typically communicates with these modules via UART or SPI protocols.
- Interface: GPIO Pins (Configurable via firmware).
- Default Protocol: AT Command set over UART.
- Power Supply: 3.3V supplied directly from the Snake-V1 power rail.
Common Wi-Fi Applications
- Deauthentication Testing: Using the external module to send deauth packets to test network resilience.
- Web Dashboard: Hosting a local web server to graph GPIO data or Sub-GHz captures in real-time.
- NTP Sync: Synchronizing the Snake-V1's internal clock with global time servers.
Configuration Example
When using an external ESP-based module, you can initialize the connection through the Snake-V1 interface:
// Example: Connecting to an Access Point via Snake-V1 Wi-Fi Driver
WiFi.begin("SSID_NAME", "PASSWORD");
while (WiFi.status() != WL_CONNECTED) {
// Wait for connection
delay(500);
}
Serial.println("Snake-V1 connected to network.");
Connectivity Matrix
| Feature | BLE (Internal) | Wi-Fi (External) | | :--- | :--- | :--- | | Hardware | STM32WB35 (Built-in) | External Module (e.g., ESP32) | | Frequency | 2.4 GHz | 2.4 GHz | | Typical Range | 10-30 Meters | 50-100 Meters | | Primary Use | App Sync / Low Power | High Speed / Internet / Pentesting | | Status | Native Support | Header Expansion Required |