Table of Contents #
- Introduction
- Getting Started
- E-Ink Display
- Button Controls
- Web Interface
- Configuration
- Sensor Setup
- Alarms & Notifications
- Firmware Updates
- MQTT Integration
- Troubleshooting
- Technical Specifications
1. Introduction #
The AquaVigil Tank Monitor is a base station receiver that monitors water tank levels from remote battery-powered sensors. It receives data via long-range LoRa radio and provides monitoring through:
- E-Ink Display – Always-on, low-power display showing tank status
- Web Interface – Full-featured dashboard accessible from any browser
- MQTT – Integration with home automation systems
- Email Alerts – Notifications for low water, low battery, and other alarms
What’s in the Box #
- AquaVigil Base Station
- AquaVigil Smart Tank Sensor (If included)
- USB-C power cable
- Quick start guide
Requirements #
- WiFi network (2.4GHz)
- USB power supply (5V, 1A minimum)
- Compatible AquaVigil tank sensor(s)
2. Getting Started #
Step 1: Power On #
- Connect the USB-C cable to the device
- Connect to a USB power supply
- The e-ink display will show “AquaVigil Tank Monitor” with “Booting…..”
Step 2: Connect to WiFi #
On first boot (or after a WiFi reset), the device enters Setup Mode:
- On your phone or computer, look for a WiFi network named
AquaVigil-XXXX(where XXXX is unique to your device) - Connect to this network – no password required
- A setup page should open automatically
- On iPhone/Android: Opens automatically
- On Windows: Click the “Sign in” notification, or open a browser to
10.0.0.1 - On Mac: Opens automatically
- Select your home WiFi network from the list (or type it manually)
- Enter your WiFi password and tap “Connect”
- The device will restart and connect to your home WiFi
- The e-ink display will show the devices IP address once connected
Step 3: Access the Web Interface #
- Note the IP address shown on the e-ink display (e.g.,
192.168.1.100) - Open a web browser and go to
http://192.168.1.100 - You’ll see the AquaVigil dashboard
If WiFi Setup Fails #
If a incorrect password is entered:
- The display will show “WiFi Failed” and “Check password”
- After 10 seconds, it will return to Setup Mode
- Try again with the correct password
3. E-Ink Display #
The e-ink display provides at-a-glance tank monitoring without needing to check your phone.
Main Screen (Tanks) #
Shows all configured tanks with:
- Tank name
- Fill percentage (large text)
- Volume in liters
- Water level visualization
- Signal strength bars
- Battery indicator
- Alarm icons (when active)
The layout adapts based on the number of sensors:
- 1 tank: Full-screen layout
- 2 tanks: Side-by-side
- 3-4 tanks: Grid layout
Stats Screen #
Press the button to see detailed information:
- Battery voltage and percentage
- CPU temperature
- Signal strength (RSSI)
- Last update time
- Consumption rate
- Device IP address
Alarm Icons #
When an alarm is active, icons appear on the display:
- Water drop with warning – Low water level
- Battery outline – Low battery
- Upward arrow – High water consumption
4. Button Controls #
The device has a single button for control:
| Action | Duration | Function |
|---|---|---|
| Short press | Less than 5 seconds | Toggle between Tanks and Stats screens |
| Long press | 5+ seconds | Reset WiFi credentials and restart in Setup Mode |
Resetting WiFi #
If you need to connect to a different WiFi network:
- Press and hold the button for 5 seconds
- The device will restart
- Connect to the
AquaVigil-XXXXnetwork - Configure the new WiFi settings
5. Web Interface #
Access the web interface by entering the device’s IP address in any web browser.
Dashboard (Home) #
The main page shows:
- Device status – Uptime, WiFi signal, memory usage
- Sensor cards – One card per configured tank showing:
- Tank name and fill percentage
- Animated water level visualization
- Signal strength and battery status
- Last update time
- Active alarms
The dashboard auto-refreshes every 30 seconds.
Graphs #
View historical data with interactive charts:
- Time range: 1 hour, 6 hours, 12 hours, or 24 hours
- Chart types: Line, Area, or Bar
- Available charts:
- Tank Level
- Fill Percentage
- Battery Voltage
- CPU Temperature
- Signal Strength
Click “Refresh” to update data. Stats show min/max/average for the selected period.
Logging #
Real-time system logs for troubleshooting:
- Filter by category (WiFi, LoRa, Sensor, Alarm, etc.)
- Logs stream live via WebSocket
- Download logs with “Save Logs” button
- Clear screen with “Clear Screen” button
Configuration #
See Section 6: Configuration for details.
Update #
Manage firmware updates:
- View current version and update status
- Enable/disable automatic updates
- Manually upload firmware files
See Section 9: Firmware Updates for details.
6. Configuration #
Access configuration via the Configuration tab in the web interface.
LoRa Settings #
Important: All sensors must use identical LoRa settings.
| Setting | Default | Description |
|---|---|---|
| Frequency | 915.0 MHz | Must match your region (AU915 for Australia / New Zealand) |
| Bandwidth | 125 kHz | Radio bandwidth |
| Spreading Factor | 7 | Range vs speed (higher = longer range, slower) |
| Transmit Power | 14 dBm | Radio power level |
Time Settings #
| Setting | Description |
|---|---|
| NTP Server | Time server (default: pool.ntp.org) |
| Timezone | Your timezone with DST support |
Email Settings #
Configure email notifications for alarms:
| Setting | Description |
|---|---|
| Recipient Email | Where to send notifications |
| Sender Email | “From” address for emails |
| SMTP Server | Your email provider’s server (e.g., smtp.gmail.com) |
| SMTP Port | Usually 587 (TLS) or 465 (SSL) |
| SMTP Password | Email password or app-specific password |
Gmail Users: You must use an App Password, not your regular password.
MQTT Settings #
| Setting | Description |
|---|---|
| Enable MQTT | Turn MQTT publishing on/off |
| Broker Address | IP address of your MQTT broker |
| Broker Port | Usually 1883 or 8883 (SSL) |
| Username | MQTT username |
| Password | MQTT password |
Notification Settings #
| Setting | Description |
|---|---|
| MQTT Alarms | Publish alarms to MQTT |
| Email Alarms | Send email notifications |
| Cooldown | Minutes between repeat notifications (5-120) |
Debug Settings #
| Setting | Description |
|---|---|
| Serial Debug | Output logs to USB serial port |
| Web Debug | Show logs in web interface |
7. Sensor Setup #
The receiver supports up to 4 sensors. Each sensor has its own configuration tab.
Sensor Types #
Tank Top Sensor (Ultrasonic) #
- Mounted at the top of the tank
- Measures distance to water surface
- Additional settings: Blind Zone, Offset
In-Tank Sensor (Pressure) #
- Submerged in the water
- Measures water pressure/depth
- No blind zone or offset needed
Sensor Configuration #
| Setting | Description |
|---|---|
| Node ID | Unique 12-character sensor identifier |
| Name | Human-readable name (e.g., “Main Tank”) |
| Type | Tank Top Sensor or In-Tank Sensor |
| Height | Tank height in millimeters |
| Diameter | Tank diameter in millimeters |
| Parallel Tanks | Number of identical tanks (for volume calculation) |
Alarm Settings (per sensor) #
| Setting | Description |
|---|---|
| Alarm Level | Low water warning threshold (0-100%) |
| Alarm Rate | High consumption warning (liters/minute) |
| Battery Warning | Low battery threshold (millivolts) |
| Battery Type | LiPo (3.3-4.2V) or LiFePO4 (2.8-3.4V) |
Trust & Timeout Settings #
| Setting | Description |
|---|---|
| Trust Time | Warmup period before alarms trigger (1-30 minutes) |
| Fail Time | Time without data before “offline” alarm (5-120 minutes) |
The Trust Time prevents false alarms when a sensor first powers on or reconnects.
8. Alarms & Notifications #
Alarm Types #
Low Level Alarm #
- Triggers when: Tank fill percentage drops below the configured threshold
- Example: Tank at 15% with alarm set to 20%
Low Battery Alarm #
- Triggers when: Sensor battery voltage drops below threshold
- Default thresholds:
- LiPo batteries: 3300 mV
- LiFePO4 batteries: 2800 mV
High Consumption Alarm #
- Triggers when: Water usage rate exceeds configured L/min
- Use case: Detecting leaks or unusual water usage
Sensor Offline Alarm #
- Triggers when: No data received for longer than Fail Time
- Causes: Dead battery, sensor powered off, out of range
Notification Methods #
E-Ink Display #
- Alarm icons appear next to affected tanks
- Visible at a glance without checking your phone
Web Interface #
- Real-time alarm indicators on dashboard
- Color changes and warning icons
Email Notifications #
Requires email configuration (see Section 6). Emails include:
- Tank name
- Alarm type
- Current value and threshold
- Timestamp
MQTT Notifications #
Publishes to: <deviceID>/alarms/<sensorID>
- Integrates with Home Assistant, Node-RED, etc.
- Enables custom automations
Notification Cooldown #
To prevent notification spam during sustained alarms, a cooldown period applies:
- Default: 15 minutes
- Configurable: 5-120 minutes
- After one notification, the next is delayed by the cooldown period
9. Firmware Updates #
Automatic Updates #
The device can automatically check for and install updates:
- Go to Update page
- Enable Automatic Updates
- Set check interval (12h, 24h, 48h, or weekly)
When an update is available:
- Device downloads automatically
- Verifies the file integrity
- Installs and reboots
- No user intervention required
Manual Updates #
To manually update firmware:
- Go to Update page
- In “Firmware Upload” section, click Choose File
- Select the firmware
.binfile - Click Upload Firmware
- Wait for the progress bar to complete
- Device will restart automatically
Important:
- Do not power off during update
- Ensure stable power supply
- Update takes 2-5 minutes
- Browser connection may drop during reboot
Filesystem Updates #
To update the web interface files:
- Go to Update page
- In “Filesystem Upload” section, click Choose File
- Select the filesystem
.binfile - Click Upload
10. MQTT Integration #
Enabling MQTT #
- Go to Configuration > MQTT Settings
- Enter your broker address and credentials
- Enable MQTT
- Click Save
Published Topics #
The device publishes to these MQTT topics:
Sensor Data #
<deviceID>/sensors/<sensorID>/tank_level_mm
<deviceID>/sensors/<sensorID>/fill_percent
<deviceID>/sensors/<sensorID>/battery_mv
<deviceID>/sensors/<sensorID>/cpu_temperature
<deviceID>/sensors/<sensorID>/rssi
Alarms #
<deviceID>/alarms/<sensorID>
Device Status #
<deviceID>/status
Home Assistant Integration #
Example configuration for Home Assistant:
sensor:
- platform: mqtt
name: "Main Tank Level"
state_topic: "AABBCCDDEEFF/sensors/281C67FA12F4/fill_percent"
unit_of_measurement: "%"
- platform: mqtt
name: "Main Tank Battery"
state_topic: "AABBCCDDEEFF/sensors/281C67FA12F4/battery_mv"
unit_of_measurement: "mV"
11. Troubleshooting #
Device won’t connect to WiFi #
- Check password – Passwords are case-sensitive
- Check WiFi band – Device only supports 2.4GHz, not 5GHz
- Check signal – Move device closer to router
- Reset WiFi – Hold button for 5 seconds to restart setup
No data from sensors #
- Check LoRa settings – Must match between receiver and sensors
- Check distance – Sensors may be out of range
- Check sensor battery – Replace if low
- Check signal strength – View RSSI on Stats screen or web interface
Web interface won’t load #
- Check IP address – Verify on e-ink display
- Check WiFi connection – Ensure you’re on the same network
- Try refreshing – First load may take a moment
- Try different browser – Clear cache if needed
Alarms not triggering #
- Check Trust Time – Alarms don’t trigger during warmup period
- Check thresholds – Verify alarm levels in configuration
- Check notifications – Ensure email/MQTT is configured and enabled
Email notifications not working #
- Check SMTP settings – Server, port, username, password
- Gmail users – Must use App Password, not regular password
- Check spam folder – Emails may be filtered
- Check cooldown – Notifications are rate-limited
Display not updating #
- Check WiFi – Display won’t update without connection
- Check sensor data – Verify sensors are transmitting
- Wait for refresh – E-ink updates are throttled to extend lifespan
12. Technical Specifications #
Hardware #
| Component | Specification |
|---|---|
| Processor | ESP32-S3 dual-core @ 240MHz |
| Memory | 8MB PSRAM, 320KB RAM |
| Storage | 16MB Flash (FFat filesystem) |
| Display | 2.9″ e-ink, 296×128 pixels |
| Radio | SX1262 LoRa transceiver |
| Connectivity | WiFi 2.4GHz, Bluetooth LE |
| Power | USB-C, 5V |
LoRa Radio #
| Parameter | Value |
|---|---|
| Frequency | 915 MHz (AU915) |
| Bandwidth | 125 kHz (default) |
| Spreading Factor | SF7 (default) |
| Max Range | 2+ km (line of sight) |
| Max Packet Size | 64 bytes |
Software #
| Feature | Specification |
|---|---|
| Framework | ESP-IDF 5.5.0 |
| Max Sensors | 4 |
| Data History | 24 hours (1440 points/sensor) |
| Update Method | OTA (Over-The-Air) |
Network #
| Protocol | Port |
|---|---|
| HTTP | 80 |
| WebSocket | 80 (/ws) |
| MQTT | 1883 or 8883 (configurable) |
Support #
- Website: aquavigil.com.au
- Firmware Updates: Automatic or via web interface
Document Version: 1.0
Last Updated: January 2026

