Giter Site home page Giter Site logo

fandilladp / clusterduck-protocol Goto Github PK

View Code? Open in Web Editor NEW

This project forked from clusterduck-protocol/clusterduck-protocol

0.0 0.0 0.0 40.81 MB

Firmware for an ad-hoc mesh network of Internet-of-Things devices based on LoRa (Long Range radio) that can be deployed quickly and at low cost.

Home Page: https://clusterduckprotocol.org

License: Apache License 2.0

C++ 70.16% C 29.84%

clusterduck-protocol's Introduction

Logo

License Slack Wiki Build Status

Why are We Building CDP?

In 2017 a category-5 Atlantic hurricane, Maria, hit Puerto Rico and destroyed most of the island's infrastructure. Cellular and power were disabled for an extended period of time leaving medical and communications problems long after the hurricane passed. If access to a basic communications network was available, the community could have connected with emergency services, local government, or family to mitigate some of the widespread problems resulting from this disaster.

What is the CDP?

The ClusterDuck Protocol was created by Project OWL to be an easy to use mobile ad-hoc mesh network that can be accessed by people without the need to have specific hardware or pre-downloaded software (such as a mobile app). Since its creation, the vision for the ClusterDuck Protocol has grown beyond only servicing people in need after a hurricane towards additional use cases around earthquakes, wildfires, cellular congestion (large events), sensor networks, and more. Project OWL open-sourced this project so that the ClusterDuck Protocol could reach the communities that need it as fast as possible and continue to explore new directions.

How does it work?

The network is made up of multiple nodes called "Ducks". There are 3 core roles in a ClusterDuck network: DuckLink, MamaDuck, and PapaDuck. DuckLinks serve as edge nodes that only transmit data. These function as remote sensors or as additional access points to a Captive Portal. MamaDucks inherit the same functionality of the DuckLinks, but also receive messages. MamaDucks repeat messages from DuckLinks and other MamaDucks until the message reaches a PapaDuck. PapaDucks are the endpoint of the network where all of the data is collected and can be stored or pushed up to the cloud. (free tier cloud DMS platform in BETA! Reach out to us on Slack for more info)

overview

Installation

Check out the Wiki to learn how to build your own ClusterDuck Protocol Network. And go to the ClusterDuck Protocol website for more information and to learn about projects built upon this codebase. You can reach out directly on our Slack Workspace for any questions and work with the community.

To use the ClusterDuck Protocol follow the Installation Manual.

Testing

From the project root, run the following snippet:

g++ -g -Wall -DCDP_NO_LOG test_bloomfilter.cpp src/bloomfilter.cpp -o test_bloomfilter && ./test_bloomfilter

This runs an acceptance test for the bloom filter.

How to Contribute

We host a bi-weekly CDP Town Hall on Mondays at 2pm ET. The town hall is the place to get updates on protocol, get your questions about CDP answered, and discuss on-going projects. All the current projects is documented in a public roadmap in Trello.

On the other Mondays (when there is no Town Hall), we host a live stream. Visit OWL's YouTube Channel for updates.

Please read CONTRIBUTING.md for details on our Code of Conduct, the process for submitting ClusterDuck Protocol improvements, and how to join our town halls and livestreams.

This project is governed by its Technical Charter and led by its Technical Steering Committee.

Contributors

License

This project is licensed under the Apache 2 License - see the LICENSE file for details.

Version

See library.json (PlatformIO) or library.properties (Arduino).

v3.3.5

clusterduck-protocol's People

Contributors

amirna2 avatar brentonpoke avatar derekteay avatar developersteve avatar dhruvag2000 avatar evilgeniusnerd avatar faradaym avatar felmue avatar gozu42 avatar iuuukhueeee avatar knouse1344 avatar krook avatar marcvelasco avatar mrarm avatar nfeuer avatar r41d avatar rolsen avatar salzi avatar teikahym avatar timowielink avatar tqrahman avatar trentbrown13 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.