Charlie Stuart - Research


[Undergraduate Thesis - Screen Implementations for Plan 9 on the Raspberry Pi4]
[Research Mentor]
[Hardware Lead]

Undergraduate Thesis - Screen Implementations for Plan 9 on the Raspberry Pi4

Drexel University's College of Computing and Informatics

April 2021 - June 2022

Plan 9, Raspberry Pi4, Rasbian

In 2012, Richard Miller wrote a port of Plan9 for the Raspberry Pi. The Pi has become an increasingly popular platform for Plan9. I spent the spring and summer doing miscellaneous minor projects to get comfortable with the operating system. This work transitioned into my undergraduate senior thesis in the fall. My thesis defense is scheduled for late May 2022.

Most recently, I've implemented interactive scaling wallpaper for rio, the windowing system for Plan9. I used the wallpaper support provided by Devine Lu Linvega as a starting point, then added scaling based on the window size and interaction with the wctl files to change the wallpaper while running. The source code is posted on GitHub.

I've now transitioned this work to my undergraduate thesis. The Pi port of Plan9 does not support the use of the Raspberry Pi 7" Touch Display. The primary goal of my work is to get the screen working as a monitor. Once this is implemented, I'll be looking into the unique way the mouse and all three buttons are used in Plan9 in order to find the best way to implement the touch screen. While adding this functionality, I'll also be exploring the techniques used to write the operating system and implementing these values when writing my additions.

On December 10th, I successfully proposed my thesis to my committee. I wrote a more comprehensive blog post about the proposal experience. They didn't require me to write up a formal proposal document. I did present a [slide deck] of my initial research and literature review for about an hour. I did the slides based on the Plan 9 editor, acme, in Google Docs. I really like how they came out, so I'm working on making a proper beamer template for them. I'm almost finished and I'll post it when I'm done.


Research Mentor

Drexel University's College of Computing and Informatics

June 2019 - September 2019

Python


Hardware Lead

NASA HUNCH Program, Holland, PA

September 2016 - June 2017

Arduino Uno

In high school, I participated in the NASA HUNCH (High school students United with NASA to Create Hardware) program. When astronauts go to the International Space Station, they create two lists. One is a list of things they need. These include things like water and electricity repairs that NASA engineers need to prioritize. The other is a list of things they want. This is a list that aren't important enough to dedicate engineers to, but would make life on the ISS easier. The list of things they want is sent to the HUNCH program. Students then choose a project they want to work on, form a team, go through the research and development process, then present to NASA representatives to see if their work will be implemented.

My group's project was the Mass Indication Calculation Experiment (MICE). On earth, whether it feels like it or not, we are constantly exercising against gravity. On the ISS, we lose this constant motion and our bodies deteriorate. To examine how this affects us, there are mice on the ISS that are being massed frequently to check for osteoporosis. In a zero gravity environment, it's not possible to use a scale to weigh things. In order to mass the mice, rotational motion is utilized. This means the mice are placed in a container, which is then rotated around a point. This creates centrifugal force and allows the mouse to be massed. However, this induces a lot of stress on the mouse. The stress causes the mouse to vomit and use the restroom, which creates inaccurate measurements. Another level of inaccuracy is added just through the structure of rotation. If a directly equal counterweight is not placed on the direct opposite end of the mouse and the center post isn't strong enough, the center of rotation will be lost. This causes more inaccuracies in measurements.

Our group lead proposed using linear motion instead of rotational. If we accelerate the mouse linearly, calculate the acceleration and the force, we can find the mass using F = ma. This is an over simplification of the math and physics that went into the actual project. Our group was split into two teams. We had the theoretical team looking to find a proof of concept and the implementation team working on the development of the prototype. I was the head of the implementation team. I was in charge of researching different types of hardware to create the acceleration needed and lead prototype development on an Arduino UNO.

By the end of the project, which lasted the duration of a school year, we had achieved proof of concept. However, we did not have to tools to create a prototype to reflect this. Our major limiting factor is the existence of gravity and friction. We achieved proof of concept through a six foot frictionless track and a weight dropped to pull the cart to create a quick acceleration. Our prototype needed to be under a 12 inches and much slower. Despite achieving proof of concept, the project was not picked up by NASA. I visited the high school in my freshmen year to talk on behalf of the program. I learned from our NASA contact that our project was picked up where we left off by an independent contracting company and is now in use on the ISS.

Mid-Year Review Photos: [A] [B] [C]

Final Review Photos: [B] [C]