How-2-Pcb-Design-Basics Supplementary Material
How-2-Pcb-Design-Basics Supplementary Material
Also, in the video I said that there are no resources online available for learning PCB design
stuff. That was pretty much how it was when I started, but in the time since then lots of good
tutorials online have popped up on PCB design stuff, so you can learn a lot online by yourself.
I'd recommend Phil's Lab (although he doesn't do Flex PCBs), the Altium Blog tutorials (the
ones by Zachariah Peterson are great!), any podcast that features Eric Bogatin or Q&A
sessions with him (look up Robert Feranec on youtube, he talks with industry experts like Eric
and gives tutorials). Eric is absolutely cracked out at PCB design and gives talks at conferences
like PCB West and has seen lots of stuff in industry over the years. Yamelak actually messaged
him on LinkedIn one time with a question and he responded the same day; since Eric is a
professor at University of Colorado Boulder he responds to questions from students and is nice.
Of course, if you're going to ask him something, make sure it's not a question that you could
easily answer by looking it up on Google or watching videos or asking HR FSAE alumni (or me)
or thinking about it for a little while.
For stuff on flex PCBs, look up Carl Bugeja on youtube. The main thing he does is make flex
PCBs and you can learn a lot from him about them.
● After you are done with PCB layout, that's when you run a Design Rule Check (DRC) in
Altium. That essentially checks to see if any part of your layout violates any of the design
rules you defined at the beginning of layout in Design->Rules (accessed in the PCB
editor).
○ Go through and fix all the problems (or update your design rules if you made a
mistake while defining them, but don't just update your design rules purely to get
Altium to stop screaming at you) accordingly by manually adjusting layout
● Following DRC, you want to get your board manufactured. To do this, you need to
generate the Gerber files. Your manufacturer should have a dedicated page on their
website showing you what they want and how to generate the gerbers for them
specifically (here are JLC's instructions)
Additional notes:
● When sending in your board to get fabbed, you need to have a board outline on your first
mechanical layer (the purple colored Mechanical tab closest to your blue "Bottom Layer"
tab). If you don't have this, the JLC site won't let you upload your PCB to the automatic
quote thing or it will show the dimension boxes as empty
2-layer PCB
Good stackups:
● Can flood GND on top layer around signals and flood on bottom layer too
● Can also flood GND or PWR on top or bottom, doesn't really matter much with 2-layer
boards
Additional Notes:
● 2-layer PCBs should generally be used for very simple circuits that don't require
impedance control. If you need impedance control, it's better to use a 4-layer board that
has at least one established GND reference plane/pour on the layer directly below your
impedance controlled traces
4-layer PCB
Good stackups:
Stackup 1
1. SIG
2. GND
3. GND
4. SIG
Stackup 2
1. SIG
a. (critical signals, i.e. oscillator traces, diff pairs, single-ended impedance
controlled stuff)
2. GND
3. PWR
4. SIG
a. (random signals that are low frequency or GPIOs for driving LEDs, etc.)
Stackup 3
1. SIG
2. PWR
3. GND
4. SIG
You can flip them around like that if you like, but since the components generating/handling the
critical signals are probably going to be on the top layer I'd personally go with Stackup 1 or 2
Bad stackups:
Stackup 1
1. SIG
2. PWR
3. PWR
4. SIG
Where is GND???
Stackup 2
1. SIG
a. (needs a reference layer directly below it, stuff on this layer will couple with layer
2 signals)
2. SIG
3. GND
4. SIG
Stackup 3
1. SIG
2. SIG
3. SIG
4. SIG
E.x.
6-layer PCB
Good stackups:
Stackup 1:
1. SIG
2. GND
3. PWR
4. PWR
5. GND
6. SIG
Stackup 2:
1. SIG
2. GND
3. PWR
4. GND
5. PWR
6. SIG
Etc.
Typically though people seem to usually keep signals on top and bottom layer, even though
stackups like this are technically valid.
In summary:
● Sandwich SIG layers with GND planes/pours
● PWR can be below or above SIG, so long as there are no critical signals being
referenced to the PWR plane (PWR plane can be noisy and is not always stable,
remember E-fields are generated from differences in charge and B-fields are generated
from current flow and remember Lenz's law)
Also, WATCH THIS VIDEO LINKED BELOW! Watch the whole thing it's great
https://www.youtube.com/watch?v=ySuUZEjARPY
Flex PCBs
● https://www.youtube.com/watch?v=HLYWD0P5TOQ
● https://www.youtube.com/watch?v=wa2L0C0SApU
● https://www.youtube.com/watch?v=jj0JI2AjUus
Comms Protocols
Main ones (that you could be asked about in an interview)
● SPI
● I2C
● UART (now there is also USART)
● CAN
● USB
● Ethernet
Programming Protocols
● JTAG
● SWD (for ARM-based MCUs only)
● For STM32 MCUs, you can also flash firmware through USB if you set it up a certain
way
Helpful Software
https://saturnpcb.com/saturn-pcb-toolkit/
(I use this one a lot during PCB design)
Interview Prep
https://montychoy.com/blog/the_ultimate_list_of_hardware_engineering_internship_interview_qu
estions
(awesome site, use as a reference. This helped me when I did Apple interviews)
https://www.electronics-tutorials.ws/
(general electronics knowledge reference, not good for developing intuition but good for
memorizing different circuit types)
https://www.youtube.com/playlist?list=PLyQSN7X0ro2314mKyUiOILaOC2hk6Pc3j
● Great lectures, sums up concepts concisely in an engaging way
● Still applies to today, E&M basics isn't really a field that has changed over time aside
from people adding stuff to it as opposed to changing it
Verilog & HDL Stuff
https://hdlbits.01xz.net/wiki/Main_Page
● This site is the LeetCode for Verilog
● Use SystemVerilog in your projects instead of Verilog. SystemVerilog is updated version
of Verilog with some slight changes in syntax, but not too different so you can practice on
this site and basically know how to do SystemVerilog
Building a Portfolio
NOTE: I can't necessarily guarantee that doing any specific one of these things will get you an
internship, but know that if you are doing projects that fall into the Intermediate/Advanced levels
then your application will probably get noticed by some big companies and get at least a few
interviews. Regardless of whether you get an internship at a big company, it is likely that you will
have the skills to land one at a non-FAANG (MAANG) company (as of now, 4/25/2024. Can't
say how things will go in the future, but figured I'd provide a benchmark so you have an idea of
what to focus on or do.). Of course, at the end of the day you get out of this what you put into it.
If you spend lots of time working hard on your PCBs and make them highly functional and with
good aesthetics, then you will probably get a job somewhere.
Focus on also spending time debugging your designs. Don't just design something and then
design another thing without testing the first thing and going through the entire PCB process.
Also spend time learning how to write firmware. Use the Zephyr/Renode setup that Alex uses (a
Tesla firmware engineer told Alex that that is how they write firmware at Tesla) and you will be
good to go.
Intermediate:
● Something that has one or more MCUs on board
○ USB, CAN
● Complex circuits without MCUs like BSPD, SDCCB, etc.
● Basic RF PCBs (simple waveguide for something, etc.)
○ MCU that supports bluetooth/wifi
○ https://www.microwaves101.com/encyclopedias/antenna-design
○ https://www.ansys.com/blog/common-antenna-designs
Advanced:
● PCB with an FPGA or Processor (Intel, AMD, etc.)
○ AMD Zynq 7000 (might be a good one to use for a project, lots of documentation)
■ https://docs.amd.com/v/u/en-US/ug933-Zynq-7000-PCB
■ https://docs.amd.com/r/en-US/ug585-zynq-7000-SoC-TRM/SD-Card-Boot
○ Maybe make something that you can integrate into a robot or machine learning
application
○ If you use an FPGA, you should implement your state machines in SystemVerilog
○ If you use a Processor, try to set it up with Embedded Linux (i.e. Chibi OS or
something similar)
● Hardware accelerator
○ This is a good one, Phil's Lab has a tutorial for this on youtube
○ If you're making one of these for a project, make your own version using a
different FPGA. If you just copy Phil's design, then you won't learn anything. Also,
it's going to show when an interviewer asks you about it.
● Custom RAM stick
○ If you want to learn how to design a RAM stick, then just open up your PC case
and take out a RAM stick and then observe how they did layout on it. Or you can
go to Microcenter and buy different types/brands of RAM and compare how they
did layout for each one
○ https://www.youtube.com/watch?v=S4Q62l1VFiU (considerations when making
gold fingers)
○ I don't think this is a super creative project though because you're essentially just
making your own copy of a RAM stick which is kind of useless if you can just buy
RAM at the store and you just copied layout
○ Still good to study RAM sticks to learn from them though if you want
● Advanced RF PCBs
○ I am not well versed in RF design, so you will have to figure this one out yourself
○ https://www.youtube.com/watch?v=1LltV18F93A
NOTE: The above list is just project ideas you could think about. I'm not saying you'll instantly
get an internship if you make these exact projects. Those are just things to get you thinking
about what could be possible. Do your own research and figure out what you want to do.