Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kaolid+: A Lid-Type Olfactory Interface for Modulating Sweetness Perception

This repository provides the open-source hardware and software materials for Kaolid+, a lid-type olfactory interface that routes aroma either toward the nose (orthonasal) or through a Y-shaped straw (retronasal) while illuminating the beverage with an RGB light, in order to modulate the perceived sweetness of a drink.


1. System Overview

Kaolid+ is a cup-lid device, housed in a 3D-printed enclosure, integrating:

  • Olfactory unit — a compact piezoelectric air pump pushes air through a scented cotton pad in a scent container; the aroma is routed either toward the nose (orthonasal) or into a Y-shaped straw (retronasal).
  • Visual unit — an RGB LED illuminates the beverage from the lid (no-light / orange / blue conditions).
  • Control unit — a SparkFun Pro Micro reads a manual switch and drives both the pump (via a transistor and a boost/driver circuit) and the RGB LED.

2. Repository Structure

kaolid/
├── hardware/
│   ├── cad/            3D models of the lid, cover, scent container
│   ├── electronics/    Schematics, wiring diagrams, BOM
│   └── assembly/       Step-by-step assembly guide
├── firmware/           Arduino sketch (SparkFun Pro Micro) + flashing notes + reproducing the experiment
└── docs/               Figures, photos, supplementary documentation

3. Hardware

3.1 Main components

Component Part used in the study Notes
Air pump Murata microblower MZB1001T02 (piezoelectric diaphragm) Driven at 14 V, ~1.6 kPa
Microcontroller SparkFun Pro Micro 5V / 16 MHz Reads the switch, drives pump + LED
RGB LED OptoSupply OSTAMA5B31A (5 mm, common-anode) 8-bit value per channel
Pump driver Transistor + boost converter Piezo pump cannot be driven directly by the MCU
Enclosure 3D-printed lid body, cover, scent container See hardware/cad/
Straw Custom Y-shaped straw One branch = beverage, one branch = aroma airflow

3.2 RGB values

The LED is common-anode with the cathodes wired to the PWM pins, so in the firmware a lower analogWrite value is brighter (0 = full on, 255 = off). These are the actual values used to reproduce the colors:

Condition R G B
No light 255 255 255
Orange 30 220 255
Blue 255 255 0

3.3 Folders


4. Firmware — firmware/

Kaolid+ is controlled by a single Arduino sketch on a SparkFun Pro Micro (5 V / 16 MHz); there is no separate PC application. The microcontroller reads a manual tact switch and locally drives the RGB LED and the air-pump transistor.

Aroma is delivered while the switch is pressed and held during sipping. The piezoelectric pump cannot be driven directly by the MCU, so it runs through a boost/driver circuit at 14 V (~1.6 kPa). The RGB LED is an OptoSupply OSTAMA5B31A 5 mm common-anode LED; the visual condition is selected by uncommenting the matching block in setup() and re-uploading.

4.1 Pin assignment

Pro Micro pin Function Note
3 RGB common anode held HIGH as a pseudo-Vcc
5 Red cathode 330 Ω series resistor
6 Green cathode 680 Ω series resistor
9 Blue cathode 270 Ω series resistor
2 Tact switch INPUT_PULLUP; LOW = pressed
4 Pump transistor HIGH = pump on

4.2 Flashing

  1. In the Arduino IDE, install Arduino Micro and select Pro Micro (5 V, 16 MHz) with the correct port.
  2. Open firmware/src/kaolid_controller.ino, uncomment the desired condition block, and click Upload.
  3. Press and hold the switch while sipping to run the pump.

See firmware/README.md for the full RGB value table.

4.3 Reproducing the Experiment

  1. Print and assemble the hardware.
  2. Flash the firmware.
  3. Follow the 8-step preparation in hardware/assembly/assembly-guide.md.
  4. Run the six conditions (C1–C6) described in the paper.

Acknowledgments

This work was supported by JST, PRESTO Grant Number JPMJPR21P7, Japan.

About

Kaolid+: A Lid-Type Olfactory Interface for Modulating Sweetness Perception

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages