Open Access. Powered by Scholars. Published by Universities.®

Computer Engineering Commons

Open Access. Powered by Scholars. Published by Universities.®

Articles 1 - 30 of 46

Full-Text Articles in Computer Engineering

Polyflowbuilder: An Intuitive Tool For Academic Planning At Cal Poly San Luis Obispo, Duncan Thomas Applegarth Jun 2023

Polyflowbuilder: An Intuitive Tool For Academic Planning At Cal Poly San Luis Obispo, Duncan Thomas Applegarth

Computer Engineering

PolyFlowBuilder is a web application that lets users create visually intuitive flowcharts to aid in academic planning at Cal Poly. These flowcharts can be customized in a variety of ways to accurately represent complex academic plans, such as double majors, minors, taking courses out- of-order, etc. The original version of PolyFlowBuilder, released Summer 2020, was not written for continued expansion and growth. Therefore, a complete rewrite was determined to be necessary to enable the project to grow in the future. This report details the process to completely rewrite the existing version of PolyFlowBuilder over the course of six months, using …


Developing A Miniature Smart Boat For Marine Research, Michael Isaac Eirinberg Jun 2022

Developing A Miniature Smart Boat For Marine Research, Michael Isaac Eirinberg

Computer Engineering

This project examines the development of a smart boat which could serve as a possible marine research apparatus. The smart boat consists of a miniature vessel containing a low-cost microcontroller to live stream a camera feed, GPS telemetry, and compass data through its own WiFi access point. The smart boat also has the potential for autonomous navigation. My project captivated the interest of several members of California Polytechnic State University, San Luis Obispo’s (Cal Poly SLO) Marine Science Department faculty, who proposed a variety of fascinating and valuable smart boat applications.


Otter Debugger, Keefe Johnson Jun 2020

Otter Debugger, Keefe Johnson

Computer Engineering

This project is a debugger and programmer for the OTTER CPU, the implementation of the RISC-V ISA used by Cal Poly to teach computer architecture and assembly language in CPE 233/333 and usually implemented on the Basys3 FPGA development board. With this tool, students can quickly program their OTTER with a new/revised RISC-V program binary without resynthesizing the entire FPGA design. They can then use the debugger from a PC to pause/continue/single-step execution and set breakpoints, while inspecting and modifying register and memory contents. This enables real-time debugging of OTTER projects involving custom hardware such as a keyboard and VGA …


Otter Vector Extension, Alexis A. Peralta Jun 2020

Otter Vector Extension, Alexis A. Peralta

Computer Engineering

This paper offers an implementation of a subset of the "RISC-V 'V' Vector Extension", v0.7.x. The "RISC-V 'V' Vector Extension" is the proposed vector instruction set for RISC-V open-source architecture. Vectors are inherently data-parallel, allowing for significant performance increases. Vectors have applications in fields such as cryptography, graphics, and machine learning. A vector processing unit was added to Cal Poly's RISC-V multi-cycle architecture, known as the OTTER. Computationally intensive programs running on the OTTER Vector Extension ran over three times faster when compared to the baseline multi-cycle implementation. Memory intensive applications saw similar performance increases.


Tiny Disco: A Cost-Effective, High-Fidelity Wireless Audio System, Luke Martin Liberatore Feb 2020

Tiny Disco: A Cost-Effective, High-Fidelity Wireless Audio System, Luke Martin Liberatore

Computer Engineering

The Tiny Disco is a WiFi based concert system, featuring improvements on popular “Silent Disco” concerts. Rather than being tied to compression and bandwidth restrictions present in traditional silent disco systems, the Tiny Disco system can deliver 320kbps+ audio quality, and allows listeners to bring their own headphones, further lending to the high quality audio experience.

Tiny Disco uses a Raspberry Pi as the audio server, and Espressif ESP32 microcontrollers as audio receivers/clients. The Tiny Disco is primarily geared toward smaller concerts and niche events where audio quality is valued, though due to its WiFi-based architecture, it can be expanded …


Planr.: Planar Learning Autonomous Navigation Robot, Gabrielle S. Santamorena, Daniel Kasman, Jesus Mercado, Ben Klave, Andrew Weisman, Anthony Fortner Jun 2019

Planr.: Planar Learning Autonomous Navigation Robot, Gabrielle S. Santamorena, Daniel Kasman, Jesus Mercado, Ben Klave, Andrew Weisman, Anthony Fortner

Computer Engineering

