Place some devices (any device IOT nodes, mobile phone or any thing that can scan surrounding and send data over some network e.g. Bluetooth, ZigBee) around, it should just stay connected. No setting up some wifi or anything, just connected.

What it does

Calculates water-flow with sensor and sends to server via SAMI. Now the server detects anomaly in water usage of the area. We have certain types of device installation e.g. Domestic, Agriculture, Industrial. Anomalies can be detected in each classes separately. If anomaly count exceeds a threshold a message can be sent to the consumer.

We have designed a application level network architecture to bridge heterogeneous network e.g. Bluetooth, ZigBee or any other network that supports two basic functionality SCAN and SEND. Only some devices e.g. a smart TV of your home or maybe your mobile phone (we are calling that a gateway node) need to stay connected to internet (800:1).
All other device should be able to connect to at least one other devices (maybe internet connected device or not) via any network.
With this approach connecting a new device is just like placing it physically within the range of any other device.


Alt text


  1. Can create a network with multiple underlying network
  2. Scale up very efficiently
  3. Only 280k memory footprint
  4. Negligible CPU load
  5. End-to-End encrypted. Optionally signed data flow.
  6. open source
  7. Can connect a very large pool of devices very effectively

Challenges I ran into

Documentation. Documentation about lower level stuff is rarely adequate.

Accomplishments that I'm proud of

  1. using mem* function in real life code
  2. debugging 4 threads simultaniously
  3. Connecting diverse array of devices like magic

What I learned

Handle every possible outcome, no matter how unlikely the outcome is.

What's next for Infinity

  1. Implementing more driver for other network types
  2. porting to Real Time OS

Built With

Share this project: