D.E.V_Darshan
Data Editor
0 chars

Start typing to edit and preview on the simulated OLED

Ctrl+S to save

Ready

Settings

Device configuration and preferences

WiFi Configuration

Network SSIDD.E.V_Darshan
Passwordreadmore
Portal IP192.168.4.1
WiFi Channel6
Portal ModeAP mode, single-client focus
Auto Shutdown5 min inactivity

Reading Behaviour

Characters per Line32
Display Lines4
Bookmark Auto-saveEvery 10 lines
Sleep Timeout5 minutes
Max File Size (Editor)64 KB
Max Upload Size2 MB

Storage Details

Storage TypeMicroSD FAT16/FAT32 (typically up to 32GB)
Managed FilesUp to 200 files (newest-first)
Allowed File Type.txt only
Upload Limit2 MB per file
Web Editor Limit64 KB per file
Runtime CapacityShown when /info API is available

System Resources

PlatformAI Thinker ESP32-CAM (ESP32-S)
Flash / RAM4MB Flash + PSRAM
CPU Profile80 MHz reading / 240 MHz WiFi portal
Power PolicyWiFi + BT OFF during reading
Reading Current~35mA (estimated)
WiFi Portal Current~120mA (estimated)
Deep Sleep~6uA (theoretical)

Framework & Build Baseline

FrameworkArduino (ESP32 core 2.0.x+)
LibrariesU8g2, WebServer, WiFi, SD_MMC, Preferences, FS
Board TargetAI Thinker ESP32-CAM
Flash ModeQIO @ 80MHz
Partition SchemeDefault 4MB with SPIFFS
SD ModeSD_MMC 1-bit (GPIO2/14/15)
Boot SafetyGPIO mapping optimized for resistor-free stable boot

Firmware Update

Upload a compiled .bin file via OTA to update the device firmware.

User Guide

Complete documentation for your D.E.V_Darshan reader

Documentation

Step 1: On the device Home screen, navigate to WiFi Portal and press SELECT to confirm.

Step 2: The OLED display will show the WiFi network name and IP address. Connect your phone or computer to the displayed WiFi network.

Step 3: Open any web browser and go to 192.168.4.1

Tip: The portal will auto-shutdown after 5 minutes of inactivity to conserve battery.

.txt

Use the WiFi portal upload flow at 192.168.4.1. The device validates each upload and streams data to SD storage safely.

Files are sorted newest-first in firmware and the list is capped at 200 files for RAM safety.

The system accepts only .txt files and rejects empty or oversized uploads.

Limits: 2 MB max upload size and 64 KB max web editor file size.

123

The Editor tab is your main workspace: type or paste text, use formatting tools, and preview wrapped output live on the OLED simulator.

The editor shows a live character and line counter. Click Save to push content to the device backend endpoint, or Close to reset the editor session.

Use Ctrl+S (or Cmd+S) as a keyboard shortcut to save.

Limit: Web editing supports files up to 64 KB. For larger files, download, edit locally, and re-upload.

UPDOWNSELECT

UP Button (GPIO13): Navigate up through menus. In reading mode, short press scrolls up by one page; hold for continuous line-by-line scrolling.

DOWN Button (GPIO0): Navigate down through menus. In reading mode, short press scrolls down by one page; hold for continuous scrolling. Do not hold during power-on (boot pin).

SELECT Button (GPIO12): Context-aware action. In menus, it enters the selected item. In reading mode, it acts as Back.

Flow: Home → WiFi Portal / Files / Settings. Files → Select file → Reading mode. SELECT always returns to the previous screen.

3.7V

Battery: 3.7V 1100mAh Li-ion cell with TP4056 USB charging. Red LED = charging, Blue/Green LED = fully charged.

Auto Sleep: After 5 minutes of inactivity, the device enters light sleep. Display turns off, CPU power draw is minimised.

Wake Up: Press any button (UP, DOWN, or SELECT) to instantly resume from where you left off.

WiFi Power: WiFi and Bluetooth radios are fully disabled during reading. They activate only when entering WiFi Portal from the Home menu.

Magnetic Switch: The magnetic reed switch provides hardware power cutoff — zero standby drain, ideal for long-term storage.

Main Entry: D.E.V_Darshan_Sketch.ino controls setup and loop flow.

Core Modules: config (pins/settings), display (OLED rendering), sd_reader (line reader + bookmarks), buttons (debounce/press types), wifi_portal (AP + web server), and portal.h (embedded UI).

Design Decisions: line-by-line buffering keeps memory usage stable, bookmarks persist using ESP32 Preferences (NVS), and SD_MMC 1-bit mode frees critical GPIOs for safer boot.

State Flow: BOOT_INIT → HOME → FILE/SETTINGS/WIFI_PORTAL → READING.

Toolchain: Arduino IDE 2.x or PlatformIO with ESP32 board package (2.0.x+).

Board: AI Thinker ESP32-CAM, upload speed 115200, QIO flash mode, 80MHz flash frequency, default 4MB with SPIFFS partition.

Libraries: U8g2 plus built-in ESP32 libraries (WebServer, WiFi, SD_MMC, Preferences, FS).

