Skip to main content

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

  1. Insert a formatted microSD card (FAT32)
  2. Connect power (USB or battery)
  3. Insert CR2032 battery into RTC (for time backup)
  4. LED should start blinking (indicating system running)

2. Connecting to Device

Bluetooth (BLE)

  1. Enable Bluetooth on your mobile phone
  2. Search for device named STATOTEST-GEOSNAKE
  3. Use nRF Connect or Bluefruit Connect app
  4. Connect to the device
  5. You can start sending commands (see Bluetooth Commands)

WiFi

  1. On your computer or mobile, search for WiFi network GeoSnake-Config
  2. Connect using password: geosnake123
  3. Open web browser
  4. Navigate to: http://192.168.4.1
  5. 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

  1. Verify SD card is inserted (Dashboard → SD Card Info)
  2. Click ▶️ Start Measurement
  3. Measurement starts immediately
  4. Data is saved to file format data_YYMMDD_HHMMSS.csv
  5. 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 start
  • X, 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

  1. Go to 📁 Files tab
  2. Browse folder structure
  3. Select files by checking checkboxes
  4. 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)

  1. Go to ⏰ Schedule
  2. 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
  3. Click Add Schedule
  4. 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:

  1. Go to 🔋 Power
  2. Select mode: Normal or Low
  3. Click Set Power Mode
  4. 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:

ModeCPUWiFiModem SleepConsumptionUsage
Max PerformanceNormalOnOff~200 mALaboratory, mains power
BalancedNormalOnOn~120 mAStandard use with web
Low PowerLowOff-~40 mABattery operation, BLE only
Ultra LowLowOff-~30 mALong-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):

  1. In AP mode, open web interface
  2. Go to 📡 WiFi
  3. Click Scan Networks
  4. Select network from list or enter manually
  5. Enter password
  6. Click Connect
  7. Wait ~10 seconds
  8. 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

  1. Connect to WiFi with internet (STA mode)
  2. In Dashboard, notification automatically appears if update is available
  3. Or manually: DashboardCheck for Updates button

Installing Update

  1. Click Install Update
  2. Device downloads new firmware (~1-2 MB)
  3. Automatically installs and restarts
  4. 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:

  1. System tab → OTA Update
  2. Upload file firmware.bin
  3. Click Update

Time Synchronization

Accurate time is important for correct timestamps in data.

Time Setting Methods

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

  • 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:

  1. Remove and reinsert card
  2. Restart device
  3. Try different card
  4. Verify card is FAT32

Write errors (Write Errors > 0):

  1. Check if card is full
  2. Remove card, backup data and format
  3. Use higher quality or speed card
  4. 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:

  1. Turn off device
  2. Remove old battery from holder
  3. Insert new battery (+ side up)
  4. Turn on device
  5. 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:

  1. Check power (USB cable, battery)
  2. Try different USB cable or source
  3. Press reset button
  4. If problem persists → reflash firmware

Cannot Connect to WiFi

Symptom: GeoSnake-Config network not visible

Solution:

  1. Restart device
  2. Check if your phone supports 2.4 GHz WiFi
  3. Via Bluetooth enter: wifi on
  4. Try forgetting network and reconnecting

Bluetooth Not Working

Symptom: Device not visible in BLE scan

Solution:

  1. Restart device
  2. Check if BLE is enabled on phone
  3. Try different phone or app
  4. In mobile app filter only "STATOTEST" or "GEOSNAKE"

Measurement Not Running

Symptom: Nothing happens after clicking Start

Solution:

  1. Check if SD card is inserted
  2. Verify free space on SD card (Dashboard → SD Info)
  3. Check if card is not write-protected
  4. Restart device and try again

Data is Incorrect

Symptom: X, Y, Z values are strange or constant

Solution:

  1. Check if you used correct scale factor for conversion
  2. Verify Range setting (±2g, ±4g, ±8g)
  3. Check if sensor is not mechanically damaged
  4. Restart device

OTA Update Fails

Symptom: Download failed or Verification failed

Solution:

  1. Verify internet connection (open google.com in browser)
  2. Check WiFi signal strength
  3. Stop measurement before update
  4. Try update again in a few minutes

Time is Incorrect

Symptom: RTC Time shows wrong time

Solution:

  1. Connect to WiFi with internet
  2. Perform NTP synchronization: synctime
  3. If you don't have internet, set time manually
  4. Check RTC battery (CR2032)
  5. If battery is new and time still doesn't set → RTC module problem

Technical Specifications

Performance

ParameterValue
Sampling frequency3.9 - 4000 Hz (ADXL355 ODR)
Output frequency1 - 100 Hz (software decimation)
Measurement range±2g, ±4g, ±8g
Resolution20 bit (ADXL355)
Noise (±2g)25 µg/√Hz
Temperature drift0.0003 %/°C

Power

ModeConsumptionNote
Normal + WiFi~200 mAMaximum performance
Normal + WiFi modem sleep~120 mABalanced mode
Normal without WiFi~80 mAMeasurement + BLE only
Low + WiFi~80 mAPower-saving with web
Low without WiFi~40 mABattery operation
Deep Sleep~10 µAStandby mode

Communication

InterfaceSpecification
WiFi802.11 b/g/n, 2.4 GHz, up to 72 Mbps
BluetoothBLE 5.0, Nordic UART Service
I2C100-400 kHz, ADXL355 + DS3231
SPIUp to 40 MHz, SD card

Environment

ParameterRange
Operating temperature0 to 50°C
Storage temperature-20 to 70°C
Relative humidity10-90% (non-condensing)
DimensionsTBD
WeightTBD

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:

Documentation

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

Firmware: Open-source (ESP-IDF, Apache 2.0 License)
Hardware: © 2025 STATOTEST
Documentation: © 2025 STATOTEST

All rights reserved.