Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| projects:biosonification [2026/08/30 22:49] – created John Harrison | projects:biosonification [2026/09/17 22:31] (current) – removed John Harrison | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Plant Touch Sonification — Project Reference ====== | ||
| - | ===== Goal ===== | ||
| - | |||
| - | Touch-based interactive botanical installation for sight-impaired visitors. Visitors touch plants, plants produce sound. Must run for months without damaging plants. Signal must be meaningful, not random. | ||
| - | |||
| - | ===== Approach: SFCS (Swept Frequency Capacitive Sensing) ===== | ||
| - | |||
| - | Disney' | ||
| - | |||
| - | Traditional capacitive sensing reads conductivity at one fixed frequency; SFCS uses a whole range so a single sensor' | ||
| - | |||
| - | Electrode goes in soil, not on the plant. No adhesive, no gel drying out, no girdling as stems grow. The months-long electrode degradation problem that kills passive-sensing approaches doesn' | ||
| - | |||
| - | ==== The sweep ==== | ||
| - | |||
| - | * Range: **1.5 kHz – 3.5 MHz** ([[https:// | ||
| - | * **Up to 198 steps** per the paper. (library README says 200 max.) | ||
| - | * Waveform generated by AVR 16-bit hardware timers via direct register manipulation ([[https:// | ||
| - | * Arduino can hit those frequencies but only as a square wave with lower resolution, producing unwanted harmonics. The LC resonant circuit reshapes it toward a sinusoid | ||
| - | * Output per sweep is a value at every frequency, not just a peak — the //shape// of the curve is the signal | ||
| - | |||
| - | |||
| - | ==== The sweep ==== | ||
| - | |||
| - | * Range: **1.5 kHz – 3.5 MHz** (library README). Disney' | ||
| - | * **Up to 198 steps** per the paper; library README says 200 max. Unresolved discrepancy | ||
| - | * Waveform generated by AVR **16-bit hardware timers** via direct register manipulation (Møbius' | ||
| - | * Arduino can hit those frequencies but only as a square wave with lower resolution, producing unwanted harmonics. The LC resonant circuit reshapes it toward a sinusoid | ||
| - | * Output per sweep is a value at every frequency, not just a peak — the //shape// of the curve is the signal | ||
| - | |||
| - | ==== Sweep mechanics (verified from SweepingCap.cpp) ==== | ||
| - | |||
| - | * The number you pass to '' | ||
| - | * Stepping that number 1, 2, 3, 4… does not give evenly spaced frequencies. It's badly lopsided — the first few steps jump megahertz, the last few move a few hundred Hz. For even coverage, precompute the values and pass those instead of a raw counter. | ||
| - | * All four channels sweep together. You can't have plant A at one frequency while plant B is at another. | ||
| - | |||
| - | ==== Repeatability ==== | ||
| - | |||
| - | The NIME 2014 paper reports curve shapes repeat reliably even when the specific peak frequency and value drift. This matters for a long-running install — key on shape, not absolute peak. | ||
| - | |||
| - | Also position-sensitive, | ||
| - | |||
| - | ==== Scaling ceiling — important for multi-plant ==== | ||
| - | |||
| - | Cultivating Frequencies ([[https:// | ||
| - | |||
| - | //Fifteen plants on one Mega is the documented upper bound, and it was already straining.// | ||
| - | |||
| - | ===== Circuit ===== | ||
| - | |||
| - | Passive components only (no op-amp): | ||
| - | |||
| - | * 1N4148 diode (D1) | ||
| - | * 10mH inductor (L1) | ||
| - | * 0.1nF capacitor (C2) | ||
| - | * 10nF capacitor (C1) | ||
| - | * 10kΩ (R1) — Timer 1 / PWM pin 11 on Mega | ||
| - | * 3.3kΩ (R2) | ||
| - | * 1MΩ (R3) — Analog Pin 0 | ||
| - | * **R\* = 100kΩ – 50MΩ** between send and receive pin, with the object/foil attached | ||
| - | |||
| - | The R\* range is a wide tunable range. A pot or a resistor+trimmer may make sense. | ||
| - | |||
| - | Send pin changes depending on Arduino model and which timer is used: | ||
| - | === Mega === | ||
| - | ^ Timer ^ Pins set to OUTPUT ^ | ||
| - | | 1 | 11, 12 | | ||
| - | | 3 | 2, 3, 5 | | ||
| - | | 4 | 6 | | ||
| - | | 5 | 46 | | ||
| - | === Uno === | ||
| - | ^ Timer ^ Pin ^ | ||
| - | | 1 | 9 | | ||
| - | |||
| - | //connect one leg of the 10nF cap to the electrode in the soil.// | ||
| - | |||
| - | ==== Electrode material ==== | ||
| - | |||
| - | The NIME paper' | ||
| - | |||
| - | ===== Hardware — board compatibility (verified from source) ===== | ||
| - | |||
| - | * All Megas work unmodified: Original Mega (ATmega1280), | ||
| - | * Mega 2560 has 256kb flash, 1280 only 128KB flash. | ||
| - | * Uno vR1 through R3 works* (ATmega328P), | ||
| - | |||
| - | **Architecture: | ||
| - | |||
| - | ===== Multi-plant topology ===== | ||
| - | |||
| - | One electrode per plant, shared soil, multiplexed. Shared soil causes crosstalk. Expect touched plant' | ||
| - | |||
| - | The NIME paper' | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Reference links ===== | ||
| - | |||
| - | [[https:// | ||
| - | The core paper. Includes circuit schematic with all component values including R\* as well as a side-by-side CapSense vs. SFCS test data on a rosemary plant. Also has the Cultivating Frequencies case study with its scaling limits. Primary source. | ||
| - | |||
| - | [[https:// | ||
| - | The installation' | ||
| - | |||
| - | [[https:// | ||
| - | The source technique. Custom hardware (AD5932 + ARM), no code released. Read for capability space and applications. Uses a pure sine wave. | ||
| - | |||
| - | [[http:// | ||
| - | Nikolaj Møbius' | ||
| - | |||
| - | [[https:// | ||
| - | Mads Hobye' | ||
| - | |||
| - | [[https:// | ||
| - | The library from the paper. Two objects: '' | ||
| - | |||
| - | [[https:// | ||
| - | Circuit diagram with explicit pin assignments and build photos. Two sketches: '' | ||
| - | |||
| - | [[https:// | ||
| - | The Pd/Ableton side is the useful part — reference for getting sensor data into a sound environment. | ||
| - | |||
| - | [[https:// | ||
| - | Redundant and hard to parse. Archived 2020. '' | ||
| - | |||
| - | [[https:// | ||
| - | Companion writeup to the above. Limited value. | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Known risks ===== | ||
| - | |||
| - | * Plant-to-plant variability: | ||
| - | * Soil moisture drift shifts baseline: may need periodic or automatic recalibration | ||
| - | * The paper itself says long-run effects on data and interaction as the garden grows were unknown at publication | ||
| - | * Grounding: one project reported needing the person coupled to circuit ground. | ||
| - | |||
| - | ===== Shelved ===== | ||
| - | |||
| - | * **AD5933 impedance spectroscopy: | ||
| - | * **Biopotential/ | ||