Senior year capstone project
Working with Lutron Electronics, designing and implementing a device diagnostics system for their IoT networks.Description
Lutron's system is implemented as a horizontally scalable hub and spoke architecture where a single processor can directly control a variety of end IoT devices. A single processor can control more than 100 devices and multiple processors can coordinate with each other to scale the system.
Each end IoT device can collect much more information than is currently accessible to Lutron. Crash reports, usage metrics and diagnostic data can be useful in detecting errors in fielded systems, projecting failures, and proactively managing issues before they become customer facing. Data must be captured on these end devices, exfiltrated from these devices to its controlling processor, possibly stored and aggregated on the processor, propagated to the Lutron cloud and ultimately made available for analysis. This project can allow students to work with small embedded devices, embedded Linux processors and AWS cloud services pulling data end to end.
Final poster
What we did
Phase 1: Learning.The team will work with Lutron stakeholders to learn about the technologies we use including communication protocols, embedded hardware, and device-processor-cloud information paths.
Phase 2: Software DesignThe team will be provided with a problem specification and top-level software architecture for the new feature set, but this phase will allow the team to explore the problem with the Lutron stakeholders and propose a detailed software design for the capability as laid out in the problem specification. The team will work with senior software engineers and architects at Lutron to learn how we do software design before beginning to code.
Phase 3: Device Data Exfiltration (Implementation)The first implementation phase will focus on implementing the software design proposed in phase two which will collect information on an end device and propagate it to its parent processor. In this phase, the team will work on both embedded devices and embedded Linux processors.
Phase 4: Cloud Data Upload & Processing (Implementation)The second implementation phase will focus on moving data collected onto the processors in Phase 3 to the cloud to support processing. Depending on the amount of time available for this phase, this phase may also include some amount of data processing and analytics.
My responsibilities
As a team leader, I was responsible for organizing the completion of deliverables by their deadlines and ensuring the architecture and implementation of our solution was correct.
I created a simulation framework using python scripts and a custom build of OpenThread, a Google sponsored open source implementation of the Thread protocol.