<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ming</title>
    <description>The latest articles on DEV Community by Ming (@mingming_shen_85ea2348fec).</description>
    <link>https://dev.to/mingming_shen_85ea2348fec</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1927469%2F18d0c39d-f6ff-4c45-91a5-3af61cf7b3df.jpg</url>
      <title>DEV Community: Ming</title>
      <link>https://dev.to/mingming_shen_85ea2348fec</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mingming_shen_85ea2348fec"/>
    <language>en</language>
    <item>
      <title>NeoMind: A Rust-Powered Edge AI Platform That Talks to Your IoT Devices</title>
      <dc:creator>Ming</dc:creator>
      <pubDate>Fri, 07 Aug 2026 07:30:25 +0000</pubDate>
      <link>https://dev.to/mingming_shen_85ea2348fec/neomind-a-rust-powered-edge-ai-platform-that-talks-to-your-iot-devices-ida</link>
      <guid>https://dev.to/mingming_shen_85ea2348fec/neomind-a-rust-powered-edge-ai-platform-that-talks-to-your-iot-devices-ida</guid>
      <description>&lt;h1&gt;
  
  
  NeoMind: A Rust-Powered Edge AI Platform That Talks to Your IoT Devices
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;Talk to your devices in natural language. The AI understands your intent, queries device states, creates automation rules, and takes action — all on your own hardware, with zero cloud dependency.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The Problem We're Solving
&lt;/h2&gt;

&lt;p&gt;Edge AI is stuck between two extremes. On one side, you have cloud-first platforms that ship every sensor reading to a remote server — introducing latency, bandwidth costs, and privacy concerns that make industrial customers cringe. On the other, you have bare-metal inference frameworks that run a single model well but offer no device management, no automation, no natural language interface.&lt;/p&gt;

&lt;p&gt;What's missing is the &lt;strong&gt;middleware layer&lt;/strong&gt; — something that sits on your edge hardware, connects to real devices, runs intelligent agents, and lets operators interact with the whole system conversationally. That's what NeoMind is.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is NeoMind?
&lt;/h2&gt;

&lt;p&gt;NeoMind is an open-source, edge-deployed AI platform built in Rust. It brings together:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;LLM-powered agents&lt;/strong&gt; that run directly on your hardware (via Ollama or cloud backends)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Device connectivity&lt;/strong&gt; through MQTT, BLE, and Webhook protocols&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A JSON rule engine&lt;/strong&gt; for automation with recursive conditions and debouncing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-time dashboards&lt;/strong&gt; with drag-and-drop widgets&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;22 official extensions&lt;/strong&gt; spanning vision AI (YOLO, face recognition, OCR), voice (TTS/ASR), and IoT bridges (Home Assistant, Modbus, BACnet, ONVIF, OPC-UA, LoRaWAN)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All packaged in a single binary. No Docker Compose. No external database. No message broker to install.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# One command. Everything runs.&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/camthink-ai/NeoMind/main/scripts/install.sh | sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Architecture: Single-Process, Self-Contained
&lt;/h2&gt;

&lt;p&gt;NeoMind's most distinctive design choice is its &lt;strong&gt;single-process architecture&lt;/strong&gt;. The API server (Axum), embedded MQTT broker, redb storage, rule engine, AI agent runtime, and extension runner all live in one process.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌──────────────────────────────────────────────────────────┐
│               Desktop App / Web UI                       │
│                React 18 + TypeScript                     │
├──────────────────────────────────────────────────────────┤
│              Tauri 2.x / Browser                         │
└────────────────────────┬─────────────────────────────────┘
                         │ REST / WebSocket / SSE
                         ▼
