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.
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.
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.
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.
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.
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.