Project Ideas
The following are some ideas for the course project. At the beginning of the course, teams will be asked to submit a short proposal about the project they would like to work on. Possible projects are not limited to the following list. Each team, composed of three to four students, should work on a project that features some non trivial research and/or implementation challenges related to the sphere of cyber-physical systems. The project contributes to 50% of the final grade.
Autonomous Car
For this project, we will build an autonomous buggy car by instrumenting a R/C buggy car kit. Initially, the car will navigate using guidance from an indoor "GPS" system build with visual markers. The end goal is to build a system that can gradually learn about its environment and locate itself using vision alone.
For this project, you will work mostly on application-level development on a NVIDIA Jetson TX1 Development Kit. The kit features an NVIDIA X1 SoC with 4 ARM Cortex-A57 cores and a Maxwell GPU with 256 CUDA cores.
For this project you may be paired with a group of students already working on the project.
Smart Plant Monitor
The goal of this project is to build a "plant-in-the-loop" system. One of the main challenges will be in reliably sensing health parameters of the plant under observation and of the environment, and to actuate feeding/watering strategies accordingly. Ideally, the system should be able to work with different class of plants. As such, a few set of plant management strategies should be considered.
For this project, you may be collaborating with developers from a local startup. Despite a prototype is available, a number of challenges will lay in increasing the accuracy and reliability of sensed parameters. The adopted solution should also take into account budget considerations for a viable commercial product.
Spacecraft Control System
For this project you will interface with a spacecraft simulator like Kerbal Space Program, and you will develop an embedded control system to take-off, land, perform staging, and potentially orbital rendezvous of a realistic spacecraft. There is large freedom for the exact mission(s) that the developed controller should be able to perform. The basic itinerary is: takeoff from Earth (Kerbin); establish circular orbit; establish circular Moon orbit; detach lander module; land on Moon (Mun). An advanced mission could comprise re-docking the lander module with the mother ship and bring the astronauts back home.
Two machines will be used for this project. (1) A "spacecraft" machine running KSP. This machine will send state variables about the simulated spacecraft to the "controller" machine, and accept inputs from the controller machine. (2) A controller machine will read the status of the spacecraft and produce actuation commands to advance in the mission. The controller machine will be an embedded development board of student's choice. The suggestion is for an ARMv7-A or ARM-v8 platform.
Hacking Lightbulbs
In this project you will hack commercial WiFi-enabled lightbulbs to compromise private networks from the inside. We will exploit three main properties of these devices. They are exposed on the network and locally store credentials to access the network; they produce a signal that is visible from the outside without need for authentication (i.e. their light). Finally, they are cheap, so one can experiment with different types and protocols.
The main idea is to compromise the lightbulb, then use its light-emitting properties to leak secrets on the outside. For this hack, a companion mobile application could be developed to discover compromised lightbulbs around the city.
Capture the Flag on MCUs (Security Challenge)
Micro-Controller Units (MCUs) are simple embedded processing platforms. A typical MCU runs applications using a simple operating system, or with no OS at all (bare-metal). In this project, you will be given a development kit for an ARM COrtex-M0 MCU. The task at hand is to implement a secure ATM device and to hack the system developed by other institutions around the country.
This project will run in parallel with an actually security challenge, namely the "Embedded Capture the Flag" (eCTF) competition organized by the MITRE Corporation. As such, the project will be performed in three phases: (1) development of a secure ATM device that meets the provided functional requirements; (2) verification of compliance of the code by the MITRE corporation; (3) attack of other institutions' implementation to capture as many flags as possible.
More info about the competition available here: MITRE eCTF.
Tunable Interconnect
For this project we will dive deep into the world of reconfigurable hardware platforms. These platforms are cutting-edge technology made available only in late 2017. Specifically, we will be focusing on Xilinx UltraScale+ platforms. These systems feature full fledged embedded cores and FPGA on the same chip. The additional reconfigurable logic allows one to define new system components that interact with the rest of the system to increase its functionality and/or performance.
For this project, you will be in charge of defining a new interface between embedded CPUs and main memory. The new interface should be able to support memory traffic policing. In a sense, the goal is to achieve QoS control on-chip. If this is successful, an attempt can be made in modeling the behavior of the system with the new interconnect, and to export provable performance guarantees.
More info about the Xilinx Zinq UltraScale+ platforms are available here: here: Xilinx Zynq UltraScale+.
Real-Time DMA
For this project we will once again use reconfigurable hardware platforms. As mentioned above, these platforms are cutting-edge technology made available only in late 2017. Specifically, we will be focusing on Xilinx UltraScale+ platforms. These systems feature full fledged embedded cores and FPGA on the same chip. The additional reconfigurable logic allows one to define new system components that interact with the rest of the system to increase its functionality and/or performance.
For this project, we will design and implement a Direct Memory Access (DMA) engine capable of delivering real-time guarantees. Specifically, we will design a DMA controller capable of providing additional control primitives to be used by a real-time OS (RTOS).
More info about the Xilinx Zinq UltraScale+ platforms are available here: here: Xilinx Zynq UltraScale+.
Task Cache Analysis
Ever wondered how an application interacts with the underlying hardware? The goal of this project is to discover ways to snapshot, analyze, and leverage the behavior of an application in cache. The outcome of this project can vary. One possibility is to deterministically improve application performances on modern multi-core platforms. Another is designing advanced support in the OS to take more informed scheduling decisions.
The first step in this project will be the design of a low-overhead approach to collect information about the interaction of applications with caches. Next, an analysis technique to infer cache usage properties should be developed. Finally, novel OS-level strategies to take advantage of the extracted behavioral data should be deployed. It may necessary to tap into machine learning techniques to efficiently process the large amount of data that will be extracted in this project.
Meltdown Patch
The world was appalled to recently learn that the vast majority of modern high-performance CPUs are vulnerable to the so called "Meltdown" attack. In a nutshell, this attack leverages on a design flaw in the support for speculative execution to bypass memory access permissions. As a consequence, non-privileged applications can read the content of memory locations that should only result accessible to the operating system.
KAISER is currently considered the best way to protect against the Meltdown attack. The KAISER approach, however, negatively affect system performance. Can you design a more efficient patch for the OS to prevent the attack or to mitigate its effects? The idea here is to dive deep in why and how the attack works. Next, a number of attempts to correct the problem should be suggested, outlining the benefits and drawbacks of each approach.
More info about the Meltdown attack are available here: the Meltdown Attack (whitepaper)
Meltdown patch