Past Cornell ECE Masters of Engineering Independent Design Projects

ECE 6930, V. Hunter Adams

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.



Spring, 2024

Threading and Networking Developments for the Raspberry Pi Pico W

Authors: Harris Miller and Liam Kain
Abstract: The course ECE 4760 – Digital Systems Design Using Microcontrollers recently switched from the Microchip PIC32 to the Raspberry Pi Pico W, leading to a whole new set of learning opportunities by offering more advanced hardware capabilities. While open source examples exist that use FreeRTOS to implement real-time process scheduling and lwIP for TCP/IP networking capabilities, few resources detail their implementation and even fewer utilize both libraries at once. This report details how the implementation of a WiFi “walkie talkie” on the Raspberry Pi Pico W platform served as a culminating project for the integration of the FreeRTOS with lwIP, the infrastructure we developed for future student work, and the future work to be done to convert this proof-of-concept into an ECE 4760 laboratory exercise.
Report: Download here
Poster: Download here $\longleftarrow$ Category winner: Communications

Speed of Light Measurement using Time Domain Reflectometry on RP2040

Authors: Spencer Davis
Abstract: This project is an exploratory experiment to determine the capacity of an RP2040 microcontroller to measure the speed of light using the concepts exploited by a time domain reflectometer (TDR). TDRs leverage mismatches in a cable to measure the speed of light. This can be used to determine qualities like the length and quality of the cable and termination impedance. A handheld TDR can typically cost a user anywhere from $200 – $2,000, whereas a Raspberry Pi Pico costs approximately $4. This project aims to explore ways to implement a TDR using the RP2040 and to explore the boundaries in accuracy and precision in measuring the speed of light. The project involves designing and implementing a pulse generator and wave measurement scheme and thoroughly testing the system's capabilities to determine its usability in various experimental setups. Listing out the system's capabilities gives insight into its use cases classified by price vs. accuracy tradeoff. The project will continue to include the development of a straightforward user interface that allows users to quickly and easily pick up one of these and connect it to any BNC-terminated cable, allowing for a simplified experience
Report: Kept private for IP protection
Poster: Kept private for IP protection

Low-Cost Virtual Fencing for Livestock Management

Authors: Yiyang Zhao and Ang Chen
Abstract: This project introduces a revolutionary virtual fencing system designed to enhance livestock management through advanced technology, significantly reducing the need for physical fencing. Utilizing the Raspberry Pi Pico W and the Adafruit Flora GPS Module, the system provides real-time geolocation of livestock across diverse terrains, while also monitoring behavior and health through an integrated Inertial Measurement Unit (IMU) and a temperature sensor. The system employs Wi-Fi and WebSocket for seamless data transmission to a user-friendly web interface, allowing farmers to monitor and manage livestock remotely. Future enhancements include expanding network coverage via LoRa technology, supporting multiple fencing boundaries, and integrating non-invasive guidance mechanisms to steer animals within designated perimeters.
Report: Download here
Poster: Download here

Translation of CNN Model for Hardware Acceleration

Authors: Nikhil Mhatre, Devin Singh, and Junze Zhou
Abstract: Convolutional Neural Networks (CNN) help process raw information from the environment and transform it into actionable knowledge. Currently, general-purpose CPUs are commonly used as a software platform for running inference with CNNs. This is due to the simplicity of development and training with common C++ and Python programming languages. CNNs perform highly repetitive and computationally intensive calculations that specialized hardware can use for better performance. We believe a hardware description language (HDL) implementation of a CNN on a Field Programmable Gate Array (FPGA) can utilize the unique architecture for a faster prediction time while maintaining accurate results.
Report: Download here
Poster: Download here

Robotic Mobility Assistive Device

Authors: Zhihao Xu, Yiqi Sun
Abstract: The Revival of Motion (ReviMo) project, founded by Aleksandr Malashchenko, aims to design and manufacture an innovative mobility device for people with disabilities. This initiative addresses the critical need for enhanced mobility solutions that promote independence and reduce caregiver dependency. The project focuses on developing a user-friendly, remotely operable device adaptable to various environments. It includes stages from initial design and testing to prototype development and final product refinement. The expected outcome is a fully functional prototype leading to a commercially viable product, transforming the daily experiences of individuals with disabilities by offering new levels of autonomy and comfort. Central to this project is the development of an intuitive and responsive motor control system. Utilizing the SVD48V motor driver and Raspberry Pi Pico, the system is operated via a joystick, providing a foundation for motion control in robotic mobility assistive devices.
Report: Download here
Poster: Download here

