A Bioacoustic Arduino Project to Explore Insect Attraction through Frequency
This project started with a question:
Why were spotted lanternflies swarming a metal utility pole near high-voltage power lines?
After noticing this pattern repeatedly, I began to wonder if it was more than coincidence. Could these invasive insects be responding to something deeper—like a vibrational frequency?
High-tension power lines in the U.S. operate at 60Hz, and metal structures like poles may resonate subtly with that frequency. The observation stuck with me for nearly a year until a new idea struck:
Could we use controlled frequencies and vibration to mimic that same effect?
That’s how the Lanternfly Resonator was born.
I used an Arduino Nano to generate a tone signal.
A passive piezoelectric speaker outputs that signal as vibration rather than loud sound.
The speaker is mounted to aluminum tape stretched across a waterproof enclosure to act like a “drum” surface—amplifying subtle vibrations.
The whole system is powered by a solar-charged battery pack for field testing.
Spotted lanternflies (Lycorma delicatula) are an invasive species causing serious harm to trees and crops. If they respond to specific vibrational frequencies, we may be able to attract, trap, or redirect them without the use of harmful chemicals.
This project is a form of environmental bioacoustics—using vibration, sound, and material resonance to interact with species in an ecologically mindful way.
This is an early-stage prototype and part of a broader experiment in merging ecology, electronics, and intuition. The goal is not just control, but understanding—exploring how subtle forces like resonance and frequency shape the natural world around us.
More updates and field test results will be coming soon.
The Spotted Lanternfly (SLF) is an invasive species that threatens our local ecosystem—including native trees, crops, and biodiversity throughout the Susquehanna Valley. As their population grows, traditional control methods like tree removal and chemical sprays often prove costly, labor-intensive, or harmful to the environment.
This project explores a technology-driven, non-toxic approach to SLF deterrence using tools from the maker movement and environmental science.
Experiment with how SLFs react to low-frequency vibrations—particularly in the 200–300 Hz range, where they are known to communicate via plant tissues.
Explore whether these vibrations can disrupt mating behavior, feeding, or general movement patterns.
Design a low-cost, replicable model that could become part of citizen science efforts or community-based pest control.
I started this experiment using an Arduino Nano, connected to a passive piezoelectric speaker mounted to the stem of a Tree of Heaven sapling—the SLF's preferred host.
The Arduino runs custom code that sweeps through low-frequency pulses (200–300 Hz). These frequencies mimic the vibrational cues SLFs use to communicate. A second sapling acts as a control, receiving no artificial stimulation.
By observing the insects' behavior—whether they avoid, approach, or act abnormally—I’m studying whether behavioral manipulation through vibration is possible.
The code:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Initialize LCD (I2C address 0x27, 16 columns x 4 rows)
LiquidCrystal_I2C lcd(0x27, 16, 4);
// Pin Definitions
const int potPin = A0; // Potentiometer
const int buzzerPin = 9; // Passive speaker/buzzer
void setup() {
lcd.init(); // Initialize LCD
lcd.backlight(); // Turn on backlight
// Display startup message
lcd.setCursor(0, 0);
lcd.print("Spotted Lanternfly");
lcd.setCursor(0, 1);
lcd.print("Resonator Active...");
delay(2000); // Wait before starting loop
}
void loop() {
// Read potentiometer and map to 60–400 Hz range
int potValue = analogRead(potPin);
int freq = map(potValue, 0, 1023, 60, 400);
// Display info on LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SLF Resonator");
lcd.setCursor(0, 1);
lcd.print("Freq: ");
lcd.print(freq);
lcd.print(" Hz");
lcd.setCursor(0, 2);
lcd.print("Pattern: Buzz x4");
lcd.setCursor(0, 3);
lcd.print("Adjust knob to tune");
// Play 4 short pulsed warbling buzzes with built-in tone duration
for (int i = 0; i < 4; i++) {
int warble = random(-30, 30); // Create slight variation
tone(buzzerPin, freq + warble, 70); // Tone with 70ms duration
delay(100); // Wait while tone plays + recovery
}
delay(400); // Pause between sets
}