GeoSnake - Web Interface - User Guide
Overview
The GeoSnake web interface provides complete graphical device control directly from a web browser. The interface is optimized for both desktop and mobile devices and works in offline mode.
Access:
- URL:
http://192.168.4.1(when connected to WiFi AP) - SSID:
STATOTEST-GEOSNAKE-XXX(default, XXX is device identifaciton number)
Main Structure
Header
┌─────────────────────────────────────────┐
│ [STATOTEST LOGO] │
│ GEOSNAKE │
│ Accelerometer Control System │
└─────────────────────────────────────────┘
- Logo: Statotest SVG logo
- Name: GEOSNAKE
- Subtitle: Accelerometer Control System
- Color: Blue gradient (corporate colors)
Navigation Tabs
The interface is divided into 7 main tabs:
- 📊 Dashboard - Overview and quick controls
- ⚙️ Sensor Config - Accelerometer configuration
- ⏰ Schedule - Measurement scheduling
- 📁 Files - File management
- 🔋 Power - Power management
- 🏷️ Device - Device configuration
- 📡 WiFi - WiFi settings
Navigation:
- Click on tab to display corresponding content
- Active tab is highlighted in blue
- On mobile devices, tabs are displayed vertically
📊 Dashboard (Main Panel)
Status Display
┌─────────────────────────────────────────┐
│ Status: Stopped │
│ [red background = stopped] │
│ [green background = measuring] │
└─────────────────────────────────────────┘
Indicators:
- 🟢 Green - Measurement in progress
- 🔴 Red - Measurement stopped
Information:
- Text: "Measuring" or "Stopped"
- Automatic update every 2 seconds
Quick Control
┌─────────────────────────────────────────┐
│ ▶️ Start Measurement │
│ ⏹️ Stop Measurement │
└─────────────────────────────────────────┘
Buttons:
▶️ Start Measurement (Green button)
- Function: Starts accelerometer measurement
- When to use: When you want to start recording data
- Effect:
- Status changes to "Measuring"
- Starts writing to SD card
- Creates new CSV file
- Requirements: SD card must be inserted
⏹️ Stop Measurement (Red button)
- Function: Stops ongoing measurement
- When to use: When you want to end data recording
- Effect:
- Status changes to "Stopped"
- Current file is closed
- Data is safely saved
Current Settings
Grid with 7 information cards:
┌──────────────┬──────────────┬──────────────┬──────────────┐
│ ODR │ Range │ Target Freq │ WiFi │
│ 62.5 Hz │ ±2g │ 50 Hz │ AP Mode │
├──────────────┼──────────────┼──────────────┼──────────────┤
│ RTC Time │ Firmware │ SD Card │
│ 14:30:45 │ v1.2.0 │ Total/Free: 28.5/32.0 GB │
└──────────────┴──────────────┴─────────────────────────────┘
Information Cards:
1. ODR (Output Data Rate)
- Displays: Current sampling frequency
- Values: 3.906 Hz - 4000 Hz
- Example: "62.5 Hz", "250 Hz"
2. Range (Measurement Range)
- Displays: Current accelerometer sensitivity
- Values: ±2g, ±4g, ±8g
- Example: "±2g"
3. Target Freq (Target Frequency)
- Displays: Output frequency after decimation
- Values: 1-100 Hz
- Example: "50 Hz"
4. WiFi
- Displays: WiFi connection status
- Values:
- "AP Mode" - Access Point mode
- "Connected to [SSID]" - Connected to network
- "Disconnected" - Disconnected
- Example: "Connected to MyNetwork"
5. RTC Time
- Displays: Current time from DS3231 RTC
- Format: HH:MM:SS
- Example: "14:30:45"
- Update: Every 2 seconds
6. Firmware
- Displays: Firmware version
- Format: vX.Y.Z
- Example: "v1.2.0"
7. SD Card
- Displays: SD card usage
- Format: "Free: X.X GB / Total: Y.Y GB"
- Example: "Free: 28.5 GB / Total: 32.0 GB"
- Update: On page load
Measurement Statistics
┌──────────────┬──────────────┬──────────────┬──────────────┐
│ Total Samples│ Files Created│ Elapsed Time │ Write Errors │
│ 125,000 │ 3 │ 2h 15m 30s │ 0 │
└──────────────┴──────────────┴──────────────┴──────────────┘
Displayed Values:
Total Samples
- Number of recorded samples since measurement start
- Resets when measurement stops
Files Created
- Number of CSV files created during measurement
- New file every hour
Elapsed Time
- Measurement duration
- Format: Xh Ym Zs
Write Errors
- Number of errors when writing to SD card
- Should be 0 - if not, check SD card
⚙️ Sensor Config (Sensor Configuration)
ADXL355 Configuration
┌─────────────────────────────────────────┐
│ Output Data Rate (ODR) │
│ [Dropdown menu: 62.5 Hz] ▼ │
├─────────────────────────────────────────┤
│ Measurement Range │
│ [Dropdown menu: ±2g] ▼ │
├─────────────────────────────────────────┤
│ Target Output Frequency (Hz) │
│ [━━━━━━●━━━━━━] 50 Hz │
│ [Apply Frequency] │
└─────────────────────────────────────────┘
1. Output Data Rate (ODR)
Type: Dropdown menu
Options:
4000 Hz - Maximum frequency
2000 Hz - High frequency
1000 Hz - High frequency
500 Hz - Medium frequency
250 Hz - Medium frequency
125 Hz - Basic frequency
62.5 Hz - Default (recommended)
31.25 Hz - Low frequency
15.625 Hz - Very low frequency
7.813 Hz - Ultra low frequency
3.906 Hz - Minimum frequency
How to use:
- Click on dropdown
- Select desired frequency
- Setting is applied immediately
Recommendations by application:
- Building vibrations: 62.5 - 125 Hz
- Machine vibrations: 250 - 1000 Hz
- Impact events: 1000 - 4000 Hz
- Slow movements: 7.813 - 31.25 Hz
2. Measurement Range
Type: Dropdown menu
Options:
±2g - Highest sensitivity (default)
±4g - Medium range
±8g - Widest range
How to use:
- Click on dropdown
- Select range
- Setting is applied immediately
Scale factors for conversion:
- ±2g:
0.0000038147 g/LSB - ±4g:
0.0000076294 g/LSB - ±8g:
0.0000152588 g/LSB
When to use which range:
- ±2g: Fine vibrations, seismic measurement, buildings
- ±4g: Standard vibrations, machines
- ±8g: Strong impacts, vehicles, sports
3. Target Output Frequency
Type: Slider + numeric value
Range: 1 - 100 Hz
Default: 50 Hz
Step: 1 Hz
How to use:
- Move slider to desired value
- Watch current value on right ("50 Hz")
- Click Apply Frequency to confirm
What it does:
- Software sample decimation
- ODR = sensor sampling frequency
- Target Freq = frequency of saved samples
- Example: ODR=125 Hz, Target=50 Hz → saves approximately every 2.5th sample
Advantages:
- More precise output frequency
- Smaller file sizes
- Noise reduction (averaging)
4. X/Y/Z Axis Offset
┌─────────────────────────────────────────┐
│ X-Axis Offset │
│ [ 0 ] (range: -32768 to 32767) │
├─────────────────────────────────────────┤
│ Y-Axis Offset │
│ [ 0 ] │
├─────────────────────────────────────────┤
│ Z-Axis Offset │
│ [ 0 ] │
├─────────────────────────────────────────┤
│ [Apply Offsets] │
└─────────────────────────────────────────┘
Function: Offset calibration for individual axes
How to use:
- Enter offset value for each axis
- Click Apply Offsets
When to use:
- After sensor calibration
- To compensate DC offset
- To improve measurement accuracy
Range: -32768 to 32767 (raw values)
⏰ Schedule (Measurement Scheduling)
┌─────────────────────────────────────────┐
│ Add New Schedule │
├─────────────────────────────────────────┤
│ Name │
│ [Morning measurement ] │
├─────────────────────────────────────────┤
│ Start Date [2024-12-07] │
│ Start Time [06:00:00] │
├─────────────────────────────────────────┤
│ End Date [2024-12-07] │
│ End Time [07:00:00] │
│ OR │
│ Duration (sec) [3600 ] │
├─────────────────────────────────────────┤
│ Preview: │
│ Start: 2024-12-07 06:00:00 │
│ End: 2024-12-07 07:00:00 │
│ Duration: 1 hour │
├─────────────────────────────────────────┤
│ [Add Schedule] │
└─────────────────────────────────────────┘
Schedule Creation Form
Fields:
1. Name
- Type: Text field
- Max length: 50 characters
- Examples:
- "Morning measurement"
- "Weekend test"
- "Long-term monitoring"
- Required: Yes
2. Start Date
- Type: Date picker
- Format: YYYY-MM-DD
- Example: 2024-12-07
- Required: Yes
3. Start Time
- Type: Time picker
- Format: HH:MM:SS
- Example: 06:00:00
- Required: Yes
4. End Date
- Type: Date picker
- Format: YYYY-MM-DD
- Optional: Yes (if Duration is specified)
5. End Time
- Type: Time picker
- Format: HH:MM:SS
- Optional: Yes (if Duration is specified)
6. Duration
- Type: Numeric field
- Unit: Seconds
- Range: 1 - 86400 (24 hours)
- Examples:
- 3600 = 1 hour
- 7200 = 2 hours
- 86400 = 24 hours
- Optional: Yes (if End Date/Time is specified)
Preview
Displays calculated values before saving:
- Start: Start date and time
- End: End date and time (calculated)
- Duration: Duration in human-readable format
Example:
Preview:
Start: 2024-12-07 06:00:00
End: 2024-12-07 07:00:00
Duration: 1 hour
"Add Schedule" Button
Function: Saves schedule to device
Process:
- Input validation (date/time in future)
- Send to API endpoint
/api/schedule - Confirmation or error message
- Refresh schedule list
Limitation: Maximum 10 active schedules
Schedule List (Scheduled Measurements)
┌─────────────────────────────────────────────────────────────┐
│ ID Name Start End Delete │
├─────────────────────────────────────────────────────────────┤
│ 0 Morning measurement 2024-12-07 06:00 07:00 [🗑️] │
│ 1 Evening test 2024-12-07 18:00 19:30 [🗑️] │
│ 2 Weekend monitoring 2024-12-09 00:00 23:59 [🗑️] │
└─────────────────────────────────────────────────────────────┘
Columns:
ID
- Unique schedule identifier (0-9)
Name
- Schedule name
Start
- Start date and time
- Format: YYYY-MM-DD HH:MM
End
- End time (if set)
- Format: HH:MM
- Empty: If no time limit
Delete (🗑️)
- Button to delete schedule
- Shows confirmation dialog after clicking
Schedule States
Schedules are color-coded by state:
🟢 Green - Active (measurement running)
🔵 Blue - Scheduled (waiting to start)
⚫ Gray - Expired (ended in past)
Automatic Start
- Device checks schedules every minute
- When Start Time is reached, measurement starts automatically
- When End Time is reached, measurement stops automatically
- Schedules are saved to NVS (survive restart)
📁 Files (File Management)
┌─────────────────────────────────────────────────────────────┐
│ Current Path: / [🔄 Refresh] │
├─────────────────────────────────────────────────────────────┤
│ ☑️ Select All [⬇️ Download Selected] [🗑️ Delete] │
├─────────────────────────────────────────────────────────────┤
│ □ 📁 2024 │
│ □ 📁 11 │
│ □ 📁 25 │
│ ☑️ 📄 data_20241125_140000.csv 1.2 MB [⬇️][🗑️]│
│ ☑️ 📄 data_20241125_150000.csv 1.1 MB [⬇️][🗑️]│
│ □ 📁 12 │
│ □ 📁 07 │
│ □ 📄 data_20241207_140000.csv 0.5 MB [⬇️][🗑️]│
└─────────────────────────────────────────────────────────────┘
Top Panel
Current Path
- Displays current folder
- Format:
/2024/12/07 - Clickable parts for navigation back
🔄 Refresh
- Reloads file list
- Updates sizes and counts
- Automatically called when switching to Files tab
Control Buttons
☑️ Select All
- Checks all files in current folder
- Second click unchecks all
- Works for folders too
⬇️ Download Selected
- Downloads all checked items
- Online mode: Creates ZIP archive (requires JSZip from CDN)
- Offline mode: Downloads files sequentially one by one
- Shows progress bar during download
🗑️ Delete Selected
- Deletes all checked items
- Shows confirmation dialog
- Irreversible operation!
Tree Structure
Icons:
📁 Folder
- Click to expand/collapse
- Checkbox selects all files in folder
- Gray = empty folder
- Blue = contains files
📄 File
- CSV file with data
- Shows name and size
- Separate Download and Delete buttons
File List
For each file displays:
☑️ 📄 data_20241207_140000.csv 1.2 MB [⬇️] [🗑️]
│ │ │ │ │
│ └─ Filename │ │ └─ Delete
│ │ └─ Download
│ └─ Size
└─ Checkbox
Interactive Elements:
Checkbox
- File selection for bulk operations
- Green = selected
- White = unselected
Filename
- Format:
data_YYMMDD_HHMMSS.csv - Example:
data_20241207_140000.csv - Contains creation date and time
Size
- Format: KB, MB, GB
- Example: "1.2 MB"
- Updated on Refresh
⬇️ Download
- Downloads specific file
- Opens "Save As" dialog
- Filename is pre-filled
🗑️ Delete
- Deletes specific file
- Shows confirmation
- Disappears from list after deletion
Folder Navigation
Opening folder:
- Click on folder name
- Content displays in subtree
Going back:
- Click on parent folder in Current Path
- Or use "⬆️ Parent Directory" button (if exists)
Breadcrumb navigation:
/ > 2024 > 12 > 07
│ │ │ └─ Current folder
│ │ └─ Click to go to 12/
│ └─ Click to go to 2024/
└─ Root directory
Bulk Download (ZIP)
Online mode (with JSZip):
- Select files/folders with checkbox
- Click "Download Selected"
- Progress bar appears
- ZIP archive downloads automatically
- Name:
geosnake_data_YYYYMMDD_HHMMSS.zip
Offline mode (without JSZip):
- Select files/folders
- Click "Download Selected"
- Files download sequentially one by one
- May take longer
- Browser may ask for each file separately
Progress indicator:
Downloading... (3/10 files)
[████████░░░░░░░░░░] 30%
Download Entire Folder
Function: Download all files in folder with one click
Procedure:
- Check folder checkbox (e.g., 📁 25)
- Click "Download Selected"
- All files in folder are packed into ZIP
Hierarchy in ZIP:
geosnake_data.zip
└── 2024/
└── 11/
└── 25/
├── data_20241125_140000.csv
├── data_20241125_150000.csv
└── data_20241125_160000.csv
Bulk Delete
Warning! Irreversible operation!
Delete Selected:
- Select files/folders
- Click "Delete Selected"
- Confirmation dialog:
Delete 5 items?
This action cannot be undone.
[Cancel] [Delete] - After confirmation, items are deleted
Delete All Files:
- Red button at end of page
- Deletes absolutely everything on SD card!
- Double confirmation
Filters and Sorting
Filter by type:
- 📁 Show only folders
- 📄 Show only files
- 📊 Show all
Sorting:
- 📅 By date (newest first)
- 📝 By name (A-Z)
- 📏 By size (largest first)
🔋 Power (Power Management)
┌─────────────────────────────────────────┐
│ Power Mode │
├─────────────────────────────────────────┤
│ ⚪ Normal Mode (160 MHz, no sleep) │
│ Current consumption: ~200 mA │
│ │
│ ⚪ Low Power Mode (80 MHz, light sleep) │
│ Current consumption: ~50-80 mA │
│ │
│ [Set Power Mode] │
├─────────────────────────────────────────┤
│ Startup Mode (after hard reset) │
│ [Normal ▼] │
├─────────────────────────────────────────┤
│ WiFi Power Management │
│ ☑️ Enable WiFi │
│ ☑️ WiFi Modem Sleep │
├─────────────────────────────────────────┤
│ Deep Sleep │
│ Duration (seconds): [3600 ] │
│ [Enter Deep Sleep] │
└─────────────────────────────────────────┘
Power Mode
Radio buttons (select one):
⚪ Normal Mode
- CPU: 160 MHz (fixed)
- Sleep: None
- Consumption: ~150-200 mA (with WiFi)
- Usage: Maximum performance
- Suitable for:
- High sampling frequencies (1000+ Hz)
- Web interface with active use
- Short-term measurements
⚪ Low Power Mode
- CPU: 10-80 MHz (dynamic scaling)
- Sleep: Light sleep between tasks
- Consumption: ~40-80 mA
- Usage: Battery operation
- Suitable for:
- Long-term measurements
- Lower frequencies (up to 250 Hz)
- Battery operation
"Set Power Mode" button:
- Saves selected mode
- Device restarts in 2 seconds!
- Shows countdown: "Restarting in 2 seconds..."
Startup Mode
Dropdown menu:
Normal ▼
Low Power
Function: Determines mode after hard reset (reset button press, power disconnection)
Difference from Power Mode:
- Power Mode: Current running mode
- Startup Mode: Mode after next hard reset
Usage:
- Set "Low Power" for battery operation
- Device will always start in power-saving mode
WiFi Power Management
☑️ Enable WiFi
Function: Turns WiFi completely on/off
States:
- ✅ Checked (On): WiFi AP/STA is active (~70-100 mA extra)
- ☐ Unchecked (Off): WiFi disabled (saves ~70-100 mA)
When to turn off:
- Long-term battery measurement
- Control via Bluetooth only
- Maximum power saving
⚠️ Warning: After disabling WiFi, web interface is not available!
☑️ WiFi Modem Sleep
Function: WiFi sleeps between beacons
States:
- ✅ Enabled: Modem sleep on (saves ~20-40 mA)
- ☐ Disabled: WiFi always active (higher consumption, better response)
Advantages:
- Power saving while maintaining WiFi connection
- Can still use web interface
- Minimal impact on response
Disadvantages:
- Slightly slower ping (~10-50 ms)
- Possible brief dropouts under heavy load
Recommendation:
- ✅ Enable for battery operation
- ☐ Disable for highest WiFi performance
Deep Sleep
┌─────────────────────────────────────────┐
│ Deep Sleep Configuration │
├─────────────────────────────────────────┤
│ Sleep Duration (seconds) │
│ [3600 ] (1-86400) │
│ │
│ Preview: Device will sleep for 1 hour │
│ │
│ [Enter Deep Sleep] ⚠️ │
└─────────────────────────────────────────┘
Duration
Type: Numeric field
Range: 1 - 86400 seconds (1 second - 24 hours)
Default: 3600 (1 hour)
Examples:
- 60 = 1 minute
- 600 = 10 minutes
- 3600 = 1 hour
- 7200 = 2 hours
- 43200 = 12 hours
- 86400 = 24 hours
Preview
Displays human-readable sleep duration:
Device will sleep for 1 hour
Device will sleep for 30 minutes
Device will sleep for 12 hours
"Enter Deep Sleep" Button ⚠️
Function: Enters deep sleep mode
⚠️ WARNING:
- Device immediately powers down
- Web interface will not be available
- Bluetooth will not be available
- Measurement will stop
- Wakes only after duration or hard reset
Process:
- Click shows confirmation dialog
- "Device will enter deep sleep. Continue?"
- After confirmation, device immediately powers down
- Wakes after set duration
- Automatically restarts
Consumption in deep sleep: ~10-50 µA
Wake up:
- Automatically after duration
- Press reset button
- Disconnect and reconnect power
Recommended Combinations
Maximum performance (laboratory):
Power Mode: Normal
WiFi: ✅ Enabled
Modem Sleep: ☐ Disabled
Consumption: ~200 mA
Balanced mode:
Power Mode: Normal
WiFi: ✅ Enabled
Modem Sleep: ✅ Enabled
Consumption: ~120 mA
Power-saving with web:
Power Mode: Low Power
WiFi: ✅ Enabled
Modem Sleep: ✅ Enabled
Consumption: ~60 mA
Maximum saving (BLE only):
Power Mode: Low Power
WiFi: ☐ Disabled
Consumption: ~30-40 mA
Ultra power-saving (periodic measurement):
1. Measurement 10 minutes (Low Power, WiFi off): ~40 mA
2. Deep Sleep 50 minutes: ~0.01 mA
Average consumption: ~8 mA
🏷️ Device (Device Configuration)
┌─────────────────────────────────────────┐
│ Device Configuration │
├─────────────────────────────────────────┤
│ BLE Device Name │
│ [STATOTEST-GEOSNAKE ] │
│ │
│ WiFi Access Point SSID │
│ [STATOTEST-GEOSNAKE- ] │
│ │
│ WiFi Access Point Password │
│ [password ] │
│ │
│ [Save Configuration] │
│ │
│ ⚠️ Device will restart after save │
└─────────────────────────────────────────┘
Configuration Fields
1. BLE Device Name
Function: Device name for Bluetooth
Max length: 31 characters
Default: STATOTEST-GEOSNAKE
Examples:
GEOSNAKE-LAB-01GEOSNAKE-FIELD-AAccelerometer-Building-5
Rules:
- ASCII characters only
- No spaces (use
-or_) - Should be unique if you have multiple devices
Usage:
- Easier identification with multiple devices
- Organization by location or project
2. WiFi Access Point SSID
Function: WiFi AP network name
Max length: 31 characters
Default: GeoSnake-Config
Examples:
MyGeoSnakeLab-ADXL355Monitoring-Device-1
Rules:
- ASCII characters only
- Spaces are allowed
- Should be descriptive
3. WiFi Access Point Password
Function: Password for AP connection
Min length: 8 characters
Max length: 63 characters
Requirements:
- Minimum 8 characters
- Recommended: Upper/lowercase + numbers
- Don't use weak passwords (
12345678,password)
Security tips:
- Change default password!
- Use combination of letters, numbers, symbols
- Don't share password publicly
"Save Configuration" Button
Function: Saves changes to NVS (persistent storage)
Process:
- Input validation (length, format)
- Save to NVS
- Display message: "✅ Configuration saved"
- Automatic restart in 3 seconds
- After restart, new values are used
⚠️ Important:
- Changes take effect after restart
- Note new WiFi credentials
- If you forget password, you must reflash device
Manual Restart
[Restart Device Now]
Function: Immediate device restart
When to use:
- After configuration change
- If device not responding correctly
- To apply power mode changes
Process:
- Click shows confirmation
- "Restart device now?"
- After confirmation, device restarts
- Takes ~5-10 seconds
📡 WiFi (WiFi Settings)
┌─────────────────────────────────────────────────────────────┐
│ WiFi Status │
├─────────────────────────────────────────────────────────────┤
│ Mode: Access Point + Station │
│ AP SSID: GeoSnake-Config │
│ AP IP: 192.168.4.1 │
│ │
│ Station Status: ✅ Connected │
│ Connected to: MyNetwork │
│ IP Address: 192.168.1.100 │
│ Signal: -45 dBm (Excellent) ████████░░ │
│ Internet: ✅ Available │
│ │
│ [Disconnect] │
└─────────────────────────────────────────────────────────────┘
WiFi Status
Access Point (AP) Information
Mode: Displays active modes
- "Access Point only"
- "Station only"
- "Access Point + Station" (dual mode)
AP SSID: Your AP network name
AP IP: IP address for web interface access
Default: 192.168.4.1
Station (STA) Information
Station Status: Connection status
Possible states:
- ⚫ Disconnected - Disconnected
- 🟡 Connecting... - Connecting (max 30 seconds)
- ✅ Connected - Connected to network
- ❌ Connection Failed - Connection failed
Connected to: WiFi network name (SSID)
IP Address: Assigned IP address
- Format:
192.168.X.XXX - Use this address for local network access
Signal: Signal strength
-30 dBm: ████████████ Excellent
-45 dBm: ██████████░░ Very Good
-60 dBm: ████████░░░░ Good
-75 dBm: ████░░░░░░░░ Fair
-90 dBm: ██░░░░░░░░░░ Poor
Internet: Internet availability
- ✅ Available - NTP sync, OTA update work
- ❌ Not Available - Local network only
"Disconnect" Button
Function: Disconnects from WiFi network (STA mode)
What happens:
- Disconnects from external WiFi
- AP mode remains active
- Web interface still available via AP
- IP address changes back to 192.168.4.1
Connect to WiFi
┌─────────────────────────────────────────┐
│ Connect to WiFi Network │
├─────────────────────────────────────────┤
│ [Scan Networks] │
│ │
│ Available Networks: │
│ ⚪ MyNetwork (-45 dBm) 🔒 │
│ ⚪ OfficeWiFi (-52 dBm) 🔒 │
│ ⚪ GuestNetwork (-68 dBm) 🔓 │
│ │
│ Or enter manually: │
│ SSID [ ] │
│ Password [ ] 👁️ │
│ │
│ [Connect] │
└─────────────────────────────────────────┘
Scan Networks
Button: "Scan Networks"
Function: Searches for available WiFi networks
Process:
- Click to start scan
- Shows "Scanning..." (5-10 seconds)
- List of found networks
List contains:
- Radio button: Network selection
- SSID: Network name
- Signal strength: in dBm
- Security:
- 🔒 Locked (WPA/WPA2) - requires password
- 🔓 Open - open network
Sorting: From strongest to weakest signal
Manual Entry
SSID (Network name)
- Text field
- Max 32 characters
- Case-sensitive
Password
- Type: Password field (hidden characters)
- Min 8 characters (for WPA2)
- 👁️ icon: Show/hide password
Usage:
- If network not visible in scan (hidden SSID)
- For more precise control
"Connect" Button
Function: Starts connection to selected/entered network
Process:
- Input validation (SSID, password)
- Send to
/connect_wifi - Display "Connecting..." (max 30 seconds)
- Status updates to Connected/Failed
- On success, IP address is displayed
Possible results:
- ✅ Success: IP address assigned
- ❌ Wrong password: Incorrect password
- ❌ Network not found: SSID not found
- ❌ Timeout: Network not responding
Advanced WiFi Settings
┌─────────────────────────────────────────┐
│ Advanced Settings │
├─────────────────────────────────────────┤
│ DHCP Client: ✅ Enabled │
│ │
│ Static IP Configuration (if disabled): │
│ IP: [ ] │
│ Gateway: [ ] │
│ Netmask: [ ] │
│ DNS: [ ] │
└─────────────────────────────────────────┘
DHCP (Dynamic Host Configuration Protocol):
- ✅ Enabled (default): IP assigned automatically
- ☐ Disabled: Manual configuration
When to use static IP:
- Need consistent IP address
- Port forwarding / firewall rules
- Corporate network with requirements
General GUI Elements
Notifications and Dialogs
Toast Notifications
Small popup messages in top right corner:
┌────────────────────────┐
│ ✅ Measurement started │
└────────────────────────┘
Types:
- ✅ Success (green): Operation successful
- ℹ️ Info (blue): Information
- ⚠️ Warning (yellow): Warning
- ❌ Error (red): Error
Duration: 3-5 seconds (automatically disappear)
Confirmation Dialogs
┌─────────────────────────────────────────┐
│ Confirm Action │
├─────────────────────────────────────────┤
│ Are you sure you want to delete │
│ all files? │
│ │
│ This action cannot be undone. │
│ │
│ [Cancel] [Confirm] │
└─────────────────────────────────────────┘
When displayed:
- Deleting files/folders
- Delete All Files
- Restart device
- Enter Deep Sleep
- Disconnect WiFi
Progress Bars
Downloading files...
[████████████░░░░░░░░] 60% (6/10)
Usage:
- Downloading multiple files
- OTA updates
- Loading large lists
Shows:
- Completion percentage
- Number of completed/total items
- Current operation
Auto-refresh
Some parts update automatically:
Every 2 seconds:
- Dashboard → Status Display
- Dashboard → Current Settings (RTC Time)
- WiFi → WiFi Status
On action:
- Files → File list (after delete/download)
- Schedule → Schedule list (after add/delete)
- Stats → Statistics (during running measurement)
Manual refresh:
- 🔄 Refresh button in Files
- F5 / Ctrl+R in browser
Keyboard Shortcuts
Web interface supports basic keyboard shortcuts:
| Shortcut | Action |
|---|---|
F5 | Refresh page |
Ctrl+R | Refresh page |
Esc | Close dialog/modal |
Enter | Confirm (in dialogs) |
Tab | Navigate between form fields |
Offline Mode
Web interface is fully functional even without internet connection:
Works offline:
- ✅ All tabs and controls
- ✅ Basic file download (individual)
- ✅ All API calls (local network)
Requires internet:
- ❌ ZIP download (requires JSZip from CDN)
- ❌ NTP time synchronization
- ❌ OTA firmware updates
- ❌ Loading external fonts (fallback to system)
Fallback behavior:
- If JSZip not available → sequential download
- If NTP fails → use manual setting
- If OTA server unavailable → display error
Tips for Efficient Use
For Beginners
-
Start Simple:
- Begin in Dashboard
- Use default settings (ODR=62.5 Hz, Range=±2g)
- Run short test measurement (1-2 minutes)
-
Check Status Regularly:
- Monitor Write Errors (should be 0)
- Check free space on SD
- Verify correct time
-
Download Often:
- Regularly backup data
- Don't use full SD card
- Test download on small files
For Advanced Users
-
Optimize Settings:
- Adjust ODR by application
- Use decimation for smaller files
- Experiment with power modes
-
Automate:
- Create schedules for regular measurements
- Combine with deep sleep
- Use Bluetooth for unattended operation
-
Monitor Performance:
- Track statistics
- Check Write Errors
- Optimize consumption
For Developers
-
Use API:
- Integrate with custom applications
- Automate data collection
- Create custom dashboards
-
Batch Operations:
- Download multiple files at once (ZIP)
- Use bulk delete carefully
- Implement error handling
-
Network Optimization:
- Minimize number of API calls
- Use caching
- Implement retry logic
GUI Troubleshooting
Page Won't Load
Problem: Blank page or "Cannot connect"
Solution:
- Check WiFi connection (SSID: GeoSnake-Config)
- Verify URL:
http://192.168.4.1(not https!) - Try different browser
- Turn off VPN
- Restart device
Buttons Don't Work
Problem: Clicking has no effect
Solution:
- Open browser console (F12)
- Check errors in Console tab
- Clear cache (Ctrl+Shift+Del)
- Try hard refresh (Ctrl+F5)
- Use different browser
Data Doesn't Update
Problem: Displayed values are old
Solution:
- Click Refresh (🔄)
- Check WiFi signal strength
- Switch to different tab and back
- Refresh page (F5)
- Restart browser
Files Won't Download
Problem: Download button doesn't work
Solution:
- Check popup blocker (allow popups)
- Try downloading single file (not bulk)
- Verify free space on computer disk
- Try different browser
- In offline mode use sequential download
ZIP Download Fails
Problem: "JSZip not available" or ZIP error
Solution:
- Check internet connection (JSZip from CDN)
- Use sequential download (automatic fallback)
- Download fewer files at once
- Verify free space in browser RAM
Browser Support
Supported Browsers
| Browser | Desktop | Mobile | Note |
|---|---|---|---|
| Chrome | ✅ v90+ | ✅ v90+ | Recommended |
| Firefox | ✅ v88+ | ✅ v88+ | Recommended |
| Safari | ✅ v14+ | ✅ v14+ | Some limitations |
| Edge | ✅ v90+ | ✅ v90+ | Chromium-based |
| Opera | ✅ v76+ | ✅ v76+ | Chromium-based |
| IE 11 | ❌ | - | Not supported |
Recommended Browser Settings
For best performance:
- Enable JavaScript
- Enable cookies
- Enable local storage
- Allow popups for
192.168.4.1 - Disable ad blockers (may block JSZip CDN)
Additional Information
Related documentation:
- Web API Reference - HTTP API for developers
- Bluetooth Commands - BLE control
- User Manual - Complete user manual
Support:
- Email: support@statotest.cz
- Web: www.statotest.cz
- GitHub: github.com/statotest/geosnake
Documentation version: 1.0
Date: December 7, 2024
Valid for firmware: v1.2.0+