Sign in

System administrator access

Overview

← My Devices
Loading…

Recent Alerts

TimeDeviceTypeSeverityMessageStatus
Loading…
StatusUID / MACPhotoNameFirmwareUptimeLast SeenActions
Loading…
TimeDeviceTypeSeverityMessageStatusAction
Loading…
IDNameDescriptionMembersStatusCreatedActions
Loading…
IDEmailNameRoleStatusLast LoginActions
Loading…
🔑 New API Key — Copy it now! This key will not be shown again. Store it securely.
IDNamePrefixOwnerLast UsedCreatedStatusActions
Loading…
TimeUserActionTargetDetailIP
Loading…
Devices sending heartbeats that aren't registered yet
MAC AddressFirmwareSignalLast SeenSeen CountAction
Loading…
Loading…

📡 Device Heartbeat Status

DeviceMACStatusLast SeenSignalUptime
Loading…

❓ Unknown Device Attempts

MACLast SeenAttemptsSignalAction
Loading…

Settings

Shown on devices with no custom photo set
How often devices report in (can be overridden per device)

📤 Upload New Firmware

📋 Firmware Releases

VersionStatusNotesUploadedAction
Loading...

📡 Device OTA Status

DeviceCurrent FWLatest FWOTA ModeAction
Loading...

📋 Device Logs

Loading logs...
-
ONLINE
-
OFFLINE
-
AVG VOLTAGE
-
TOTAL DEVICES
STATUS:OnlineOffline < 24hrsOffline < 30 daysOffline > 30 days

📡 Device Locations

DeviceStatusLAN IPWAN IPLocationVoltage
Loading...

👤 User Management

NameEmailRoleStatusLast LoginCreatedActions
Loading...
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

TabDescription
OverviewFleet summary, recent alerts, device count, telemetry stats
DevicesAll registered devices with remote management buttons
AlertsVoltage and connectivity alerts
FleetsGroup devices into fleets for organization
UsersUser list and access control
API KeysGenerate and manage API keys
Audit LogFull log of all admin actions
UnknownDevices heartbeating but not yet registered
SettingsGlobal heartbeat interval, site name, registration toggle
FirmwareFirmware release management and OTA control
Device LogsRemote terminal — live device log stream
NOC MapWorld map showing all device locations and status
User MgmtAdd, edit, suspend, delete users and reset passwords
SystemServer health and database stats

2. Device Management

Device Buttons

ButtonActionNotes
RenameChange device display nameTakes effect immediately
LocationSet GPS coordinates and location nameOverrides GeoIP on NOC map
WiFiPush new WiFi credentials to deviceApplied on next heartbeat
SlotsView saved WiFi networks on deviceShows SSID names only, no passwords
BlinkBlink status LEDUseful for identifying physical device
DebugToggle debug mode — 5s heartbeatDisable when done
RestartRemote rebootReconnects within ~30 seconds
IntervalSet per-device heartbeat intervalOverrides global setting
SleepEnable/disable deep sleepDisables OTA and remote commands while sleeping
BatterySet battery type and capacityAffects intelligence calculations
HealthView free heap, boot count, reset reasonRequires firmware v1.3.3+

Registered Devices

DeviceMACLocationStatus
Prototype 170:4B:CA:21:85:08—v1.1.0 — needs manual OTA
Unit 2 — 2005 Jeep RubiconB4:BF:E9:CA:02:34Miami HouseINA219, VR lead acid 198Ah
Unit 304:B2:47:97:C8:A4—v1.1.0 — needs manual OTA
Unit 4 — DallasB4:BF:E9:0B:2F:30Carrollton TXv1.3.6 online
Unit 5 — Toronto48:9D:31:E5:F4:9CPickering ONv1.3.6
Display Unit CYD28:05:A5:2A:B3:04—2.8" ILI9341, BOOT button wake

3. Firmware and OTA Updates

Firmware Version History