Natural Timers for IoT continued

Authors: Chris Yang
Abstract: This project explores replacing timer peripherals with natural triggers in IoT applications. In many IoT applications, sensors are often paired with a real-time clock (RTC) peripheral for scheduling measurements on sleep/wake cycles. Traditional IoT devices would implement a sleep/wake cycle in which the microcontroller is asleep for a timed duration, has a scheduled wake-up, and takes a sensor measurement. Upon waking up, the microcontroller completes a desired task (e.g. logging information) and goes back to sleep. The problem with this is that in many microcontrollers like the RP2040-based Raspberry Pi Pico, the sleep mode is still very power-hungry and would still produce poor battery longevity. This project aims to replace this sleep/wake cycle with a dead/alive cycle in which the microcontroller is at a completely off or “dead” state with zero power consumption when waiting for a natural trigger. Using this notion, this project integrates a piezo sensor with a latching circuit that allows us to use a natural process to replace a timer in an IoT system.
Report: Download here
Poster: Download here

FPGA-Based Realtime Video 2D FFT Accelerator

Authors: Ruyi Zhou, Yibin Xu
Abstract: Advanced Semiconductor Materials Lithography Holding N.V. company (ASML) seeks a solution to compress the size of the input images for real-time alignment. To address this, we propose the implementation of two-dimensional (2D) Fast Fourier Transform (FFT) on real-time input images. However, the computationally intensive nature of the FFT algorithm can increase latency. To counter this, we aim to develop an Field Programmable Gate Array (FPGA) based accelerator, leveraging the parallel computing capabilities of FPGA for efficient execution of 2D FFT on live image data streams. These streams, sourced directly from camera feeds, will be processed on a ZYNQ Z7010 FPGA, enabling rapid and efficient 2D FFT computation suitable for various applications. We found open source FFT algorithm online which is implemented in C++, we utilize the Vitis High-Level-Synthesis (HLS) tool to generate Register-Transfer-Level (RTL) code, which then be synthesized on the ZYNQ FPGA board. We anticipate that this FPGA-based FFT approach will significantly outperform CPU-based FFT computations, effectively aiding ASML in the alignment of the real-time input images.
Report: Download here
Poster: Download here

Hardware acceleration of Computer Vision Algorithms using Field Programmable Gate Arrays

Authors: Dengyu Tu
Abstract: This project focuses on leveraging Field-Programmable Gate Arrays (FPGAs) to accelerate the computational processes of Convolutional Neural Networks (CNNs), particularly the convolutional filter operations applied to images. The primary objective is to significantly enhance the processing speed of CNNs, thereby improving the performance and applicability of computer vision algorithms in real-time and resource-constrained environments. The project involves implementing various convolutional filters on FPGAs and demonstrating their effectiveness on a range of images. Additionally, a comparative analysis will be conducted to measure the performance differences between FPGA-based and traditional CPU-based CNN computations. The findings aim to underscore the advantages of using FPGAs for hardware acceleration in computer vision tasks, showcasing improvements in speed, efficiency, and scalability. By optimizing CNN operations with FPGAs, this work aspires to contribute to the advancement of high-speed, real-time computer vision applications.
Report: Download here
Poster: Download here $\longleftarrow$ Category Winner: Computer Systems

Open-Source Handheld pH Sensor with Mobile App

Authors: Yuzhong Zheng, Yapeng Teng
Abstract: The project aims to develop a compact, portable device for measuring pH in seawater, utilizing the spectrophotometric method. Addressing the need for less bulky and expensive equipment, this device will feature simple, cost-effective and durable hardware, and integration with an Android app and Cloud storage. The final deliverable will consist of a benchtop prototype, paired with an intuitive Android application and Web Cloud integration. This setup will facilitate comprehensive device control, data transmission, storage, and analysis capabilities.
Report: Download here
Poster: Download here $\longleftarrow$ Category Winner: Signal and Information Processing

Design of a Low Cost Extracellular Voltage Amplifier

Authors: Pawan Perera
Abstract: Extracellular recording of action potentials is significant in the study of physiology and biology, whether in comparison to intracellular counterparts or the general value of the recorded data. This method of recording action potentials, electrical signals that propagate through various biological media, involves placing electrodes near charged cells and isolating the appropriate potentials. These signals, which can be as small as a few microvolts, require amplification for sufficient analysis. Furthermore, the magnitude of this amplification will differ for different applications of the extracellular recording. In turn, the developed device performs said amplification in a low-cost manner intended for use in student research laboratories, while managing requirements such as noise suppression and tunable gain. This device can boast comparable bandwidth and noise reduction to more costly commercial counterparts, which amount to 1000 dollars per channel, with a price point under 50 dollars. Additionally, with a tunable gain of 100, 1000, and 10000, this device presents the necessary versatility for recording action potentials through different varieties of biological media.
Report: Download here
Poster: Download here

Design of a Large-Scale Robotic Swarm

Authors: Eshita Sangani
Abstract: Nature offers many examples of complex collective behavior emerging from simple local interactions. In these systems a group of organisms appears to display an intelligence distinct from that of the individuals composing the group. Swarm robotics aims to build multi-agent robotic systems that emulate these emergent behaviors. These systems consist of a group of individual agents that can reach agreements without the need for a controlling authority through its distribution actions. This field leverages the strength of numbers to achieve complex tasks and emergent behaviors that are beyond the capability of individual agents. The reliance on simple, distributed coordination means that the swarm size can be seamlessly regulated without concern for single points of failure or bandwidth. The primary objective was to develop a scalable and efficient swarm of robots capable of executing collective tasks that surpass the capabilities of individual units, drawing inspiration from the natural systems described above. By designing a simple hardware platform that is complete with onboard power, processing, actuation, sensing, and communication, these individual agents can be replicated and used to perform these collective tasks. In addition to the design, a communication protocol was designed to allow two robots to communicate and synchronize with each other while operating simultaneously.
Report: Download here
Poster: Download here $\longleftarrow$ Category Winner: AI/Pattern Recognition

Sportek: The Coach and Athlete’s Third Eye

Authors: Nikhil Satheesh Pillai
Abstract: With sports technology growing as a research and development field, great strides have been made in determining athlete pain points and improving performance. This project utilizes on-body sensors to detect and classify athletic motions, specifically pushups, and communicate short-form feedback through the audio medium. Driven by embedded systems packaged in a band-esque design, the sensors track angular motion at the joints to generate feedback through a generative Artificial Intelligence (AI) model. By providing users, specifically athletes, low-latency, iterable feedback, Sportek drives synchronous, instantaneous athletic improvement.
Report: Kept private for patent considerations
Poster: Kept private for patent considerations

FPGA-based Robotic Effect Voice Changer

Authors: Shuzhe Liu, Jiacheng Tu, and Xiangzhou Wei
Abstract: We developed a real-time voice-changing system on a Zybo-Z7 board, featuring an ARM Cortex-A9 processor paired with Xilinx 7-series FPGA logic. This system, designed to transform human voices into robotic tones, includes an audio codec driver, an ARM to FPGA communication module, and an FPGA-based voice changer. The process involves the ARM processor collecting audio data, which it sends to the FPGA via AXI BRAM. Within the FPGA, the audio is filtered through 32 second-order IIR band-pass filters, followed by a low-pass filter to modulate the data rate. Direct Digital Synthesis is then employed for sound re-synthesis. Post-processing, the data returns to the ARM processor through AXI BRAM and is outputted via the audio codec. The project aims to safeguard vocal identities from AI misuse by changing and compressing audio information, thereby enhancing privacy. Utilizing FPGA’s parallel computing capabilities ensures efficient, scalable, and customizable voice processing, offering robust protection against potential data leaks or hacking.
Report: Download here
Poster: Download here


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
Poster: Download here $\longleftarrow$ Category winner: Computer Systems

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
Poster: Download here $\longleftarrow$ OVERALL WINNER

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
Poster: 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
Poster: 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
Poster: 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
Poster: Download here $\longleftarrow$ Category winner: Large Scale Systems


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
Poster: 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
Poster: 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
Poster: (No poster session for FA22 graduates)


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
Poster: 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
Poster: 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
Poster: 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
Poster: 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
Poster: No poster session in FA21

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
Poster: No poster session in FA21

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
Poster: No poster session in FA21

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
Poster: No poster session in FA21


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
Poster: No poster session in SP21