Design Flashcards
Importance of designing your PCBs in parallel with your class diagrams
- Want to make these PCBs used in your project as similar as possible. Ideally, you could reuse the same board design for two or more independent systems within the same project (but it isn’t always possible) It simplifies breadboarding AND it allows you to consolidate more of your code into your parent classes
- When it comes time to breadboard the circuit (always after function testing the components), you’ll want to start at the top of your class diagram and work your way down
- breadboarding AND writing code for the most basic functions/use cases first
- then add to your breadboard and extend your classes as you go (helps prevent redundant testing, ensures code quality, and accelerates development)
-Just because you are using classes does not mean you have to rely on OOP and OO languages (which are sometimes bloated with undesirable features that are not relevant for your application)
-using a library for inheritance instead of a class provides looser coupling and greater flexibility and maintainability
- When it comes time to breadboard the circuit (always after function testing the components), you’ll want to start at the top of your class diagram and work your way down
Importance of minimalism
Excessive use of any component will add unnecessary cost, weight, complexity, maintenance, and risk. In general, you should determine the minimum number of microcontrollers/motors/moving parts/etc you will need to satisfy your requirements, and not use more than that (the only exception is if one of your requirments calls for redundancy). There are some elements in your system that you want to use sparingly:
-Microcontrollers: the fewer microcontrollers you use, the less coding/testing/debugging you’re going to have to do. You will also need fewer parent classes, which makes planning the code much faster.
-Motors: each motor you add to your system drives up your cost, weight, power consumption, and volume consumption. Don’t do it with four motors if it can be accomplished with three.
-Moving mechanical parts (including bearings): All moving parts in your system will encounter both friction and thermal expansion. And each of them has to be aligned and lubricated properly. The more parts that have to be moving to get the job done, the more likely it is that your system will not function.
-Valves and pipe fittings: each one of these gives the fluid an opportunity to leak
-Static mechanical parts:
-Structural extrusion/plates: these will give you diminishing returns. As you add more and more beams and plates, you’re increasing the weight, cost, and assembly time while only getting minor structural improvements.
-Bolts and Screws: every time you add a hole for a bolt or a screw you are creating a region of concentrated stress around that hole and decreasing the load-bearing capacity of that material. Using five bolts when four will do adds cost, weight, and RISK, while also making it more time consuming to assemble and disassemble.
Role of CAD on a project
CAD can be used as an authoritative source of truth for individual teams. Everyone on the mechanical and electrical teams can look at the CAD and see how things are placed and how they will interface with the components around them.
-Example: mechanical requirements may influence board design. People designing the PCBs may need to look at the CAD for reference when doing their Altium work
-CAD is also important for bringing the SMEs up to speed on your design/application. They will want to see where you what you are working on and how it will be used
-CAD should be updated as you go, so that you can keep track of design changes as they come up
Concerns when using components/techniques
Anytime you’re considering using a component that you’ve never used before, you need to be very careful
-Example: Considering using a slip ring when you’ve never used one before
-find someone who has actually used that on a project and ask them all about it
-Good Questions to ask
1) how does it work?
2) what are the limitations or risks?
3) are there particular varieties that you should be looking for or avoiding?
4) what criteria should you use in a trade study for selecting one?
5) which of those criteria is most important for your application?
6) what are the advantages and disadvantages of using this hardware? Are there better alternatives out there?
7) What are their recommended best practices?
8) how do I implememnt this correctly? Is it the sort of thing that is often used incorrectly?
Concerns when using salvaged hardware
when you are using hardware that you found/salvaged and you cannot find a datasheet, you need to characterize that hardware through testing
-this helps make sure you are equipped to talk to the SMEs about the hardware and the best way to implement it
-make sure you’re up to speed on your statistics skills so that you’re actually testing/sampling/analyzing properly
-finding University lab manuals can be a great way of doing that. They tell you what to look for and give you a procedure for reaching those objectives
-exercise caution when using AI for this, they do not fully understand how hardware is tested or used in application
Dev-systems
In some situations you need a “development” version of your system (or subsystem) so that you can troubleshoot/show the SMEs. Dev-systems prioritize easy testing and troubleshooting. They include features that make it easy to diagnose problems and identify flaws in the design
-This is especially important when your system (or subsystem) design will hide IP and prevent reverse engineering (even if it’s just by coincidence)
-Example: making a PCB with black silkscreen makes it easier to radiate heat and keep the electronics cool, but also makes it impossible to see the traces. Don’t make the PCB with black silkscreen until you have proven it works on a dev-board with green silkscreen
-Build the dev-version first, then once you get it working you can build the real version
“Line item minimization”
You can keep the redundant component/procurement strategy from driving up your costs by designing your system so that you have as few line-items on your “bill of materials” as possible: Keep the variety of electrical components (capacitors/inductors/FETs/resistors/switches/motors/batteries) and mechanical components (screws/bearings/extrusion/filament/pipe fittings/valves) to a minimum
-This also helps you save on shipping
Requirements Flux
For mid/long term design projects, you might not have all the requirements right away and the requirements you do have could change at any time; the details of the design will be in constant flux.
-Thats why you always start with the requirements-driven logical design and work your way to the lower-level physical design as the budgets and outside factors come into focus.
-You want to reduce the work it takes to get around changes/failures/surprises (CFS). That’s easier to do with logical representations
-Case 1: If you are designing while also concurrently doing one or more tradestudies, the outcome of that trade study will definitely trigger some redesigns (like the SiPMs v. PMT tradestudy or the pre CDR design change for Swingsat)
-Case 2: Your system will depend on the availability and functionality of external systems. As an example: Spacecraft depend on the rockets to get into space. Different missions require different rockets. If the rocket changes, your mission changes and your design will have to be updated to reflect those changes
-Dont use this as an excuse to avoid doing actual design work. You should be CADing and doing tradestudies while you model the logical architecture
Physical protection for sensors
Sensors/actuators often need to be PROTECTED. Possible precautions that may need to be taken:
-Windscreen
-Thermal safegaurds
-ESD safegaurds
-Shielding/EMI safegaurds
-Protective Windows
-Surrounding Structures
Level of effort in design optimization
Convenience is a goal, but not a priority. If you end up spending hours trying to minimize the parts list or prevent some design change that makes assembly marginally less convenient, it’s not worth it.
Knowing when to end the design phase and begin manufacturing
There is a sweet spot when it comes to being proactive about building hardware: if you’re too proactive, you will inevitably have redesigns but if you prioritize “finalizing” all the design work, you will literally never get to a point where you’re ready to build
-In group projects, always brief the team members/leads before you start manufacturing or assembling because you don’t know what might have changed about the design.
-Even if they helped you design it, people are flip-floppy and you will not be notified of every single design change that popped up since the last time the two of you looked at it (this also applies to changes in needs/requirements/strategy)
Making design assumptions
- Write them down
- Validate them with your SMEs
- Test them once you have a built system
ALWAYS get your assumptions verified by a SME/mentor. It’s easy to fall for bias (especially wishful thinking) in engineering design. You need to carefully separate what you KNOW to be true about the system/mission and what you WANT to be true about the system/mission. (Jon and Ben are both victims of this). Making the assumption is fine, but you need to make sure that the assumption makes sense and that you can test the assumption after integration.
Also need to WRITE DOWN your assumptions, so you don’t lose track
The psychology of assumptions
It’s easy to fall for bias (especially wishful thinking) in engineering design. You need to carefully separate what you KNOW to be true about the system/mission and what you WANT to be true about the system/mission. (Jon and Ben are both victims of this). Making the assumption is fine, but you need to make sure that the assumption makes sense and that you can test the assumption after integration.
Design Creep
Even if you’re truly focused on the requirements, it is inevitable that your design will have to be modified over time. Usually that means marginal increases in complexity.
Example: You will likely need more power/data/ground lines than you expected and you don’t want to have to change out the connectors every time there’s a design change that requires a new data line.
Two reasons you might sometimes choose a connector with about twice as many pins as you need for the board/enclosure
1.. Design creep: you will likely need more power/data/ground lines than you expected and you don’t want to have to change out the connectors every time there’s a design change that requires a new data line.
2.. Cross Talk Prevention: Any unused pins should be left as “no connects” and used to help space out your noise-drivers
Reasons for using protoboards or at least PCBs with reserved through-hole regions
Electrical boards require extensibility/flexibility. A protoboard allows you to easily add/remove components as the design evolves, without having to design/buy/ship new custom PCBs every time you have make a design change
-you can also have “hybrid PCBs” (PCBs where some of the board has a hole pattern just like a protoboard, that way you can add through-hole components as needed)
-Protoboard design tips:
-Wires used for traces do NOT have to go in a straight line or even be flush with the board (especially if you have a wiring-dense region of the board)
-Do your layout in CAD and work with the mechanical team/SME to make sure you have the right dimension and connectors in the right spots. Print it out and make sure it actually fits in the structure BEFORE you protoboard
-Chose the wires on your protoboard with care. High gauge wires are easier to use in tight connection-dense spaces. Stranded wires are usually very mailable, which can also be great for connection dense regions, but you have to ‘tin’ the ends. Lower gauge wires are best for higher power signals.
-Wherever possible, use headers for your through-hole modules instead of soldering then directly to the board (and make sure there’s enough room in your enclosure for this to be possible)
-If necessary, you can make your own breakout boards for ICs. This is an especially useful thing to do if you intend to have use an actual custom PCB in the final version of your design because it allows you to embrace the benefits of modular design
-This means that in early versions of your design, you should leave ample space for your electronics (protoboards take up more space than custom PCBs)
-this must include the space needed to physically interface with the connectors on those pcbs by hand
Reasons for using protoboards or at least PCBs with reserved through-hole regions
Electrical boards require extensibility/flexibility. A protoboard allows you to easily add/remove components as the design evolves, without having to design/buy/ship new custom PCBs every time you have make a design change
-you can also have “hybrid PCBs” (PCBs where some of the board has a hole pattern just like a protoboard, that way you can add through-hole components as needed)
-Protoboard design tips:
-Wires used for traces do NOT have to go in a straight line or even be flush with the board (especially if you have a wiring-dense region of the board)
-Do your layout in CAD and work with the mechanical team/SME to make sure you have the right dimension and connectors in the right spots. Print it out and make sure it actually fits in the structure BEFORE you protoboard
-Chose the wires on your protoboard with care. High gauge wires are easier to use in tight connection-dense spaces. Stranded wires are usually very mailable, which can also be great for connection dense regions, but you have to ‘tin’ the ends. Lower gauge wires are best for higher power signals.
-Wherever possible, use headers for your through-hole modules instead of soldering then directly to the board (and make sure there’s enough room in your enclosure for this to be possible)
-If necessary, you can make your own breakout boards for ICs. This is an especially useful thing to do if you intend to have use an actual custom PCB in the final version of your design because it allows you to embrace the benefits of modular design
-This means that in early versions of your design, you should leave ample space for your electronics (protoboards take up more space than custom PCBs)
-this must include the space needed to physically interface with the connectors on those pcbs by hand
Nine aspects of preliminary research for subassemblies/subsystems
Before you start designing, you should read/learn/ask professionals about:
1. Basic Math/Physics (to justify design principles)
2. Design (Tools/Principles/Best Practices)
3. Prototyping (DIYing some of the design)
4. Manufacturing
5. Testing
6. Troubleshooting
7. Refurbishment (fixing design mistakes post-manufacturing)
8. Simulation
9. Cleaning/Maintenance (usually just for subsystems, need to know how to take care of the hardware, including how and when to clean the it because doing it wrong can have consequences)
Maximizing the number of options or alternatives you have when making a design decision
There are almost always several ways to do something. If you think there are only two options, you need to do your research and make sure there isn’t a third option (depending on your application, that third option could be better than the other two)
-questions that might help this kind of thinking: “is there an assumption I’m making and can ignoring that assumption help uncover more options?” or even “Is there a way to have a hybrid of my two options?”
-run your answers by you SMEs
Auxiliary systems
Need to consider what auxiliary systems you will have to design for your project (battery chargers, carrying cases for large but fragile parts you build, test stands, pulley/lifting mechanisms). You should have an idea of what these auxiliary systems are going to be at the start so that you can design them specifically to be compatible with that system and eachother.
Importance of screw size
make sure that you are being consistent with what types of screws you are using in your project. Do not attempt to use screws that are too long -you will damage the hardware and/or the screw
Incorporating modular reusable components
For some applications, modular reusable system components are great for extremely rapid prototyping and concept proving. If you are designing these components, you should get them validated by a SME/mentor, otherwise they should be reputable COTS products (This should not always be the solution, but it works when you have generous requirements and little/no reason to optimize):
-MECAHNICAL: LEGOs are sometimes better than 3D prints
-LEGOs provide a way around some of the problems with 3D printing (requires time consuming CAD, several hours for large prints, layer shifting, time consuming recycling processes, expensive filament, limited precision, difficult to maintain dimensions as the print reaches steady state temperature)
-3D printing is also challenging when it comes to gears/mechanisms whereas Lego-based mechanisms use premade gears that are already compatible with each other and the structures into which they’re integrated
-This only works for small/compact systems with have no serious forces/impacts at play and no thermal concerns
-ELECTRICAL: Using modular boards (that you’ve had validated) significantly simplifies your design. Without even knowing which project you’re going to use them for, you can build a board that has a simple simple microcontroller, a p-channel mosfet (so that you can plug it in while connected with the batteries), one or more N-channel mosfets (for actuator control), a radio module, and terminal blocks (I/O for batteries, I2C, UART, SPI, mosfet drains, GPIO, Servo control)
-This only works if you have no major computational requirements for your microcontroller, no major space constraints, and no intention to use analog electronics
Practical application of a sunken region beneath where the PCB will be mounted
The space directly underneath a PCB is a great spot for storing excess cable. If you create a little sunken region, that will go a long way in terms of making sure you don’t have loose bits of cable all over the place.
Your cabling should be slightly longer than needed anyway to make assembly and disassembly easier (be advised that this may cause communications problems like crosstalk, but do not assume that this will be a problem. Test it and shorten the cables if need be)
Chosing custom processor v. a Raspberry pi v. just a regular microcontroller
-Chosing the wrong category or even the wrong product can cause huge problems: thermal/power, comms, etc.
-Measures of effectiveness:
-processing power+power consumption
-number of cores
-memory
-size/footprint:
-customizability (options/modes/configurations)
-cost
-protocol support
-peripheral support
-ESD rating (either HBM or CDM)
-Immunity level
-EMC compliance level
-It is also wise to look at the operating system and what protocols it uses for various modes (ie bootloader mode). Want to try and avoid using the same protocols in your communication (example: if bootloader mode uses UART, you either need to switch microcontrollers or switch protocols)
-Microcontrollers are ideal for low-power, real-time, and simple tasks (limited processing and memory requirements)
-Raspberry Pis are needed for when you need higher computational power, large memory, advanced networking, a full operating system, complex UIs, or sever-level storage
-Fully custom processors are reserved only for two purposes:
1) boards you expect to be mass produced (consumer electronics, automotive)
2) class 3A boards for aerospace or medical
*Possible advantages you can capture: ultra-low latency, ultra-low power consumption, low cost-per-unit, such a high level of performance that the processor should be designed for specific algorithms