Hardware × Fragrance

E-Nose: A 14-Channel Sensor Array for Fragrance Decomposition

Custom prototype built to answer a specific question: what is the minimum sensor configuration needed to reliably place a scent on the Edwards Fragrance Wheel? 11 MQ-series gas sensors, 3 environmental baselines, a load cell, and a Raspberry Pi. 14 channels, once per second, to fingerprint, predict, and decompose fragrance materials in real time.

Sensor array prototype with MQ gas sensors wired to a breadboard and glass sampling chamber Raspberry Pi 4 connected to breadboard with heated gas sensors glowing
Work-in-progress: 11 MQ gas sensors, Raspberry Pi 4, ADS1115 ADCs, and a glass sampling chamber

When you spray a perfume, what reaches your nose is a cloud of hundreds of volatile molecules. They evaporate at different rates and trigger different receptors in your olfactory system. Your brain assembles all of that into a single perception: that smells like Santal 33.

This project does the same thing with electronics. An array of gas sensors, each sensitive to different chemical families, replaces biological receptors. Pattern recognition replaces the brain. The system can fingerprint a fragrance material, predict what a blend would smell like, and decompose an unknown mixture into its probable ingredients.

The Sensor Array

A human nose has roughly 400 types of olfactory receptors. We have 14 sensor channels. Far fewer, but each one measures something precise and repeatable. They sit in a sensor puck connected to a Raspberry Pi, reading every channel once per second.

How the Gas Sensors Work

Each MQ sensor contains a small ceramic tube coated with tin dioxide (SnO₂), a semiconductor. When heated to 200–400°C by a tiny internal coil, oxygen from the air adsorbs onto the surface, creating a high-resistance barrier.

When volatile organic compounds (the molecules that make things smell) land on this hot surface, they react with the adsorbed oxygen, freeing up electrons and dropping the resistance. More molecules = lower resistance. Doping the tin dioxide with different metals (palladium, platinum, copper) makes each sensor preferentially sensitive to different gas families.

The key insight
No single sensor can identify a specific molecule. MQ-3 can't distinguish linalool from geraniol because they're both alcohols. But the pattern across all 11 sensors is distinctive. That 11-dimensional vector of responses is the material's fingerprint.

11 Gas Sensors, 11 Chemical Families

MQ-3 — Floral & Fruity

Alcohol

Responds to ethanol, methanol, and volatile alcohols. Linalool, geraniol, citronellol are all terpene alcohols (the backbone of most floral perfumery) and they light up this sensor.

MQ-2 — Smoky

Smoke

Combustion gases, hydrogen, flammable vapors. Guaiacol, birch tar, incense materials.

MQ-135 — Green

NH₃ / Benzene

Ammonia, benzene, nitrogen oxides. The sharp, leafy volatiles of crushed herbs and green leaves.

MQ-138 — Aldehydic

Formaldehyde / VOC

Aldehydes and broad VOCs. The sparkling, soapy quality that defines perfumes like Chanel No. 5.

MQ-136 — Tropical

H₂S / Sulfur

Sulfur compounds. Grapefruit, blackcurrant, and galbanum all contain sulfur essential to their character.

MQ-9 — Spicy & Warm

CO / Flammable

Carbon monoxide and combustible gases. The warm, slightly burnt quality of cinnamon, clove, pepper, and the deep warmth of oriental accords.

MQ-8 — Ozonic

Hydrogen

Hydrogen sensor. In the array it acts as a broad reducing-gas baseline. The ratio of MQ-8 to other sensors helps separate light, volatile molecules from heavier ones.

MQ-4 — Earthy

Methane

Soil, patchouli, and the deep funky character of natural musks.

MQ-5 — Resinous

LPG / Hydrocarbons

Heavier hydrocarbons. Benzoin, frankincense, myrrh. Heavy, sticky molecules.

MQ-7 — Burnt

CO

Cade oil, birch tar, the smoky-medicinal facet of certain woods.

MQ-6 — Waxy

Propane / Butane

Lighter hydrocarbons. The candle-wax quality of certain aldehydes.

Environmental Baseline

Three BME680 sensors measure temperature, humidity, barometric pressure, and a broad-spectrum gas resistance simultaneously. The redundancy lets us detect and correct for sensor drift across sessions, which matters a lot when you're comparing fingerprints taken days or weeks apart.