VersionKey Features
1.3.6Deep sleep, server-controlled battery type and capacity settings
1.3.5INA219 Wire reset fix, OLED SSD1306 support, I2C multi-pin scanner
1.3.4System health metrics — free heap, boot count, reset reason
1.3.3Dynamic heartbeat interval from server, screen dim fix
1.3.2Device photo on boot JPEG, BOOT button wake, color fix
1.3.1OTA rollback protection
1.3.0WiFi slot viewer, delete_wifi command
1.2.9WiFi SSID and slots JSON in heartbeat
1.2.8Remote WiFi push via set_wifi command, clear_wifi
1.2.7Multi-WiFi 5 slots, legacy compat
1.2.6local_ip and wan_ip in heartbeat

OTA Modes

ModeBehavior
autoDevice checks and updates automatically on every boot
manualDevice 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 ColorStatus
GreenOnline — heartbeat within last 5 minutes
YellowOffline — last seen within 24 hours
OrangeOffline — last seen within 30 days
RedOffline — 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

ColorVoltageStatus
Greenabove 12.4VGood
Yellow12.0 to 12.4VFair
Orange11.5 to 12.0VLow
Redbelow 11.5VCritical

6. Battery Intelligence

Analyzes voltage, current, and historical trends to provide actionable insights on the device dashboard.

Battery Type Voltage Profiles

TypeFloat VFull VGood VLow VCritical V
Flooded Lead Acid—12.7012.4012.0011.80
AGM—12.8012.5012.1011.80
VR/UPS Lead Acid (HR5600)13.5012.7512.4512.0011.80
LiFePO4 Lithium—13.6013.2012.8012.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

PeriodGroupingBest For
24HHourly averagesDaily monitoring, charge cycles
7 DaysDaily averagesWeekly trends
30 DaysDaily averagesMonthly health overview
6 MonthsWeekly averagesLong-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

RoleAccess
system_adminFull access — all tabs, all devices, user management
fleet_adminManage assigned fleet devices only
userView own registered devices only
Demo account: demo@vmon100.com — read-only access for demonstrations and testing.

9. Hardware Reference

Standard ESP32 DevKit Wiring

ComponentESP32 PinNotes
INA219 VCC3.3VNOT 5V
INA219 GNDGNDMust share common ground with LM2596
INA219 SDAGPIO21 / P21I2C data line
INA219 SCLGPIO22 / P22I2C clock line
INA219 VIN+Battery positiveIn series with load — current flows through
INA219 VIN−LM2596 IN+Exits to load after shunt measurement
LM2596 OUT+ESP32 VIN 5VSet potentiometer to 5.0V before connecting
LM2596 OUT−GNDCommon ground point

CYD Display Unit — ESP32-2432S028R

ComponentPins
ILI9341 displayMOSI=13, SCLK=14, CS=15, DC=2, RST=4, BL=21
INA219SDA=GPIO27, SCL=GPIO22
BOOT button wakeGPIO0

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.

CommandEffect
set_wifiAdd credentials to next available slot
delete_wifiDelete specific slot by number
clear_wifiDelete 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

ModeCurrent DrawWiFi
Active150-240 mAOn
Deep Sleep ESP32 only0.01 mAOff
Full system with LM2596 sleeping10-15 mAOff

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 TypeSleepInterval
Parked vehicle, no chargerEnable — 15 to 30 minSleep duration controls frequency
Always-on with chargerDisable5 to 15 minutes
CYD display unitDisable60 seconds
Development and testingDisable5 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

KeyAction
mShow debug menu
1WiFi status
2Current IP
3Restart device
4Device info — MAC, RSSI, uptime, INA219 status
5Add WiFi — scan, select, enter password
bRead battery via INA219
wShow saved WiFi networks
hSend heartbeat manually
xI2C scanner — find all connected I2C devices
dTest display — CYD only
+ or -Adjust brightness — CYD only
rRotate display — CYD only

VMON100 Platform — Junox Studios 2026 — vmon100.com

--.-
VOLTAGE (V)
---
CURRENT (mA)
----
POWER (mW)
---
SIGNAL (dBm)
VOLTAGE RANGE
--.- V min / --.- V max
Avg: --.- V
CURRENT RANGE
--- mA min / --- mA max
Avg: --- mA
READINGS
0

🔋 Voltage History

⚡ Current Draw History