Hello world!

Hello, world! This is my first blog post on my new website, and I want to start off by introducing myself. My name is Daniel Hayes and I am a professional nerd, but I didn't start out that way...

I'm from a very rural area in the Blue Ridge Mountains of North Carolina. Growing up, I was a straight A student, but I spent most of my free time fishing, hunting, and playing basketball. Despite my academic success and love for science and math, I loved building things more. I was always taking woodworking, construction, and welding classes where I could express my creativity through the application of my hands. After graduating high school, I went to the local university, Appalachian State, and graduated with a bachelor's degree in industrial design concentrating on furniture design.

One of my original chair designs, the Demilune.

With my BS degree in hand and a fearless attitude, I immediately opened my own business building custom furniture and cabinetry. I struggled to stay afloat for the next 6 years 🙁 With the birth of my second child, I had to make a change. That is when I started to research different educational programs...The best decision I ever made.

I discovered an Applied Engineering program at a local community college and decided to test the waters. Instantaneously, I realized my true calling. Where has this been all of my life? Coming from such a rural area, I had no introduction to engineering or what it really was about. Now that I knew, I suddenly felt a purpose that I hadn't had in long time.

Automated Can Crusher Controls Panel Completed while in Community College

I completed two A.A.S. degrees in one and a half years learning about PLCs, CNC machining, analog and digital electronics, and more. In my final few semesters, I even competed in the SkillsUSA competition. I took home first place in the Principles of Engineering and Technology category at both the state and national competitions. I wrote a technical paper on torque elaborating on it's applications and importance. As a demonstration piece, and my design capstone project, I designed and built a fully functional search and rescue robot!

This robot was the first time I had attempted anything of this complexity. In fact, I was warned of the project's level of difficulty on more than one occasion by the faculty. Undeterred, I machined, constructed, and coded my way to victory! That robot was so cool. It had four sets of tank treads, each of which could rotate 360 degrees via planetary-geared, stepper motors and bike chain. It could raise, lower, and even climb stairs!

With all the success I achieved in community college, I found out that I could transfer to University of North Carolina at Charlotte for a 4-year degree in Electrical Engineering Technology. I wanted to transfer to the Electrical Engineering program, but having to work a full-time job forced me to take classes mostly online which only the Tech degree offered. I graduated with a perfect 4.0 just like my A.A.S. degrees before.

For my senior design project, I wanted to do something exciting, new, and challenging. I don't recall how I found it, but I came across an article about a new and open ISA (instruction set architecture) called RISC-V. At the time, I didn't even know what an ISA was, but I soon found out and was enamored with this "free and open" idea. I knew right then that I wanted to use RISC-V in my project. Months of research and studying I became familiar with ISAs, benefits of RISC-V, and the opportunities it offered. My department took some convincing to allow me to choose this for my project topic seeing as no one was familiar with the technology.

A few months into the documentation for my project, I discovered the Rust programming language. It intrigued me just as much as RISC-V had, and I really liked the idea of the memory safety with the low-level control it offered. Combining the two felt right. I took yet another leap of faith and decided to write all of my programming in Rust. Project 5eroRISC was born!

5eroRISC Senior Design Poster

The project was a proof-of-concept to determine if the Rust and RISC-V combo could be used for embedded security. Rust brought its Cargo package manager, memory safety, and performance. SiFive offered the HiFive1 Rev B board featuring the FE310-G002 SoC. I utilized the on-board physical memory protection registers (PMP) and user mode to isolate user-level programming. This prevented access to control and status registers (CSRs) and stack overflows. Amazingly, I got the project fully functional having never used Rust or RISC-V before. Not only did it work, but my project won 2nd Best Project at the senior design expo! The project definitely is not nearly sophisticated enough to actually secure the IoT. However, I learned so much, and I think this is a step in the right direction to learning even more techniques that I can apply.

After completing my bachelor's degree, I decided to continue for a master's degree in Energy and Electro-Mechanical Systems. I hold a perfect 4.0 GPA and should graduate in 2022. I absolutely love engineering, especially embedded systems ( both hardware and software ). I'm always looking for ways to learn and extend my embedded skills. This isn't just a job, its life!

-Your friendly, neighborhood engineer