┌──────────────────────────────────────────────────────────┐
│                   API Gateway (Axum)                      │
│  ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐            │
│  │  Auth  │ │Devices │ │Automate│ │Messages│            │
│  └────────┘ └────────┘ └────────┘ └────────┘            │
├──────────────────────────────────────────────────────────┤
│                     Event Bus                             │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────────┐ │
│  │ Devices  │ │Automation│ │ AI Agent │ │ Extensions │ │
│  │ MQTT/BLE │ │ Rules    │ │ Chat     │ │ Isolated   │ │
│  │ Webhook  │ │ Transform│ │ Tools    │ │ Native+WASM│ │
│  └──────────┘ └──────────┘ │ Memory   │ └────────────┘ │
│                            └──────────┘                  │
├──────────────────────────────────────────────────────────┤
│                  Storage Layer (redb)                     │
│  Time-Series │ State │ LLM Memory │ Push Logs            │
└──────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why this matters:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Deployment simplicity&lt;/strong&gt; — &lt;code&gt;cargo run&lt;/code&gt; and you're done. No orchestrating 12 microservices.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resource efficiency&lt;/strong&gt; — One process shares memory, file descriptors, and connection pools. Critical on constrained edge hardware.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Operational clarity&lt;/strong&gt; — One log stream, one PID to monitor, one binary to update.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Three Design Philosophies
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Edge-First, Cloud-Optional
&lt;/h3&gt;

&lt;p&gt;NeoMind defaults to local LLMs via Ollama — your data never leaves your LAN. When you need frontier-model capabilities, switch to OpenAI, Anthropic, Google, or any OpenAI-compatible endpoint with a single config change. The agent runtime is backend-agnostic.&lt;/p&gt;

&lt;p&gt;This isn't just a privacy play. For industrial IoT deployments on factory floors or remote campuses, reliable internet isn't guaranteed. NeoMind works fully offline.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Crash-Isolated Extensions
&lt;/h3&gt;

&lt;p&gt;Extensions run in &lt;strong&gt;separate processes&lt;/strong&gt; and communicate with the core via FFI with capability-based permissions. If your YOLO object detection extension crashes, the main service and all other extensions are completely unaffected.&lt;/p&gt;

&lt;p&gt;This is modeled after Erlang's "let it crash" philosophy, adapted for a Rust codebase where the core itself rarely crashes — but third-party extensions might.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Type-Safe End-to-End
&lt;/h3&gt;

&lt;p&gt;The Rust backend provides compile-time guarantees across the entire stack. Agent CLI commands dispatch in-process with structured data types — no fragile string parsing, no &lt;code&gt;eval()&lt;/code&gt;, no shell injection vectors.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Agents: More Than a Chatbot
&lt;/h2&gt;

&lt;p&gt;NeoMind's AI layer goes beyond simple Q&amp;amp;A:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Natural Language Chat&lt;/strong&gt; — Conversational interface to query device states, create automation rules, and control hardware. "Turn off all cameras on Floor 3 after 10 PM" becomes a real command.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Autonomous Agents&lt;/strong&gt; — Scheduled or event-driven agents that monitor telemetry, analyze patterns, and trigger actions independently. Think: "Watch the temperature sensors and alert me if any reading exceeds 30°C for more than 5 minutes."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-tier Memory&lt;/strong&gt; — Profile memory, knowledge base, task history, and session context with automatic extraction and compression. The AI remembers your facility layout and past incidents.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Skill System&lt;/strong&gt; — YAML + Markdown skill files that guide agent behavior for specific scenarios. Write a skill for "factory floor safety check" and the agent follows it precisely.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Supported backends include Ollama, OpenAI, Anthropic, Google, xAI, Qwen, DeepSeek, GLM, MiniMax, and any OpenAI-compatible endpoint.&lt;/p&gt;

&lt;h2&gt;
  
  
  Device Management: MQTT, BLE, and Beyond
&lt;/h2&gt;

