+ Register Device
↻ Refresh
Status UID / MAC Photo Name Firmware Uptime Last Seen Actions
Loading…
All Severities Critical Warning Info
All Unacknowledged Acknowledged
↻ Refresh
Time Device Type Severity Message Status Action
Loading…
All Roles User Fleet Admin System Admin
All Status Active Suspended
↻ Refresh
ID Email Name Role Status Last Login Actions
Loading…
+ Create API Key
↻ Refresh
🔑 New API Key — Copy it now!
This key will not be shown again. Store it securely.
ID Name Prefix Owner Last Used Created Status Actions
Loading…
↻ Refresh
Devices sending heartbeats that aren't registered yet
MAC Address Firmware Signal Last Seen Seen Count Action
Loading…
All Devices
↻ Refresh
▶ Auto Refresh
STATUS: Online Offline < 24hrs Offline < 30 days Offline > 30 days
Device Status LAN IP WAN IP Location Voltage Loading...
+ Log Incident
Open Incidents
All Incidents
Resolved
↻ Refresh
Severity
Device
Title
Type
Source
Time
Status
Actions
Loading…
VMON100 Admin Guide
Battery Monitoring Platform — Admin Reference and Feature Documentation Last updated: August 2026 | Firmware v1.3.6
1. Platform Overview
VMON100 is a 12V battery monitoring platform built on ESP32 hardware with a PHP/MySQL backend on Namecheap shared hosting. Devices report telemetry via HTTPS heartbeats and receive remote commands from the admin portal.
Frontend Vanilla HTML/CSS/JS PWA. Admin at /admin/. Dashboard at /dashboard/.
Backend PHP on premium147. MariaDB layoeebj_vmon100. JWT auth.
Hardware ESP32 + INA219 sensor. CYD 2.8" display unit. LM2596 buck converter.
Admin Portal Tabs
Tab Description
Overview Fleet summary, recent alerts, device count, telemetry stats
Devices All registered devices with remote management buttons
Alerts Voltage and connectivity alerts
Fleets Group devices into fleets for organization
Users User list and access control
API Keys Generate and manage API keys
Audit Log Full log of all admin actions
Unknown Devices heartbeating but not yet registered
Settings Global heartbeat interval, site name, registration toggle
Firmware Firmware release management and OTA control
Device Logs Remote terminal — live device log stream
NOC Map World map showing all device locations and status
User Mgmt Add, edit, suspend, delete users and reset passwords
System Server health and database stats
2. Device Management
Device Buttons
Button Action Notes
Rename Change device display name Takes effect immediately
Location Set GPS coordinates and location name Overrides GeoIP on NOC map
WiFi Push new WiFi credentials to device Applied on next heartbeat
Slots View saved WiFi networks on device Shows SSID names only, no passwords
Blink Blink status LED Useful for identifying physical device
Debug Toggle debug mode — 5s heartbeat Disable when done
Restart Remote reboot Reconnects within ~30 seconds
Interval Set per-device heartbeat interval Overrides global setting
Sleep Enable/disable deep sleep Disables OTA and remote commands while sleeping
Battery Set battery type and capacity Affects intelligence calculations
Health View free heap, boot count, reset reason Requires firmware v1.3.3+
Registered Devices
Device MAC Location Status
Prototype 1 70:4B:CA:21:85:08 — v1.1.0 — needs manual OTA
Unit 2 — 2005 Jeep Rubicon B4:BF:E9:CA:02:34 Miami House INA219, VR lead acid 198Ah
Unit 3 04:B2:47:97:C8:A4 — v1.1.0 — needs manual OTA
Unit 4 — Dallas B4:BF:E9:0B:2F:30 Carrollton TX v1.3.6 online
Unit 5 — Toronto 48:9D:31:E5:F4:9C Pickering ON v1.3.6
Display Unit CYD 28:05:A5:2A:B3:04 — 2.8" ILI9341, BOOT button wake
3. Firmware and OTA Updates
Firmware Version History
Version Key Features
1.3.6 Deep sleep, server-controlled battery type and capacity settings
1.3.5 INA219 Wire reset fix, OLED SSD1306 support, I2C multi-pin scanner
1.3.4 System health metrics — free heap, boot count, reset reason
1.3.3 Dynamic heartbeat interval from server, screen dim fix
1.3.2 Device photo on boot JPEG, BOOT button wake, color fix
1.3.1 OTA rollback protection
1.3.0 WiFi slot viewer, delete_wifi command
1.2.9 WiFi SSID and slots JSON in heartbeat
1.2.8 Remote WiFi push via set_wifi command, clear_wifi
1.2.7 Multi-WiFi 5 slots, legacy compat
1.2.6 local_ip and wan_ip in heartbeat
OTA Modes
Mode Behavior
auto Device checks and updates automatically on every boot
manual Device checks but requires admin to trigger update
Deep sleep disables OTA checks while sleeping. Device only checks OTA after waking and sending a heartbeat.
4. NOC Map
Pin Color Status
Green Online — heartbeat within last 5 minutes
Yellow Offline — last seen within 24 hours
Orange Offline — last seen within 30 days
Red Offline — last seen over 30 days ago
For deployed vehicles, always set manual coordinates via the Location button so the NOC map is accurate regardless of VPN or cellular routing.
Click any pin to see: device name, status, firmware version, local IP, WAN IP, voltage, location, last seen time.
5. Device Dashboard
Access at /dashboard/device.html?mac=XX:XX:XX:XX:XX:XX
Live Gauges Voltage, Current mA, Power mW, Temperature, Signal, Uptime
History Sparklines Signal, Voltage, Current, Power — last 20 samples
Battery Intelligence SOC%, charging status, runtime estimate, swap detection
Historical Reports 24H, 7D, 30D, 6M aggregated charts and stats
Voltage Colors
Color Voltage Status
Green above 12.4V Good
Yellow 12.0 to 12.4V Fair
Orange 11.5 to 12.0V Low
Red below 11.5V Critical
6. Battery Intelligence
Analyzes voltage, current, and historical trends to provide actionable insights on the device dashboard.
Battery Type Voltage Profiles
Type Float V Full V Good V Low V Critical V
Flooded Lead Acid — 12.70 12.40 12.00 11.80
AGM — 12.80 12.50 12.10 11.80
VR/UPS Lead Acid (HR5600) 13.50 12.75 12.45 12.00 11.80
LiFePO4 Lithium — 13.60 13.20 12.80 12.00
Intelligence Features
Charging detection via float voltage threshold and rising voltage trend
SOC% estimate based on voltage and battery profile
Runtime estimate in days or hours at current draw — suppressed when charging
Battery swap detection on sudden large voltage drop
Critical voltage and dangerous discharge warnings
Set battery type and capacity via admin Devices tab Battery button for accurate SOC and runtime estimates.
7. Historical Reports
Period Grouping Best For
24H Hourly averages Daily monitoring, charge cycles
7 Days Daily averages Weekly trends
30 Days Daily averages Monthly health overview
6 Months Weekly averages Long-term battery degradation
Stats shown: Avg/Min/Max Voltage, Avg Current, Energy Used in Wh, Readings count.
Bad readings — voltage below 10V or above 14.5V — are automatically filtered from all reports.
8. User Management
Role Access
system_admin Full access — all tabs, all devices, user management
fleet_admin Manage assigned fleet devices only
user View own registered devices only
Demo account: demo@vmon100.com — read-only access for demonstrations and testing.
9. Hardware Reference
Standard ESP32 DevKit Wiring
Component ESP32 Pin Notes
INA219 VCC 3.3V NOT 5V
INA219 GND GND Must share common ground with LM2596
INA219 SDA GPIO21 / P21 I2C data line
INA219 SCL GPIO22 / P22 I2C clock line
INA219 VIN+ Battery positive In series with load — current flows through
INA219 VIN− LM2596 IN+ Exits to load after shunt measurement
LM2596 OUT+ ESP32 VIN 5V Set potentiometer to 5.0V before connecting
LM2596 OUT− GND Common ground point
CYD Display Unit — ESP32-2432S028R
Component Pins
ILI9341 display MOSI=13, SCLK=14, CS=15, DC=2, RST=4, BL=21
INA219 SDA=GPIO27, SCL=GPIO22
BOOT button wake GPIO0
INA219 I2C address: 0x40. Use the x serial menu command to scan and confirm detection.
Solder at 320-350 degrees C maximum. Heat above 500 degrees C will damage the INA219 chip internally even if solder joints look correct.
10. WiFi Management
Each device stores up to 5 WiFi networks plus a hardcoded fallback: TheSky / theskyisblue.
Command Effect
set_wifi Add credentials to next available slot
delete_wifi Delete specific slot by number
clear_wifi Delete all saved WiFi slots
WiFi passwords are stored only on the device in ESP32 NVS flash. They are never transmitted to the server.
11. Deep Sleep
Mode Current Draw WiFi
Active 150-240 mA On
Deep Sleep ESP32 only 0.01 mA Off
Full system with LM2596 sleeping 10-15 mA Off
Sleep cycle: Wake, full reboot, connect WiFi, send heartbeat, sleep for N minutes, repeat.
Deep sleep disables OTA updates and all remote commands. Only enable for deployed unattended devices on a battery without a charger.
Recommended Settings
Device Type Sleep Interval
Parked vehicle, no charger Enable — 15 to 30 min Sleep duration controls frequency
Always-on with charger Disable 5 to 15 minutes
CYD display unit Disable 60 seconds
Development and testing Disable 5 seconds via debug mode
12. Firmware Release Process
Step 1 — Bump Version Update FW_VERSION in main.cpp. Build in VS Code.
Step 2 — Copy Binary cp .pio/build/esp32dev/firmware.bin ~/Desktop/vmon100-X.X.X.bin
Step 3 — Upload Upload .bin via cPanel to /public_vmon100/firmware/
Step 4 — Register in DB UPDATE firmware_releases SET is_active=0 then INSERT new version row.
mysql -u layoeebj_vmon100dba -p'...' layoeebj_vmon100 -e "
UPDATE firmware_releases SET is_active=0;
INSERT INTO firmware_releases (version, url, is_active, release_notes, created_at)
VALUES ('1.X.X', 'https://vmon100.com/firmware/vmon100-1.X.X.bin', 1, 'Notes here', NOW());"
Always commit to GitHub: git add . and git commit -m "vX.X.X - description" and git push origin master
13. Troubleshooting
INA219 Not Detected
Press x in serial menu — I2C scanner should show 0x40
Verify VCC goes to 3.3V not 5V
Verify SDA to GPIO21 and SCL to GPIO22
Confirm all GNDs share common ground — test with multimeter continuity
Soldering temp must be 320-350 degrees C max
Wire.end() reset before ina219.begin() fixes timing issues on boot
OTA Not Updating
Confirm firmware_releases has is_active=1 for new version
Verify .bin uploaded to correct cPanel path
Remote restart device to trigger immediate OTA check
Deep sleep devices only check OTA when awake
USB Drops When 9V Connected
Two power sources fighting on ESP32 VIN pin
For bench testing, connect 9V ONLY to INA219 VIN+/VIN− not to LM2596
Use Device Logs tab remotely instead of serial monitor for full system testing
Serial Debug Menu Commands
Key Action
m Show debug menu
1 WiFi status
2 Current IP
3 Restart device
4 Device info — MAC, RSSI, uptime, INA219 status
5 Add WiFi — scan, select, enter password
b Read battery via INA219
w Show saved WiFi networks
h Send heartbeat manually
x I2C scanner — find all connected I2C devices
d Test display — CYD only
+ or - Adjust brightness — CYD only
r Rotate display — CYD only
VMON100 Platform — Junox Studios 2026 — vmon100.com