Every MOX sensor is wired into a voltage divider: the sensor resistance R_s in series with a known load resistor R_L, with a supply voltage V_cc across the pair. The ADC measures the midpoint:

V(t)=VccRLRs(t)+RLV(t) = V_{cc} \cdot \frac{R_L}{R_s(t) + R_L}

Two devices — different V_cc, different R_L, different ADC — will therefore report wildly different voltages for the same gas. This looks like a fatal portability problem for electronic noses. It is not. The algebraic identity at the heart of the OpenSmell framework shows that the ratio R_s/R_0 removes both quantities completely, leaving a reading that is comparable across electronics — but only up to the sensor itself.

This essay proves that theorem, then spends the rest of its length on its boundary: what normalization cancels, what it cannot cancel, and what the measured limits of cross-device transfer actually are.

The Theorem: Rs/R₀ Cancels the Electronics

Start from the divider and solve for R_s:

Rs(t)=RLVccV(t)V(t)R_s(t) = R_L \cdot \frac{V_{cc} - V(t)}{V(t)}

Now measure the clean-air baseline V₀ in the same way, and form the ratio:

Rs(t)R0=RLVccV(t)V(t)RLVccV0V0=(VccV(t))/V(t)(VccV0)/V0\frac{R_s(t)}{R_0} = \frac{R_L \cdot \frac{V_{cc} - V(t)}{V(t)}}{R_L \cdot \frac{V_{cc} - V_0}{V_0}} = \frac{(V_{cc} - V(t))/V(t)}{(V_{cc} - V_0)/V_0}

The load resistance R_L divides out of the numerator and denominator. The supply voltage V_cc does the same. What remains depends only on the measured voltage ratio, not on the electronics that produced it.

The consequence is precise and testable: two devices with different V_cc (say 3.3 V vs 5 V) and different R_L (say 10 kΩ vs 47 kΩ), but the same sensor model, produce the same R_s/R_0 curve for the same gas. This is not a hope; it is arithmetic, and it is why R_s/R_0 — not raw resistance, not raw voltage — is the unit of exchange in the entire framework. It is also why the .osmell manifest must record adcBits and adcMax: so any reader can reconstruct the physical range and know where the digitisation happened.

What the Theorem Does Not Cancel

The identity is exact, and precisely because it is exact, its limits are also exact. Form the full chain: the sensor responds to concentration through the power law

RsR0=aCb\frac{R_s}{R_0} = a \cdot C^{b}

The normalization has removed V_cc and R_L, but the right-hand side still contains a and b — the sensor's own sensitivity constants. Those constants:

  • differ between sensor models,
  • differ between individual units of the same model (20–30% manufacturing tolerance),
  • drift with temperature and age.

So R_s/R_0 cancels the electronics and leaves you holding the sensor. Two units of the same model, fed the same gas at the same concentration, will generally produce different R_s/R_0 values — because their a and b differ. Normalization alone cannot make a reading portable across sensors. Only calibration of each unit's (a, b) can.

The Impossibility Result, Measured

This is the point at which most projects quietly wish for zero-shot transfer: train once, deploy anywhere, no per-device calibration. The OpenSmell project tried exactly that, repeatedly, and published the results. The summary is in the experiment log:

  • A domain-adversarial encoder trained to hide device identity failed outright — the domain classifier reached 99.2% accuracy (chance = 50%), meaning the latent space still encoded which device produced each sample. There is no device-invariant representation to be had by adversarial trickery here.
  • Cross-device transfer of trained classifiers failed outright: 25.3% accuracy for a classifier trained on the OpenSmell rig and tested on SmellNet recordings, and 18.6% for the reverse direction — at or below the chance level for the four-substance task (banana, cinnamon, garlic, ginger). The two feature spaces did not overlap meaningfully.
  • Chemoprint-as-prior transfer (using a molecule's chemical descriptor vector as the target representation) collapsed from 99.6% within-device to 2.4% across devices.
  • Cosine similarity of the same substance across two different rigs was negative: banana −0.0638 and cinnamon −0.1440 in one measured pair. The same smell, on two devices, produced representations pointing away from each other.

Every one of these results is consistent with the arithmetic above. Different (a, b) means different distributions; classifiers trained on one distribution do not transfer to another. The proof says zero-shot cross-device transfer is mathematically impossible without calibration, and the experiments confirm it on real devices. This is not a bug to be fixed by a cleverer network; it is the geometry of the problem.

The Two Questions Every Evaluation Must Answer

The single most common error in e-nose papers is conflating two different claims:

  1. Session invariance — does the model recognize a substance it was trained on, when presented with a new recording from the same rig on a different day? Measured answer: 81.78% accuracy / 80.33% macro-F1 on held-out sessions, against a pre-registered >70% threshold (random baseline 2%). That is a real, solid result.
  2. Substance generalization — does the model recognize a substance it has never seen, using only what it learned about others? Measured answer: R² = −14.62 under leave-substance-out cross-validation (one fold, −55.71). That is worse than predicting the mean. There is no novel-substance generalization.

These are not two versions of the same thing. Session invariance is about robustness of a learned mapping; substance generalization is about extrapolation to an unlearned mapping. Reporting one as the other is a category error, and it is the main reason so many "interoperable" electronic nose claims evaporate under scrutiny.

What Interoperability Actually Requires

The arithmetic and the experiments together point to one workable definition of interoperability: comparable signals require per-rig, per-substance reference points. Concretely:

  • Normalize by R_s/R_0 so the electronics drop out — this is free and always worth doing.
  • Calibrate each rig's (a, b) against known reference concentrations — two points spanning a real concentration range, per channel, per substance of interest.
  • After calibration, device-agnostic features — amplitudes, time constants, selectivity ratios in the exponent-matched regime — become genuinely transferable across units of the same model.

Reference-point calibration is exactly the route validated in the Reference-Point Calibration essay: unbiased recovery of a and b under realistic sensor noise (σ = 5%, six points, two decades → median concentration error ≈ 7.1%, recovered a = 2.0042 vs true 2.0, b = −0.6001 vs true −0.6). The method exists, the SDK implements it, and it converts a per-rig fingerprint into a quantity that another rig of the same model can compare against.

The Interoperability Claim

The interoperability claim for this stack is specific and defensible:

  • Electronics are normalized away exactly — V_cc and R_L never appear in the exchanged representation.
  • Sensors are not normalized away by math — a and b survive, and drift with time and temperature.
  • Session invariance for trained substances on a single device is real — 81.78%, reproducible.
  • Zero-shot cross-device transfer is falsified on every family tried — single-point M, two-point power, CORAL, supervised anchors, taxonomy coarsening, and chemoprint-as-prior all fail reference-free (each LOO-fair ≤ +0.0 to +8 percentage points).

Interoperability is a protocol and a calibration contract — not a magic network. It is a less exciting sentence than "any nose can read any smell," and it is the one the evidence supports. The rest of this series is the engineering that makes that sentence work in practice.

Sources & Further Reading

  • OpenSmell master reference, §4.6 (the full proof), §7.11 (honesty rules), §8.3 (Experiment results), §8.7 (publishable results).
  • research/cross_device_145dim_analysis/adapter_complexity_report.txt — the measured banana/cinnamon cosine similarities.
  • research/calibration-experiments/reference-point-calibration/results.json — the verified reference-point calibration recovery.
  • Johnson & Lindenstrauss, Contemporary Mathematics 26 (1984) — the dimensionality background for why representations are fragile.