The Load Cell

A precision scale underneath the sample, accurate to a few milligrams. It measures evaporation rate, how quickly volatile molecules escape into the air. A material that loses 10% of its mass in five minutes is a top note. One that barely budges is a base note. Gas sensors alone can't tell you that.

From Sensors to Scent

The Fingerprint

When a material is placed under the sensor puck, readings shift. After a settling period (30–60 seconds), they stabilize. That stable-state pattern across all 14 channels is the fingerprint.

Rose
Floral

The Edwards Wheel

The Michael Edwards Fragrance Wheel is the industry standard for classifying scents. Four families:

Floral (flowers, powdery, soft)    Fresh (citrus, green, aquatic)    Woody (woods, mossy, smoky)    Amber (sweet, spicy, resinous)

The dashboard maps sensor channels into these families. Alcohol-type molecules genuinely tend to smell floral, smoke-type molecules genuinely tend to smell woody. The mapping is approximate, but the broad family placement is structurally sound and gets better as the reference library grows.

Accords

The fragrance industry uses about 40 accords to describe scent character. We compute 17 accord groups from the sensor data. Each one is a weighted combination of specific sensor responses:

Floral = 70% MQ-3 (alcohol) + 30% MQ-135 (green)
Smoky & Leather = 80% MQ-2 (smoke) + 20% MQ-7 (CO)
Sweet & Gourmand = 50% MQ-138 (VOC) + 30% MQ-5 (LPG) + 20% MQ-3 (alcohol)
Rose
Floral

The Three Models

1. The Reference Library

Profile a material. Place it under the sensors, let it stabilize, label it. The fingerprint gets stored alongside the material's name and metadata. Do this for 200+ raw materials and you have a reference library: a searchable catalog of known scent signatures.

The same material profiled at different times might produce slightly different fingerprints. That's actually useful. It reveals how materials evolve as they age.

2. The Forward Model

Given a formula (say 60% Javanol, 40% Hedione), predict what the sensor array would read. Multiply each material's fingerprint by its proportion and sum them.

Formula: 60% Javanol + 40% Hedione Javanol fingerprint: [8200, 15400, 18100, 12800, ...] Hedione fingerprint: [9100, 21300, 16500, 11200, ...] Predicted blend: [8560, 17760, 17460, 12160, ...] ↑ 0.6 × 8200 + 0.4 × 9100 = 8560

Real blends aren't perfectly linear. Chemicals interact in nonlinear ways. But the linear model is a surprisingly strong starting point, and as we profile binary blends we learn the interaction corrections that close the gap.

3. The Inverse Model

The headline capability: given an unknown sensor reading, figure out what's in it.

Every fingerprint is a list of 11 numbers, one per sensor. You can think of it as an arrow pointing in a specific direction in 11-dimensional space. To compare two fingerprints, we measure the angle between their arrows. If they point the same way, the materials smell similar. This is called cosine similarity:

similarity = cos(θ) = (A · B) / (|A| × |B|)
A and B are two fingerprints. The dot product (A · B) measures how much they overlap. Dividing by their magnitudes normalizes for concentration, so a faint whiff of rose and a strong blast of rose both point the same direction. A score of 1.0 means identical character. 0.0 means completely unrelated.

Once we've ranked every reference material by similarity, we solve for the recipe. The question becomes: what proportions of Rose, Cedarwood, and Vanilla would combine to recreate the unknown reading? This is non-negative least squares, a standard technique from analytical chemistry:

minimize |unknown − (w₁×Rose + w₂×Cedarwood + w₃×Vanilla)|²
Find the weights w that make the weighted sum of known fingerprints as close as possible to the unknown signal. The "non-negative" constraint means every weight must be zero or positive, because you can't have negative amounts of an ingredient in a real blend.

The reconstruction accuracy tells you how well the identified components explain the original signal. 95% means we've accounted for nearly all of it. The remaining 5% could be a material not yet in the library, or nonlinear interactions between ingredients.

Step through the visualization below: start with the mystery blend, then see each identified component on its own. The dashed outline is the original blend for reference. Notice how each ingredient has a completely different shape. The final step reconstructs the blend from the parts.

Mystery Blend
What’s inside?

The Data Pipeline