Important: after final assembly, GPIO1/GPIO3 are reused for OLED I2C, so serial debugging is limited and OLED status output is preferred.

About

Full project profile and device runtime details from README

D.E.V_Darshan

ESP32-CAM Smart Reading Device v1.0 · Offline-first and low-power by design

ESP32-CAM  Arduino Core  SD_MMC 1-bit  WiFi Portal  OTA Update

Project & Device Specifications

Project VersionD.E.V_Darshan v1.0
Core PlatformESP32-CAM (AI Thinker), ESP32-S + PSRAM
Flash / Memory4MB Flash + PSRAM buffering support
Device Runtime (OS Base)Espressif ESP32 Arduino Core (2.0.x+)
Firmware FrameworkArduino (U8g2 + WebServer + WiFi + SD_MMC + Preferences + FS)
DisplaySSD1306 OLED 128×32, 4-line reading view
Characters / Line21 chars (6x10 body font), word-wrap optimized
Storage MediumMicroSD (FAT16/FAT32, typically up to 32GB)
SD InterfaceSD_MMC 1-bit mode (GPIO2, GPIO14, GPIO15)
File LimitsUp to 200 files managed, newest-first sorting
Portal Limits2MB max upload, 64KB max web editing, .txt only
WiFi PortalSSID D.E.V_Darshan, IP 192.168.4.1, single client focus
Firmware UpdateOTA .bin flashing from Settings tab
Power System3.7V 1100mAh Li-ion + TP4056 + magnetic reed switch
Battery Estimate~31h reading / ~37h mixed / ~9h WiFi session
Build PartitionDefault 4MB with SPIFFS

Device OS / Firmware Stack

Main EntryD.E.V_Darshan_Sketch.ino (setup + loop)
Modulesconfig, display, sd_reader, buttons, wifi_portal, portal
State MachineBOOT_INIT -> HOME -> FILE_MENU / SETTINGS / WIFI_PORTAL -> READING
Memory StrategyLine-by-line reading with circular buffer (~512B text buffer)
Bookmark PersistenceESP32 Preferences (NVS), saved every 10 scroll actions
Portal FrontendEmbedded HTML/CSS/JS stored in PROGMEM (portal.h)
Radio PolicyWiFi + Bluetooth disabled during reading; AP only on demand
CPU Policy80MHz reading mode, 240MHz during WiFi portal tasks
Boot Safety Design1-bit SD mode frees GPIO12/13 and avoids resistor-heavy boot pin conflicts

Major Features from README

  • Reads .txt files line-by-line (memory-safe for very large files)
  • Newest-first file sorting with wrap-around menu navigation
  • Per-file bookmark restore using NVS non-volatile storage
  • Live OLED preview and web editor with 64KB safety cap
  • Drag-drop uploads with progress, type checks, and size checks
  • OTA firmware update from the portal Settings tab
  • Offline-first behavior: radios disabled outside WiFi portal mode
  • Zero external resistor hardware strategy with boot-safe GPIO mapping
  • Mobile-first portal UI with touch-friendly controls
  • Distraction-free reading focus with low-cost hardware (about $10 BOM)

Power, Performance, and Safety Profile

Reading Current Draw~35mA (WiFi OFF, BT OFF, 80MHz)
WiFi Portal Draw~120mA (AP + HTTP server active)
Idle Draw~25mA (display dimmed)
Deep Sleep~6uA theoretical standby profile
Radio ControlsWiFi.mode(WIFI_OFF), btStop(), esp_wifi_stop() on boot
Battery Life Estimate~31h continuous reading on 1100mAh battery
Brownout HandlingOptional 470uF capacitor if WiFi surge resets appear
Safety PracticesInput debounce, SD write safety, WiFi cleanup, graceful error states

Build & Deployment Notes

IDE SupportArduino IDE 2.x or PlatformIO
Board PackageEspressif ESP32 board package 2.0.x+
Target BoardAI Thinker ESP32-CAM
Upload Speed115200
Flash Settings80MHz, QIO, default 4MB SPIFFS partition
Serial Pins ReuseGPIO1/3 become OLED I2C after assembly (OLED used for runtime status)
OTA PathBuild .bin and upload from the portal Settings -> Firmware Update
SB
Sakshyam Bastakoti
Creator & Developer
sakshyambastakoti.com.np
Designer and engineer behind D.E.V_Darshan — a compact open-source reader focused on low cost, long battery life, and deep focus. The project repurposes ESP32-CAM hardware into a practical text reading system with robust firmware architecture and a complete WiFi management portal.
I believe technology should empower focus, not fragment it. D.E.V_Darshan is my answer to endless scrolling — a device that does one thing exceptionally well: let you read. Every design decision, from the magnetic power switch to the single-bit SD interface, prioritises simplicity, efficiency, and the pure joy of reading.
Open Hardware ESP32 Platform Arduino Framework MIT License
D.E.V_Darshan v1.0 · Designed & Engineered by Sakshyam Bastakoti
Built with precision. Powered by passion.
sakshyambastakoti.com.np