Books On Electronics For the Lay Programmer?
leoboiko writes "I'm a computer scientist and programmer with no training whatsoever in hardware or electronics. Sure, we designed a simple CPU (at a purely logical level) and learned about binary math and whatnot, and I can build a PC and stuff, but lately I've been wanting to, you know, solder something. Make my own cables, understand multimeters, perhaps assemble a simple robot or two. Play with hobbyist-level electronics. How does one go about educating oneself in this topic? I've been browsing Lessons in Electric Circuits online and it's been helpful, together with Misconceptions About 'Electricity' which went a long way in helping me finally to grok what electric charge and power actually are. I've reached the point where I want an actual dead-tree book, though. Any recommendations?"
Pick up the Art of Electronics by Horowitz and Hill. The lab manual might also be helpful. The Art of Electronics is basically the electronics Bible for physicists and a popular introductory text for electrical engineers.
For technical electronics work (like soldering or cable assembly) you will probably want to find a specific book (the Navy electronics manuals would be very helpful).
Suddenly, the hairy finger of a familiar monkey tapped me on the shoulder. It was time.--G. T.
3 Scary things: A programmer with soldering iron, a manager who codes and a user who gets Ideas
I would like to make a plug for your local community college, if you live in a reasonably-sized city. Most community colleges offer a couple of basic-level electronics classes, which teach you basic circuit theory. Books (either eBooks or paper ones) like Misconceptions About 'Electricity' are sort of interesting from a physics perspective, but they don't really offer much insight into electronics. In fact, many of the logical assumptions taught to electrical engineers _aren't_ true, strictly speaking, but are 'true enough' and much easier to understand.
If you're looking for someplace where you can learn about your basic circuit elements (resistors, capacitors, op-amps, etc) a real dyed-in-the-wool intro electronics course might be just what you're craving.
---- I'll take you in a Hunt deathmatch any day.
Get yourself an Arduino.
http://www.arduino.cc/
I would suggest looking at the various hobby robotics books in a good bookshop. Most of these will cover stuff like how to solder, how a transistor/FET work and how to wire up configurations like H bridges etc.
Engineering is the art of compromise.
I recommend this annoyingly named book, which is an excellent cover-all on this and related subjects. Really did join the dots for me many years ago and it looks like it's now in its 2nd edition.
http://www.amazon.com/Bebop-Boolean-Boogie-Unconventional-Electronics/dp/0750675438/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1210145164&sr=1-1
(Any grammar nazi's able to show me how to tidy up that link? Or point me at the right place on here to find out please?)
--- I've completed diagnosis of your problem and can classify it as a YOYO...You're On Your Own
It might be that I'm not a particularly good student, but I've never really been able to learn from textbooks unless I already had at least some background knowledge about the subject I was studying. I'm a practicing electronics engineer, and I find that textbooks are a great reference. I also enjoy reading textbooks written on areas where I have some knowledge, but not enough.
That being said, learning something like electronics or signal processing completely from a textbook would be really tough for me. I'm not saying it can't be done, but I think the original poster would be much better off taking a class or two than he would be trying to slug his way through something like the Art of Electronics.
---- I'll take you in a Hunt deathmatch any day.
Happy hacking!
Me lost me cookie at the disco.
Much as you can't learn to program well without looking at programs more complicated than you'll find in any textbook, you need to study real world circuits.
Whether you want to do digital stuff or analog, it's worth your time learning the analog stuff -- digital systems tend to break as a result of the underlying analog problem of circuit design.
For example, Wikipedia has the internal schematic for a 741 op amp along with a decent explanation. Once you understand the function of every one of those transistors, you'll be able to really understand why it has both a gain-bandwidth limit and a slew rate limit, and what the difference is.
The best source of real-world circuits I've found is the application notes and example circuits in data sheets published by manufacturers. Since they need the resultant circuits to work when engineers build them, they don't leave out the random extras that textbooks often do. Does that MOSFET need a gate resistor? A circuit in an app note will probably say, whereas an example diagram might well not.
If your goal is to learn more in general, as opposed to solving a specific problem, I'd pay more attention to the author than exactly what they're writing about. For example, I can't recommend Jim Williams' design notes highly enough -- he's both an excellent engineer and an excellent author. Making Shakespeare a citation is the sort of thing that keeps his writing lively and interesting. Or rating circuit complexity in baby bottles as a measure of how long it took him to design and debug it. And, of course, he often goes into great detail about the *practical* considerations involved in precise, high-speed analog work -- especially as it relates to working at the lab bench, rather than with professionally printed PCBs and the like.
I'm sure others will have excellent textbook recommendations. They're an important part, but only a part. Add some analysis of real-world circuits that you'll find in application notes, and a bunch of fussing around with actual silicon and a scope, and you'll be well on your way.
http://pragprog.com/titles/ctelec/a-peek-at-computer-electronics
(I'm a physics professor teaching electronics to undergraduates this term.)
I'll second Horowitz and Hill.
But if you want a gentler sunday school introduction before you pick up the Bible, get "Getting Started in Electronics" by Forrest M. Mims III. This is the book I taught myself with, bought it from Radio Shack when I was twelve. Text-and-drawings done "lab notebook" style, very basic approach.
You'll need Horowitz and Hill to get the math, but for basic concepts Mims can't be beat.
Once you get through that you'll have a reasonable understanding of the field.
Engineering is the art of compromise.
You have to bridge the gap between bits and voltages. I don't remember the titles of my books, so I will include keywords (You're probably past steps 1&2? Working backwards from #4 would also work).
:)
:)
1. Break down assembly language even further and look into OP codes as well as the FDOES (Fetch-Decode-Operands-Execute-Store) cycle. Think clocks and busses. [microprocessor architecture, bus architecture, instruction set, instruction architecture]
2. Move further into details of how ALU and memory are implemented: how flip-flops are used to store state, and how ALU's adder circuits, etc. can be implemented using NAND gates. Know what a 7401 is. [digital circuit design, half adder, full adder, flip-flop, register]
3. Then at a lower level, study how NAND gates themselves are implemented using transistors. Know about BJTs and FETs. [transistor electronics, electronic circuit analysis and design, BJT, FET]
4. You can be happy at the transistor level, but to solder things that actually work (and at the same time, know what you're doing), you have to study electric circuits and power electronics [electrical engineering, power electronics, ohm's law, thevenin, kirchoff's circuit laws]. Know how to read the color bands on resistors and appreciate the cheeky mnemonics for BBROYGBVGW
5. If you want to grind your own sand to make your chips and transistors, you may want to look up material science
*Be careful not to inhale the lead fumes, lest you suffer brain damage
Now if someone could recommend books for each stage...
(It's hard to recommend self-learning hardware, because I was taught hardware and am self-learning Computer Science.)
The better the quality, the simpler and easier the circuit.
Get a receiver or amp that has a problem and mess with it. A receiver in "protect mode" is a good one since that pretty much means that you have a DC offset on the output. A bi-polar amp will drive you nuts, since *any* bad component will throw DC onto the output, but you'll learn a ton going through it. A mosfet amp is much simpler since they are more like tube amps in topology. Hell, for that matter, try to get ahold of an old tube amp. They are very simple and are a good way to get yer feet wet.
Or an old cassette deck, like an old Nakamichi. Nobody wants them anymore (and they shouldn't, either), but they have a lot of cool control/motor circuitry in them. Especially if you get a hold of one that's discrete -- ie, all the logic and control is done with transistors.
and get the service manual -- it'll have schematics and sometimes theory of operation.
Oh yeah, the advice for the Navy Manuals is right on. Those are the clearest and most comprehensive books on the subject.
mr c
"Physics is like sex. Sure, it may give some practical results, but that's not why we do it." - R. Feynman
For the musically inclined electronics noob I recommend Craig Anderton's Electronic Projects for Musicians.
The book goes through all the basics: making and repairing your own cables, soldering, working with metal and plexiglass chassis, various types of boards(breadboards, etching). Projects are of varying difficulty and include a headphone amp, miniamp, fuzz-tone, "ring" modulator and phase shifter(the most difficult). Most projects use battery power and are safe to build and operate(note: unfortunately, none of the projects are synths.)
Maybe not your cup of tea but more fun to reuse than a run of the mill blinkenlighter.
I'm in similar situation... I just picked up an Arduino. http://www.arduino.cc/ It's an open source micro controller that you code in C and it gives you access to ~10 digital IO pins and 6 analog ones. They sell add-on packs to do things like ethernet (built in web server) or wireless. Find something around your house and automate it :p
Google Make Magazine! It is great for the DIY in you.
-Ghost
*Nothing* beats practical experience. Others have mentioned the Art of Electronics (which I have, and recommend as well). But practical experience is what really is the fun bits and what cemented it for me. I started from your position, and what I did was this:
:-)
1. Solderless breadboard, and an assortment of transistors, resistors, capacitors, inductors, 555 timers, op-amps etc. Do some simple circuits with them - make logic gates with BJTs and resistors, then do the same with mosfets (construct some CMOS gates out of discrete transistors for instance). Experiment with power supplies - buck converters to step DC voltages down, boost converters to step voltages up. Make sure you have several of each, because you'll probably let the magic smoke out of some of them.
2. Decide on a simple practical project. I chose to make a solar power system for my garden - an 80 watt pv panel sourced from ebay. The first project was to turn on lights at night from the battery that had been charged by the panel in the day. This consisted of a voltage comparator to detect when the solar panel voltage had fallen below a certain level. The output is connected to a power transistor that turns on the lights.
3. More complex stuff. Get a heap of 74 series or 4000 series logic ICs and make something with it. This will teach you how the real world has a nasty habit of creeping into your digital designs: glitches, why we need decoupling capacitors, synchronizing clocks, that kind of thing. I built an RS232 nixie tube display. It had no microcontroller - the UART was entirely implemented in 4000 series logic. I built it on tri-pad proto board. This required me to learn how to build several things: a simple switch mode power supply to boost 12v to 170vdc for the tubes, as well as the UART.
4. It is your fate to home brew a computer. My next project was a Z80 based single board computer on 160x100mm (Eurocard). It has a CTC, PIO, real time clock, paged memory, 512k of flash memory and 32k of RAM, and an expansion connector. The flash was initially programmed by a similar circuit to the nixie tube UART, but with a simple address generator circuit added. Once the initial program was written, the Z80 system could write its own flash.
I'm now up to the stage where I'm doing more challenging designs, such as an ethernet card for an 8 bit system, implemented almost entirely surface mount components, the glue logic being in a programmable logic chip called a CPLD (the little brother of the FPGA). There are even more real world considerations that mess with digital design here: how to avoid ground bounce, PCB layout considerations to make the board work at all, and also a good bit of real fun programming: writing a driver for it in assembly language
There's a great deal you can do as an electronics hobbyist: for example, you can make your own PCBs for fine pitch surface mount components if you have access to a laser printer: I've made my own PCBs for chips with 0.4mm pin pitch (that's 0.2mm traces and 0.2mm spacing) using nothing but gEDA PCB (which is GPL'd PCB layout software), a laser printer, a clothes iron, copper clad board and etchant. Sparkfun Electronics have some great tutorials on hand soldering surface mount components, by the way. As you progress, you'll want to be able to do this because there are a lot of interesting ICs that are only available in some sort of surface mount package.
Oolite: Elite-like game. For Mac, Linux and Windows
http://www.usna.edu/EE/ee301/internal/Applied_EngineeringPrinciples.pdf
Chapter 1 covers electrical, chapter 2 covers electronic. The remaining chapters dive into nuclear power field topics (chemistry, mechanics, reactor theory - also very handy for those interested in 'just the facts' for those topics). This reference is about as technical as it gets without venturing into "If I told you I'd have to kill you" territory.
It's awesome that the Naval Academy has an unclassified version out there...
this sig was brought to you by the letter
The Art of Electronics, which many people have recommended, is a well-written book, but it comes with a couple caveats. First, it is twenty years old, which means it spends a lot of time on topics that aren't as important today (JFETs, for example). Second, and more importantly, it's an electronics book, which means it's intended to be read after a corresponding class in basic circuit theory. Electronics is the study of how semiconductor devices are used in electrical circuits, not the study of electrical circuits in general. While the first chapter of AoE does offer a review of circuit theory concepts, it's pretty terse. If you're good at calculus and want a good textbook, try Engineering Circuit Analysis by Hayt, Kemmerly, and Durbin. This may be a bit more work than you're looking for, but one of the things you quickly learn about electricity is that it's pretty abstract (being invisible and all), and visualization aids like LEDs and even expensive test equipment don't help as much as you might think unless you already have an idea of what's going on. If you're just doing digital circuits you can get by with less, but for anything remotely analog, knowing the theory helps a lot.
Visit the
arduino is a good suggestion, i'd also say the online (or print) versions of MAKE. in addition to skill building sections like soldering, making PCBs we also have 4 volumes that come out per year with tons of electronics articles. http://www.makezine.com/ (i'm the senior editor)...
Forrest M Mims -Getting Started In Electronics ...is a fun and informative starting point for the basics. It is kinda high school level in its presentation but covers most topics. It was my main source of 'basics/teach yourself' as a mechie. I eventually found my way to wiring PLCs, creating sensors, etc. In my role as a Mechanical Technician, I now perform power usage studies on products and fully automate our prototypes.(PLC wiring and Programming)
METER EXAMPLE: ESI480A
http://www.toolsusa.com/asp/item_detail.asp?T1=PBE%209WT%20ESI480A&trackcode=YahooShopping&WT.srch=1
Features you will immediately / eventually want in a meter:
(aside from standard features like ac/dc volts, resistance)
-Autoranging
-DC AMPS = 10.0
-Diode Test ->|-
-Capacitance -|(-
-Relative Reading(ability to zero the meter)
-Freq(Hz) / Duty cycle(%) / ms (to measure pulse trains/PWM)
I use that meter at home.
I use a Fluke 89IV at work because I didn't have to pay for it. (Fluke is gold standard in DMMs)
A Circuit Simulator applet:
http://www.falstad.com/circuit/
check out the examples in the 'Circuit' menu.
Good Luck
The government which is strong enough to protect you from everything is strong enough to take everything from you.