Skip to content
This repository has been archived by the owner on Sep 28, 2022. It is now read-only.

Guide to the Repos

Sean Shahkarami edited this page Apr 10, 2019 · 19 revisions

Guide to the Repos

The Waggle code base consists of a number of different repos. This document is intended to provide an overview of how all of these fit together.

Beehive Stack

The beehive stack is our server side code base. It consists primarily of Docker containers and a set of tools for exporting our datasets.

Container code and tools for all the main services on the server side.

Node Stack

The node stack makes up all the software and firmware which collectively gets deployed to our nodes. It's broken up into a number of repos which are deployed to the node controller, edge processor devices and our two custom management and sensor boards.

Contains code and tools common to node controller and edge processor.

Contains code and tools specific to node controller, in particular, things related to node level tasks suchs as registration and managing connections to beehive.

Contains code and tools specific to edge processor, in particular, related to the image and audio processing pipeline.

Contains a number of different "plugins" which can be run on the node. Plugins are typically small pieces of code for reading and processing sensor data, which is then enqueued to be sent to beehive.

Contains firmware and tools for the Wagman, our custom device for monitoring and keeping the node alive.

Contains firmware and tools for the Coresense, our custom sensor board used to collect a wide-variety of environmental data. This is currently configured to be read by a plugin on the node controller.

Public Tools and Libraries

We also maintain a few common tools and libraries to help ouselves and others write plugins and process the datasets.

Contains a variety of tools for working with the datasets.

pywaggle is our Python module providing a variety of functionality for things like writing plugins and working with our custom protocols.

eWaggle is an in-development C/C++ implementation of similar functionality to the pywaggle module targetting small devices and microcontrollers.