Data Oriented Gateway Engine

Version 4

    Project update 5/5/2015 - HackerLab IoT Incubator Program

    We've continued to work on this project as a participant in the Sacramento HackerLab IoT Incubator program. There is now a webserver user interface and new microcontroller firmware supporting multi-hop packet routing. Our team has also grown to include two more members - Mario Escalante and Trushant Kalyanpur.

     

    doge_network.png

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    Above is the current webserver interface based on vis.js for viewing and altering the radio network. Each node is colored for the kind of radio is supports and the edges represent an estimate of the link strength. A user is able to change which paths a packet can be routed over by using the ‘Mask Node/Edge’ function from the top toolbar. Routes can also be manually added or deleted through this interface.

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    The webserver provides an additional interface for visualizing the data from nodes over time via angular-charts. In this example, 10 nodes were simulated to upload a random RSSI value. The graph automatically scrolls as new data is received, and displays additional information when the user selects a specific trace; the interface permits selectable zooming, as well.

     

     

     

    multihop_unicast.png

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    This image shows Node1 sending a message to Node3 using Node2 as an intermediate router. The wider pulses means a node is transmitting or receiving a full packet. A shorter pulse shows that a node has heard there is a packet on the air, but since the destination ID doesn’t match the node ID the radio filters out the packet and stops receiving it. This means the link and application layers aren’t tied up processing this packet so the node is free to listen for a different packet instead.

     

     

     

     


    Project Summary

    The goal of our project is to develop a framework for managing and testing a network of wireless sensors.

    The components of the network will be encapsulated so that a user can easily test different aspects such

    as topology, traffic management, and communication protocol. The team for this project consisted of

    Mark Bunney and David Buchman.

     

     

    Resources:

    Project repository: bunneydude/DOGE · GitHub

    Power & Sensor Subboard: bunneydude/sensor_node · GitHub

    Leaf Node: bunneydude/leaf_node · GitHub

    Blog - hardware aspects: The Electronics Cache

     

     

    Hardware

    Two types of nodes were developed for this project: the BoosterPack Node and the Leaf Node. The

    BoosterPack Node is based on Texas Instrument's CC110L RF BoosterPack kit and uses a 915MHz radio

    along with an optional 2.4GHz radio. The Leaf Node is a custom board with an LPC812 microcontroller

    and 2.4GHz radio. Both nodes include a temperature sensor.

     

    To assist in adding new nodes to the network, two smaller boards were made to provide power

    and environmental sensors. The Power Subboard provides a 3.3V supply derived from USB, single-cell

    LiPo battery, or a coin cell. The three power sources are hot-swappable and the current power source is

    represented by two open-drain outputs. Hardware-based undervoltage LiPo protection and charge circuit

    are also included.

     

    The Sensor Subboard integrates several common sensors into a small package. It includes pressure,

    altitude, temperature, relative humidity, ambient light, IR light, UV index, and a microphone with

    digitally controlled amplifier. The sensors share the same I2C bus and all interrupt pins are broken out

    to the breadboard-compatible header.

     

     

    Software

    Currently the network is managed from an Intel Edison board with both a 915MHz and 2.4GHz radio.

    An Arduino sketch interfaces with the radios and posts its data to a Python thread via shared memory.

    The data is formatted and sent over a socket to a webserver running on Edison. The webserver is able

    to plot certain aspects of the network in real time.

     

     

    Pictures

    demo_log.jpg

    Plot of signal strength from four 915MHz nodes over time via the webserver.

     

     

    boosterpack_node.jpg

    MSP430, 3.3V LDO, temperature sensor, and 915MHz radio.

     

     

    leaf_node.jpg

    LPC812, temperature sensor, and 2.4GHz radio.

     

     

    power_subboard.jpg

    Power Subboard

     

     

    sensor_subboard.jpg

    Sensor Subboard