This approaches Woz level engineering, if not 100% technically, at least philosophically.
This approaches Woz level engineering, if not 100% technically, at least philosophically.
In other words, the Internet is a multiplier that applies to the incredible curiosity and enthusiasm and intelligence of bright kids. So, multiply your 10x (or whatever #x) nerd by the 10x (or probably much greater multiplier) of the Internet, and you get the world we're living in now. Amazingly, the multiplier will likely continue to increase over time. I don't know if it will accelerate in a way comparable to the Internet coming along (I mean, we had centuries between early really big knowledge multiplier leaps), but it might.
We live in amazing times is what I'm trying to say, and I'm genuinely jealous of kids coming up today, despite some minor caveats. I was bright and curious, and lucky enough to have access to a computer (C64 first, later C128 and Amiga 2000), but the access to knowledge was still quite limited. Internet didn't come for me until I was an adult. Internet and a boundless curiosity and practically unlimited free time is heady stuff.
But my kids? Despite being "digital natives" don't even really know how to use computers. (Yes my failure as a parent, but also indicative of the environment.)
Personally I grew up reading Dr. Dobbs, Byte Magazine, a slew of Amiga journals and Scientific American. I probably started reading the latter at a point where I understood maybe 40% - but it was a great way to learn English.
On the plus side, you can now go and play with and read the code from the likes of Bernstein, Percival, Torvalds and things like the entire Solaris system. And there are great resources, like the Arch Linux wiki, the FreeBSD documentation and dev/user lists. But the good stuff is increasingly hard to discover in an ocean of mediocre stuff. And I have yet to find any good canonical resource for "the good stuff". One of my biggest disappointments with college was that academics appear to be doing a terrible job of keeping up to date, or helping students seek out good extracurricular resources, despite the fact that these resources keep growing and growing.
I hope that the trend toward open publishing of research will continue, and maybe see some sister-resources in the form of free popular science resources pop up -- I could easy imagine universities and research institution pooling resources in order to help researcher edit and publish popular science articles in addition to their standard papers -- as a combination of general science education, and to rise awareness/advertise research.
Have you considered books? For example, this book is shaping up to be the canonical tutorial for Haskell:
I do think it's important to point out that there are a lot of open books out there, facilitated by the web, like the haskell-book. But there's always been good books, it's not enough with out good librarians.
My first set of magazines were the Input series, a British monthly magazine about coding for 8-bit systems.
I invested the majority of my allowance in such magazines, "The C User's Journal" (later C/C++ User's Journal), Dr. Dobbs, PC Techniques, GDC Mag and lots of books.
Luckily my university being highly focused in systems programming, had a huge collection of books and SIGPLAN papers, which opened my eyes for the world of safe systems programming. Thanks to it I was able to delve into the work from Xerox PARC and ETHZ, as well as, the research that was happening with ML (Caml Light was rather new back then) and Prolog.
Input was a great series.
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.
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:
https://www.google.co.uk/search?q=pcb+design+application+not...
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.
"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.
* 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.
https://news.ycombinator.com/item?id=11515190
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.
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 :)
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.
Electronic Principles 8th Ed Malvino http://www.amazon.com/Electronic-Principles-Albert-Malvino/d...
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.
Circuit Designer's Companion... for free! http://diagramas.diagramasde.com/otros/The%20Circuit%20Desig...
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.
http://www.amazon.com/Digital-Design-RTL-VHDL-Verilog/dp/047... http://www.amazon.com/dp/0131678442/?tag=stackoverfl08-20
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.
http://www.amazon.com/dp/1461186293/?tag=stackoverfl08-20 http://www.amazon.com/dp/0470054379/?tag=stackoverfl08-20
Note: First is a cookbook for FPGA designs. Second covers things like floorplanning and resets.
http://www.amazon.com/Digital-Systems-Engineering-William-Da... http://www.amazon.com/VLSI-Test-Principles-Architectures-Tes... http://www.amazon.com/Comprehensive-Functional-Verification-...
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.
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.
http://diagramas.diagramasde.com/otros/The%20Circuit%20Desig...
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.
http://store.curiousinventor.com/guides/Surface_Mount_Solder...
- With practice we can go down to surprisingly small components. It's less about precision work and more about having an intuition about heat flow and surface tension which let the components align themselves.
- When components are too small or simply impossible (or it is beyond my knowledge) to solder with an iron, we can always just use an oven :) Which is entirely reasonable to do either at home / in the garage as they can be build very cheaply, or locally at a friend's or a fab-lab type deal.
Board preparation, obviously, also is a breeze - once you've drilled holes for your vias, just place the board in a vice and off you go.
Also, added bonus when it comes to passive components - rather than having those pesky color bands (annoying for the chromatographically challenged among us), values are typically stamped on the components using numerals - so less chance of making a mistake.