&lt;p&gt;NeoMind treats IoT devices as first-class citizens:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Embedded MQTT Broker&lt;/strong&gt; — with mTLS and CA certificate support. Your devices connect directly, no external broker needed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;BLE Provisioning&lt;/strong&gt; — Zero-touch device setup via Bluetooth (Tauri native + Web Bluetooth). Walk up to a device, pair, configure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auto-Discovery&lt;/strong&gt; — Plug in a new device and NeoMind detects it, registers its type, and offers AI-assisted onboarding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom Device Types&lt;/strong&gt; — Define metrics and commands via JSON type definitions. No code changes required.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The extension ecosystem adds bridges for &lt;strong&gt;Home Assistant&lt;/strong&gt; (3000+ entity integrations), &lt;strong&gt;Modbus&lt;/strong&gt; (TCP/RTU PLCs), &lt;strong&gt;BACnet&lt;/strong&gt; (building automation), &lt;strong&gt;ONVIF&lt;/strong&gt; (IP cameras), &lt;strong&gt;OPC-UA&lt;/strong&gt; (industrial servers), and &lt;strong&gt;LoRaWAN&lt;/strong&gt; (ChirpStack/TTN sensors).&lt;/p&gt;

&lt;h2&gt;
  
  
  Automation Without Code
&lt;/h2&gt;

&lt;p&gt;The JSON rule engine supports recursive conditions with comparison, range, and logical operators:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"condition"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"source"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"device:sensor:temperature"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"operator"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"greater_than"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"threshold"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"actions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"notify"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"channel"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"slack"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"message"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Temperature alert!"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"execute"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"device:fan:turn_on"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"cooldown"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"for_duration"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Combine rules with &lt;strong&gt;data transforms&lt;/strong&gt; (JavaScript-based virtual metrics) and &lt;strong&gt;scheduled AI agents&lt;/strong&gt; to build sophisticated automation pipelines — all without writing backend code.&lt;/p&gt;

&lt;h2&gt;
  
  
  22 Extensions and Growing
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://github.com/camthink-ai/NeoMind-Extensions" rel="noopener noreferrer"&gt;extension marketplace&lt;/a&gt; ships with production-ready integrations:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Extensions&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Vision&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;YOLO object detection, face recognition, OCR, visual grounding&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Voice&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;CosyVoice TTS, voice cloning, multilingual ASR, voice assistant pipeline&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;IoT Bridges&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Home Assistant, Modbus, BACnet, ONVIF, OPC-UA, LoRaWAN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Utilities&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Weather forecast, stream player, WASM demo&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Each extension is process-isolated with capability-based permissions. Build your own following the &lt;a href="https://wiki.camthink.ai/docs/neomind/developer-guide/overview" rel="noopener noreferrer"&gt;Extension Development Guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cross-Platform: Desktop, Server, Mobile
&lt;/h2&gt;

