Data Logging & File Structures
Overview
Snake-V1 utilizes an onboard microSD card to store captured signals, configuration settings, and log data. All data is stored using a standard FAT32 filesystem, making it easily accessible via PC or other devices for analysis and playback.
The system prioritizes human-readable formats where possible to ensure that captures can be manually edited or audited without proprietary software.
Directory Structure
To maintain organization across the various peripheral modules, Snake-V1 uses a standardized folder hierarchy on the SD card:
SD Card Root/
├── ir/ # Infrared captures (.ir)
├── subghz/ # Sub-GHz radio captures (.sub)
├── nfc/ # NFC tag dumps and emulations (.nfc)
├── logs/ # System debug and session logs (.txt)
└── settings.ini # Global device configurations
Infrared (.ir) File Format
Infrared data is stored in a structured text format. Each file contains header information followed by the specific protocol data or raw pulse/space timings.
Usage Example (Raw Capture)
Filetype: Snake IR File
Version: 1
# Raw capture from TSOP38238
Name: TV_Power_Off
Protocol: RAW
Frequency: 38000
Data: 9000 4500 560 560 560 1690 560 560 ...
Usage Example (Decoded Protocol)
Filetype: Snake IR File
Version: 1
Name: Volume_Up
Protocol: NEC
Address: 04 00 00 00
Command: 02 00 00 00
Sub-GHz (.sub) File Format
Sub-GHz captures include hardware-specific parameters required for the CC1101 transceiver to replicate the signal accurately.
Structure
- Frequency: The carrier frequency in Hz.
- Modulation: The modulation scheme (e.g., OOK, 2-FSK).
- RAW Data: Timings for pulses (positive integers) and spaces (negative integers) in microseconds.
Example File
Filetype: Snake SubGhz File
Version: 1
Frequency: 433920000
Preset: FuriHalSubGhzPresetOok650Async
Protocol: RAW
RAW_Data: 450 -1200 440 -1210 890 -400 ...
System Configuration (settings.ini)
The settings.ini file at the root of the SD card manages the device's persistent state. This file is loaded at boot and updated whenever settings are changed in the UI.
| Key | Description | Type |
| :--- | :--- | :--- |
| backlight | Screen brightness level (0-100) | Integer |
| stealth_mode | Disables LEDs and buzzer for discrete use | Boolean |
| default_freq | Default starting frequency for Sub-GHz | Long |
| log_level | Verbosity of debug logs (INFO, DEBUG, ERROR) | String |
Data Logging Best Practices
When interacting with the file system via the Snake-V1 interface or manual SD card editing, observe the following standards:
- Naming Conventions: Use alphanumeric characters and underscores. Avoid spaces or special characters to ensure compatibility across different OS platforms.
- File Integrity: Always use the "Eject" or "Unmount" option in the system menu before removing the SD card to prevent corruption of the FAT32 table.
- Parsing Logs: System logs in the
/logs/folder are timestamped. If the RTC (Real Time Clock) is not set, timestamps will default to the Unix epoch.
Exporting Data
To export captures for use in external tools (like PulseView or signal analyzers):
- Power off the device or unmount the SD card.
- Insert the card into a PC.
- Copy the
.iror.subfiles. The raw timing data (in microseconds) can be imported into most logic analyzer software using a simple CSV conversion script.