PLANR is a self-contained robot capable of mapping a space and generating 2D floor plans of a building while identifying objects of interest. It runs Robot Operating System (ROS) and houses four main hardware components. An Arduino Mega board handles the navigation, while an NVIDIA Jetson TX2, holds most of the processing power and runs ROS. An Orbbec Astra Pro stereoscopic camera is used for recognition of doors, windows and outlets and the RPLiDAR A3 laser scanner is able to give depth for wall detection and dimension measurements. The robot is intended to operate autonomously and without constant human monitoring …


Arm Mke1xf Mcu Replatform, Nathan Hong, Derek Lung, Japsimran Singh, Bevin Tang Jun 2018

Arm Mke1xf Mcu Replatform, Nathan Hong, Derek Lung, Japsimran Singh, Bevin Tang

Computer Engineering

After Cal Poly Racing’s electrical team began to hit the technical limits of the ADC and other I/O features of the current 8-bit Atmel AT90 microcontroller unit, it became clear that an upgrade was due. This replatforming project takes the functionalities of the old, 8-bit architecture, and aims to provide a 32-bit version using the ARM MKE1xF MCU. With the idea of having a working PCB as a stretch goal, the scope of the library development was limited to enable base functionality. Thus, the only libraries developed were for the Timer, ADC, SPI, UART, and CAN. Additionally, this document discusses …


A Basic, Four Logic Cluster, Disjoint Switch Connected Fpga Architecture, Joseph Prachar Jun 2018

A Basic, Four Logic Cluster, Disjoint Switch Connected Fpga Architecture, Joseph Prachar

Computer Engineering

This paper seeks to describe the process of developing a new FPGA architecture from nothing, both in terms of knowledge about FPGAs and in initial design material. Specifically, this project set out to design an FPGA architecture which can implement a simple state machine type design with 10 inputs, 10 outputs and 10 states. The open source Verilog-to-Routing FPGA CAD flow tool was used in order to synthesize, place, and route HDL files onto the architecture. This project was completed in terms of the spirit of the original goals of implementing an FPGA from scratch. Although, the project resulted in …


Real-Time Audio-Midi Controller, Brian Shino Balberchak Apr 2018

Real-Time Audio-Midi Controller, Brian Shino Balberchak

Computer Engineering

Most MIDI controllers used in music production use a regular keyboard to generate the MIDI notes that are sent to the synthesizer. This project aims to provide the user with a different way of generating MIDI data: by playing an instrument of their choice with a passive electronic pickup to generate MIDI notes that correspond with the fundamental frequency of the musical pitch being played. The pitch-detecting algorithm used in this application utilizes a modified form of auto-correlation.

As an embedded systems project that uses signal-processing techniques, the knowledge of topics from the following courses was essential:

EE 211: Op-Amp …


Blend It Applications And Server, Rebecca Mckinley, Cory Mayer, Tyler Fox, Alex Bartlett, Aly Chapman Jun 2017

Blend It Applications And Server, Rebecca Mckinley, Cory Mayer, Tyler Fox, Alex Bartlett, Aly Chapman

Computer Engineering

No abstract provided.


Mr. Mix: The Automated Home Bartender, Brian Moore, Robert Hulbert Jun 2017

Mr. Mix: The Automated Home Bartender, Brian Moore, Robert Hulbert

Computer Engineering

No abstract provided.


Android Drone: Remote Quadcopter Control With A Phone, Aubrey John Russell Dec 2016

Android Drone: Remote Quadcopter Control With A Phone, Aubrey John Russell

Computer Engineering

The purpose of the “Android Drone” project was to create a quadcopter that can be controlled by user input sent over the phone’s Wi-Fi connection or 4G internet connection. Furthermore, the purpose was also to be able to receive live video feedback over the internet connection, thus making the drone an inexpensive option compared to other, equivalent drones that might cost thousands of dollars. Not only that, but the Android phone also has a host of other useful features that could be utilized by the drone: this includes GPS, pathing, picture taking, data storage, networking and TCP/IP, a Java software …


Teaching The Internet Of Things: Bridging A Path From Cpe329, Steven Han, Rafael Lopez Dec 2016

Teaching The Internet Of Things: Bridging A Path From Cpe329, Steven Han, Rafael Lopez

Computer Engineering

“The ability to connect, communicate with, and remotely manage an incalculable number of networked, automated devices via the Internet is becoming pervasive, from the commercial kitchen to the residential basement room to the arm of the fitness buff.” - WSO2

In this report, we will investigate procedures and technologies used in IoT. A variety of cloud platforms will be described to demonstrate its strengths and usage on IoT applications. Furthermore, demonstrate the most popular hardware being used in several of these applications. This report is aimed to give a good understanding on what it takes to put together an IoT …


Isopropyl Alcohol Pump For Printed Circuit Boards Using An Arduino, Lawrence Zhu Dec 2016

Isopropyl Alcohol Pump For Printed Circuit Boards Using An Arduino, Lawrence Zhu

Computer Engineering

No abstract provided.


Senior Project: Control System For An Underwater Remotely Operated Vehicle, Tyler Mau, Joseph Mahoney Jun 2016

Senior Project: Control System For An Underwater Remotely Operated Vehicle, Tyler Mau, Joseph Mahoney

Computer Engineering

No abstract provided.


Pet Food Monitor Using The Raspberry Pi, Kimberly Aguero Jun 2016

Pet Food Monitor Using The Raspberry Pi, Kimberly Aguero

Computer Engineering

Computer system built on a Raspberry Pi that will monitor the levels of food in a pet food bowl. If it detects that there is no food in the bowl, it will notify the user via email or text.


Wearable Ekg, Cale Hopkins, Tanner Papenfuss, Travis E. Michael Jun 2016

Wearable Ekg, Cale Hopkins, Tanner Papenfuss, Travis E. Michael

Computer Engineering

No abstract provided.


Pinpoint: Location Beacon And Tracking, Ezequiel Lopez Iii Jun 2016

Pinpoint: Location Beacon And Tracking, Ezequiel Lopez Iii

Computer Engineering

The purpose of Pinpoint was to create a device that can collect and transmit location information for multiple users on a wireless network. The device would be used to keep track of and communicate with other users nearby. The final design includes a touchscreen display as a graphical user interface (GUI), an XBee RF module for wireless networking, a GPS receiver for location tracking, and a Programmable System on a Chip (PSoC) to control the modules.


Microcontroller Application For Linear And Rotational Motion Sensing, Zachary Mintzer Dec 2015

Microcontroller Application For Linear And Rotational Motion Sensing, Zachary Mintzer

Computer Engineering

No abstract provided.


Pre-R: Making Healthcare Healthier, Timothy Acorda, Ryan Foletta, Winifred Lee, Thomas Nguyen, Isabella Sarmiento, Brian Truong, Marek Zhang Jun 2015

Pre-R: Making Healthcare Healthier, Timothy Acorda, Ryan Foletta, Winifred Lee, Thomas Nguyen, Isabella Sarmiento, Brian Truong, Marek Zhang

Computer Engineering

No abstract provided.


Printed Circuit Board For Introductory Animatronics Course, Preston Brown Jun 2015

Printed Circuit Board For Introductory Animatronics Course, Preston Brown

Computer Engineering

For many years, freshmen Computer Engineering students at California Polytechnic State University have taken a course that introduces them to the “processes of electronics manufacturing. They are lectured on concepts such as CAD/CAM design, Design for Manufacture (DFM), documentation requirements, prototyping and production planning”. The laboratory portion of the course allows students to “use hands-on techniques to solidify knowledge of project planning, soldering, automation, hand tool usage and production methods” by manufacturing their own power supply, starting with aluminum sheets, a bag of components, and and an unassembled printed circuit board (PCB).

While the project is popular among students, department …


Oversubscribing Inotify On Embedded Platforms, Donald Percivalle, Scott Vanderlind Jun 2015

Oversubscribing Inotify On Embedded Platforms, Donald Percivalle, Scott Vanderlind

Computer Engineering

For most computers running the popular Linux operating system, the inte- grated kernel component inotify provides adequate functionality for monitor- ing changes to files present on the filesystem. However, for certain embedded platforms where resources are very limited and filesystems are very populated (like network attached storage (NAS) devices), inotify may not have enough resources to provide watchers for every file. This results in applications missing change notifications for files they have watched. This paper explores methods for using inotify most effectively on embedded systems by leveraging more la- tent storage. Benefits of this include a reduction in dropped notifications …


Team Omnimouse, Derek J. Halman, Josh B. Porter, Steven A. Silver, Ian S. Stemper Jun 2014

Team Omnimouse, Derek J. Halman, Josh B. Porter, Steven A. Silver, Ian S. Stemper

Computer Engineering

INFORMATION, DATA, FIGURES AND DRAWINGS EMBODIED IN THIS DOCUMENT ARE STRICTLY CONFIDENTIAL AND ARE SUPPLIED ON THE UNDERSTANDING THAT THEY WILL NOT BE DISCLOSED TO THIRD PARTIES WITHOUT THE PRIOR WRITTEN CONSENT OF QUALITY OF LIFE PLUS.


Chromium Os On Freescale I.Mx6q, Pushpal Sidhu Jun 2014

Chromium Os On Freescale I.Mx6q, Pushpal Sidhu

Computer Engineering

This projects intention is to get Chromium OS running on a Freescale i.MX6q processor, a processor based on the ARM® Cortex™-A9 architecture. The development board I used is the Ventana GW5400 by Gateworks. This project inherently meant using Chromium OS's development system which meant I created a board specific package for the Ventana single board computer. This project is a proof of concept that can mean extending Chromium OS to various implementations of the ARM® Cortex™-A9 architecture.


Implementing A Robust Data Storage Software System For Cp9, Stuart Andrew Weickgenant Jun 2014

Implementing A Robust Data Storage Software System For Cp9, Stuart Andrew Weickgenant

Computer Engineering

This project focuses on the continuation of the CP9 CubeSat project, specifically the software which will be running on the satellite when it goes into space. This project mostly goes into designing a robust system which stores the data collected from the sensors on board CP9, whose purpose is to collect vibrations data from its launch vehicle during its ascent into space, into an easy to analyze system once the data is downlinked to PolySat’s ground station after launch. One other thing this system does is to prevent CP9 from collecting unnecessary data after launch. Testing was done on this …


Design Of Cpu Simulation Software For Armv7 Instruction Set Architecture, Dillon Tellier Jun 2014

Design Of Cpu Simulation Software For Armv7 Instruction Set Architecture, Dillon Tellier

Computer Engineering

Simulations have long been a part of the engineering process in both the professional and academic domain. From a pedagogic standpoint, simulations allow students to explore the dynamics of engineering scenarios by controlling variables, taking measurements, and observing behavior which would be difficult or impossible without simulation. One such tool is a CPU simulator used in Cal Poly’s Computer Architecture classes; this software simulates an instruction accurate operation of a computer processor and reports statistics regarding the execution of the supplied compiled machine code. For the last several years Cal Poly’s computer architecture classes have used a previous version of …


Designing A Modular Dsp Core For Real-Time Audio Performance, Kevin Richard Brewer Jun 2014

Designing A Modular Dsp Core For Real-Time Audio Performance, Kevin Richard Brewer

Computer Engineering

This project provides an overview for building a Digital Signal Processing (DSP) core on a Digilent Nexys2 FPGA board. The DSP core is designed to give Cal Poly students interested in DSP and its applications to audio engineering a usable platform to perform signal processing and analytics. The processes of the DSP core are modular, allowing students to design their own implementations of various adder and multiplier functions. Infinite impulse response (IIR) filters and finite impulse response (FIR) filters using both cascade and parallel implementations are the primary processing tools in the core, and all output can be visually and …


Ecs Game Engine Design, Daniel Masamune Hall Jun 2014

Ecs Game Engine Design, Daniel Masamune Hall

Computer Engineering

Game programming design and organization can be difficult and complicated. To simplify the development process, frameworks with an array of tools and utilities known as game engines are used. The main goal of this project is to explore game engine designs and develop a design for a modular and expandable game engine. The designs covered in this paper are Object Oriented Programing (OOP) and two Entity Component System (ECS). OOP designs, commonly used in computer science, use a hierarchy of objects to share functionality. ECS designs are based off of the concepts Composition over inheritance in which objects contain features …


Bluelock: A Secure Bluetooth Operated Padlock, Trever Mckee Jun 2013

Bluelock: A Secure Bluetooth Operated Padlock, Trever Mckee

Computer Engineering

For this project a secure, battery operated, Bluetooth operated padlock was created. The project included both the hardware to integrate with a padlock and an Android application used to interface with the hardware. In order to make the padlock secure both AES encryption and challenge response authentication were used for secure message passing between the device and the Android phone. The project also included power consumption and sustainability tuning including exploring Arduino sleep states and integrating the project with a solar charging unit.


Set-Top Box Simulator, Philip Tyler Jun 2013

Set-Top Box Simulator, Philip Tyler

Computer Engineering

This report presents a python-based Set-top box simulation program utilizing a Simulation library called SimPy (See Appendix 1) to simulate real-time operation of a Set-top Box, or DVR. A graphical user interface, designed with PyQt4, allows a user to customize many simulation parameters such as hard drive speeds, buffer sizes, length of simulation, etc. The GUI also shows the user any errors that occur during the simulation such as buffer overflows/underflows. The results of this simulator lie within 85%-95% accuracy depending on the user-input parameters. With this simulation program, a Set-top box hardware or firmware developer can interchange the scheduling …