Past Cornell ECE Masters of Engineering Independent Design Projects

ECE 6930, V. Hunter Adams (vha3@cornell.edu)

In [2]:
from scipy.io import wavfile
from IPython.display import Audio
import numpy
from scipy.fft import fft
from scipy.signal import welch
import matplotlib.pyplot as plt
from IPython.display import HTML
plt.rcParams["figure.figsize"] = (20,3)
%matplotlib inline
In [3]:
HTML('''<script>
code_show=true; 
function code_toggle() {
 if (code_show){
 $('div.input').hide();
 } else {
 $('div.input').show();
 }
 code_show = !code_show
} 
$( document ).ready(code_toggle);
</script>
<form action="javascript:code_toggle()"><input type="submit" value="Click here to toggle on/off the raw code."></form>''')
Out[3]:

The centerpiece of the Cornell M.Eng. program is the professional project, in which students apply theory to a real problem, with the guidance from faculty, and often in collaboration with other students. This page describes the projects of my past advisees that have graduated.



Fall, 2023

Natural Timers for IoT

Author: Michael Awad
Abstract: This project investigates the merits of replacing timer peripherals with natural triggers in certain embedded systems applications. In some applications, one cares more about battery longevity than regularity of measurement timing. For these applications, a timer-driven sleep/wake cycle might be replaced with an event-driven dead/alive cycle. The embedded system could turn itself completely off and trust a periodic natural process (wind gusts, bird visitation, cosmic rays, etc.) to generate an event which wakes it for a measurement. Such an architecture could improve battery longevity at the cost of timing guarantees for measurements. This project describes the design and testing of a latching circuit which facilitates integration of these "natural triggers" into an embedded system, and compares power consumption between this architecture and the more conventional timer-driven architecture.
Report: Download here

Real-time Computer Vision Bird Feeder on Raspberry Pi

Authors: Tyler Bisk
Abstract: Using a camera connected to a Raspberry Pi, the objective is to build a bird feeder system that can perform object recognition on birds in real-time, stream the video feed to a server, and send the user alerts containing the resulting videos of birds. The project is divided into two parts: the embedded system and the web client. The embedded system consists of a Raspberry Pi 3 and a camera that work in tandem to capture, process, and output video to a server. This process uses computer vision to identify birds in the frame as they appear in real-time. The second half, the web client, is responsible for hosting the video feed and sending alerts to the user. These alerts also contain the species of bird identified in the frame. The front-facing web server allows the user to view the live video feed from anywhere in the world – not just within proximity of the Raspberry Pi. The results of the project include statistics on the performance of the neural network that is used for object recognition, such as the accuracy and speed of the model, false positive rate, and system reliability. Qualitative results regarding what succeeded and what failed are also provided, along with pictures of birds and the species that were identified by the system. The motivation and desired application of the project stems from the difficulty of inexpensively studying wildlife. Wild animals are easily scared by human interaction and do not
Report: Download here

Light Seeking Braitenberg Vehicle

Authors: Tangia Sun
Abstract: Braitenberg vehicles originated as a thought experiment to imagine intelligent behavior in insects; inherent sensor-to-actuator coupling in robotic systems to generate complex emergent behaviors. This project expands upon sensor-actuator circuitry without programmable logic. All “computation” will take place in the design of the circuit, relying on analog circuits to generate emergent behavior. A small glider will adjust its ailerons through photoelectric components to steer it towards a light source. We will characterize the behavior through its ability to follow a light probe and the strength of the adjustments in the aileron. This is most immediately relevant in data collection projects involving launching and scattering objects from low orbit, such as data collecting PCBs in deep forests or collecting atmospheric data. Analog boards can be significantly cheaper than functionally similar digital boards, which means advancements in quantity-based analog chips would trade off quantity, instead of cost, for low mission risk.
Report: Download here

Hardware Acceleration of Boids Flocking Algorithm

Authors: Romano Tio
Abstract: Despite the increase in computing power every year, the simulation of multi-agent systems often suffer from debilitatingly long runtimes. Traditional computers follow the Von Neumann architecture, with a general-purpose processing core which receives inputs and outputs, and is connected to a memory system. The Von Neumann architecture is an inherently serialized and memory restricted architecture, though it is easy to code for. GPUs serve as a more parallelized alternative, but are often very power-hungry and less area efficient compared to more customized solutions on FPGAs. This project tackles the creation of an accelerator for Reynolds' boids algorithm, leveraging principles of hardware-software codesign and providing documentation of the process. The hope is that by documenting the principles and advantages of targeting an FPGA, it can be made more approachable for the enterprising programmer to accelerate other algorithms using FPGAs.
Report: Download here

