David Clark

[email protected]


Home About Resume Projects Contact Me

These are the Projects that I did while iwas at school at BYU in Provo. I don't feel comfortable sharing my source code for these projects because these projects are still being used. I will post links to class websites when they are available.

ECEN 330 Intro to Embedded System Programming

Ecen 330 is intro to embedded programming and within this calss we made several different applications to run on a Digilent Zybo board programmed with Xilinx. Some of these projects include a touchscreen programmable clock, a touch screen simon says, a min maxed tic tac toe game, and a touch screen whack a mole game. The youtube link demonstrates these projects.All of the Code in this class was written in C.

ECEN 390 Junior Team Design Project

ECEN 390 is the big junior year project where you develop a laser tag system with a team of other students. my experience with this course was atypical because we were unable to finish the hardware portion of the project due to the outbreak of the pandemic. My partner and I did finish the software portion of the project. The wiki for the class is located here. The software portion is milestones 1-3. All of the Code in this class was written in C.

CS 240

The CS 240 class is the biog software project java class. At the beginning of the semester you create a spelling corrector that looks in an inputted dictionary for a suggested correct spelling of the word the user types in and an evilhangman game which changes the word to guess to make sure the user doe not get it right. The main Project for the class is a family map server and client. The server stores tables of the users login info, relative info, relative events, and relative locations and the client is an android app that grabs the information and shows where relatives live(d) and gives the user information about their relatives. All the code in this class was written in Java.

CS 340

The CS 340 class is similar to the CS 240 class except your big project is a twitter clone. We were taught how to use AWS to act as our server for our client. We wrote and deployed lambda functions. The specific services we used were S3, DynamoDB, API Gateway, and Simple Queue Service. THe client was an android app written in Java.

ECEN 323 Computer Organization

In ECEN 323 you design and build a simple Risc-V processor using Vivado hardware description language

ECEN 424 Computer Systems

Within this course you learn about how computers manage memory and ways to optimize code for speed

ECEN 427 Embedded Systems

This was probably my favorite class I took at BYU. You code space invaders form scratch on a xilinx Pynq board (which runs linux). We wrote audio drivers, button drivers, among other things. This class sparked my interest in Linux and since then I always try to keep learning more and more about it.

ECEN 493R(now 426) Computer Networks

Introduction into http protocol and other network based computing. One lab that stuck oput to me was the final lab where you create a chat client with other students using mqtt protcol.


My capstone project was to port the Zephyr RTOS (specifically for the Cortex M3 boards) UART, Ethernet, and filesystem to the HALucinator project. This involved writing Python intercept functions for C code and using Ghidra to know which functions to intercept. I was part of the filesystem team.