Jake Hafele - Project Portfolio
ISU LED Array (Click here for more info)
The main goal of this project was to create a PCB that would light up an Iowa State University “I” with LEDs. I wanted to also design a box casing and glass cover over the circuit board, to protect the hardware and soldering. Since I was using a PCB, I wanted to try and design a circuit without using an Arduino microcontroller and instead apply some of what I learned through my digital logic class that I took in the Fall semester. To do this, I would use an oscillator to act as a clock and a counter to activate the transistors that would light up the yellow LEDs in a given order based on the clock. I also would like to further learn how to use Altium Designer, which is the PCB design software I used to design my board.

"Useless" Robot
With this project, I wanted to create something that would push what I have done so far with electronics design while also making something fun. For this, I decided to make a useless machine. The sole job of this robot was to flip off any switch that I pressed down or turned on with the box. The robot arm is an improved version of my robot from the motion controlled arm, which was a big challenge for this project. Overall, it is a very interesting build and was tons of fun to make.

Solar Car: Buttonboard
The primary goal of Buttonboard is to take driver inputs on the steering wheel and convert them to signals that can control the varying lights and horn of a solar car. As per regulations needed for the vehicle, it was required that the driver select these buttons without taking their hands off the wheel and that they will be able to control them. Some buttons will be latching to represent turn signal indicators, while other buttons will be nonlatching, like the horn. Buttonboard is represented as an "application" PCB in the solar car that is used to help manage driver interaction with the car off of the 12V Main power line from the battery pack, which is turned on only after the battery protection system connects the positive and negative relays to the battery pack.

Solar Car: Headnode Rev 1
Headnode is one of two different custom PCBs in solar car that are a part of our Battery Protection System (BPS). The first board, Moduleboard, monitors the status of one battery module, which includes 34 18650GA Lithium-Ion batteries in parallel. Our entire battery pack includes 35 of these battery modules in series to reach a nominal voltage of 140 V, and in turn 35 Moduleboards, each going on the top of a battery module. The second board, Headnode, controls the battery pack relays by checking if either the hardware or software faults on either board are asserted. Both the hardware checks made by comparators and the software checks made against a voltage reference need to not be triggered on a Moduleboard. The hardware fault is ANDed together with the logic check from the next board, so when one module faults in the middle of the board, the proceeding Moduleboard will also fault in a ripple carry. The initial 5V "Working" signal for the fault is initially supplied by Headnode, and sent to Moduleboard #1. At the last Moduleboard, #35, this ANDed logic signal will be sent back in to Headnode as an input. The software checks are made over an isolated CAN network that is connected only to the boards inside the battery pack.

  In General, the purpose of BPS is to monitor these faults and control the battery pack relays that open/close to control battery consumption. Both BPS and Powerboard, a board used to regulate the battery pack voltage down to 12 V, are powered off of a 25 V supplemental battery used to check the state of the batteries before drawing current from them. This is needed as a safety precaution and because of regulations we have to follow to build the car. With this supplemental battery, BPS will check to see if any hardware and software faults trigger in the car, and if they don't, BPS will close the positive, negative, and charge relays in the battery pack. After this is done, Headnode will send a buffered 12V logic signal to powerboard indicating that it is now okay to draw current from the battery pack through the closed relays. Powerboard will simultaneously switch off of drawing power from the supplemental battery pack to our main battery pack. After this, the fourth and final board in the battery pack, Precharge, is powered and can start to slowly increase the voltage given to the motors through a power resistor. Since we use DC series motors, if we instantly give it 140 V through a closed relay, we would blow them up.

Solar Car: Year One
When I started solar car, one of the first things I was taught was how to design PCB's using Altium Designer. I was then placed on my first project, buttonboard. The job of this board was to take inputs from latching and nonlatching buttons on the steering wheel and have them read by our microcontroller to turn on different lights and our horn. The circuit itself was pretty straightforward, consisting of pull-down resistors that would be connected to each of the buttons and read by the compute. We also later down the line included some filtering with an RC circuit to denoise the lines. I was able to get our first rev of the board ordered around winter break and test it. Testing the board mostly consisted of checking the power circuit and seeing how much voltage drop was on it to adjust it with the trim up resistor on the 5V switching regulator. We have talked about stepping the voltage down to 3.3V in the future since the microcontroller can still handle that and since it would also save us a little bit of power. This board was implemented in the front of the car behind the steering wheel. It was really fun to see my first board get tested and implemented over the course of my first year.   In the Spring, I also helped to redesign and layout another one of our boards, Headnode. This board is in charge of turning on three large relays that are in our battery pack box to start the battery pack. This works by using logic IC's with AND gates to check to make sure different pins are connected and what we expect. For example, we have a button on the outside of the car called external kill, and if that is pressed then Headnode shuts out the relays and makes sure the battery pack relays are not closed. This then cuts off power from the battery pack in a "safe state". We moved these relays to Headnode on the rev I worked on and also added a third one, the charge relay, to help meet regulations for our car for rayce. The board got much “busier”, since we had to keep it the same size as a previous rev while also packing in more parts. Headnode was the first 4 layer board that I helped design too. This board was much more complicated than my first board but it was very fun to learn about it throughout the Spring and Summer.

  I also began work on a new project for solar car in the Spring for a power supply board. This board was designed by two alumni of the team for a senior design project, intended to be used for solar car. After the fall semester was over, they handed the board off to us with one of the project members to help ease us into it. We tested the first rev of the board while identifying a few key issues. The board takes in AC power and turns it to 34V DC through 4 transformers. This is then stepped down by various power regulators to 12V and 5V. One issue was that the enable pin for the linear regulator was taking 34V instead of the maximum of around 12V. To fix this, we added a voltage divider to the next rev to ensure we wouldn't fry the IC again. We also had lots of issues with software connections to multiple pins on our microcontroller. I helped lead redesigning the 4-layer board to help clean it up too at the start of the Summer. We made 1-layer horizontal traces and another vertical for the in-between layers. The top layer had many different planes spanning different voltages, depending on which section of parts were close. The bottom layer was ground which contained mostly vias to help ground parts on our top layer. I am now going into my second year of solar car as the manager of this board which I am very excited for. We will start with testing the newest rev that we had designed over the Summer.

3D Printing
In the middle of June, I decided to purchase a 3D printer to help support some projects I had in mind, specifically to create pieces to interface with servos or encapsulate hardware I designed. I ended up buying Creality’s Ender 3 Pro, which is a popular choice for beginners. From what I researched, the Ender 3 Pro offered great detail and print quality for entry level printers. It came with all of the tools I needed to set up, and some white PLA filament to get started quickly. After this ran out, I bought a 1 kg spool of black PLA filament to fuel my first large project. I designed a box that was printed first for my sound activated LED strip project. Since 3D printing is so complex, there were many issues that have come up over time for me. The dimensions of the ender 3 pro are about 8x8x9 inches, which allows me to print relatively small to mid-size parts. If I need to create anything larger, it is also possible for me to split up the work between multiple parts and prints.