Steering Sound with a Phased Speaker Array

Authors: Christopher Bakhos
Abstract: This M.Eng. project involves designing a device with no moving parts that allows for the user to steer sound emitted from an array of speakers. It does so by driving those speakers as a phased array, in which the relative phase from each speaker is carefully controlled such that the sound waves constructively interfere in the desired direction. The development process of this project was fairly straightforward throughout most of the project. An incremental approach was taken to develop this project over the course of the semester. Development began with programming a single speaker to emit a sound. After unit-testing this capability, more speakers were added to the system and an oscilloscope was used to confirm that the phase of the sound sent to each could be independently controlled. With this ability, that phase was carefully computed in order to generate directional audio. The resulting device steers sound without moving the speakers or any other components.
Report: Download here

Standalone Wi-Fi Based IoT Systems Using the Raspberry Pi Pico-W

Authors: Chris Chan
Abstract: In June 2022, Raspberry Pi released a new RP2040 microcontroller, the Raspberry Pi Pico-W. The Pico-W is an augmentation of the Raspberry Pi Pico, taking the vast features of the Pico and adding Wi-Fi and Bluetooth through the inclusion of an Infineon CYW43439 chip. The objective of this project was to explore the Pico-W’s new features and lay a foundation for its use in large-scale networking applications. Exploration began with a deep dive into the new CYW43 driver in the Pico-SDK, as well as the Lightweight IP Stack (LwIP). Using this knowledge, we created a UDP demo that future ECE 4760 students can reference to incorporate wireless communication into their final projects without prior experience with the Pico-W or LwIP. The project culminated in the creation of a standalone Pico-W mesh network that identifies its own topology and optimizes its routing patterns accordingly.
Report: Download here


Spring, 2023

Naloxone Safety Kit

Author: Yilu Zhou and Zane Parker
Abstract: Our team seeks to address the ongoing opioid epidemic in the United States by designing and fabricating a highly-functional internet-based naloxone safety kit. The safety kit will provide publicly accessible naloxone, so it is easily accessible in emergency situations. Additionally, the safety kit is designed to automatically call 911 when opened using the Twilio VoIP service. This will reduce the amount of time required for individuals experiencing an opioid overdose to receive medical attention. The kit is wall-mountable, so it can be deployed in almost any space. The safety kit features a sleek and intuitive touchscreen display with labeled buttons and menus for easy navigation. A PCB is used to act as an IO hub, connecting the temperature sensor, door sensor, and built-in speakers. The device is designed to store the naloxone at the optimal temperature range to ensure maximum shelf life. This is accomplished by utilizing a temperature sensor and power-efficient fan. The team utilized laser cutting to fabricate the majority of the enclosure. Locking and mounting mechanisms were also manufactured using FDM 3D printing. In the event of a power or network outage, the safety kit will sound an alarm. Comprehensive software settings are provided, giving users full control over the device, including access to a passcode screen that allows only authorized personnel to modify the settings. Our project offers a potential solution to reduce the number of opioid overdose deaths and improve public health and safety. Using our CAD models, circuit diagrams, source code, and instructions provided for replication, it will be easy and straightforward for others to replicate and deploy safety kits of their own.
Report: Download here

Chaotic System Module for Acoustic Signal Processing

Authors: Liam Sweeney
Abstract: Mathematical systems that follow very different trajectories because of infinitesimally small differences in initial conditions are called "chaotic." These systems are certainly of interest to mathematicians, but they are also of interest to many physical scientists due to the chaotic nature of many natural processes. This project investigates whether they may also be of interest to musicians who configure modular synthesizers. These musicians do not "play" the synthesizer in a traditional sense, but instead configure the instrument. The musician configures probabilities for notes and note timing, and then the instruments generates music autonomously. This project developed a module for a modular synthesizer that uses a mathematically chaotic system to manipulate the instrument's configurations.
Report: Download here


Fall, 2022

Solar Powered GPS Tracker

Author: Stefen Pegels
Abstract: This individual MEng project seeks to develop and test a solar-powered fitness wearable, for use in tracking location for purposes of fitness activities. The project includes a circuit board design and layout from scratch with personally selected components and solar cells, as well as custom microcontroller software implemented on the board to achieve its desired functions. Finally, this project includes extensive testing including running exercises performed by the designer to test its GPS navigation system and path tracking. The major outcome of this project is the physical board itself, which can be used in multiple harnesses to fit many different scenarios, as well as GPS path data from multiple tests and an analysis of the effectiveness of the solar cell design in long-term deployment of the system. The components for this design include specific Surface Mount Technology (SMT) circuit board GPS, microcontroller, and solar charging circuit components. This project may seem like a somewhat primitive version of existing fitness wearables such as smartwatches, but it exists as an investigation into renewable energy for small-scale electronics with practical applications in the personal fitness of the designer. Its ability to charge a battery through solar energy will also be useful as it can run for long periods of time without any replacement power source. The first semester of work on this project encompasses a set of preliminary objectives, notably power sizing and solar cell selection, as well as complete component selection. Second semester work involves board fabrication, microcontroller programming, and outdoor field testing.
Report: Download here


