Weeks Zero / One

Weeks Zero / One

Wednesday, March 8, 2017

LAURA Team

this week: We met to talk about how we want to go about starting our project. We ordered parts and discussed specific functionality that we want to include in the LAURA E Ink "app" and the iOS and Web Apps.

moving forward: Gather around a whiteboard to draw out the entire system and communication between functional blocks. Order all hardware.

Abhi

this week:

  • Designed the first iteration of the user interface for LAURA's E Ink display
  • Researched LoRaWAN networking protocol
  • Designed several options for button layout on LAURA devices

moving forward:

  • Have initial wireframes displayed on E-Ink display and figure out with what and how we're going to drive the display in our device
  • Use LoRaBug’s bluetooth to communicate with a non-LoRa device
Madison

this week:

  • Set up MongoDb collections for assets, beacons, and messages
  • Wrote a basic Node.js web app for admin to display, register, and edit assets and beacons, and to display and send messages to devices

moving forward:

  • Improve web app with data validation on input forms, result filtering, and a dashboard for quick search and new device registration
  • Set up an iOS app with table views for assets, messages, etc.
  • Look into using Socket.io for a more real-time web app experience
Vivek

this week:

  • Ported Decawave firmware to the Raspberry Pi platform
  • Got time-of-flight ranging working with two Decawave chips
  • Looked into options for how to improve accuracy of Decawave ranging

moving forward:

  • Complete PCB design
Colin

this week:

  • Researched LoRaWAN networking protocol
  • Designed peer-to-peer (p2p) packet structure
  • Designed p2p handshake sequence
  • Worked on algorithm to send p2p messages
  • Researched / verified LoRa's low power consumption

moving forward:

  • Have a working LoRa network between two devices, capable of sending basic packets and receiving them

Weeks Two / Three

Weeks Two / Three

Wednesday, March 22, 2017

Abhi

this week:

  • Implemented control of E Ink display over serial through the Raspberry Pi
  • Struggled to set up CCS toolchain

moving forward:

  • Get BLE working on launchpad and LoRabug
Madison

this week:

  • Added dashboard to web app with options to register new LAURA devices

moving forward:

  • Set up iOS app with table view for messages
  • Add data validation on web app forms
  • Start localization API
  • Research BLE implementation for iOS
Vivek

this week:

  • Completed preliminary PCB design

moving forward:

  • Add charging circuit to PCB design for final PCB version
Colin

this week:

  • Attempted to get two LoRabugs talking
  • Failed and only got 80% of the toolchain installed

moving forward:

  • Implement basic p2p communication abilities between two LoRabugs

Week Four

Week Four

Wednesday, March 29, 2017

Abhi

this week:

  • Completely set up CCS toolchain
  • Got BLE Project 0 working on TI launchpad
  • Did not get BLE working on LoRabug

moving forward:

  • Get BLE working on LoRabug
  • Have LoRaBug connect to iOS app over BLE
  • Implement the E Ink pager GUI and add button control
Madison

this week:

  • Majorly refactored server code
  • Added form data validation to the web app
  • Started localization API
  • Set up iOS app with messages list view populated from API requests

moving forward:

  • Allow posting from / refreshing of iOS app
  • Implement Bluetooth Manager in iOS app
  • Have LoRaBug connect to iOS app over BLE
  • Complete localization API
Vivek

this week:

  • Updated the PCB design to include the charging circuit

moving forward:

  • Submit final PCB design by Friday (3/31)
  • Port the Decawave library to the CC2650
Colin

this week:

  • Figured out that we were installing the toolchain wrong and installed it correctly
  • Achieved p2p communication between two LoRabugs

moving forward:

  • Set up LoRa base station
  • Have base station be able to service requests from LoRabug
  • Design algorithm to allow the switch from central server mode to p2p mode

Weeks Five / Six

Wednesday, April 12, 2017

Abhi

this week:

  • "Oh no"
  • Got Bluetooth working on LoRaBug
  • Have LAURA UI wireframes ready and working with RPi

moving forward:

  • Test communication over BLE between LoRaBug and iOS app
  • Port E Ink driver to LoRaBug
Madison

this week:

  • Server app running on RPi
  • Implemented Bluetooth support / communication in iOS app and connected to LoRaBug (and housemate's FitBit)
  • Post messages to server from iOS app

moving forward:

  • Test communication over BLE between LoRaBug and iOS app
  • Set up user accounts / notion of LAURA user devices
  • Get boys to tell me what they need for the localization API
Vivek

this week:

  • Assembled boards
  • Got Decawave library compiling with TI RTOS

moving forward:

  • Get entire board working and Decawave talking
  • Attempt to 3D print an enclosure
  • Discuss code structure for LAURA components
Colin

this week:

  • Set up RPi server
  • Serial communication between LoRaBug and server
  • Algorithm for switching to P2P communication between LAURA devices

moving forward:

  • Work on inbound communication for LAURA from server
  • Discuss code structure for LAURA components

The Final Push

Wednesday, May 3, 2017

Abhi

this week:

  • Integrated BLE and LoRa code
  • Able to send messages to and receive messages from iOS app
Madison

this week:

  • Web app receiving Decawave localization data from assets for location updating
  • Web app accepting messages over serial from central gateway for database storage
  • iOS app sending messages to and receiving messages from LAURA device over BLE
Vivek

this week:

  • Assembled hardware and got buttons working
  • Designed and 3D-printed cases
  • Decawave chips on asset devices sending localization data to central server
Colin

this week:

  • Assisted Abhi with BLE / LoRa integration
  • Wrote "central server" LoRa communication algorithm
  • Rewrote E Ink drivers
  • Switching from communication through gateway to P2P communication

The Demos

Friday, May 12, 2017

LAURA Team

private demo: By the private demo, we were not quite where we wanted to be with our deliverables. While our hardware was assembled, the ribbon cables we ordered to connect our custom PCB and the LoRaBugs were extremely delicate, and we were unable to fold them, without breaking them, into the shape we needed for our hardware to fit inside the 3D-printed cases with the E Ink display screwed down.

LAURA Device Innards
LAURA + E Ink
Custom PCB Schematic
LoRaBug

The LoRaBugs were able to send and receive message packets peer-to-peer, as well as through the central gateway, though at this point we were still having issues integrating the BLE and LoRa code. As such, there was no communication between the LoRaBugs and our iOS app, though both ends were ready and tested for our decided protocol. The central gateway LoRaBug had the capability of writing message packets over serial to our Raspberry Pi server for storage in the database and display on an admin-facing web app, though we did not have this up and running.

LoRaBugs Communicating in P2P Mode
Networking Protocol

Finally, assets were able to send accurate Decawave localization data of their locations relative to nearby beacons to the RPi server over a TCP socket for storage in the database and display on the web app.

Admin-Facing Web App
Decawave Localization History

public demo: For the public demo, we finally had our BLE and LoRa code integrated! By the end of the demo, we were able to use Abhi's phone to connect to one LAURA device over BLE, send a message packet on the network to another LAURA device connected to Madison's phone over BLE, and see the message pop up both on the E Ink display of the receiving device and in our iOS app, in under one minute. Unfortunately, in the time between our private demo and the public demo, the same Decawave code that was working to send asset localization data stopped working, and we were unable to demonstrate this aspect of our app.

iOS App Contact Screen
Time 2 Graduate