OmniEdgev0.4.2
IDLEFPS 60CPU 27%
v0/mpenon4-e83b86d8001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
// main.cpp — esp32-edge-vision// On-device inference loop · TinyML quantized model#include <Arduino.h>#include <esp_camera.h>#include "tflite_micro/model_runner.h"#include "drivers/bme280.h"#include "comms/esp_now_mesh.h"static ModelRunner runner("vision_v3.tflite");static BME280 env;static MeshNode mesh(/* channel */ 6);void setup() {Serial.begin(921600);env.begin(I2C_BUS_0);runner.load(/* arena_kb */ 256);mesh.join("omniedge.fleet");}void loop() {camera_fb_t* fb = esp_camera_fb_get();if (!fb) return;auto inference = runner.infer(fb->buf, fb->len);if (inference.confidence > 0.82f) {mesh.broadcast({.label = inference.label,.conf = inference.confidence,.temp = env.read_temperature(),.ts = micros(),});}esp_camera_fb_return(fb);vTaskDelay(pdMS_TO_TICKS(33)); // ~30 fps}
>_Oracle· Engineering Console
ready
[14:22:01]buildplatformio · linking firmware.elf (1.84 MB)
[14:22:18]meshesp-now joined · channel 6 · 4 peers
[14:24:01]tinymlSRAM at 71% — approaching arena ceiling