JKjaron.king
/projects
Live$Hardware / IoT· June 2026

Smellamatic

An open-source, ESP32-based DIY hardware device that estimates a playful 0–100 Stink Score using a multi-gas sensor array, active sampling, and an OLED display.

~/smellamatic
// summary

Summary

Smellamatic is a playful, open-source hardware experiment that packages real electronics, sensors, and code into a friendly box designed to score the funkiness of the air around it. Built using an ESP32 and housed in a custom 3D-printed enclosure, the device estimates a relative Stink Score from 0 to 100 on a small OLED display.

Open-Source DIY Hardware

The project is fully open-source, offering free CAD files, wiring schematics, and Arduino-flavored C++ firmware. It lists off-the-shelf maker components to keep assembly accessible:

  • Seeed XIAO ESP32C3: A compact microcontroller handling sensor logic and Wi-Fi capability.
  • BME688: An environmental sensor tracking relative humidity, temperature, barometric pressure, and VOCs.
  • MQ-136 & MQ-137: Analog gas sensors optimized for detecting hydrogen sulfide (sulfur funk) and ammonia/amines.
  • Active Airflow: A switched 5V fan ensuring continuous air sampling rather than passive buildup inside the casing.

Playful Stink Scoring

Instead of complex PPM formulas, Smellamatic runs sensor values through a custom algorithm to output a 0–100 score aligned to five distinct levels:

  1. 0–10 (Fresh): Clean, fresh air.
  2. 11–25 (Slight Funk): Noticeable change in air quality.
  3. 26–45 (Noticeable): Time to open a window.
  4. 46–70 (Bad): Serious odors detected.
  5. 71–100 (Criminal): Evacuate and apologize.
// problem

Problem Solved

Traditional air quality or environmental sensors are overly dry, clinical, and expensive. Smellamatic aims to make learning basic electronics, sensor integration, and 3D CAD fabrication engaging and accessible by packaging gas telemetry into a humorous, self-built stink scoring toy.

// features

Key Features

  • Seeed XIAO ESP32C3 microcontroller serving as the main CPU brain
  • Multi-gas sensor array incorporating BME688, MQ-136, and MQ-137 sensors
  • Active ventilation airflow sampling using a 5V fan switched via N-MOSFET
  • Playful 0–100 Stink Score algorithm with 5 distinct levels (Fresh to Criminal)
  • Fully open-source STEP and STL CAD files for 3D-printable enclosures
  • Next.js-powered documentation storefront featuring a retro paper-grain grid design
// architecture

Architecture Notes

Custom C++ firmware written for the ESP32C3 reads digital volatile organic compound (VOC) levels over I2C and analog electrochemical sensor voltages. It triggers a switched 5V fan to purge internal gases and updates a SSD1306 0.96" OLED via I2C with the calculated Stink Score. The documentation storefront is statically compiled and served via Next.js.
// learnings

What I Learned

  • Active ventilation is vital. Without a fan pulling fresh air through the enclosure, gas values remain trapped inside, causing sluggish recovery times and false readings.
  • Analog electrochemical sensors require substantial warmup time. The internal heaters must stabilize before voltage readings become reliable.
  • Humorous packaging lowers technical barriers. Presenting sensors and microcontrollers as a 'stink score machine' sparks interest and organic sharing in maker communities.
// roadmap

Future Improvements

  • +Wi-Fi enabled logging companion app to chart stink score history
  • +Support for battery-powered operation with ultra-low-power sleep cycles
  • +Home Assistant integration to trigger home ventilation systems dynamically