Introduction/Rationale:
Large groups of fireflies have been observed to synchronize their blinks in their natural environment. This behavior is seen across multiple distinct species of fireflies, including Photinius carolinus, Pteroptyx cribellata, Luciola pupilla, and Pteroptyx malaccae. The fireflies possess limited visual range, and yet are able to synchronize across large swarms made up of thousands of insects. Research groups have demonstrated that fireflies do indeed synchronize, even though their limited eyesight allows them to communicate only across short distances. They have also observed that each species has a distinct frequency of synchronized flashing. They have hypothesized that this synchronized flashing enables the fireflies to more efficiently identify mates of the same species.
A few different groups have attempted to model firefly programmatically, and at least one has created a simple physical model of a group of fireflies. We plan to physically model fireflies in a simplified physical system and use that system to explore the effectiveness of different algorithms in a real world setting.
This work is being done ultimately to improve network communications by studying the function of natural systems that have been optimized by evolution, such as firefly networks.

Engineering project goal:
We will investigate the fundamental algorithms behind the natural synchronization of fireflies. We will use interlinked Arduinos to develop a simplified physical model of firefly swarms, investigate how variations in the algorithm impact synchronization speeds, and investigate how the shape of the swarm impacts synchronization.

Procedure:
Each Arduino models a “firefly” in a firefly swarm. These fireflies blink an LED at a given frequency, and modulate their offset based on the fireflies around it. Each firefly communicates to each connected firefly through serial communication. Each firefly determines its offset to the fireflies connected to it based on the data it receives. Over time, the network as a whole will collapse on one timing and become synchronized like a real swarm of fireflies.
In order to begin each program simultaneously, each Arduino is wired up to a central start button. This start button is one of the major controls we've placed on the system.
The individual firefly arduinos will each be loaded with the exact same program that has been written in the Arduino Integrated Development Environment (IDE). The arduinos each then adjust their behavior based on the behavior of their neighbors.
The only safety risk identified is a low risk of fire hazard caused by powering the large group of Arduinos. Care will be taken to follow manufacturer instructions on the number of connections per power cord, and total expected current.

Materials:
20 Arduino Megas. Arduinos are highly extensible simplified computers, and the mega has sufficient ports to connect to three other fireflies at once.
Arduino specs include:
  • Operating Voltage 5V
  • Input Voltage (recommended) 7-12V
  • Input Voltage (limits) 6-20V
  • Digital I/O Pins 54 (of which 15 provide PWM output)
  • Analog Input Pins 16
  • DC Current per I/O Pin 40 mA
  • DC Current for 3.3V Pin 50 mA
  • Flash Memory 128 KB
  • SRAM 8 KB
  • EEPROM 4 KB
  • Clock Speed 16 MHz
Each Arduino uses:
  • 1 Power cord
  • 1 LED
  • 6 Wires
The arduinos will be suspended on a physical net constructed from paracord, carabiners and key rings.

Data Collection and Analysis:
A set of different algorithms will be loaded onto the "swarm" of arduinos, and the performance of each algorithm measured. The primary measurement will be the time to synchronicity for the swarm. That time will be recorded by each Arduino independently in order to asses the variability within the system.
The same procedure will be used to assess the time to synchronicity for different shapes of the firefly network. The algorithms/configuration that minimize the speed to synchronicity will be considered most successful.
Bibliography:
Strogatz, S. H., & Stewart, I. (1993). Coupled Oscillators and Biological Synchronization. Scientific American, 102–109.
Arduino - MultiSerialMega. (n.d.). Retrieved October 17, 2016, from https://www.arduino.cc/en/Tutorial/MultiSerialMega
University, C. (n.d.). Synchronized Flashing in Fireflies. Retrieved from http://people.scs.carleton.ca/~arpwhite/courses/95590Y/notes/SI%20Lecture%2023a.pdf
Buck, J., Buck, E., Case, J. F., & Hanson, F. E. (1981). Control of Flashing in Fireflies. Journal of Comparative Physiology. A. Retrieved from http://people.math.gatech.edu/~weiss/uploads/5/8/6/1/58618765/buck_control_of_flashing_in_fireflies.pdf
National Park Service. (2016). Synchronous Fireflies. National Park Service. Retrieved from https://www.nps.gov/grsm/learn/nature/fireflies.htm