Follow a single reading from spray to analysis. The entire journey takes under a second. Press play, or drag the timeline to scrub through each stage.

0:00
Press play to trace a reading through the pipeline

The MQ sensors output analog voltages digitized by four ADS1115 converters at 16-bit resolution (65,536 distinct levels per channel). Each reading is a row of 14+ numbers plus a timestamp. From there, everything is analysis: normalization, fingerprinting, classification, and library matching, all happening within milliseconds of the reading being taken.

E-Nose vs. GC-MS

The lab gold standard for fragrance analysis is GC-MS (gas chromatography/mass spectrometry). A $50,000–$500,000 instrument that physically separates every molecule through a 30-meter capillary column, then identifies each one by its mass fragmentation pattern.

These aren't competing tools. They answer different questions.

GC-MSe-nose
QuestionWhat molecules are in this?What does this pattern look like?
PrecisionIndividual molecules at ppmBroad families, relative patterns
Time30–60 minutes per sample60 seconds, continuous
Cost$50–$500 per analysis~$0 per analysis
Temporal dataSingle snapshotReal-time time-series
OperatorChemistry degreePlace glass under puck

Where the E-Nose Wins

Real-time headspace monitoring. You can watch a material evolve second by second. Top notes flash off, heart notes emerge, base notes assert. A GC-MS would need 50 separate runs to capture what the sensors record in one continuous session.

Speed at scale. Profiling 200 materials on GC-MS means weeks and $20,000+. On the sensor array it's a long weekend.

Pattern matching. Does this batch of Iso E Super smell like the last batch? That's a fingerprint comparison. Instant and free.

True headspace. While headspace GC-MS exists, much fragrance analysis still uses liquid injection in solvent. The sensors always measure what's actually in the air above the sample, which is what your nose actually smells.

Blend interaction discovery. Profile A alone, B alone, A+B together. The nonlinear difference reveals how materials change each other. Doing this systematically across hundreds of pairs is only practical with a sensor array.

Where GC-MS Still Matters

Exact molecular identification: confirming a sample contains specifically linalool, not just "an alcohol." Full decomposition of complex mixtures with 80+ ingredients. Regulatory compliance: IFRA allergen declarations require mass spectrometry.

Those use cases are real, but they're a narrow slice of the questions perfumers actually ask day-to-day. For the creative work (evaluating materials, exploring blends, tracking aging, checking batches) the sensor array's speed and cost advantages add up fast.

The Compounding Advantage

Every material profiled adds to the reference library. Every blend tested teaches the interaction model. Every aging study refines the temporal understanding. A GC-MS gives you the same precision on day one and day one thousand. The sensor array on day one thousand, backed by 500+ fingerprints and hundreds of interactions, is a fundamentally better instrument than on day one. Same hardware, compounding knowledge.

Beyond Gas Sensors

Metal oxide gas sensors are one way to detect volatile molecules. There are at least six others. Each one sees something the gas sensors can't, and most of them cost less than a nice dinner. What follows is a survey of every sensing modality we've looked at seriously, what it would tell us about a fragrance, and why it matters.

Light

Gas sensors measure what happens when a molecule reacts on a hot surface. Light-based sensors skip the chemistry entirely and ask: what does this substance look like?

AS7341 — Spectral Absorption

ams-OSRAM~$1610 channels

Shine a white LED at the sample, measure how much light it absorbs across 10 wavelength bands (415–940nm). A color fingerprint that's completely independent of the gas data. Dark resins look nothing like clear alcohols. The AS7265x ($65) extends this to 18 channels with built-in UV illumination, reaching into the violet region where aromatic compounds start absorbing.

UV Fluorescence

365nm LED + filter~$30

Many fragrance molecules glow under UV light. A 365nm LED excites the sample, a long-pass filter blocks the UV, and a spectral sensor reads the emission. Coumarins (fougere backbone) glow at 410–470nm. Indole (jasmine, tuberose, orange blossom) emits at 330–350nm. Methyl anthranilate (grape, neroli) at 390–405nm. Most terpenes don't fluoresce at all because they lack conjugated ring systems. So this specifically picks out aromatic compounds. You can distinguish natural jasmine absolute (contains fluorescent indole) from synthetic hedione (dark). Nothing else in the sensor stack can do that.

