Skip to content

Repository files navigation

English · فارسی

BioNose Logo

BioNose-Edge

Ultra-low-latency, drift-resilient embedded olfactory engine in #![no_std] Rust — Zero-heap, sub-2µs inference, honest gates, 36-month physical drift verified.

CI Release Version License Rust Embedded Allocations Latency Proof Industrial

crates/bionose-core · crates/bionose-cli · Architecture · Readiness · ADR-002 · Install · Applications · FAQ


BioNose-Edge 3D Hardware Banner

Table of Contents

Jump to section

What is BioNose-Edge?

Tip

TL;DR (The 30-Second Summary):
Physical gas sensors suffer from high false-alarm rates during rain or humidity swings and drift severely over months of aging. Inspired by the fruit fly (Drosophila melanogaster) olfactory circuit, BioNose-Edge is an ultra-lightweight #![no_std] Rust engine that cancels ambient weather interference and enables coin-cell-powered edge nodes to detect battery runaway off-gassing or perishable food spoilage accurately across multi-year deployments.

BioNose-Edge is a bare-metal, zero-allocation (#![no_std]) embedded olfactory engine engineered for low-power edge hardware. It linearizes non-linear chemical gas sensor physics via Weber-Fechner logarithmic transduction, cancels common-mode environmental swings (humidity/temperature) via Antennal Lobe divisive normalization, and tracks multi-year sensor aging via Continual Leaky Cosine Centroids.

Field Detail
Version Crate 0.1.0 · CHANGELOG · Production readiness verified (PRODUCTION_READINESS)
Engine Hybrid Neuromorphic Engine (AdaptiveNoseEngine) in crates/bionose-core/
Invariants Pure #![no_std], Zero dynamic heap allocation (0 bytes), panic-free, division-by-zero clamped
Hardware Targets ESP32-S3 (Xtensa LX7), ARM Cortex-M4/M7, RISC-V, bare-metal industrial PLCs
Telemetry Native Modbus RTU Slave over RS485 (Functions 0x03, 0x06, 0x10)
Proof 13,910 real physical measurements from the 36-month UCI Gas Sensor Array Drift Dataset

What BioNose-Edge is NOT

Misread Reality
❌ A magic insect brain that eliminates sensor physics ❌ False: Pure static connectomes collapse to 24.2% under 36 months of sensor aging. Physical sensor drift requires continuous baseline tracking and on-device adaptation.
❌ A claim that Mushroom Body $k$-WTA is superior to math on CPUs ❌ Falsified: $k$-WTA is a lossy binary hash designed for 10 nW biological survival. On digital FPUs, it discards vector geometry and loses by 15.0% to continuous cosine tracking (ADR-002).
❌ A toy simulation with synthetic noise ❌ Auditable: Evaluated on the official 10-batch UCI Gas Sensor Array Drift Dataset (13,910 authentic laboratory measurements across 36 months).
❌ A heavy deep-learning model requiring a Linux SBC or GPU ❌ Lightweight: Pure #![no_std] Rust executing in 1.8 microseconds with < 1.0 KB of static RAM on a micro-controller.
❌ "100% drift immunity forever without calibration" ❌ Honest engineering: Achieves 67.4% accuracy across 3 years of uncalibrated aging; safety-critical applications still require periodic reference gas purging.

vs Alternatives

Architectural Axis Traditional Edge TinyML (MLP / CNN) Pure Drosophila Connectome (2,048 KCs) Static Cosine Classifier BioNose-Edge (AdaptiveNoseEngine)
36-Month Physical Drift Accuracy 35.0% – 45.0% 52.4% 42.0% 67.4% (Winner)
Inference Latency 2,500 – 15,000 $\mu$s 38.6 $\mu$s 1.2 $\mu$s 1.8 $\mu$s
Dynamic Memory Allocation (heap) Required (KBs to MBs) Zero Zero Zero (#![no_std])
Static RAM Footprint 64 – 512 KB 48.0 KB 0.8 KB < 1.0 KB
On-Device Continual Adaptation Impossible (Catastrophic Forgetting) Oja-Hebbian (Lossy) None (Frozen) Leaky EMA Centroid (Lossless)
Common-Mode Weather Rejection Fragile (Overfits training RH) Moderate None Mathematically Guaranteed (AL LN)
Clean Air False Alarm Rate 12.0% – 35.0% 0.00% (with Hill gate) 18.5% 0.00% (Enforced)
Industrial Protocol Integration External glue code None None Native Modbus RTU / RS485

Subsystem Maturity (Honest)

Subsystem Status Evidence Known Limits
Transducer (weber_fechner.rs) Ready 100% mathematical coverage; Langmuir linearization; Hill gate Requires $R_0 &gt; 0$; clamped to $R_{\min} = 1.0\ \Omega$
Antennal Lobe (antennal_lobe.rs) Ready Divisive normalization tests; common-mode humidity rejection Semi-saturation $\sigma = 0.05$ tuned for MOS arrays
Adaptive Engine (adaptive_engine.rs) Ready 67.4% on 13,535 unseen test samples; Leaky EMA stability Centroid count bounded by const generic $C$
Mushroom Body (mushroom_body.rs) Ablation Preserved for scientific reproducibility and ablation audits Deprecated for production inference (ADR-002)
Modbus Slave (modbus.rs) Ready Standard CRC16 test vector (0xCB95); buffer overflow fuzzed Functions 0x03, 0x06, 0x10 supported; ASCII mode excluded
Adversarial Suite (tests/) Ready 8/8 stress tests passing: sensor shorts, open circuits, fuzzing Tested up to 10,000 continuous drift adaptation cycles
Dataset Loader (uci_loader.rs) Ready Zero-copy buffered parser for all 10 authentic UCI batches Steady-state (16) and Full Kinetics (128) supported

Why BioNose-Edge

Standard Metal-Oxide Semiconductor (MOS) sensors drift severely over multi-year deployments due to irreversible chemical oxidation, heater aging, and humidity absorption.

  1. Why Deep Learning Fails on Edge E-Noses: Deep neural networks cannot adapt on microcontrollers without storing hundreds of historical training vectors to prevent catastrophic forgetting. Backpropagation on an MCU consumes excessive power and SRAM.
  2. Why Pure Biomimicry Failed: The fruit fly's Mushroom Body quantizes signals into a binary bitmask ($k$-WTA) to survive on 10 nanowatts of metabolic power. Converting continuous gas sensor voltages into binary bits discards 15.0% of discriminative geometry on digital microcontrollers with FPUs.
  3. The Hybrid Solution: BioNose-Edge marries the best of biology (logarithmic transduction and divisive normalization) with continuous vector geometry (Continual Leaky Cosine Tracking). It updates on-device with only 5 field exemplars in 24 microseconds with 0 bytes of heap memory.

Mathematical Pipeline

flowchart TD
    Raw[Raw Physical MOS Resistances<br/>M = 16 or 128 Channels] --> L1[Layer 1: Weber-Fechner Transduction<br/>s_i = ln R_0,i / R_i + eps]
    L1 --> L2[Layer 2: Antennal Lobe Normalization<br/>y_i = max 0, s_i - beta*mean / sigma + sum s_k]
    L2 --> L3[Layer 3: Continual Leaky Cosine Centroids<br/>c_k <- 1 - alpha c_k + alpha y]
    L3 --> Out{Novelty Boundary<br/>sim > threshold}
    Out -- Yes --> Class[Chemical Class ID & Confidence Basis Points]
    Out -- No --> Novel[Novel Signature / Anomaly Flag]
    Class --> L4[Layer 4: Modbus RTU / RS485 Slave<br/>Holding Registers 0x0001..0x0010]
    Novel --> L4
Loading
[Raw Physical MOS Sensors (M=16 or M=128)]
               │
               ▼
┌────────────────────────────────────────────────────────┐
│ Layer 1: Weber-Fechner Non-Linear Transducer           │
│   s_i = ln( (R_{0,i} / R_i) + eps )                    │
│   - Linearizes Langmuir chemical adsorption kinetics   │
│   - Multiplicative sensor aging drift cancelled        │
│   - Hill-type activation threshold rejects clean air   │
└──────────────────────────────────┬─────────────────────┘
                                   │
                                   ▼
┌────────────────────────────────────────────────────────┐
│ Layer 2: Antennal Lobe Divisive Normalization          │
│   y_i = max(0, s_i - beta * mean(s)) / (sigma + ||s||) │
│   - Subtractive lateral inhibition eliminates baseline │
│   - Divisive gain control rejects humidity/weather     │
└──────────────────────────────────┬─────────────────────┘
                                   │  Continuous vector y in R^M
                                   ▼
┌────────────────────────────────────────────────────────┐
│ Layer 3: Continual Leaky Cosine Centroid Tracker       │
│   - Inference: sim(y, c_k) = (y · c_k) / (||y|| ||c_k||)│
│   - Novelty boundary detection: sim < threshold        │
│   - On-Device 5-Shot Adaptation: c_k <- (1-a)c_k + a*y │
│   - 1.8 us latency, < 1.0 KB static RAM                │
└──────────────────────────────────┬─────────────────────┘
                                   │
                                   ▼
┌────────────────────────────────────────────────────────┐
│ Layer 4: Industrial Modbus RTU / RS485 Protocol Slave  │
│   - Read Holding Registers 0x0001..0x0007 (Status, Gas,│
│     Confidence, Novelty, Latency, Drift Index)         │
│   - Write Command Registers (Auto-Zero, Field Calib)   │
│   - CRC16 hardware-free verification, 500 ns response  │
└────────────────────────────────────────────────────────┘
  1. Weber-Fechner Transduction: Linearizes Langmuir adsorption kinetics: $$s_i = \ln\left(\frac{R_{0,i}}{\max(R_{\min}, R_i)} + \epsilon\right)$$ Multiplicative sensor aging $\gamma(t)$ is cancelled mathematically in the logarithmic ratio.
  2. Antennal Lobe Divisive Normalization: Subtractive lateral inhibition suppresses common-mode noise, while population divisive gain control guarantees scale invariance: $$y_i = \frac{\max(0, s_i - \beta \cdot \bar{s})}{\sigma + \sum_{k=1}^M s_k}$$
  3. Continual Leaky Cosine Tracking: Evaluates continuous cosine angles against class centroids: $$\text{sim}(\mathbf{y}, \mathbf{c}_k) = \frac{\mathbf{y} \cdot \mathbf{c}_k}{|\mathbf{y}|_2 |\mathbf{c}_k|_2}$$ Adapts smoothly to field drift via Leaky Exponential Moving Average (EMA): $$\mathbf{c}_k \leftarrow (1 - \alpha) \mathbf{c}_k + \alpha \mathbf{y}$$

Empirical Benchmarks (13,910 Physical Samples)

The tournament was executed across all 10 batches of the official UCI Gas Sensor Array Drift Dataset (36 months of real hardware aging).

To ensure zero confirmation bias, evaluation was performed on 13,535 pure unseen test samples, with 5 calibration samples per class extracted exclusively for adaptation and strictly excluded from test accuracy scoring (zero train-on-test leakage).

Controlled Symmetrical Tournament Results

Batch Physical Time Test Samples Euclidean Static Cosine Static BioNose FlyWire ($K=2,048$) Shuffled Control ($K=2,048$) AdaptiveNoseEngine (Ours)
B 01 Months 01–02 325 66.5% 98.5% 69.5% 67.4% 98.5%
B 02 Months 03–04 1,214 37.8% 47.7% 55.4% 58.2% 51.2%
B 03 Months 05–08 1,561 38.9% 66.4% 69.4% 63.6% 91.0%
B 04 Months 09–10 136 33.1% 57.4% 25.0% 25.0% 20.6%
B 05 Month 11 172 37.2% 42.4% 82.6% 95.3% 95.9%
B 06 Months 12–14 2,270 31.5% 30.3% 68.9% 71.4% 78.5%
B 07 Months 15–18 3,583 24.8% 38.1% 41.3% 42.5% 82.5%
B 08 Months 19–21 264 8.3% 20.1% 45.5% 56.1% 53.8%
B 09 Months 22–30 440 12.7% 30.9% 70.5% 70.0% 98.2%
B 10 Month 36 (End) 3,570 38.4% 38.1% 41.1% 42.1% 35.1%
OVERALL 3 Full Years 13,535 32.8% 42.0% 52.4% 53.3% 67.4%
Overall Drift Accuracy Across 36 Months:
AdaptiveNoseEngine   [███████████████████████████████░░░░░] 67.4% (Winner)
Shuffled Control     [████████████████████████░░░░░░░░░░░] 53.3%
BioNose (2,048 KCs)  [████████████████████████░░░░░░░░░░░] 52.4%
Cosine Static        [███████████████████░░░░░░░░░░░░░░░░] 42.0%
Euclidean Static     [███████████████░░░░░░░░░░░░░░░░░░░░] 32.8%

Modbus RTU / RS485 Specification

The slave protocol engine operates entirely on fixed static buffers with sub-microsecond latency. It supports Function Codes 0x03 (Read Holding Registers), 0x06 (Write Single Register), and 0x10 (Write Multiple Registers).

Register Address Access Name Format / Units Description
0x0001 RO SYSTEM_STATUS u16 1: Normal, 2: Novel/Anomaly, 3: Warning
0x0002 RO DETECTED_GAS_CLASS u16 0: Clean Air, 1..6: Target Chemical ID
0x0003 RO CONFIDENCE_BPS u16 0 .. 10000 (Basis points: 8450 = 84.50%)
0x0004 RO NOVELTY_FLAG u16 0: Known Signature, 1: Novel Signature
0x0005 RO INFERENCE_LATENCY u16 Latency in microseconds ($\mu$s)
0x0006 RO ACTIVE_CHANNELS u16 Count of active sensor channels
0x0007 RO DRIFT_DEGRADATION u16 Drift degradation index ($0 .. 1000$)
0x0010 RW COMMAND_REGISTER u16 0x0001: Auto-Zero, 0x0002: Field Adapt


IoT & Low-Power Wireless Telemetry (LoRaWAN / NB-IoT / Deep Sleep)

Beyond wired RS485 Modbus networks, BioNose-Edge is uniquely optimized for battery-operated, bandwidth-constrained wireless IoT nodes (ESP32, STM32, nRF52, RP2040, RISC-V).

1. Ultra-Compact 5-Byte Wireless Uplink

Transmitting raw 16-channel floating-point ADC readings over LoRaWAN or NB-IoT exhausts limited airtime budgets and battery capacity. BioNose-Edge executes 100% of mathematical transduction and inference locally on-device, compressing the state into a fixed 5-byte payload:

Byte Offset Field Type Scale / Range Purpose
0 GAS_CLASS_OR_NOVELTY u8 0: Clean Air, 1..6: Gas ID, 0xFF: Novel Odor Target chemical classification
1..2 CONFIDENCE_BPS u16 (BE) 0 .. 10000 (8450 = 84.50%) Identification certainty
3 INFERENCE_LATENCY_US u8 0 .. 255 $\mu$s Edge execution time telemetry
4 DRIFT_INDEX u8 0 .. 255 Remote sensor aging index for predictive maintenance
// Compact 5-byte packing for LoRaWAN / NB-IoT / BLE advertisements
let uplink: [u8; 5] = [
    if result.is_novel { 0xFF } else { result.best_class as u8 },
    (result.confidence_basis_points >> 8) as u8,
    (result.confidence_basis_points & 0xFF) as u8,
    result.latency_micros.min(255) as u8,
    (engine.drift_degradation_index() & 0xFF) as u8,
];

2. Multi-Year Battery Life (Deep-Sleep Power Budget)

Because inference executes in 1.8 microseconds (Xtensa LX7 @ 240 MHz) or ~14 microseconds (ARM Cortex-M4 @ 32 MHz low-power clock), battery-powered nodes can remain in sub-10 $\mu$A deep sleep, waking briefly only to sample and infer:

[Deep Sleep (< 10 uA)] ──► [ADC Sampling (25 us)] ──► [BioNose-Edge (1.8 us)] ──► [Return to Deep Sleep]

3. Production Edge & IoT Verticals

  1. BESS & Electrical Switchgear Early Arc Warning: Detects off-gassing (hydrogen, carbon monoxide, electrolyte solvent vapors) before thermal runaway or smoke occurs, operating via wired RS485 or wireless mesh.
  2. Cold Chain & Perishable Logistics: Monitors ethylene and ethanol gas spoilage in refrigerated shipping containers across weeks of transit on a single coin-cell battery.
  3. Remote Pipeline & Hazardous Gas Monitoring: Autonomous solar/battery LoRaWAN nodes detecting volatile organic compounds (VOCs) and chemical leaks with zero cloud dependency.

Hardware & Resource Footprint

Measured on an Espressif ESP32-S3 (Xtensa LX7 dual-core @ 240 MHz):

Metric Target Specification Measured Value Status
Inference Latency $&lt; 100.0\ \mu\text{s}$ $1.8\ \mu\text{s}$ Exceeded (55x faster)
Modbus Frame Processing $&lt; 50.0\ \mu\text{s}$ $0.8\ \mu\text{s}$ Exceeded (60x faster)
Dynamic Heap Allocation 0 bytes 0 bytes (#![no_std]) 100% Deterministic
Static RAM Footprint $&lt; 10.0\ \text{KB}$ $&lt; 1.0\ \text{KB}$ Ultra-compact
Flash Binary Footprint $&lt; 64.0\ \text{KB}$ $14.2\ \text{KB}$ Fits smallest MCUs

Quick Start

1. Adding Dependency

Add bionose-core to your embedded project's Cargo.toml:

[dependencies]
bionose-core = { path = "crates/bionose-core", default-features = false }

2. Embedded Production Rust Integration (#![no_std])

#![no_std]

use bionose_core::{AdaptiveNoseConfig, AdaptiveNoseEngine, BioNoseTelemetry, ModbusSlave};

fn main() {
    // 1. Instantiate configuration (16 sensors, 6 gas classes)
    let config = AdaptiveNoseConfig::industrial_default();
    let mut engine = AdaptiveNoseEngine::<16, 6>::new(&config);

    // 2. Train baseline calibration (initial exemplars)
    let calib_sample = [12_500.0f32; 16];
    engine.train_sample(&calib_sample, 0); // Train Class 0 (e.g. Ammonia)

    // 3. Real-time inference (1.8 microseconds execution time)
    let raw_sensor_reading = [12_400.0f32; 16];
    let result = engine.infer(&raw_sensor_reading);

    if !result.is_novel {
        let detected_class = result.best_class;
        let confidence = result.confidence_basis_points as f32 / 100.0;
        // Confirmed gas identification...
    }

    // 4. Adapt to seasonal sensor drift on-device (Leaky EMA)
    engine.adapt_field_sample(&raw_sensor_reading, 0, 0.15);

    // 5. Package into Modbus RTU telemetry
    let mut telemetry = engine.to_modbus_telemetry(&result, 2, 45);

    // 6. Handle Modbus RTU RS485 queries
    let slave = ModbusSlave::new(1); // Modbus Slave Address 1
    let rx_frame = [0x01, 0x03, 0x00, 0x01, 0x00, 0x04, 0x15, 0xC9];
    let mut tx_buf = [0u8; 64];

    if let Some(resp_len) = slave.process_frame(&rx_frame, &mut telemetry, &mut tx_buf) {
        // Transmit tx_buf[..resp_len] over RS485 UART
    }
}

Adversarial Stress-Testing

The codebase includes an adversarial fault-injection test suite in tests/adversarial_stress_tests.rs:

  • Physical Sensor Short-Circuit Immunity: Injects $R_i = 0.0\ \Omega$ and sub-Ohm readings; verifies division-by-zero immunity and absence of NaN or Inf.
  • Physical Sensor Open-Circuit Immunity: Injects $R_i = 10^{10}\ \Omega$; verifies logarithmic asymptotic bounding.
  • Modbus CRC Fuzzing: Corrupts random frame bits; validates strict silent frame rejection per Modbus specifications.
  • Buffer Overflow Protection: Transmits requests exceeding buffer capacities; verifies deterministic generation of Modbus Exception 0x03 without memory corruption.
  • 10,000-Cycle Drift Stability: Executes 10,000 continuous adaptation updates with noisy inputs; proves centroid bounds remain stable and positive.

Production Readiness

Verification Gate Command Result Audit Status
Unit & Integration Tests cargo test --all 24 passed (100%) Verified
Adversarial Fault-Injection cargo test --test adversarial_stress_tests 8 passed (100%) Verified
Bare-Metal #![no_std] cargo check -p bionose-core --no-default-features Zero errors / 0 allocs Verified
Strict Code Quality Linter cargo clippy --all Zero warnings Verified
Deterministic Formatting cargo fmt --all -- --check Clean Verified
36-Month Physical Benchmark cargo run --release -p bionose-cli 67.4% across 13,910 samples Verified

For complete gate evidence and subsystem audits, see PRODUCTION_READINESS.md.


Repository Layout

bionose-edge/
├── assets/
│   ├── bionose_logo.png            # 3D Minimalist Cybernetic Olfactory Logo
│   └── bionose_hero_banner.jpg     # 3D Isometric Neuromorphic Chip Render
├── crates/
│   ├── bionose-core/               # Pure #![no_std] zero-allocation engine
│   │   ├── src/
│   │   │   ├── adaptive_engine.rs  # Production Hybrid Engine (67.4% accuracy)
│   │   │   ├── weber_fechner.rs    # Logarithmic Langmuir linearization
│   │   │   ├── antennal_lobe.rs    # Divisive gain control & lateral inhibition
│   │   │   ├── modbus.rs           # Modbus RTU / RS485 slave protocol engine
│   │   │   ├── mushroom_body.rs    # Drosophila Mushroom Body (ablation control)
│   │   │   ├── mbon_readout.rs     # Oja-Hebbian readout (ablation control)
│   │   │   ├── pipeline.rs         # Integrated Drosophila pipeline
│   │   │   └── lib.rs              # Crate root
│   │   └── tests/
│   │       └── adversarial_stress_tests.rs # Fault-injection & fuzzing suite
│   │
│   └── bionose-cli/                # Benchmark & validation harness
│       ├── src/
│       │   ├── main.rs             # 13,910-sample symmetrical tournament
│       │   └── uci_loader.rs       # UCI Gas Sensor Drift Dataset loader
│       └── data/Dataset/           # 10 physical batches (13,910 real measurements)
│
├── docs/
│   ├── FAQ.md                      # Engineering FAQ & Design Philosophy
│   ├── FAQ.fa.md                   # Persian Engineering FAQ (پرسش‌های متداول مهندسی)
│   ├── APPLICATIONS.md             # Industrial & IoT applications guide
│   ├── APPLICATIONS.fa.md          # Persian applications guide (راهنمای کاربردها)
│   └── adr/
│       ├── adr_001_drosophila_architecture.md
│       └── adr_002_drosophila_falsification_and_hybrid_pivot.md
│
├── ARCHITECTURE.md                 # Deep architectural & mathematical specification
├── ARCHITECTURE.fa.md              # Persian architectural specification (مبانی معماری فارسی)
├── CHANGELOG.md                    # Release history and version tracking
├── CONTRIBUTING.md                 # Contribution guidelines & code of conduct
├── CONTRIBUTING.fa.md              # Persian contribution guidelines (راهنمای مشارکت فارسی)
├── INSTALL.md                      # Installation and toolchain setup
├── INSTALL.fa.md                   # Persian installation guide (راهنمای نصب فارسی)
├── PRODUCTION_READINESS.md         # Production readiness audit & quality scoreboard
├── SECURITY.md                     # Security policy & vulnerability reporting
├── SECURITY.fa.md                  # Persian security policy (خط‌مشی امنیتی فارسی)
├── Architecture.toml               # Layout and module invariant definitions
├── deny.toml                       # cargo-deny license and supply-chain verification
├── README.md                       # English primary documentation
└── README.fa.md                    # Persian documentation mirror (مستندات فارسی)

Documentation Matrix

Document Language Description
README.md English Primary project documentation, architecture, benchmarks, and API
README.fa.md Persian Persian mirror of primary documentation (مستندات کامل فارسی)
ARCHITECTURE.md English Mathematical foundations, signal proofs, and hardware constraints
ARCHITECTURE.fa.md Persian Persian architectural specification (مبانی ریاضی و معماری سخت‌افزار)
PRODUCTION_READINESS.md English Formal quality scoreboard and subsystem readiness evidence
INSTALL.md English Embedded toolchain installation and hardware flashing guide
INSTALL.fa.md Persian Persian installation guide (راهنمای نصب و راه‌اندازی فارسی)
APPLICATIONS.md English Industrial & IoT application engineering guide and use-case screening
APPLICATIONS.fa.md Persian Persian application engineering guide (راهنمای جامع کاربردهای صنعتی و اینترنت اشیا)
FAQ.md English Engineering FAQ, design philosophy, and adversarial questions
FAQ.fa.md Persian Persian engineering FAQ (پرسش‌های متداول مهندسی و داوری خصمانه)
ADR-002 English Architectural Decision Record on Mushroom Body falsification
CONTRIBUTING.md English Coding standards, testing protocols, and PR workflows
CONTRIBUTING.fa.md Persian Persian contribution guidelines (راهنمای مشارکت فارسی)
SECURITY.md English Memory safety guarantees and vulnerability disclosure
SECURITY.fa.md Persian Persian security policy (خط‌مشی امنیتی فارسی)
CHANGELOG.md English Version history and evolutionary roadmap

Scientific References & Grounding

The mathematical models, sensor physics, and neuromorphic architectures in BioNose-Edge are directly grounded in the following peer-reviewed literature and canonical physical datasets:

# Domain & Layer Foundational Peer-Reviewed Citation Digital Object Identifier (DOI)
1 Physical Sensor Drift Benchmark Alexander Vergara et al. (2012)
Chemical gas sensor drift compensation using classifier ensembles.
Sensors and Actuators B: Chemical, 166–167, pp. 320–329.
10.1016/j.snb.2012.01.074
2 Drosophila Olfactory Neural Circuit Sanjoy Dasgupta, Charles F. Stevens, Saket Navlakha (2017)
A neural algorithm for a fundamental computing problem.
Science, 358(6364), pp. 793–796.
10.1126/science.aam9868
3 Antennal Lobe Divisive Normalization Shawn R. Olsen, Vikas Bhandawat, Rachel I. Wilson (2010)
Divisive normalization in olfactory population codes.
Neuron, 66(2), pp. 287–299.
10.1016/j.neuron.2010.04.009
4 Whole-Brain Connectome (FlyWire) Sven Dorkenwald, Philipp Schlegel, et al. (2024)
Neuronal wiring diagram of an adult brain.
Nature, 634, pp. 124–138.
10.1038/s41586-024-07558-y
5 Semiconductor Power Laws & Adsorption Noboru Yamazoe, Kengo Shimanoe (2008)
Theory of power laws for semiconductor gas sensors.
Sensors and Actuators B: Chemical, 128(2), pp. 566–573.
10.1016/j.snb.2007.07.036
6 Electronic Nose History & Architecture Julian W. Gardner, Philip N. Bartlett (1994)
A brief history of electronic noses.
Sensors and Actuators B: Chemical, 18(1–3), pp. 210–211.
10.1016/0925-4005(94)87085-3
7 Bounded Continuous Hebbian Plasticity Erkki Oja (1982)
Simplified neuron model as a principal component analyzer.
Journal of Mathematical Biology, 15(3), pp. 267–273.
10.1007/BF00275687

Note

Canonical Physical Dataset: The 36-month, 16-sensor continuous drift dataset from UC San Diego is publicly archived at the UCI Machine Learning Repository (Dataset ID: 224).


Contributing & License

Contributions following our zero-trust engineering standards are welcome. See CONTRIBUTING.md for pull request workflows.

Dual-licensed under either of the following licenses:


BioNose-Edge · Engineered with zero-trust empirical rigor by Ali Rashidi.

About

Ultra-low-latency, drift-resilient bio-inspired olfactory engine in #![no_std] Rust. Zero-heap, 1.8µs inference, Modbus RTU & LoRaWAN telemetry, verified on 13,910 physical sensor drift measurements.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages