I agree. I just got a great book, Electronics Principles by Malvino, on electronic engineering with especially analog focus. I was told to get another one to learn proper PCB design. There's others for Verilog. Unlike programming, most stuff in these has to be learned by trial-and-error with hardly any instant solutions a la StackOverflow. Graphics cards themselves are their own beasts with complex issues even for simple ones, esp integration w/ regular software.
So, as I'm reading this, I'm surprised how nonchalantly he describes what looks like a ton of headaches that's in front of me personally. Doing some basic stuff in Verilog on an FPGA is straight-forward. What he's done was not unless he found some excellent resources that basically let him cheat a lot in the learning. I'd be interested in them as I'm collecting resources with HW knowledge and wisdom.
For beginners, buying books on PCB design isn't worth the money. You'd be better off spending $50-100 on a load of sensors, designing the boards for them and getting them built. You'll learn far more than a book will teach you. There are lots of good Eagle and KiCAD tutorials online.
If you need to know about design, read application notes from manufacturers. There are thousands and thousands. Often they will dictate how you should route a particular component. You can look at reference boards from people like Analog, which typically come with schematics and layout files. Most of the big name companies have guides for layout:
What you will quickly find is that there's a lot of differing opinion on what is "right". Until you need boards with high speed digital/analogue/mixed, you don't really need to worry much about how things are laid out. You will almost always be constrained by more practical issues like enclosure sizes or where you have to put connectors.
I appreciate your feedback but it concerns me. It sounds like a lot of trial and error with components that cost money. One concern I have with that is it's dealing with electricity. What's the odds of getting components fried or yourself electrocuted just doing trial and error learning from tutorials and datasheets? And when you've done a bunch do you even really understand what you're doing when given fresh components?
"If you need to know about design, read application notes from manufacturers. There are thousands and thousands. "
I'll try to remember that.
"You will almost always be constrained by more practical issues like enclosure sizes or where you have to put connectors."
I'll definitely believe that. Thanks for the tips and different perspective.
If you make electronics, the odds of frying a component or electrocuting yourself is 100%, regardless of how educated or talented you are. The following happen to me on a regular basis, whether I'm working on high speed digital/RF or making something simple like an arduino shield, even though I learned as an apprentice under a brilliant EE:
* PCB with poorly aligned copper layers shorting the second the prototype is plugged in, usually destroying at least one chip. Lots of smoke and burning FR4
* Solder in $100+ high power transistors the wrong way. BOOM
* Using a counterfeit capacitor from shady vendor that either shorts internally or just plain explodes. Happens a lot when I need a really large capacitor and have to get it on short notice
* Forget to use a little extra flux and tin 'whiskers' form between freshly soldered pins that short them the second the device is powered up. This is so common that NASA has a whole website dedicated to the topic [1]
* Use wrong temperature profile or make the pin layout a thousandth of an inch too small or large and bam, two solder balls on a BGA flow together, requiring hours for reflow and reballing if you're lucky, and a new $2,000 FPGA if you're not.
Any nontrivial circuit is going to be impractical to simulate (and impossible to describe analytically as a whole) for all but the most well funded projects so I'd say 90+% of EE is trial and error, even for the most experienced designers. There's many rules of thumb and you develop an intuition for a wide variety of situations just like you do in programming, but it's just a fundamentally different field with different constraints.
Wow. That's some crazy stuff. So, the scary, trial-and-error is unavoidable then. Thanks for the feedback. Btw, I just recommended a few books here based on feedback from other EE's...
Any thoughts on them? Particularly, a combo of something like Malvino and Circuit Designer's companion to get a good head start on analog and PCB's respectively. Or do you have other references that kick ass in teaching practice more than theory? Gotta build up links for new people to accelerate hands-on part of their learning just like others did for programming.
Note: Art of Electronics is usually in my list but that link was for digital learner. Not sure if it's needed there.
What sort of circuits do you want to design? RF? Audio? Analogue is a big field! It's like saying "I want to write programs, which books do you recommend?"
I'm gathering information to help everyone out then organizing, cataloging, and sharing it. You could say it falls into some basic categories:
1. Enough knowledge to get designs working on a FPGA plus integrate that with other chips on a PCB. OSS HW with minimal analog.
2. Enough knowledge to design basic analog circuits for control and stuff. Alternatively, to design digital cell libraries as there's almost nothing available for academic toolbuilders.
3. The serious, mixed-signal shit that lets me do some parts in digital and some parts in analog where it handles it better. I've seen analog coprocessors with 100x performance at 1/8th power on ODE's and stuff. It also seems like certain signal processing or media codec tasks would be crazy fast/efficient in analog. I know high-end ASIC's make extensive use of such techniques. What tidbits I see in blog comments and papers can only be described as black magic without a more thorough resource. :)
4. RF books outside of ARRL that's been recommended to me. Need a lot of people experimenting with this stuff to reinvent things like TEMPEST that are classified. They need some good resources to get head-start.
So, those are some basic categories where I'm looking for both accessible, foundational material and cookbooks with heuristics. Being able to combine COTS components like MCU's and FPGA's on custom PCB's is major help to hobbyists. Being able to make the cells and basic, analog components required in about any ASIC in conjunction with tools like Qflow OSS Synthesis could get custom stuff going quicker. More thorough stuff for mixed-signal for its advantages plus to explore analog and digital interactions in digital systems that can screw either up. And RF for reasons stated.
Whatever you have. Drop it here or email it to me in my profile address. I'll keep circulating that along with others tips and resources whenever people ask.
I've never had electric shocks before, but frying components sure. Don't work with mains voltage directly if it worries you. You can power most hobby projects from a USB port or a wall wart. Designing power supplies is one area where you might want to read up on things like trace clearances, but again, look at YouTube for PSU teardowns (bigclivedotcom has plenty).
As always it's mostly human error. I have never (literally) fried a component from overheating, it still amazes me how hardy modern ICs are. I've also never paid too much attention to ESD protection, though if my job depended on it then I would. What has happened is shorts, often. Even the GPU guy routed his board with GND and VCC back to front, it happens to the best of us. Most chips are at least partially tolerant to silly things like overvoltage, so even if you accidentally short some GPIOs on a micro, the protection circuitry might save you. Simple advice is to put a low-current polyfuse on every prototype you make. It's saved me so many times when I've shorted power supplies by accident.
The more complicated your circuit, the more likely it will be that you mess up. Don't try and solder a 150-pin BGA on your first board. Build some breakout boards for sensors, build your own microcontroller dev board (ARM if you want a challenge) or pick a project from the internet.
Odds of messing up you first board in some subtle way? Unless it's a very simple board, > 80%? Components are cheap though, roll with it! Plus you probably won't brick all the components if something goes wrong, the magic smoke will usually only come out of one.
When I make mistakes, usually they're footprint (e.g. wrong pinout) or construction errors (shorts between pads, etc). If the schematic is incorrect then that's another issue, but most often it's things like not reading a datasheet properly and forgetting to connect a pin, tying an positive-enable pin to GND rather than VCC, etc. In principle layout engineers assume that the circuit diagram is gospel, so the blame doesn't always lie with them. Of course if you're the designer and the layout engineer...
I'm now at a stage where I can get a board back from the fab and it'll usually work :)
Just to add some: There's a lot of specialization in EE like any other field and you can't really dive into everything. I find power electronics to be more of a black art than RF or high speed digital so I try to never design my own. I've seen people spend years working on a single design for a solar inverter making dozens if not hundreds of iterations, testing with all types of switching circuits and chips, comparing the behavior of one vendor's capacitor to another, understanding different transistor behavior, and so on. Thankfully, nowadays you can go to TI and use their automated schematic generator for your power supplies. They have many reference designs and tons of documentation on PCB layout in a variety of situations. Debugging them, however, is a whole different story. If you can afford it just buy a module and never think of it again. Polyfuses are a godsend, especially if you're designing a high current PCB like a motor controller. It really doesn't take much to melt a 1.5 oz 10 mil trace.
How expensive trial and error is depends on your experience. When I'm done with using a board or have some old electronics to throw away, whether I bricked it or its obsolete, I always throw it in a pile. When I have time I just go through and desolder each nontrivial part because it helps build an intuition for how each type of solder will respond to heat and flux, how wick looks as it absorbs solder and how to move it to get all the solder without overheating the chip, and so on. You need to develop that muscle memory like a surgeon would because once you're good enough you can do crazy things like snake a tiny wire under a BGA chip under an xray to fix flaws in the design or reflow. In more expensive designs I'll regularly take small gauge wire and solder it all over to fix the design as well as cut traces or lift copper layers after stripping the FR4.
Hand assembling electronics is largely more craft than engineering.
Note: Look up the 2nd edition or something as I got it for $2. Principles of analog don't really change. Super-easy to read with more heuristics & diagrams than theories. I didn't know until today it was being updated.
Note: High-assurance engineer told me this guy was a master and this book is all-in-one most of what you need to know. A reviewer said it's mostly for digital, not analog, stuff but that's probably your goal.
Digital stuff is highly opinionated on whether it's "good" or not. So, read the reviews to determine if it's good for you personally.
Note: These were said to be nice for beginners on Verilog, etc. Good tutorials online, too, with practice code and help on StackOverflow. I suggest getting a simulator and/or cheap FPGA then just experimenting.
Note: Books on Digital System Engineering, VLSI testing, and functional verification to top it off.
Endnote: I don't guarantee quality of any of these except Electronic Principles and Circuit Designer's Companion. The rest just had positive reviews plus what I assessed to be decent information for their target topics.
I've yet to find any good intro-level PCB design references. There's plenty of good information out there, but it's generally not easily accessible, and is scattered around blogs, forum posts, open hardware sourcefile dumps, etc. There are some fairly decent videos from the likes of Dave Jones (of EEVBlog), and some of the Mikeselectricstuff(.co.uk) that talk and sometimes show the interesting parts of PCB design.
What's lacking (or I've yet to find) is a simple tutorial-type progression that explains both how, and why, to do certain things, especially when it comes to things like component selection, footprint design, part layout, and actual track routing.
The "try it, make mistakes, learn" approach is almost inevitable, but the cost/time of the feedback loop can be pretty steep for a hobby (you can have 24-hr turnaround on boards if you've the $$$, or you can pay $5/board in 6-8 weeks, but the middle ground is tricky and messy. Plus all teh different board houses might have different design rules and other things that complicate matters for beginners.
My suggestion would be to find some Open Hardware kits or designs, buy a couple to make them, but also get the design files (hopefully in either kicad or eagle, which are free/affordable, and then start by ripping up all the routing, and seeing if you can re-track all the components get get it to pass ERC/DRC checks. Maybe bounce it off a few people in /r/askelectronics or eevblog forums, and then have it sent out for fab. If it works, pick a new OHW project with harder things, and repeat :)
That saves you from having to deal with footprint, schematic capture, and BoM decisions initially, and focus just on teh board design parts. You'll want to get there eventually, and you can learn a lot from how other things are put together.
Maybe pick some simple circuits (basic CMOY headphone amp, say), and redraw the schematic in your EDA tool. Then gather up teh datasheets, and usually they'll have a recommended footprint drawing, and you can learn how to build those in your toolchain.
There are some open libraries of component footprints (I think sparkfun has one? Maybe octopart as well?) but it's a useful skill to learn, and easiest on little things with few pins before you work up to the 192 pin FPGA or something :)
* Always print your designs 1:1 scale before sending out for processing.
* Always check your design file outputs (gerbers) in an external viewer to make sure they look ok/make sense.
* Remember to flip top/bottom layers the right number of times! This should happen properly on export, but it's easy to screw up and have the perfect board if you can find components with the exact opposite pinouts :)
* Don't be scared of starting with surface-mount. You can usually get things in pretty big packages if you want, and an 1812 or 1210 is actually not far off the size of a normal resistor body (minus the leads). You can go smaller as you're comfortable and pick up technique.
* I can't really offer any layout tips, because I'm still not very good. If anyone has pointers to good docs on:
(a) how to decide where to place/orient your components on the board to begin with, (b) choosing placement/routing grid sizes and track widths/via sizing, (c) appropriate layer count/usage - when to add more layers, value of pwr/gnd planes, use of fills, etc. And lastly, with kicad especially, how to fix things when you've routed yourself into a corner with just a few pins left, but no way from A-B (preferably without either adding layers, or through-hole links. I know about the 0R resistor bridge, but it has its limitations.
Appreciate the insightful reply and advice. So, you're quite into it enough to probably read an intermediate or advanced text. So, if you will, try to skim this one from a "master" designer that several EE's recommended:
Lucky enough to find a free link. I want to see if your skimming shows that it would've taught any of the types of things in your post or some of the stuff you're trying to learn. Trying to gauge it's value in accelerating the trial-and-error process.
"The "try it, make mistakes, learn" approach is almost inevitable, but the cost/time of the feedback loop can be pretty steep for a hobby (you can have 24-hr turnaround on boards if you've the $$$, or you can pay $5/board in 6-8 weeks, but the middle ground is tricky and messy."
That's exactly my problem. A lot of smart people don't have the money for that crap. So, it seems the experimenting is inevitable, yet it's worthwhile to try to determine exactly what experiments with what components teach the most lessons for minimum dollars. At the least, good references that tell you heuristics for avoiding the worst issues. The other commenter listed a few I had never heard of that involved "BOOM's." It's 2016 and we still don't have comprehensive, accessible guidance on reducing explosions? Really? Haha.
So, as I'm reading this, I'm surprised how nonchalantly he describes what looks like a ton of headaches that's in front of me personally. Doing some basic stuff in Verilog on an FPGA is straight-forward. What he's done was not unless he found some excellent resources that basically let him cheat a lot in the learning. I'd be interested in them as I'm collecting resources with HW knowledge and wisdom.