Intro to Circuit Design | Learn How to Make Your First PCB
by IllinoisSpaceSociety in Teachers > University+
672 Views, 5 Favorites, 0 Comments
Intro to Circuit Design | Learn How to Make Your First PCB
Who are we?
We're a team of about 100 undergraduate engineers from the University of Illinois at Urbana Champaign, and our mission is to be one of the first collegiate teams to design, build, and launch a two stage rocket 100km to the Kármán line.
Project Based Learning
On a larger scale, the Illinois Space Society's (ISS) guiding purpose is to enrich its members by allowing them to learn from hands-on projects. Many of our members develop skills that would have taken until their Junior or Senior year to formally learn. Working in a team environment also teaches a wider range of communication and teamwork skills often left out of the typical college curriculum.
We have a wide network of alumni across the aerospace industry, and one of the most common quotes we hear is that ISS is the reason they landed their first internship or started their career.
Education Focus
One of our core principles as a team is that we are education first, competition second. As such we've placed a massive emphasis on onboarding and having a "Do and learn" rather than a "Watch and learn" mentality with new members. Our team is often around 50% freshmen and they play a significant role in our development.
We've also found that placing such a strong emphasis on educating our members has been instrumental in maintaining team momentum and allowing us to pursue more advanced projects. It also helps retain new members because they feel included in our work.
Onboarding
We wanted to share with you some of the onboarding materials that we use to teach new members of our Avionics Electronic Hardware team so you too can learn about everything from the basics of electronics to designing your own flight computer.
The goal of these materials is to help kick-start your own after school electronics club or add some extra fun to an existing class or engineering team that wants to learn more about electronics. The intended audience is college students but this material can be adapted to multiple other grade levels, especially high schoolers!
Curriculum Content
Here's a brief summary of everything we'll discuss in this article:
Unit 1
- Lesson: Intro to Electricity and Electronics
- Content: Ohm's Law, KVL, KCL, Resistors, Capacitors, Inductors, Diodes, MOSFETs, Batteries, PCBs
- Lesson: Intro to TinkerCAD (Optional)
- Content: Program an LED Light Show
- Lesson: The 555 Timer
- Content: How do an LM555 and an N-Channel MOSFET work together?
- Project: Design 555 Timer Blinking LED Circuit with TinkerCAD
- Content: Wiring a 555 timer chip to control multiple LEDs on a breadboard
Unit 2
- Lesson: Intro to KiCAD (Optional)
- Content: Follow along video series on installing and using KiCAD
- Project: Design a 555 Timer LED Blinker With KiCAD
- Content: Implement the previous TinkerCAD 555 Timer Circuit in KiCAD
Unit 3
- Lesson: Reading Datasheets
- Content: Learn the basics of how component datasheets are structured
- Lesson: Communication Protocols
- Content: Learn how microchips talk to one another
- Project (Part 1): Designing Breadboard L1 Rocketry Altimeter
- Content: Use a breadboard to test all the circuit connections
- Lesson: Programming Your L1 Rocketry Altimeter
- Content: Set up the Arduino IDE and use library examples to program your altimeter
- Lesson: Soldering
- Content: Basic introduction to soldering
- Project (Part 2): Design an L1 Rocketry Altimeter With KiCAD
- Content: Use KiCAD to design the previous bread board circuit
Supplies
Many of the projects were designed to be completed online to allow for flexibility for educators to adjust for different class sizes, budgets, and learning needs. However, we did create a bill of materials (BOM) for the L1 Altimeter because it was one that our members have the most interest in physically assembling. We decided to include BOMs for both the breadboard prototyping version and the embedded DIY version.
Downloads
Unit 1
This unit focuses on ensuring that everyone has a general baseline understanding of electricity and electronics that they can then apply in other units.
Intro to Electricity and Electronics
The unit begins with a slide deck on the general fundamentals of electricity, and some basic electronics components. Depending on your grade or skill level it may be appropriate to remove things such as the Kirchoff's Voltage and Current Laws. Concepts like these don't derail the following 555 timer project but are useful when working independently on some of the future projects in unit 3.
- Here's a link to the slides: [Intro to Electricity and Electronics]
(A pdf copy is attached at the bottom of the section)
Intro to TinkerCAD Circuits
The next section is focused on learning the fundamentals of TinkerCAD Circuits to help design the 555 Timer LED project. Depending on your skill level you may opt to learn TinkerCAD Circuits in on of the following ways:
- Programming an LED Light Show - Official TinkerCAD Circuits Project Tutorial
- Official Guide to Tinkercad Circuits - Official TinkerCAD Circuits Manual
Our team would most likely opt to jump right into the 555 Timer Demo and encourage our members to practice their research skills by skimming the manual when they have specific questions about TinkerCAD. This allows us to head into KiCAD faster but depending on your needs taking it slower can definitely be a good option!
The 555 Timer
The 555 Timer is a very well documented and frequently used component in the electronics industry with a variety of applications. We decided to go with it for those reasons but also because it is very simple, having only eight pins, and is a good introduction into reading datasheets. This follow video by Ben Eater explains in detail how the 555 timer operates, and linked below is also a slide deck for understanding the 555 Timer.
- Here's a link to the slides: [555 Timer Explanation]
- Here's a link to the video: Astable 555 timer - 8-bit computer clock - part 1
(A pdf copy is attached at the bottom of the section)
Design 555 Timer Blinking LED Circuit with TinkerCAD
The closing project for this chapter is to implement and simulate the 555 Timer controlling a few LEDs using the photo of the breadboard at the beginning of this unit as a template.
The values for the resistors and capacitors are as follows:
- Large Polarized Capacitor: 10uF
- Resistors Connected to 555 Timer: 50kΩ
- Resistors Connected to LEDs: 500Ω
The reason we use a MOSFET to power the LEDs and the 555 Timer to control the MOSFET is because the output pin on the 555 Timer can't provide enough power to LEDs alone, so we use a MOSFET that can provide more power by directly connecting the power source to the LEDs.
Unit 2
Unit two covers the usage of KiCAD: a phenomenal open source electronic design automation (EDA) tool used for creating printed circuit boards. KiCAD is the tool we spend the most time with, which is why these tutorials are a bit longer than Unit 1. Typically, our onboarding is broken into KiCAD related material and everything else.
Intro to KiCAD
This section consists of a few resources that we've found do a good job of walking you through the installation process all the way to some advanced KiCAD topics.
You don't have to watch and read everything to get an understanding of KiCAD, but it will definitely help if you do! Also, if you still think you don't fully understand KiCAD, that's completely normal! You'll most likely learn KiCAD best as you get to use it with your projects. We often encourage our members to skim through these videos and then use them when they need to reference something as they are actively designing their projects.
Design The 555 Timer With KiCAD
The next step is to combine what you've learned by incorporating the 555 timer into KiCAD. We've created a two part video that walks you through the basic usage of KiCAD from schematic to layout if you didn't watch the previous part or would prefer some more guidance. If you're interested in a challenge, try designing it without watching the video and only briefly use the video if you get stuck.
Unit 3
This next unit focuses on combining everything you've learned about KiCAD while diving deeper into the typical systems you will see while working within our Avionics teams.
Reading Datasheets
Understanding how to effectively read datasheets is one of the most powerful skills you can learn as an engineer. Datasheets are the way we learn about parts and how we can integrate them into our projects. After some time, you'll start to get familiar with their formatting and be able to more quickly recognize the important sections of a datasheet. The following slide deck helps outline a few of the important sections you should reference in a datasheet.
- Here's a link to the slides: [How to Read Datasheets]
(A pdf copy is attached at the bottom of the section)
Encouraging students to dig into datasheets also teaches another valuable skill: the ability to be self-reliant by conducting independent research, because in industry the confines of a project probably won't nicely map to a curriculum with an answer key. A curious engineer that knows how to seek out answers is a major part in what makes a great engineer.
Communication Protocols
The backbone of any digital system are the communication protocols used by chips to talk to each other. When integrating a new chip into a system like a flight computer one of the first things we check is what type of protocol it uses. These protocols help define system compatibility, software design, and hardware design. This following slide deck introduces some of the basics of digital communication protocols by walking you through some of the most common ones.
- Here's a link to the slides: [Communication Protocols]
(A pdf copy is attached at the bottom of the section)
Designing Breadboard L1 Rocketry Altimeter
Before we design and manufacture a PCB, we often test our designs by using breadboard components and development boards. This makes changing and debugging our system very easy on a hardware level while also giving our software team a head start on beginning to address software compatibility issues.
We've provided a basic breadboard friendly parts list that will help you design a basic data logging rocketry flight computer that is based on our upcoming MIDAS flight computer. The goal is to mimic a very similar yet simpler system to what you'd find on one of our current designs. As a heads up, there is some minimal through hole soldering required to install the pin headers on the development boards. (The specific parts list is in the supplies section.)
A quick sidebar, the reason we call it an L1 is because there are three certification levels in American amateur rocketry: L1, L2, and L3, that each consecutively let you fly larger rockets. When our members are getting their L1 certification, some of them enjoy designing a simple data logging circuit to fly with their rocket, so we catered this design towards them.
A word of caution, the L1 breadboard does not test every aspect of the embedded DIY version and instead focuses on ensuring the major components such as the sensors and microcontroller work well together. Other aspects such as the status LEDs or power regulator are not included. However, feel free to modify the breadboard version to test these aspects as well or add other functionality!
Let's take a moment to talk about some of the core components in our data logging flight computer or "Altimeter" as often referred to in the amateur rocketry community.
ESP32-S3 - Microcontroller
The microcontroller is the brains of the system and is what controls all the other components. It's what we also program when we want to write software to control our altimeter. The ESP32-S3 is very popular amongst the hobbyist community for its affordability, availability, and price to performance ratio. It also has built in Wi-Fi/Bluetooth for additional learning opportunities with students.
BNO086 - 9-Axis Inertial Measurement Unit
The BNO86 is yet another very popular sensor amongst the hobbyist community for its relatively good documentation and features. The BNO86 has a 3-axis accelerometer, 3-axis gyroscope, and 3-axis magnetometer. This allows it to measure acceleration, rotation, and the Earth's magnetic field which enables it to determine its, or the rocket's, current orientation and position!
MS5611 - Barometer
The MS5611 is a low pin count, simple barometer with a well documented software library for integrating into your projects. Barometers measure air pressure, which you can then use to determine altitude.
We don't have a breadboard wiring guide, but further down are the design files for when we'll embed this system with KiCAD. At this stage, we don't expect our members to seamlessly figure out how to wire together the altimeter but we do expect that our members know where to start looking for useful information by reading datasheets, product guides, and example implementation guides.
As a good starting point students will need to think about three important things:
- How is power provided to all the components?
- Use the 3.3V output from the ESP32-S3 which gets power from its USB port
- How do the different sensors communicate with one another?
- SPI or I2C (It's their choice but I2C is recommended for simplicity)
- How do we program the system?
- By using either of the USB ports on the ESP32-S3 development board
Programming Your L1 Rocketry Altimeter
The first step to programming your altimeter is by downloading the Arduino Integrated Development Environment (IDE) with this guide:
The next step is to download the appropriate libraries for the BNO086 and the MS5611.
These are the manual links to install the libraries, but there's a good chance you can install them directly through the Arduino IDE's library manager. Luckily, both of these libraries come with example starter code for you to kick-start your development.
If you're still a bit confused on how to program your system, don't fret! There's a plethora of documentation that's only a search away on how to program with the Arduino framework.
If your class size or budget doesn't allow for bread boards or soldering the embedded version, you can explore simulating the hardware on Wokwi. This is also a good opportunity if you just want a low stakes environment to learn embedded programming.
Wokwi allows you to create and simulate a wide variety of Arduino circuits, so, even if you can't make the altimeter for any reason, this is a great online alternative to teach you many of the same skills.
Soldering
Before you can design and then assemble your embedded DIY altimeter, you need to learn about soldering and how we attach components to PCBs. This following slide deck should give a decent understanding of what soldering is, but we highly recommend watching the linked videos and searching for more videos until you feel comfortable with the steps.
- Collin's Lab - Surface Mount Soldering
- Here's a link to the slides: [Soldering]
(A pdf copy is attached at the bottom of the section)
Design an L1 Rocketry Altimeter With KiCAD
Now that you've hopefully tested your circuit on a breadboard it's time to embed it onto a single PCB with KiCAD. We've provided the schematics and routing for you to use an example below. Once you've designed it in KiCAD, if you want to assemble it you'll first have to export the Gerber and drill files and send them to a PCB manufacturing company like JLCPCB or PCBWay for assembly. This next link walks you through how to export your fabrication files to send to JLCPCB. (This video also discusses how to export your project for JLCPCB's SMT assembly services, but that's not needed for this.)
Imagination
Congratulations! You've made it to the end of our onboarding curriculum. It's time to use your newfound knowledge to create your next big project. The possibilities are endless but a good starting point is definitely the Circuits Section on Instructables.
If you're interested in learning more about our work or seeing what your potential next project could look like, here's an Instructable about our TARS MK4 Flight Computer. We're almost ready to release our next generation flight computer MIDAS MK1. Stay tuned!
Curriculum
Standards Alignment
ABET General Criteria for Baccalaureate Level Engineering Programs Criteria 3 Outcome 1
An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics
ABET General Criteria for Baccalaureate Level Engineering Programs Criteria 3 Outcome 6
An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions
ABET General Criteria for Baccalaureate Level Engineering Programs Criteria 3 Outcome 7
An ability to acquire and apply new knowledge as needed, using appropriate learning strategies.
Learning Objectives:
Unit 1
- Lesson: Intro to Electricity and Electronics
- Learning Objective: Build a foundational understanding of electronics and circuit notation
- Lesson: Intro to TinkerCAD (Optional)
- Learning Objective: Learn how to use TinkerCAD to assist with future design projects
- Lesson: The 555 Timer
- Learning Objective: Understand the 555 timer fundamentals for the following project
- Project: Design 555 Timer Blinking LED Circuit with TinkerCAD
- Learning Objective: Combine previously learned content in the chapter
Unit 2
- Lesson: Intro to KiCAD (Optional)
- Learning Objective: Learn in depth the fundamentals of KiCAD
- Project: Design a 555 Timer LED Blinker With KiCAD
- Learning Objective: Learn KiCAD by using a familiar 555 Timer Circuit
Unit 3
- Lesson: Reading Datasheets
- Learning Objective: Begin encouraging students to do independent exploratory research.
- Lesson: Communication Protocols
- Learning Objective: Begin understanding how to put together more complex systems
- Project (Part 1): Designing Breadboard L1 Rocketry Altimeter
- Learning Objective: Prototype the circuit to avoid easily preventable issues that are harder to fix on a custom made PCB
- Lesson: Programming Your L1 Rocketry Altimeter
- Learning Objective: Learn how to program your development boards while learning how to search for and use external resources.
- Lesson: Soldering
- Learning Objective: Prepare for making a custom PCB
- Project (Part 2): Design an L1 Rocketry Altimeter With KiCAD
- Learning Objective: Combine multiple previous units and lessons
Project Rubrics:
Attached below is a rubric for grading the various projects in this article.