Spring, 2022

Distributed Environmental Sensing System for the Johnson Museum

Authors: Mingyang Feng and Yingjia Zhang
Abstract: This project is a collaboration with the Herbert F. Johnson Museum of Art on campus. Art museum staff must regularly gather temperature and humidity measurements from throughout the museum. These measurements inform maintenance schedules and display locations for sensitive artwork. Light exposure could also inform these schedules, but the museum does not presently measure it with the same regularity. To help museum staff gather measurements, we developed an IoT system which allows them to remotely monitor the real-time environmental conditions throughout the museum. In particular, the system measures temperature, humidity, ambient light, and ultraviolet light. Each node in the IoT system is composed of multiple deployable sensors controlled by a low-cost and low-power microcontroller named NodeMCU. The IoT system gather data from these sensors at a programmable rate. All data are aggregated in a remote database and displayed on a personal website for users to access via the internet. A one-month test has been performed in the museum to verify the system works as per the requirements.
Report: Download here

Chaotic Oscillator as Sound Synthesis Controller

Authors: Zifu Qin
Abstract: In some circumstances, human ears are better than eyes at recognizing patterns. Researchers have sonified complex datasets, including DNA sequences, to use their ears to find patterns hidden from their eyes. By sonifying the well-known chaotic system – “Lorenz System”, this project qualitatively investigates the ear's response to a sonified chaotic system. To sonify the Lorenz System, the team built a microcontroller-based chaotic synthesizer which could generate sounds with chaotic patterns. In this project, the source of chaos was from modulated Lorenz Attractors which were mapped to the output frequencies of a Direct Digital Synthesis sine-wave synthesizer. The RP2040 microcontroller was used to implement the algorithm and send the generated digital frequency signals to a digital to analog converter to make sounds. This project was an exploratory experiment of sonifying a chaotic system. We found that the sonified chaotic system sounded vaguely natural and organic.
Report: Download here

In [13]:
samplerate2, data2 = wavfile.read('./one.wav')
Audio(data2[:,0], rate=samplerate2)
Out[13]:

Intelligent Dash Cam

Authors: David Pirogovsky
Abstract: Road trips are a core part of American culture, but recording them efficiently can be very difficult. One approach is to use a dashboard-mounted camera (dash cam) to record footage, but recording full-length videos in real time requires excessive storage and post-processing to capture highlights. Garmin's solution to this problem is the "Tavelapse" feature, essentially a moving timelapse with a fixed frame rate, but it is ineffective at creating smooth footage in varying conditions and fails to differentiate between interesting and boring scenery. This project aims to use a variable frame rate to create a more interesting, smoother timelapse using feature detection and matching techniques to better capture highlights. The concept has been proven using OpenCV implementations of the ORB feature detector (Oriented FAST and Rotated BRIEF) and brute force matcher. Each feature that is matched has an associated distance,and this distance is used to determine whether a match is good. Although other methods were explored first, the approach of looking at the proportion of good matches to overall matches over a window of frames was determined to be the best way to scale the frame rate, successfully creating a smoother, more interesting timelapse.
Report: Download here

Designing a Camera Module Driver Using Programmable I/O On Pi Pico RP2040

Authors: Yibo Yang
Abstract: This project aims to implement a camera module driver using the Programmable I/O (PIO) on the RP2040 microcontroller from Raspberry Pi. The PIO coprocessors enable high-speed control of the RP2040's I/O ports without any CPU intervention. Furthermore, these coprocessors can communicate data to and from the CPU via Direct Memory Access (DMA) channels. This makes them ideal for implementing high-speed communication protocols with external sensors and devices, like cameras. This report describes the progress made toward that goal. In particular, it describes a Serial Peripheral Interface (SPI) interface to a digital-to-analog converter (DAC) implemented in PIO assembly and fed by DMA channels. This report also describes ongoing work, including integrating an SPI camera module into the system, streaming the input data to a VGA screen, and implementing some other more complex camera interface drivers.
Report: Download here


Fall, 2021

Lab Prototype Board for the Pi Pico RP2040