Sharper Noses

The MQ sensors tell you that something is in the air. These tell you how much, and in some cases, what kind with much finer resolution.

PID — Photoionization Detector

Alphasense PID-AH2~$80–3001 ppb

UV light ionizes gas molecules directly. The resulting current is linearly proportional to total VOC concentration. Resolution: 1 part per billion, roughly 1000× finer than MQ sensors. A PID doesn't tell you what's in the air, it tells you how much. That's the missing normalization layer. Divide each MQ response by the PID total and you get concentration-independent fingerprints. A faint trace of rose and a room full of rose collapse to the same shape at different intensities.

SGP41 — VOC + NOx

Sensirion~$20

Two MEMS MOX elements: one for reducing gases (VOCs), one for oxidizing gases (NOx). That NOx channel detects nitrogen-containing compounds that MQ sensors miss. Indole (jasmine, tuberose), animalic accords, certain synthetic musks. 16-bit raw signal with a 10-second conditioning period per measurement cycle.

BME688 — AI Gas Scanner

Bosch~$20

Drop-in replacement for the BME680. The upgrade: programmable heater profiles. Define a 10-step temperature sequence, measure gas resistance at each step, and Bosch's AI Studio trains a classifier on the patterns. One chip acts as a 10-element virtual sensor array. Same idea as cycling through temperatures on the MQ sensors, but purpose-built for it with MEMS-scale thermal mass so it can ramp in milliseconds instead of seconds.

Temperature cycling
The concept behind the BME688 applies to the existing MQ sensors too. Every MQ heater currently runs at fixed voltage. Swap that for a programmed temperature ramp (200–400°C in a triangle wave) and each sensor starts acting like 5–20 virtual sensors. Different gases adsorb and desorb at different temperatures, so resistance at each temperature step encodes different chemical information. A 2024 paper in Science Advances got 100% classification accuracy on four synthetic odorants using MEMS sensors this way. MQ sensors have more thermal mass than MEMS, so the cycling is slower, but the principle holds. Eleven sensors at 10 temperature steps = 110-dimensional fingerprint. Same hardware, new firmware, plus driver circuitry for the heater ramps.

Unfolding Hidden Dimensions

Consider two materials that confuse a fixed-temperature array: Rose and Geranium. Both are dominated by terpene alcohols. At 290°C, the standard MQ operating temperature, their 11-sensor fingerprints score 98% similar. A perfumer tells them apart instantly. The sensor array can't.

Now sweep the heater from 200°C to 400°C in 8 steps, reading all 11 sensors at each step. Rose's alcohol signal peaks early and sharp: linalool (boiling point 198°C) flashes off the tin dioxide surface fast. Geranium's green note stays elevated across more temperature steps because menthone and citronellol have different thermal release curves. Geranium's earthy sesquiterpenes only emerge above 320°C. None of this shows up at a single temperature.

Press play below. The radars morph through each temperature step. Below them, thermal spectrograms accumulate every slice: rows are sensors, columns are temperature steps. Watch the patterns diverge as data accumulates.

Fixed Temperature
290°C · 98% similar · 11 dimensions
290°C

Eleven sensors at 8 temperature steps = an 88-dimensional fingerprint from the same physical hardware. No new sensors, no new ADCs, no new wiring. Just a firmware update to the heater control loop. At the standard operating temperature, Rose and Geranium score 98% similar. Sweep the heater and some temperature steps drop to 46%. Materials that are chemically related but perceptually distinct become separable. That's the hard case in fragrance analysis.

Chemical Fingerprints

Gas sensors and optical sensors are passive. They watch what a molecule does on its own. These approaches react with the molecules and measure the interaction. Fundamentally different information.

Colorimetric Dye Array

Suslick, Nature 2000~$100–300 startup

Print 20+ chemically reactive dyes on a membrane. Expose to fragrance vapors. Image before and after. Metalloporphyrins (zinc, iron, cobalt tetraphenylporphyrin) bind amines and carbonyls with metal-specific affinities. pH indicators respond to acidic and basic vapors. Solvatochromic dyes like Nile Red shift color with polarity. The difference image is a high-dimensional fingerprint. Published in Nature with near-perfect classification across a panel of VOCs. The chemicals cost ~$300, enough for thousands of arrays. Each test costs pennies.

