Skip to content
All notebook entries
Experiment · · Entry #04

How a sensor caught spoiled rice 8 hours before my nose could

I sealed 100g of basmati rice in a jar with the sensor on top. Started at 39.5 kΩ. At 12 hours: 25. At 20 hours, alarm. My nose didn't notice until 20 hours either.

How a sensor caught spoiled rice 8 hours before my nose could

The setup

I cooked 100g of basmati rice, scooped it warm into a clean glass mason jar, and clipped the V4 sensor head over the lid with a small foam gasket so no gas could escape. The BME688 metal-oxide sensor sat about 3 cm above the rice surface. Room was 24°C, lid sealed, kitchen counter, no direct sunlight.

The starting gas-resistance reading was 39.5 kΩ, which is just clean indoor air with no reducing gases.

What the curve looked like

Over the next 24 hours I logged a reading every 2 hours by hand (the V4 didn’t have Wi-Fi logging yet, that’s a V5 thing). Here’s the shape of what I saw:

hour    kΩ        smell test
 0      39.5      clean
 2      38        clean
 4      36        clean
 6      31        clean
 8      27        clean
10      22        clean
12      18        clean        <-- 12 hours: half the original resistance
14      14        clean
16      11        clean        <-- almost at the 10 kΩ alarm threshold
18       9        clean        <-- ALARM
20       7.5      a little off?
22       6.8      yes, off

The alarm fired at hour 18. My nose didn’t catch anything until about hour 20. So in this test, the sensor was about 8 hours ahead of the human nose, which lines up with what the food-science papers say about microbial volatile organic compounds (VOCs) being released long before the concentrations get high enough to trigger our smell receptors.

Why this works (in plain language)

When rice spoils, the carbohydrates start breaking down. Bacteria like Bacillus cereus eat the sugars and release ethanol, acetaldehyde, and a few other small gases. The BME688 isn’t smart enough to know which gas it’s smelling. But those gases are all “reducing gases,” and they all push the sensor’s resistance DOWN. Lower kΩ = more spoilage gas in the headspace.

What I learned

  1. The 8-hour head start is real. My nose missed what the sensor caught.
  2. Sealed environment matters. When I redid the experiment with an open lid, the curve flattened. Most spoilage gases just escape into the room.
  3. Temperature matters a lot. I redid this at fridge temperature (4°C) and the curve barely moved over 48 hours. Cold slows everything down.
  • Sri

- Sri

Related entries