&lt;p&gt;NeoMind ships native desktop apps via Tauri 2.x for macOS (Apple Silicon + Intel), Windows, and Linux. The responsive web UI is optimized for phone and tablet. Server deployments support Docker, systemd, and nginx reverse proxy.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Docker — multi-arch, pulls official image&lt;/span&gt;
docker run &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;--name&lt;/span&gt; neomind &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-p&lt;/span&gt; 9375:9375 &lt;span class="nt"&gt;-p&lt;/span&gt; 1883:1883 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-v&lt;/span&gt; neomind-data:/app/data &lt;span class="se"&gt;\&lt;/span&gt;
  camthink/neomind:latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Get Started
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Download&lt;/strong&gt;: &lt;a href="https://github.com/camthink-ai/NeoMind/releases/latest" rel="noopener noreferrer"&gt;GitHub Releases&lt;/a&gt; (&lt;code&gt;.dmg&lt;/code&gt;, &lt;code&gt;.msi&lt;/code&gt;, &lt;code&gt;.AppImage&lt;/code&gt;, &lt;code&gt;.deb&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;5-Minute Quick Start&lt;/strong&gt;: &lt;a href="https://wiki.camthink.ai/docs/neomind/quick-start/five-minute-guide" rel="noopener noreferrer"&gt;wiki.camthink.ai&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source Code&lt;/strong&gt;: &lt;a href="https://github.com/camthink-ai/NeoMind" rel="noopener noreferrer"&gt;github.com/camthink-ai/NeoMind&lt;/a&gt; (Apache 2.0)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community&lt;/strong&gt;: &lt;a href="https://discord.gg/gkM7cc8gKb" rel="noopener noreferrer"&gt;Discord&lt;/a&gt; · &lt;a href="https://github.com/camthink-ai/NeoMind/issues" rel="noopener noreferrer"&gt;GitHub Issues&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Contributing
&lt;/h2&gt;

&lt;p&gt;NeoMind is open source and actively seeking contributors. Four ways to get involved:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Build an Extension&lt;/strong&gt; — New AI models, data sources, or integrations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add a Device Type&lt;/strong&gt; — Define metrics and commands for your IoT hardware&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create a Dashboard Widget&lt;/strong&gt; — Reusable React components for the community&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Core Contributions&lt;/strong&gt; — Rust backend, React frontend, documentation&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;em&gt;NeoMind is developed by &lt;a href="https://camthink.ai" rel="noopener noreferrer"&gt;CamThink AI&lt;/a&gt;. Licensed under Apache 2.0.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>rust</category>
      <category>iot</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Technical Implementation and Architectural Analysis of an ESP32-S3-Based Deep Sleep Outdoor Camera</title>
      <dc:creator>Ming</dc:creator>
      <pubDate>Mon, 03 Nov 2025 15:16:38 +0000</pubDate>
      <link>https://dev.to/mingming_shen_85ea2348fec/technical-implementation-and-architectural-analysis-of-an-esp32-s3-based-deep-sleep-outdoor-camera-kkk</link>
      <guid>https://dev.to/mingming_shen_85ea2348fec/technical-implementation-and-architectural-analysis-of-an-esp32-s3-based-deep-sleep-outdoor-camera-kkk</guid>
      <description>&lt;p&gt;In Internet of Things (IoT) applications, particularly in outdoor or edge deployment scenarios (such as smart agriculture, wildlife monitoring, and infrastructure inspection), providing a stable power supply for monitoring devices remains a core challenge. Traditional network cameras, which typically operate 24/7, have high power consumption and rely on external power sources, making deployment difficult in many situations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbukxn8wcoj8jv40mznfo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbukxn8wcoj8jv40mznfo.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This article will share the technical decisions and architectural design behind our development of the CamThink NeoEyes NE101. We will focus on how to leverage the features of the ESP32-S3 to implement an "on-demand" ultra-low-power camera, solving the battery life challenges inherent in battery-powered scenarios.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Core Challenge: The "Impossible Triangle" of Power Consumption
When developing a battery-powered outdoor camera, we face several key technical trade-offs:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Standby Power vs. Response Speed: The system needs to remain in an extremely low-power "deep sleep" state for long periods but must also respond and wake up quickly to external events (like PIR sensors or timers). This efficiency is, of course, related to chip performance.&lt;/p&gt;

&lt;p&gt;Image Processing vs. Power Consumption: Image acquisition, Auto Exposure (AE) adjustment, encoding, and processing are compute-intensive tasks that cause instantaneous power spikes.&lt;/p&gt;

&lt;p&gt;Data Transmission vs. Power Consumption: Wireless communication modules like Wi-Fi and Cat-1 (4G) are notorious "power hogs" when searching for networks and transmitting data.&lt;/p&gt;

&lt;p&gt;Traditional solutions are either "always-on," leading to high power draw, or "completely dormant," resulting in slow wake-up times and missed events. Our goal was to achieve an "on-demand" working model.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Technical Selection: Why the ESP32-S3?
We selected the ESP32-S3 as the main controller (MCU) primarily for its unique dual-core heterogeneous architecture:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;High-Performance Main Cores: Two Xtensa® LX7 dual-core processors at up to 240MHz.&lt;/p&gt;

&lt;p&gt;Ultra-Low-Power (ULP) Coprocessor: A RISC-V-based coprocessor.&lt;/p&gt;

&lt;p&gt;This architecture is the technical cornerstone for achieving ultra-low power consumption. Our design philosophy is "task separation":&lt;/p&gt;

&lt;p&gt;LX7 High-Performance Cores: Are only awakened when needed. They handle the "heavy lifting," including:&lt;/p&gt;

&lt;p&gt;Data acquisition and processing from the image sensor (CPI/USB).&lt;/p&gt;

&lt;p&gt;Auto Exposure (AE) and image parameter adjustments.&lt;/p&gt;

&lt;p&gt;Running the network stack (Wi-Fi, TCP/IP, MQTT).&lt;/p&gt;

&lt;p&gt;Executing complex logic like data uploads and OTA updates.&lt;/p&gt;

&lt;p&gt;RISC-V ULP Coprocessor: Remains "on duty" 24/7. It continues to run while the main cores are in deep sleep, handling the "light work," such as:&lt;/p&gt;

&lt;p&gt;Monitoring external GPIO triggers (e.g., connected PIR sensors, sound sensors, or buttons).&lt;/p&gt;

&lt;p&gt;Managing the RTC (Real-Time Clock) for timed wake-ups.&lt;/p&gt;

&lt;p&gt;Deciding whether to wake the main cores based on specific conditions.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Architectural Design: An Event-Driven Operational Flow
Our firmware is not a "dumb" loop but a strict, event-driven state machine.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu3cfdg4ydv2id0mu2yr2.png" alt=" " width="800" height="191"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;State 1: Deep Sleep This is the state the system is in 99.9% of the time. In this state, the LX7 main cores, most peripherals, and the Flash memory are powered down. Only the ULP coprocessor and the RTC are running on an extremely low current (around 22µA, according to our test data), awaiting a trigger signal.&lt;/p&gt;

&lt;p&gt;State 2: Trigger &amp;amp; Wake-up When the ULP detects a predefined trigger condition (e.g., a level change on the PIR interface or an RTC timer expiration), it immediately sends a signal to the power management unit (PMU) to wake up the LX7 main cores.&lt;/p&gt;

&lt;p&gt;State 3: Active Cycle This is the highest power consumption phase, and our core optimization goal is to minimize its duration.&lt;/p&gt;

&lt;p&gt;System Initialization &amp;amp; Sensor Power-On: The main core wakes from Deep Sleep and boots up quickly.&lt;/p&gt;

&lt;p&gt;Image Acquisition &amp;amp; AE Convergence: This is an often-overlooked time-consuming point. To capture clear, properly exposed photos in variable lighting conditions (dawn, dusk, high noon), the system requires a few seconds (the NE101 firmware defaults to 5 seconds) for Auto Exposure (AE) to converge. (Note: Developers can adjust this time based on scene requirements, balancing power consumption and image quality).&lt;/p&gt;

&lt;p&gt;Capture &amp;amp; Processing: A single snapshot is taken.&lt;/p&gt;

&lt;p&gt;Communications Module Power-On &amp;amp; Connection: Based on the configuration (Wi-Fi / Cat-1 / Wi-Fi HaLow), the communication module is activated and connects to the network.&lt;/p&gt;

&lt;p&gt;Data Transmission: The image data is uploaded to the cloud via MQTT or another protocol.&lt;/p&gt;

&lt;p&gt;Enter Sleep: Once the task is complete, the system immediately executes a command to clear its state and return to State 1 (Deep Sleep).&lt;/p&gt;

&lt;p&gt;Based on new test data, the entire "Active Cycle" takes approximately 30 seconds for the Cat-1 version, depending on network conditions, while other versions can be controlled within 20 seconds.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Key Technical Points: Hardware Modularization and Interface Design
To adapt this low-power platform to different developer needs, we adopted a modular and open-interface design for the hardware.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5qsmr8f9by0yj9whm775.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5qsmr8f9by0yj9whm775.png" alt=" " width="800" height="979"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.1. Pluggable Communication Solutions&lt;br&gt;
The mainboard does not have the communication module soldered directly. Instead, it reserves standardized interfaces, allowing developers to choose based on the deployment scenario:&lt;/p&gt;

&lt;p&gt;Wi-Fi: For near-field scenarios with existing Wi-Fi coverage.&lt;/p&gt;

&lt;p&gt;LTE Cat-1: For wide-area scenarios without Wi-Fi but with cellular network access.&lt;/p&gt;

&lt;p&gt;Wi-Fi HaLow (IEEE 802.11ah): For long-distance (up to 1km), low-power private network scenarios, requiring a gateway for connectivity.&lt;/p&gt;

&lt;p&gt;4.2. Flexible Sensor and Camera Interfaces&lt;br&gt;
Camera Support: The mainboard supports both CPI and USB interface cameras.&lt;/p&gt;

&lt;p&gt;CPI (OV5640): Lower power consumption, simple interface, suitable for regular snapshots.&lt;/p&gt;

&lt;p&gt;USB (SC200AI): Higher bandwidth, supports 1080P, but occupies additional I/O resources and the USB host function.&lt;/p&gt;

&lt;p&gt;Trigger Source Expansion: We have opened up multiple hardware interfaces to be used as "triggers":&lt;/p&gt;

&lt;p&gt;PIR Interface: A 4-pin Wafer connector dedicated to PIR sensor integration.&lt;/p&gt;

&lt;p&gt;16-pin IO Interface: Reserves GPIO, DI, DO, etc., allowing developers to connect their own sensors (e.g., radar, sound, vibration, temperature/humidity) as wake-up sources.&lt;/p&gt;

&lt;p&gt;Alarm Interface: A 2-pin Wafer connector for alarm input. By default, the PIR interface is used; this interface requires soldering an additional resistor for use.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Power Consumption Data and Battery Life Analysis
The theoretical architecture must ultimately be validated by data. In a typical use scenario of 5 snapshots per day (with the fill light off), the NE101's battery life performance (based on test data) is:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Wi-Fi Version: Can support up to 2.73 years.&lt;/p&gt;

&lt;p&gt;Wi-Fi HaLow Version: Up to 2.59 years.&lt;/p&gt;

&lt;p&gt;Cat-1 Version: Can operate stably for 1.24 years.&lt;/p&gt;

&lt;p&gt;This longevity is primarily due to the extreme optimization of both sleep and operating power.&lt;/p&gt;

&lt;p&gt;5.1. Sleep Power&lt;br&gt;
This is the power consumed when the device is not capturing images (deep sleep) and is the foundation for long battery life.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ysuty34zif7lmf0j7vo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ysuty34zif7lmf0j7vo.png" alt=" " width="740" height="177"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk1qewrqqcoaeixeee3v0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk1qewrqqcoaeixeee3v0.png" alt=" " width="740" height="141"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Technical Analysis:&lt;/p&gt;

&lt;p&gt;The base sleep power consumption is nearly identical across all three communication modes, with annual consumption at around 8%.&lt;/p&gt;

&lt;p&gt;This implies that in a pure standby (theoretical) scenario, the battery life could exceed 12 years (2500mAh / 195.79mAh ≈ 12.8 years).&lt;/p&gt;

&lt;p&gt;This demonstrates the effectiveness of the ESP32-S3's ULP coprocessor architecture in achieving ultra-low base power consumption.&lt;/p&gt;

&lt;p&gt;5.2. Operating Power&lt;br&gt;
This refers to the total power required for the device to wake up, acquire an image, and complete the upload. This is the key factor determining the battery life differences between communication solutions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp8ku8rlzse5nx8rr9pix.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp8ku8rlzse5nx8rr9pix.png" alt=" " width="740" height="482"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdkyo7y7gca1c949xgut1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdkyo7y7gca1c949xgut1.png" alt=" " width="740" height="482"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdia1fn15cz8dzxaw7rjr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdia1fn15cz8dzxaw7rjr.png" alt=" " width="740" height="482"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Key Operating Parameters Test Data: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjiyy50bmv66f47y11rks.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjiyy50bmv66f47y11rks.png" alt=" " width="740" height="226"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Technical Analysis:&lt;/p&gt;

&lt;p&gt;Sleep Power: Again validates that the base sleep power for all versions is extremely low, in the 22-23.5µA range.&lt;/p&gt;

&lt;p&gt;Fill Light Impact: Turning the fill light on or off has a noticeable impact on single-event power consumption (an increase of ~10-15%). It should be avoided when pursuing extreme battery life.&lt;/p&gt;

&lt;p&gt;Operating Time: Cat-1 takes the longest "active cycle" (approx. 30 seconds) due to the need to search for and register on the cellular network, while Wi-Fi and HaLow are much faster (&amp;lt;20 seconds).&lt;/p&gt;

&lt;p&gt;Cat-1 Power: The Cat-1 module's average current during operation (76.1mA) and its longer operating time (~30s) are both significantly higher than the Wi-Fi solutions. This is the primary reason its total battery life (1.24 years) is lower than the Wi-Fi version (2.73 years).&lt;/p&gt;

&lt;p&gt;5.3. Power Estimation Model&lt;br&gt;
Based on the data above, we can derive the technical model for battery life estimation:&lt;/p&gt;

&lt;p&gt;Total Daily Power Consumption = (Base Sleep Power × 24h) + (Single Event Operating Power × Number of Daily Events)&lt;/p&gt;

&lt;p&gt;It is precisely because the base sleep power (~22µA) has been pushed to an extremely low level that the first half of the equation (sleep consumption) becomes minimal. The system's total power consumption is therefore primarily determined by the second half (number of operating events). This is what enables us to achieve battery life measured in "years" in low-frequency scenarios like "5 snapshots per day."&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faq5ov9xmbij3pues0zn4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faq5ov9xmbij3pues0zn4.png" alt=" " width="778" height="1174"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Implementing a deep-sleep outdoor camera based on the ESP32-S3 is entirely feasible. The technical core lies in fully leveraging its heterogeneous architecture (LX7 high-performance cores + RISC-V ULP coprocessor).&lt;/p&gt;

&lt;p&gt;By designing the system in an "event-driven" mode, allowing the main core to be in Deep Sleep (at ~22µA) 99.9% of the time, with only the ULP coprocessor handling low-power "sentry" tasks, we fundamentally solve the power bottleneck of traditional IPCs. The latest real-world test data strongly supports this, providing developers with a clear basis for making battery life trade-offs between different communication solutions (Wi-Fi, Cat-1, HaLow).&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Known Drawbacks of Using the ESP32-S3
The ESP32-S3's image processing performance is relatively weak, making it difficult to support the processing of large images. Simultaneously, this lack of image processing power can lead to a longer time from wake-up to handling the image sensor, resulting in low real-time performance for image capture. However, for applications that do not require high-frequency image acquisition, this product architecture remains highly practical and balanced.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbl15yhtwj4j7azgnjpkx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbl15yhtwj4j7azgnjpkx.png" alt=" " width="800" height="590"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Firmware code：&lt;a href="https://github.com/camthink-ai/lowpower_camera" rel="noopener noreferrer"&gt;https://github.com/camthink-ai/lowpower_camera&lt;/a&gt;&lt;br&gt;
Hardware Info：&lt;a href="https://wiki.camthink.ai/docs/neoeyes-ne101-series/ne100-mb01-development-board/dev-guide" rel="noopener noreferrer"&gt;https://wiki.camthink.ai/docs/neoeyes-ne101-series/ne100-mb01-development-board/dev-guide&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We are looking for developers in the community to work with us to explore low-power camera products. We look forward to your participation in the community construction. If you have any intention, you are welcome to join us!!&lt;/p&gt;

&lt;p&gt;We have prepared a gift for the developers.&lt;br&gt;
&lt;a href="https://near.tl/sm/uCT0JnK9e" rel="noopener noreferrer"&gt;https://near.tl/sm/uCT0JnK9e&lt;/a&gt;&lt;/p&gt;

</description>
      <category>esp32</category>
      <category>camera</category>
      <category>deepsleep</category>
      <category>lowpower</category>
    </item>
  </channel>
</rss>
