Latest Release

AutoSense
Sensor Portal

Open firmware for ESP32 & ESP8266. Monitor CO₂, pH, O₂, temperature, humidity and more — over WiFi & MQTT, with a built-in web UI.

Download Flash Kit v1.0.0

AutoSense_Flash_Kit_1.0.0.zip  ·  ESP32 & ESP8266

ESP32 ESP8266 / NodeMCU MQTT LittleFS OTA Updates Web UI Plugin System

What is AutoSense?

AutoSense Sensor Portal is firmware for ESP32 and ESP8266 microcontrollers. It ships a plugin-based sensor engine, a built-in web interface, and full MQTT capability exposure so your dashboards can discover available commands dynamically.

🔌

Multi-Sensor Support

DHT22, OLED, I2C, MQ135, DFRobot O₂, pH, TDS, CO, BME688 and more via the plugin system.

📡

MQTT & Capabilities

Publishes a retained capability manifest so dashboards auto-discover all available commands.

🌐

Built-in Web UI

Configure WiFi, broker, device name, GPIO pins and manage plugins — all from your browser.

🔄

OTA Firmware Updates

Already running AutoSense? Update firmware and static web UI files wirelessly — no USB needed.

💡
On first power-on, the device boots in Access Point (AP) mode. Connect to the AutoSense WiFi (password: AutoSense) and open http://192.168.4.1:1980 to complete setup.

Flash the Firmware

1

Install the flashing tool

You need Python 3, then install esptool:

pip install esptool
2

Connect the board via USB & find the port

# Windows — Device Manager → Ports (COM & LPT)
COM5

# macOS
ls /dev/cu.*       # e.g. /dev/cu.usbserial-0001

# Linux
ls /dev/ttyUSB*    # e.g. /dev/ttyUSB0
3

Run the flash script

Windows — double-click and enter your COM port when prompted:

flash_esp32.bat      # for ESP32 boards
flash_esp8266.bat    # for ESP8266 / NodeMCU

macOS / Linux:

chmod +x flash_esp32.sh flash_esp8266.sh
./flash_esp32.sh     # ESP32
./flash_esp8266.sh   # ESP8266 / NodeMCU
⚠️
If flashing does not start, hold the BOOT (or FLASH) button on the board until you see Connecting….
4

First boot — complete setup

WiFi network : AutoSense
Password     : AutoSense
Browser URL  : http://192.168.4.1:1980

Click Setup WiFi, enter your credentials, MQTT broker address, and device name. The device reboots and joins your network at http://<device-name>.local:1980.

ℹ️
No cables or tools needed — update wirelessly through the device’s own web interface.
1

Find your device on the network

http://<device-name>.local:1980
# or use the device IP from your router
2

Open the firmware update page

http://<device-name>.local:1981/update
3

Upload the matching firmware binary

# ESP32 boards
bin/esp32/firmware.bin

# ESP8266 / NodeMCU
bin/esp8266/firmware.bin

Wait for upload to complete — the device reboots automatically.

ℹ️
Only firmware.bin is needed for OTA updates. Bootloader and partition files are only required for Section A (USB flash).
4

Update web UI files only (optional)

If only the web interface changed, use the static file upload page:

http://<device-name>.local:1981/upload

Upload data/main.js, data/style.css, and data/plugins.json one at a time, then reboot:

http://<device-name>.local:1980/reboot
Troubleshooting
“Failed to connect” during USB flash

Hold the BOOT button while the script connects, release once it says Connecting….

Wrong board type flashed

Re-run Section A with the correct script — ESP32 and ESP8266 images are not interchangeable.

Can’t reach .local address

Use the device IP from your router, or reconnect to the AutoSense AP and visit http://192.168.4.1:1980.

Settings lost after update

Settings are only lost after a /reset. A normal Section A or B update preserves all saved settings.

Passwords & Logins

These are the factory-default credentials shipped with the firmware. Use them during first-time setup and firmware management.

📶
WiFi Access Point
SSID AutoSense
Password autosense

Connect to this network on first boot to access the setup page at http://192.168.4.1:1980.

🔒
Web Admin
Username admin
Password autosenseadmin@

Required when uploading files at :1981/upload or flashing firmware at :1981/update.

Supported Sensors & Plugins

Enable or disable plugins via plugins.json — no source changes needed. A reboot is required after changing plugin settings.

Plugin ID Sensor / Module
P001OLED Display
P002DHT22 (Temperature & Humidity)
P003CO₂ (MQ135)
P004DS18B20 (Temperature)
P005O₂ (DFRobot Oxygen Sensor)
P006pH Sensor
P007TDS (Water Quality)
P008CO (Carbon Monoxide)
P009ProtH
P010BME688 (Multi-gas)
P011MiCS-5524 (CO / Alcohol / VOC)

Example plugins.json — enable only P001, P002, P003:

{
  "enabled": ["P001", "P002", "P003"]
}
ℹ️
Upload plugins.json via http://<device-name>.local:1981/upload, then reboot the device to apply changes.

What’s in the Zip

AutoSense_Flash_Kit_1.0.0/ ├── INSTRUCTIONS.md <- this file ├── flash_esp32.bat/.sh <- USB flash script for ESP32 ├── flash_esp8266.bat/.sh <- USB flash script for ESP8266/NodeMCU ├── bin/ │ ├── esp32/ │ │ ├── bootloader.bin │ │ ├── partitions.bin │ │ ├── boot_app0.bin │ │ ├── firmware.bin │ │ └── littlefs.bin <- web UI files as filesystem image │ └── esp8266/ │ ├── firmware.bin │ └── littlefs.bin <- web UI files as filesystem image └── data/ <- loose web UI files for /upload page ├── main.js ├── style.css └── plugins.json
Download Flash Kit v1.0.0

AutoSense_Flash_Kit_1.0.0.zip