Authors: Andrew Tsai and Felipe Shiwa
Abstract: The RP2040 is a low-cost, feature-rich microcontroller recently developed and released by the Raspberry Pi Foundation. Due to its potential as a teaching tool and for student projects, it has been chosen for evaluation as a potential replacement for the PIC32, the current microcontroller used in ECE4760, Designing with Microcontrollers. In this report, we detail our efforts to familiarize ourselves with the Raspberry Pi Pico and subsequently design a prototype lab board that implements it. We then assess our board as a replacement for the current PIC32-based lab board used by ECE4760 by analyzing its programmability and ease of interfacing, some of its hardware and software limitations, and lastly integrability into the course curriculum. We conclude with results from our development efforts in both hardware and software as well as a discussion on the educational value that the Pico and RP2040 can provide for the course.
Report: Download here

Analysis and Resynthesis of the Cornell Chimes

Authors: Alex Koenigsberger
Abstract: A bell produces a complicated sound. Its power spectrum can include dozens of irregularly-spaced modes, each of which decays at a different rate. As a result, they are difficult to synthesize and model using software. Bell-like sounds can be created using FM synthesis, but creating a parameterizable model of realistic bell music requires more sophistication. This was the objective for this project. To do so, each of the bell’s modes was modeled by a decaying sinusoid, and each sinusoid was parameterized by its frequency, initial amplitude, and decay time. This method was validated against the bells of the Cornell Chimes and produced a synthesized bell sound realistic enough to fool Cornell students in a blind listening test.
Report: Download here

In [4]:
samplerate1, data1 = wavfile.read('./MEng_Chimes_F_cut.wav')
data1 = numpy.array([float(i[1]) for i in data1[0:500000]])
print("Real bell recording")
Audio(data1, rate=samplerate1)
Real bell recording
Out[4]:
In [5]:
samplerate, data = wavfile.read('./lowF_resynth_16_noise.wav')
print("Synthesized bell")
Audio(data, rate=samplerate)
Synthesized bell
Out[5]:

Programming the Pi Pico RP2040 I/O Processor

Authors: Parth Sarthi Sharma
Abstract: In early 2021, the Raspberry Pi foundation launched a new microcontroller-the RP2040, which is a dual core, ARM Cortex M0 with an innovative input/output processor that can be programmed to produce custom waveforms and serial protocols. The system is programmable in Python or C, but the I/O processor is programmed in a custom assembly language (not ARM assembler). Prof. Hunter Adams and Prof. Bruce Land are considering replacing the existing PIC32 microcontrollers with RP2040 for the course ECE-4760 starting Fall 2022. I used a combination of dual core processor, DMA, and programmable I/O to create many programs and applications like SPI using PIO system and even created a TFT display library running independently on a PIO state machine that will be used by students taking the course starting next year. I also worked on some interesting applications such as Conway’s game of life, Google Dino game, Fractals and so on. On top of that, I also tested the performance differences in single core vs dual core applications. Lastly, I tested out various programs on the VGA screen using the VGA library created by Prof. Hunter Adams.
Report: Download here

Lab Prototype Board for the RPi Pico 2040

Authors: Emily Wang
Abstract: Designed by Raspberry Pi, RP2040 is a dual-core, ARM Cortex-M0+ processor with powerful internal peripherals. The Raspberry Pi Pico is an affordable and versatile board built using RP2040 that breaks out all its peripheral pins so the chip can be easily programmed and interfaced. The ECE 4760 class is considering building a prototype PCB that will provide a socket for the RPi Pico and provide a digital-to- analog converter, an LCD, an IMU sensor, a port expander, a VGA connector, and headers for connection to student-built circuitry. The new prototype will provide students with a greater variety of hardware opportunities and a better programming experience than the previous prototype using PIC32. In this prototype, we took suggestions from the previous development board and produced a compact 2-layer PCB that carries the RPi Pico and its hardware peripherals. Some firmware changes will also be made to run the existing code on the new PCB.
Report: Download here


Spring, 2021

Remote I/O for an FPGA

Authors: Anthony Viego
Abstract: With the COVID-19 pandemic, education has changed greatly. A majority of students now learn remotely, unable to gather in a lab and physically interact with devices. This has resulted in limitations on the kinds of projects, labs, and learning opportunities that students have available to them. In order to grant more freedom to students, specifically those in ECE 5760, this project has been developed to allow them to make use of peripherals and devices remotely through a GUI. Combined with custom logic implemented on the FPGA, students are able to fully utilize peripherals in a manner similar to before. The logic and GUI have been designed with ease of use in mind, ensuring that students will only need a few minutes to integrate it into their future projects. While the pandemic is coming to an end, we hope this project will be used to augment in-person labs and projects in the coming semesters.
Report: Download here