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.
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.
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.
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.
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.
Combustion gases, hydrogen, flammable vapors. Guaiacol, birch tar, incense materials.
Ammonia, benzene, nitrogen oxides. The sharp, leafy volatiles of crushed herbs and green leaves.
Aldehydes and broad VOCs. The sparkling, soapy quality that defines perfumes like Chanel No. 5.
Sulfur compounds. Grapefruit, blackcurrant, and galbanum all contain sulfur essential to their character.
Carbon monoxide and combustible gases. The warm, slightly burnt quality of cinnamon, clove, pepper, and the deep warmth of oriental accords.
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.
Soil, patchouli, and the deep funky character of natural musks.
Heavier hydrocarbons. Benzoin, frankincense, myrrh. Heavy, sticky molecules.
Cade oil, birch tar, the smoky-medicinal facet of certain woods.
Lighter hydrocarbons. The candle-wax quality of certain aldehydes.
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.
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.
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.
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.
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:
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.
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.
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.
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:
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:
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.
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.
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.
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-MS | e-nose | |
|---|---|---|
| Question | What molecules are in this? | What does this pattern look like? |
| Precision | Individual molecules at ppm | Broad families, relative patterns |
| Time | 30–60 minutes per sample | 60 seconds, continuous |
| Cost | $50–$500 per analysis | ~$0 per analysis |
| Temporal data | Single snapshot | Real-time time-series |
| Operator | Chemistry degree | Place glass under puck |
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.
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.
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.
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.
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?
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
Edwards Wheel placement, accord breakdown, 14-channel fingerprints, real-time sensor timelines. All running in the browser.