After moving to California, I purchased a plug-in hybrid vehicle but have been disappointed with charging infrastructure so far. To help improve the situation I have been building an on the go car charger to soak up as much solar energy as possible.
My time working in Industry taught me a number of real-world skills. My internship at Particle Measuring Systems is the first industry project I have seen all the way through. In three months, I developed a test fixture that is deployed to test NFC radio devices used in one product made by the company. My work included PCB design and layout, embedded software on the microcontroller, python-based control software for using the fixture in a GUI, and assembly of the fixture in a 3D printed housing.
Design of this PCB involved code development for the Arduino Portenta H7, buck converter design for powering the board under test and a servo motor and implementing LVDS for communication of SPI over a cable harness.
The final fixture I developed is shown, which allows a board to be slid in and tested in the system. I also developed a python-based GUI that operates the test fixture, making it easy for any technician to use the fixture and generate useful log data on testing.
Some of my favorite projects competed during my coursework at CU Boulder are featured below. These projects have exposed me to a wide variety of programming problems, PCB design, hardware debugging, project management, and many other skills.
In my senior year I worked with the company LineVision and my team to develop custom hardware and software with a variety of embedded sensors. The product allowed LineVision to get current condition status of their Lidar based Transmission Line monitoring system. Aside from gaining confidence in my engineering judgement I gained experience with a variety of skills:
PCB design software including Altium.
Power budgeting and use of embedded charge controllers.
Ti BQ24074 was used to manage USB and Solar DC input power and a single cell Lithium battery.
USB-C connected PCBs with USB 2.0 data and 5V 3A USB Power Delivery support.
Microchip SAMD21 Microcontroller custom PCBs and bootloading for use with Arduino IDE
Analog Accelerometer sampled with the SAMD21 12-bit ADC
Used to analyize low frequency vibrations (1-10Hz) for analysis of harmonic vibration in transmission towers.
Absolute position via the BNO055 9-DOF sensor.
Gave absolute orientation based on fusion of magnetometer, accelerometer, and gyroscope data all done on the Bosch sensor.
Part of a course on Renewable Energy grid integration required myself and the team to create a 100 percent renewable grid for San Diego county. Utilizing the SAM software from NREL and Matlib plot in python I simulated the grid system for an entire year of use. This model included load data from 2012, generation statistics based on weather from 2012 and plant selection done by the group. An example generation and load curve is shown to the left. More plots and the source code are available in the Git repository linked.
Working in the Undergraduate Capstone Lab during my Master's introduced me to many of the issues students face during the capstone development process. The following projects are hardware and software designed to assist students during the development process and reinforce some simple best practices in PCB design. All of these tools are available for future students and the ESP32 sensor node is a custom PCB that followed successful development of a 1-day workshop I developed to have students create an internet connected group of i2c environmental sensors. This workshop was assigned at the start of Capstone in the fall of 2023 and was successful.
One of the biggest hurdles facing students is the process of bootloading their chosen microcontroller. Some devices such as the ESP32 are simple, especially if they have native USB. Many other devices require initial flashing of a bootloader. The SAMD21 is an excellent CPU for use in capstone projects, but there is no simple way to flash a bootloader compatible with Arduino IDE. This project is a combination of custom hardware and software that utilizes the Mattair Tech SAM Bootloader, and the Adafruit DAP library. This tool allows any compatible binary to be flashed to a custom SAM PCB via serial wire debug and has a clean button interface for use without a PC. The linked Git repository contains schematics and software used in this project.
To accompany the SAM flasher project, I worked to develop a breadbord insertable SAMD21 PCB. The goal of this project was to create a documented design that students can reference for their own custom PCBs as well as get them started on developing code for their projects. The CPU on board can be flashed with code written in Arduino and has all of the I/O available for use in breadboard prototypes.
The other main microcontroller in use in Capstone is the ESP32 series. Much like the SAMD21 development board the goal of this PCB is to offer a design that students can get started with and be provided with a full design for. The board fits into a standard breadboard and has I/O exposed for easy development of prototypes.
Another hurdle that many students in Capstone face is meeting a strict power budget with their designs. To improve the teaching staff's resources, I helped develop a kit to demonstrate some potential solutions. This board utilizes a BQ charge controller to manage charge on an 18650 battery cell with multiple inputs and has an adjustable output via a TI Buck/ boost converter. There are also 4 INA219 current monitoring sensors which allow for different currents and efficiencies to be measured throughout the system. The goal of this board is to let students learn how to measure power usage and to see a in house and documented example for future reference and learning.
This project takes advantage of the ease of implementing sensors with the ESP32S3 microcontroller. Temperature, Light, and Particle sensors are combined on a PCB via I2C, and information is displayed on an OLED display connected via SPI. Along with a custom 3D printed housing this project is the continuation of the breadboardable version created originally as an assignment that each capstone student completed in their second week last fall.
There are also personal projects I have gotten to put many of my skills to use on. These projects allow me to self direct and be mindful of project time and expense. I feel these demonstrate my general curiosity in the field and the ability to make engineering judgement based on the skills and experience I have from my education and work experience.
To celebrate completion of my Master's at CU I decided to create a battery-operated PCB that will be a great desktop reminder of my time in school. This board shows off my experience in a number of ways.
SAMD21 Microcontroller is used and bootloaded using my flasher tool.
USB-C is used for programming and board power.
The BQ25185 charge controller manages power input from USB and charging of the 18650 Lithium battery present on the reverse of the board.
Custom Logic Level Shifting allows use of 5V LEDs driven with the 3.3V microcontroller.
Arduino IDE allows for different LED patterns and routines to be switched between using a state machine controlled by a physical button.
There are a number of other projects that I have been involved in during my personal time and work time. I actively run a business that repairs, upgrades, and resells old Apple iPods. I also work as an IT contractor, designing home networking solutions and managing datacenter equipment and services. I am passionate about all of the projects shown here, please feel free to reach out with any questions!