GeoSnake - User Manual
Introduction
GeoSnake is an advanced accelerometer datalogger based on the ESP32-C6 chip and the precision 3-axis ADXL355 accelerometer. The device is designed for long-term vibration and acceleration measurements with the ability to store data on an SD card.
Key Features
✅ Precise measurement - ADXL355 with resolution up to ±2g, ±4g or ±8g
✅ High sampling frequency - 3.9 Hz to 4000 Hz
✅ Long-term storage - Data on SD card in CSV format
✅ Wireless control - Bluetooth and WiFi
✅ Web interface - Modern HTML/JavaScript UI
✅ Measurement scheduling - Automatic start at a given time
✅ Low power consumption - Power management modes for battery operation
✅ RTC with battery backup - Accurate time even without power (DS3231)
✅ OTA updates - Wireless firmware updates
Hardware
Main Components
-
Microcontroller: ESP32-C6-MINI-1-N4
- 160 MHz RISC-V processor
- 512 KB SRAM, 4 MB Flash
- WiFi 802.11 b/g/n (2.4 GHz)
- Bluetooth 5.0 LE
-
Accelerometer: ADXL355
- 3-axis MEMS accelerometer
- Ultra-low noise (±2g: 25 µg/√Hz)
- I2C interface (address 0x1D)
-
RTC: DS3231
- Accuracy ±2 ppm (0-40°C)
- Battery backup (CR2032)
- I2C interface (address 0x68)
-
Storage: MicroSD card
- FAT32 support
- SPI interface
- Recommended: Class 10 or higher
Pin Connections
ADXL355 (I2C)
SDA → GPIO6
SCL → GPIO7
VDD → 3.3V
GND → GND
DS3231 RTC (I2C)
SDA → GPIO6 (shared with ADXL355)
SCL → GPIO7 (shared with ADXL355)
VCC → 3.3V
GND → GND
VBAT → CR2032 (3V battery)
SD Card (SPI)
CS → GPIO20
MOSI → GPIO18
MISO → GPIO19
SCK → GPIO14
VCC → 3.3V
GND → GND
First Startup
1. Hardware Preparation
- Insert a formatted microSD card (FAT32)
- Connect power (USB or battery)
- Insert CR2032 battery into RTC (for time backup)
- LED should start blinking (indicating system running)
2. Connecting to Device
Bluetooth (BLE)
- Enable Bluetooth on your mobile phone
- Search for device named STATOTEST-GEOSNAKE
- Use nRF Connect or Bluefruit Connect app
- Connect to the device
- You can start sending commands (see Bluetooth Commands)
WiFi
- On your computer or mobile, search for WiFi network GeoSnake-Config
- Connect using password: geosnake123
- Open web browser
- Navigate to: http://192.168.4.1
- GeoSnake web interface will appear
Basic Usage
Web Interface Control
Dashboard
After opening the web interface, you'll see an overview:
- Status - Whether measurement is running or stopped
- Current Settings - Current ODR, range, frequency, time
- Measurement Statistics - Total number of samples, files, errors
- SD Card Info - Free and total space
Quick Start Measurement
- Verify SD card is inserted (Dashboard → SD Card Info)
- Click ▶️ Start Measurement
- Measurement starts immediately
- Data is saved to file format
data_YYMMDD_HHMMSS.csv - To stop, click ⏹️ Stop Measurement
Sensor Configuration
Go to ⚙️ Sensor Config tab:
Output Data Rate (ODR)
Determines how fast the sensor samples data:
- 4000 Hz - Maximum frequency for fast events
- 2000 Hz - High-speed measurement
- 1000 Hz - Standard high frequency
- 500 Hz - Medium frequency
- 250 Hz - Lower frequency
- 125 Hz - Basic frequency
- 62.5 Hz - Default, suitable for most applications
- 31.25 Hz and lower - For slow events and power saving
Recommendation: For most applications, 62.5 Hz or 125 Hz is suitable.
Measurement Range
Determines sensitivity and maximum range:
- ±2g - Highest sensitivity, for fine vibrations
- ±4g - Medium range
- ±8g - Widest range, for strong impacts
Recommendation: Start with ±2g and increase as needed.
Target Output Frequency
Software decimation for more precise output frequency:
- Range: 1-100 Hz
- Default: 50 Hz
How it works:
The device samples at ODR frequency and software-filters data to target frequency. For example, at ODR=125 Hz and Target=50 Hz, approximately every 2.5th sample is stored.
Data Storage
Folder Structure
Data is automatically stored in hierarchical structure:
/
├── 2024/
│ ├── 11/
│ │ ├── 25/
│ │ │ ├── data_20241125_140000.csv
│ │ │ ├── data_20241125_150000.csv
│ │ │ └── data_20241125_160000.csv
│ │ └── 26/
│ └── 12/
│ └── 07/
File Rotation
- New file is created every hour
- Name contains date and time of measurement start
- Format:
data_RRMMDD_HHMMSS.csv
CSV Format
Timestamp_ms,X,Y,Z,Temperature
1764727120784518,0.023195,0.030441,1.012641,-12.06
1764727200055899,0.023293,0.030215,1.012605,-12.17
...
Fields:
Timestamp_ms- Time in milliseconds from measurement startX,Y,Z- Acceleration data in "g" values (the acceleration due to gravity (around 9.8 m/s² on Earth's surface))Temperature- Sensor temperature in °C
Downloading Data
Via Web Interface
- Go to 📁 Files tab
- Browse folder structure
- Select files by checking checkboxes
- Click Download Selected
Options:
- Individual files - Check specific files
- Entire folders - Check a folder (e.g., entire day)
- Multiple folders - Check multiple folders (e.g., entire month)
ZIP archive (online mode):
If internet connection is available, files are automatically compressed into a ZIP archive and downloaded at once.
Sequential download (offline mode):
Without internet connection, files are downloaded individually in sequence.
Deleting Files
- Delete Selected - Deletes selected files
- Delete All Files - Deletes all files on SD card (⚠️ irreversible!)
- Delete Folder - Deletes entire folder including contents
Advanced Features
Measurement Scheduling
Automatic measurement start at specified time.
Creating a Schedule (Web)
- Go to ⏰ Schedule
- Fill out form:
- Name: Schedule name (e.g., "Morning measurement")
- Start Date/Time: When to start measurement
- End Date/Time: When to end (optional)
- Duration: Alternatively specify length in seconds
- Click Add Schedule
- Schedule appears in list
Creating a Schedule (Bluetooth)
> schedule 2024-12-10 06:00:00 3600
< OK: Measurement scheduled
This schedules measurement for Dec 10, 2024 at 6:00 AM for 1 hour.
Schedule Management
- You can have up to 10 active schedules simultaneously
- Schedules are saved to NVS (persistent storage)
- Survive device restart
- To cancel schedule, click Delete in list
Automatic Start
- Device checks schedules every minute
- If start time occurs, measurement starts automatically
- If end time is specified, measurement stops automatically
- During measurement, schedule cannot be edited
Power Management
GeoSnake supports various power modes for consumption optimization.
Power Modes
Normal Mode (Default)
- CPU: 160 MHz (fixed)
- Sleep: None
- Consumption: ~150-200 mA (with WiFi), ~80-100 mA (without WiFi)
- Usage: Maximum performance, high-frequency measurements
Low Power Mode
- CPU: 10-80 MHz (dynamic scaling)
- Sleep: Light sleep between measurements
- Consumption: ~50-80 mA (with WiFi), ~30-50 mA (without WiFi)
- Usage: Battery operation, lower frequencies
Deep Sleep Mode
- CPU: Off
- Sleep: Deep sleep
- Consumption: ~10 µA
- Usage: Long-term standby, wake at specified time
Setting Power Mode
Via Web:
- Go to 🔋 Power
- Select mode: Normal or Low
- Click Set Power Mode
- Device automatically restarts
Via Bluetooth:
> power low
< OK: Low power mode saved
< Restarting in 2 seconds...
WiFi Power Management
Turn off WiFi (saves ~70-100 mA):
> wifi off
< OK: WiFi disabled
< Info: Saves ~70-100mA
Modem Sleep (WiFi active but saves between beacons):
> modem on
< OK: WiFi modem sleep enabled
< Info: WiFi sleeps between beacons
Recommended Combinations:
| Mode | CPU | WiFi | Modem Sleep | Consumption | Usage |
|---|---|---|---|---|---|
| Max Performance | Normal | On | Off | ~200 mA | Laboratory, mains power |
| Balanced | Normal | On | On | ~120 mA | Standard use with web |
| Low Power | Low | Off | - | ~40 mA | Battery operation, BLE only |
| Ultra Low | Low | Off | - | ~30 mA | Long-term battery measurement |
Deep Sleep with RTC Wake
Example: Measurement every hour for 10 minutes
# Pseudocode workflow:
1. Start measurement (10 min)
2. Stop measurement
3. Enter deep sleep (50 min)
4. RTC wakes device
5. Repeat from step 1
Implementation via Bluetooth:
> start
< OK: Measurement started
(wait 10 minutes)
> stop
< OK: Measurement stopped
> deepsleep 3000
< Entering deep sleep...
(after 50 minutes device wakes and you can repeat)
Automation using schedules:
Create multiple schedules 1 hour apart, each for 10 minutes.
WiFi Connection
Access Point (AP) Mode
Default mode - device creates its own WiFi network.
Advantages:
- Works anywhere without internet
- Easy first connection
- Direct control from mobile/laptop
Disadvantages:
- Limited range (~10-30 meters)
- Device has no internet access (no NTP, OTA)
Station (STA) Mode
Connection to existing WiFi network.
Connection procedure (Web):
- In AP mode, open web interface
- Go to 📡 WiFi
- Click Scan Networks
- Select network from list or enter manually
- Enter password
- Click Connect
- Wait ~10 seconds
- Check WiFi Status - IP address should appear
Connection procedure (Bluetooth):
> wifi MyNetwork MyPassword123
< OK: Connecting to WiFi...
(wait 10 seconds)
> status
< WiFi: Connected to MyNetwork (192.168.1.100)
Access after connection:
If in STA mode, you can access web interface via obtained IP address (e.g., http://192.168.1.100). AP mode remains active as backup.
Disconnecting from WiFi
Web:
WiFi tab → "Disconnect" button
Bluetooth:
> wifi off
< OK: WiFi disconnected
OTA Firmware Updates
Wireless firmware update via internet.
Checking for Updates
- Connect to WiFi with internet (STA mode)
- In Dashboard, notification automatically appears if update is available
- Or manually: Dashboard → Check for Updates button
Installing Update
- Click Install Update
- Device downloads new firmware (~1-2 MB)
- Automatically installs and restarts
- After restart, new version is displayed
⚠️ Important:
- Do not disconnect power during update
- Update takes ~2-5 minutes
- Data on SD card remains preserved
- Schedules and configuration remain preserved
Manual OTA (advanced)
If you have your own firmware file:
Via Web:
- System tab → OTA Update
- Upload file
firmware.bin - Click Update
Time Synchronization
Accurate time is important for correct timestamps in data.
Time Setting Methods
1. NTP Synchronization (recommended)
Requires internet connection.
Web:
Dashboard → "Sync Time (NTP)" button
Bluetooth:
> synctime
< Syncing time from NTP...
< NTP sync completed
2. Manual Setting
Web:
Dashboard tab → Time section → "Set Time Manually"
Enter: 2024-12-07 15:30:00
Bluetooth:
> settime 2024-12-07 15:30:00
< OK: Time set and RTC synchronized
3. RTC Battery Backup
- Insert CR2032 battery into DS3231 RTC
- Time is preserved even after main power disconnection
- Battery lasts ~3-5 years
- Accuracy: ±2 ppm (±1 minute per year)
Checking Time
Web:
Dashboard → RTC Time (updates every 2 seconds)
Bluetooth:
> time
< RTC Time: 2024-12-07 15:30:45 (Unix: 1701961845)
Maintenance and Care
SD Card
Recommended Specifications
- Type: MicroSD/MicroSDHC
- Capacity: 8-32 GB (optimal), max 128 GB
- Class: Class 10 or UHS-I
- Format: FAT32
SD Card Care
- ✅ Always stop measurement before removing card
- ✅ Format card in computer (FAT32) every 6-12 months
- ✅ Use quality cards (SanDisk, Samsung, Kingston)
- ❌ Don't remove card during measurement
- ❌ Don't use damaged or no-name cards
SD Card Troubleshooting
SD card not detected:
- Remove and reinsert card
- Restart device
- Try different card
- Verify card is FAT32
Write errors (Write Errors > 0):
- Check if card is full
- Remove card, backup data and format
- Use higher quality or speed card
- Lower ODR frequency
RTC Battery
Battery Replacement
- Type: CR2032 (3V lithium battery)
- Lifetime: 3-5 years
- When to replace: If time is incorrect after power disconnection
Replacement procedure:
- Turn off device
- Remove old battery from holder
- Insert new battery (+ side up)
- Turn on device
- Set time using NTP or manually
Cleaning and Care
- Cleaning: Wipe with dry cloth, don't use water
- Temperature: Operating 0-50°C, storage -20-70°C
- Humidity: Don't use in humid environment (not waterproof)
- Vibration: Device is vibration-resistant (it's an accelerometer!)
Troubleshooting
Device Not Responding
Symptom: LED not lit, no response
Solution:
- Check power (USB cable, battery)
- Try different USB cable or source
- Press reset button
- If problem persists → reflash firmware
Cannot Connect to WiFi
Symptom: GeoSnake-Config network not visible
Solution:
- Restart device
- Check if your phone supports 2.4 GHz WiFi
- Via Bluetooth enter:
wifi on - Try forgetting network and reconnecting
Bluetooth Not Working
Symptom: Device not visible in BLE scan
Solution:
- Restart device
- Check if BLE is enabled on phone
- Try different phone or app
- In mobile app filter only "STATOTEST" or "GEOSNAKE"
Measurement Not Running
Symptom: Nothing happens after clicking Start
Solution:
- Check if SD card is inserted
- Verify free space on SD card (Dashboard → SD Info)
- Check if card is not write-protected
- Restart device and try again
Data is Incorrect
Symptom: X, Y, Z values are strange or constant
Solution:
- Check if you used correct scale factor for conversion
- Verify Range setting (±2g, ±4g, ±8g)
- Check if sensor is not mechanically damaged
- Restart device
OTA Update Fails
Symptom: Download failed or Verification failed
Solution:
- Verify internet connection (open google.com in browser)
- Check WiFi signal strength
- Stop measurement before update
- Try update again in a few minutes
Time is Incorrect
Symptom: RTC Time shows wrong time
Solution:
- Connect to WiFi with internet
- Perform NTP synchronization:
synctime - If you don't have internet, set time manually
- Check RTC battery (CR2032)
- If battery is new and time still doesn't set → RTC module problem
Technical Specifications
Performance
| Parameter | Value |
|---|---|
| Sampling frequency | 3.9 - 4000 Hz (ADXL355 ODR) |
| Output frequency | 1 - 100 Hz (software decimation) |
| Measurement range | ±2g, ±4g, ±8g |
| Resolution | 20 bit (ADXL355) |
| Noise (±2g) | 25 µg/√Hz |
| Temperature drift | 0.0003 %/°C |
Power
| Mode | Consumption | Note |
|---|---|---|
| Normal + WiFi | ~200 mA | Maximum performance |
| Normal + WiFi modem sleep | ~120 mA | Balanced mode |
| Normal without WiFi | ~80 mA | Measurement + BLE only |
| Low + WiFi | ~80 mA | Power-saving with web |
| Low without WiFi | ~40 mA | Battery operation |
| Deep Sleep | ~10 µA | Standby mode |
Communication
| Interface | Specification |
|---|---|
| WiFi | 802.11 b/g/n, 2.4 GHz, up to 72 Mbps |
| Bluetooth | BLE 5.0, Nordic UART Service |
| I2C | 100-400 kHz, ADXL355 + DS3231 |
| SPI | Up to 40 MHz, SD card |
Environment
| Parameter | Range |
|---|---|
| Operating temperature | 0 to 50°C |
| Storage temperature | -20 to 70°C |
| Relative humidity | 10-90% (non-condensing) |
| Dimensions | TBD |
| Weight | TBD |
Frequently Asked Questions (FAQ)
General
Q: What is the maximum measurement duration?
A: Limited only by SD card capacity. On a 32 GB card you can store ~100-300 hours of continuous measurement (depends on ODR and frequency).
Q: Can I use the device while charging?
A: Yes, device operates normally when connected to USB power.
Q: Does the device support external power (battery)?
A: Yes, you can connect Li-Ion battery or power bank via USB-C (5V).
Q: Can I measure underwater?
A: No, device is not waterproof. Do not operate in humid environment.
Measurement
Q: What frequency should I set for vibration measurement?
A: According to Nyquist theorem, use at least 2× the frequency of measured signal. For vibrations up to 25 Hz, 62.5 Hz is sufficient, for faster events use 250-1000 Hz.
Q: Why do I have Write Errors?
A: Usually due to slow SD card. Use Class 10 or higher. Alternatively lower ODR frequency.
Q: How long does battery last?
A: Depends on mode:
- Normal + WiFi: ~6-8 hours (3000 mAh battery)
- Low without WiFi: ~24-30 hours (3000 mAh battery)
- Deep Sleep: Several months
Q: Can I measure on multiple axes simultaneously?
A: Yes, ADXL355 always measures all 3 axes (X, Y, Z) simultaneously.
Connectivity
Q: What is WiFi range?
A: In AP mode ~10-30 meters depending on obstacles.
Q: What is Bluetooth range?
A: ~5-15 meters, Bluetooth 5.0 has theoretical range up to 40 m in ideal conditions.
Q: Can I control device over internet?
A: Not directly, but you can connect device to WiFi network and access from local network. For remote access, VPN or port forwarding is needed.
Q: Does device support 5 GHz WiFi?
A: No, ESP32-C6 supports only 2.4 GHz band.
Software
Q: How do I convert data to another format (e.g., Excel)?
A: CSV files can be opened directly in Excel or processed using Python/MATLAB/R.
Q: Is data encrypted?
A: No, data is stored in plaintext CSV format for easy processing.
Support and Contact
Technical Support
For technical questions and issues:
- Email: support@statotest.cz
- Web: www.statotest.cz
Documentation
- Bluetooth Commands - Complete list of BLE commands
- Web API - HTTP API documentation for developers
Contributions and Feedback
Your suggestions and feedback are welcome!
If you have ideas for improvement or found a bug, feel free to open an issue on GitHub or contact us via email.
Safety Warning
⚠️ Important:
- Do not use device in explosive environment
- Do not expose to direct sunlight for extended periods
- Do not disassemble device (warranty void)
- Use only recommended power (5V USB)
- Do not insert foreign objects into connectors
- Keep out of reach of children
License and Copyright
Firmware: Open-source (ESP-IDF, Apache 2.0 License)
Hardware: © 2025 STATOTEST
Documentation: © 2025 STATOTEST
All rights reserved.