Conductive Polymer Array

DIY Cyranose~$50–100

The Cyranose 320, the most widely published commercial e-nose (~$10,000), used 32 polymer-carbon black composites. VOC absorption swells the polymer, separates carbon particles, raises resistance. Different polymers respond to different families: polyethylene oxide for alcohols, polyisobutylene for terpenes, poly(4-vinylphenol) for aromatics. The selectivity comes from thermodynamic partition (how much the VOC dissolves into the polymer), which is completely different from MOX catalytic oxidation. Buildable for under $100.

Taking Mixtures Apart

Everything above measures the fragrance as a whole. These approaches physically separate it into components over time, turning the sensor array from a snapshot into a spectrogram.

Thermal Desorption

Tenax TA sorbent~$50–100

Pack a small tube with Tenax sorbent. Expose to headspace for 30 seconds. Ramp the tube from 30°C to 300°C while flowing clean air into the sensor chamber. Molecules desorb in order of volatility: light top notes first, heavy base notes last. The sensor array sees the composition unfold over time as distinct chemical waves. Poor man's gas chromatography. Tubes are $20–30, reusable hundreds of times.

DIY Micro-GC

Capillary column~$200–500

A 1-meter fused silica capillary column, an aquarium pump for carrier gas, nichrome wire heating, a PID or MQ detector at the outlet. Temperature-program from 40°C to 200°C. Different molecules elute at different retention times. This is crude gas chromatography. Far lower resolution than a $50,000 lab instrument with a 30-meter column, but it partially separates components and provides ground-truth labels for training the sensor array's decomposition models.

Weighing Molecules

QCM — Quartz Crystal Microbalance

OpenQCM~$300–1,200

A quartz crystal vibrating at 10 MHz. Coat it with a thin polymer film. When VOC molecules absorb, the added mass shifts the resonant frequency. The readout is actual nanograms. Not resistance, not current, mass. Different coatings (PDMS for terpenes, PEG for alcohols, cyclodextrin for shape-selective inclusion) give you a multi-channel gravimetric fingerprint. Cyclodextrin-coated crystals can even discriminate enantiomers: d-limonene (orange) from l-limonene (pine).

PMS5003 — Particle Counter

Plantower~$156 size bins

Laser-scattering particle counter. After a spray, volatile top notes evaporate from droplets and the particle size distribution shifts. Heavy base notes persist in aerosol form longer. The temporal evolution of particle counts encodes the volatile-to-fixed ratio of the composition. Nobody has published this approach for fragrance. Novel research territory for $15.

The Weird Stuff

Ion Mobility Spectrometry

DIY drift tube~$500–1,500

Ionize gas molecules with a corona discharge. Pull the ions through a drift tube against clean air. Small compact ions arrive first, large bulky ones last. The drift time spectrum separates molecules by shape and size. Compact terpenes vs. macrocyclic musks vs. linear aldehydes. Buildable from published university lab designs. Shape information is orthogonal to every other modality on this page.

Biological Olfactory Receptor

Electroantennography~$50–100

Moth antennae contain tens of thousands of receptor neurons expressing 60+ olfactory receptor types, the product of 300 million years of evolutionary optimization. In electroantennography (EAG), an isolated antenna on saline electrodes generates a millivolt signal when odorant molecules bind to its receptor proteins. Sub-ppb sensitivity from a biological structure that costs $20 (Bombyx mori), paired with a $5 instrumentation amplifier. Bioelectronic noses are an active research field, but no one has productized this for consumer fragrance analysis.

What this adds up to

Every sensor on this page combined, from the original MQ array through the quartz microbalance, totals roughly $4,000. That's less than the cost of a single professional fragrance evaluation panel ($2,000–5,000). A GC-MS instrument starts at $50,000. The Cyranose 320 was ~$10,000.

The point isn't to build all of this at once. It's that the landscape of sensing technologies available for under $100 each has gotten absurdly rich, and almost none of it has been applied to fragrance. The interesting work is figuring out which combinations actually matter.

The Dashboard

Edwards Wheel placement, accord breakdown, 14-channel fingerprints, real-time sensor timelines. All running in the browser.

E-nose dashboard showing Edwards Wheel, accord breakdown, sensor fingerprint radar, and real-time timeline
Made with love by Tyler