Skip to content

Projects and versions

Repository projects

This repository contains several independent ESP-IDF projects. The earlier Core / Bench-Orch comparison below describes two framework variants; it is not the complete directory inventory or evidence that every entry point executes every algorithm.

Project Role
CODE/AIoTNode-TinySHM Core framework
CODE/AIoTNode-TinySHM-Bench-Orch Registry and orchestration
CODE/AIoTNode-TinySHM-DEMO Demonstration
CODE/AIoTNode-TinySHM-WSN Configurable NODE_ROLE
CODE/AIoTNode-TinySHM-WSNGATEWAY Gateway variant
CODE/AIoTNode-TinySHM-WSNLEAFNODE Leaf variant
DEMO/AIoTNode-TinySHM-LiveStreaming Streaming demonstration
AIoTNode-TinySHM-LiveStreaming Identical copy at synchronization
THESIS-TEST/TESTBED-OK Thesis testbed
THESIS-TEST/AIoTNode-TinySHM-WSN-GATEWAY-520 Additional experiment project

The local workspace also contains an untracked CODE/AIoTNode-TinySHM-Manifold development copy with specialized edge-chain tests. It should not be cited as a published remote version.

Check execution at the entry point. Some Bench-Orch registrations bind _stub_* no-op callbacks. Registration and orchestration work, but real processing requires real tool bindings. The current TESTBED-OK startup runs tiny_sysid_example_run() and then loops; defining the new Table 4.10 benchmark function does not establish that it ran.

The earlier approximate 2 KB Bench / 4 KB Orch figures have no recorded build conditions. Measure the selected project's link map, peak heap and workspaces before using memory figures in a deployment decision.

Build and validation steps

TinySHM — Two Code Versions for Different Needs

The TinySHM framework evolves in two tracks. Choose based on whether you need runtime orchestration.


Version Overview

The comparison below covers two principal ESP-IDF projects in CODE/, both sharing the same hardware drivers and core middleware. The difference is in the orchestration layer.

  • AIoTNode-TinySHM


    Core framework — all signal processing, system identification, and damage assessment modules.

    Middleware: TinyToolbox · TinyMath · TinyDSP · TinyAI · TinyMeasurement · TinySysid · TinyDamage

    Best for: Standalone edge nodes performing data acquisition, on-device modal analysis, and damage detection.

  • AIoTNode-TinySHM-Bench-Orch


    Full framework — everything in the core version, plus TinyBench and TinyOrch for runtime orchestration.

    Middleware: Core + TinyBench · TinyOrch

    Best for: Multi-agent systems, remote workflow orchestration via MQTT, and environments where runtime data/tool discovery is required.


Architecture Comparison

Layer TinySHM TinySHM-Bench-Orch
APPLICATION measurement, sysid, damage TinyOrch + TinyBench + measurement, sysid, damage
MIDDLEWARE TinyToolbox, TinyMath, TinyDSP, TinyAI TinyToolbox, TinyMath, TinyDSP, TinyAI, TinyBench, TinyOrch
DRIVERS WiFi, MQTT, ADXL355/367, RTC, SD, SPI, I2C, LED, RGB, ESP-NOW, Timer, RNG, Exit Identical
HARDWARE ESP32-S3 (LiftNode) Identical

Module Checklist

Module TinySHM TinySHM-Bench-Orch Description
TinyToolbox ✅ ✅ Platform adaptation & utilities (TIME)
TinyMath ✅ ✅ Vector, matrix, decomp, eigenvalues
TinyDSP ✅ ✅ Conv, corr, FFT, FIR, IIR, DWT, ICA
TinyAI ✅ ✅ On-device training & inference
TinyMeasurement ✅ ✅ Online/offline/RT sensing
TinySysid ✅ ✅ PP, FDD, EFDD, ITD, ERA, SSI
TinyDamage ✅ ✅ Detection, localization, severity
TinyBench ❌ ✅ Runtime named data & tool registry
TinyOrch ❌ ✅ Processing pipeline orchestration

When to Use Which

  • Dedicated data logger

    → TinySHM — acquisition, sysid, and damage on a single node. No orchestration needed.

  • Multi-node monitoring system

    → TinySHM-Bench-Orch — TinyBench enables runtime data/tool discovery across the network; TinyOrch lets you define and update processing pipelines remotely.

  • Memory-constrained edge node

    → TinySHM — saves the RAM/code footprint of Bench (~2 KB) and Orch (~4 KB).

  • Agent-driven autonomous operation

    → TinySHM-Bench-Orch — agents use BENCH,DATA / BENCH,TOOLS / ORCH,CREATE MQTT commands to discover and orchestrate workflows at runtime.


Quick Start

get_idf6 in these earlier commands is a local environment alias, not a standard ESP-IDF command. See getting started for current instructions.

cd CODE/AIoTNode-TinySHM-Bench-Orch
get_idf6
idf.py set-target esp32s3
idf.py menuconfig
idf.py build flash monitor
cd CODE/AIoTNode-TinySHM
get_idf6
idf.py set-target esp32s3
idf.py build flash monitor

Changelog Highlights

Bench-Orch (Latest)

  • New: tiny_bench — runtime named registry for data slots and tools
  • New: tiny_orch — step-based processing pipeline orchestration
  • New: MQTT commands BENCH,TOOLS, BENCH,DATA, ORCH,CREATE, ORCH,GO
  • New: tiny_bench_example.c — demonstration of put/register/list/info
  • Updated: AIoTNode.cpp — integrates Bench + Orch into the main event loop
  • Baseline: All features from TinySHM core

TinySHM Core (Stable)

  • All existing modules: Toolbox, Math, DSP, AI, Measurement, Sysid, Damage
  • Proven on ESP32-S3 with ADXL355 accelerometer
  • Supports MQTT remote command & control
  • Three acquisition modes: online, offline, real-time processing
  • Six OMA methods: PP, FDD, EFDD, ITD, ERA, SSI