While it may seem that Waggle is focused on hardware, the opposite is true.  Yes, we have an innovative smart power management board and a slick default sensor board, the Waggle software is where all the modularity and flexibility of an open platform is demonstrated.  The Waggle software stack has three major parts:

1) Software in the Sensor Modules. In the waggle architecture, sensors are composable and modular. The default Waggle Sensor Board uses an Arduino microcontroller to sample and calculate data points. Data from the sensors is sent to the Node Controller via a serial line. Other sensor modules could run their own embedded code and send data to the Node Controller via USB, I2C, or even Ethernet.

2) Software in the Waggle Cloud. Waggle nodes collect and the cache data locally.  Data is then pushed via secure connections to a set of cloud servers. We call our set of cloud machines the “Beehive”. For ease of deployment, the Waggle Cloud software is packaged into a virtual machine.

3) Software in the Node Controller. The picture below shows a block diagram of software components in the Waggle Node Controller. A description of the components is provided below.

Node Controller Software

Node Controller Software

The Peach-colored boxes above are all parts of the Waggle software for the Node Controller.