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.
An excellent starter is "The Art of Electronics By Paul Horowitz, Horowitz, Winfield Hill"
http://www.amazon.com/Art-Electronics-Paul-Horowitz/dp/0521370957
You should also have a look at the classic:
"Foundations of Wireless and Electronics
by M.G. Scroggie "
http://www.amazon.co.uk/Foundations-Wireless-Electronics-M-G-Scroggie/dp/0750634308
AT&ROFLMAO
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.
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-002Spring-2007/CourseHome/index.htm
Not a book, but course materials and video lectures.
Analog stuff gets pretty deep, pretty quickly. For what you want to do it sounds like you'd be best off learning the bare basics about LRCs and view transistors as digital devices, then cobble stuff together out of TTL components. As a software guy, you'd probably get a blast out of using a PIC or FPGA board since you write firmware, but get to do some hardware stuff too.
LTspice/SwitcherCAD III
http://www.linear.com/designtools/software/index.jsp
and there is a yahoo group.
http://tech.groups.yahoo.com/group/LTspice/?v=1&t=directory&ch=web&pub=groups&sec=dir&slk=1
There are No Electrons: Electronics for Idiots is extremely basic, but its entertainment value is inestimable and it's really quite profound on the basics. You'll never feel like you understand the fundamentals better.
Don't blame me, I voted for Baltar.
"Practical Electronics for Inventors" is a fabulous book despite its rather dumb title. It gives a very hands-on approach while not shying away from the advanced topics
"The Art of Electronics" by Horowitz is definitely the standard for electronics, but for me it delved too much into the theory. It is extremely thorough, but maybe not geared towards people just wanting to build their own first small circuits.
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.
$1000 is a huge overkill. Hopefully you can find a good electronics surplus store near you.
I've bought fully functional top of the line '80s scopes (Tek 7000 series) for $20 at surplus stores. You should be able to find a decent used scope for under $100.
Get an analog scope for your first one. They are dirt cheap used and will give you more insight into how oscilloscopes work.
Because most of todays new parts are surface mount, you will eventually want to get a quality soldering iron. Trying to solder SOT-23s with a 1/4" tip is a royal pain. I recommend Metcal RF heated irons. It has excellent temperature regulation (maybe the best?) and heats up in less than 10 seconds. You should be able to pick up a used one for less than $100 off of ebay.
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
I'm not sure how available some of the books listed above are. Hopefully you'll find them, and find them useful.
Some other books to look at are over on the ARRL.org website. Their primary focus of course is radio electronics, but they also have books on basic circuit boarding, robotics, and a few other electronic projects, as well as a few kits if you are interested in them.
Hope that's of some help. Have fun.
You never know...
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
Electric Circuits 7th Edition, by Nilsson and Riedel, ISBN 0-13-146592-9 was the introductory text used at my university (UC Santa Barbara).
I didn't really go to class much, so most of my learning was straight out of this book. It is very easy to understand, and everything is covered from a basic level. It covers what all of the basic circuit elements are, how to analyze circuits, opamps, and circuits with reactive components, i.e. inductors and capacitors. It does not cover too many other topics, but it is an excellent reference on basic circuit analysis techniques which I still refer to today when I need to refresh my memory on basic circuit techniques. It will help you learn basic techniques very effectively which online resources do not often include, especially not all in one place. I find that it's style of writing and layout is much easier to understand than Horowitz and Hill's The Art of Electronics, which is frequently recommended as a self-study book, but the scope of that book is much different from this one.
For finding out what basic circuits you will find useful, I would honestly just recommend using google, it will help you find much of what you need to know. Find any of the myriad sites that have a list of basic circuits, and just look through them.
You indicated an interest in robotics, and usually most of the work goes into the physical construction, and programming a microcontroller. My books in this area are unfortunately not at my current residence, but you should buy a book on robotics specifically, make sure it covers the physical design and construction. You will also need to choose a microcontroller platform, the two most popular for hobbyists are Atmel and Microchip. The former is IMHO a better solution as it is more flexible and uses an open toolchain. Microchip is easier to get started with, but you are limited because you need to use their proprietary toolchain (or a third party toolchain that may not support all chips properly), and free compilers are usually only shareware, otherwise you have to write in assembly (which is not a bad idea).
For a hobbyist you will want an nice array of parts, you should get a resistor kit with a bunch of values, get a capacitor kit but it doesn't need to be big if you also buy a bunch of 0.1uF ceramic and 10uF electrolytic capacitors which you will probably use a lot of, get some 2N3904/6 transistors (basic NPN and PNP transistors), some MOSFETs that can handle some decent current, a breadboard with wires, and some basic chips like the 555 timer, a decade counter, maybe some logic gates, and some opamps (I'd recommend the LM358 since it can operate with a single power supply voltage).
http://www.allaboutcircuits.com/
It's still a work in progress, but it's mostly done by now and really well-written as an introductory guide.
This is Slashdot. Common sense is futile. You will be modded down.
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
Lessons in Electric Circuts
Seriously. In conjunction with Socratic Electronics, it should give you a great start.
kaens.blogspot.com
The Horowitz book is an excellent reference, and it's especially good if you want to understand the details of what's actually going on.
If you really want to dive in and swim however, I might also recommend "Electronic Circuits for the Evil Genius" by Dave Cutcher. I think that will get you into building things more quickly that Horowitz, but without a lot of the fundamentals.
Another idea is to get yourself one of those Radio Shack 200 in 1 electronic project kits. No soldering required for that, but you could always order the parts for any of the projects and stick them on a breadboard yourself.
Have fun!
I'd suggest that you buy an Arduino starter kit from Lady Ada's site, and try her Arduino tutorial.
And join a nearby Arduino user group!
David Mellis just started one in Boston, which led me to purchase an Arduino last night!
The forums on the arduino site mention quite a few regional user's groups, maybe you can find one near you?
Shae Erisson - ScannedInAvian.com
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
Are you looking to dive in with practical information or learn pure theory first? I personally like to learn by building first, and then start learning theory after I fried a couple of components. I just spent the last three years at an art school in an Interactive Media program. (Art school and electronics? Yes - there's a growing amount of interactive works - not to mention the increasing demand for User Interface Design) We learned some very practical information in Physical Computing: interacting between the real world and computers. We began by building our own temperature sensors, pressure sensors, and then learning how to connect them with computers, without any formal programming experience, using a combination of serial communication, arduino and basic stamps, python, MaxMSP, Processing and Flash.
You may want to check out the art world for some really creative uses of technology:
I had an opportunity to speak with Norm White, an artist who has been building with electronics since the 60's , he made some amazing artwork, such as the "The Helpless Robot" - which runs off an old 386 and Delphi. Details here. (He's looking for someone to translate it to a modern language)
Alan Rath is another artist who builds interactive robots.
Conflux is a street art festival in Brooklyn that often attracts artists who mix technology with art. There have been some really cool interactive games that use modified cellphones
Aram Bartholl does some cool work, mixing virtual world concepts such as IM'ing with very low tech. See Chat
Some other practical suggestions:
For a great hands on approach, check out Tom Igoe and Dan O'Sullivan's Pysical Computing Tom Igoe is the head of Physical Computing at New York University.
Amphibionics by Karl Williams was my first attempt at building my own circuit board and robot.
I usually buy my components online at DigiKey. Navigating their site and trying to choose between the 100s of varieties of 1uF capacitors was a learning experience in itself.
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.
Some are obvious, like misoriented diodes in a rectifying bridge. Some are not, like a PNP BJT where a NPN should be.
However, before you build any of the projects, especially any of the high powered ones, make sure you search online for errata, or better yet, have a real EE check the circuit (if you're not one). And if you wanna build something really nasty, like an EMP gun or a magnetic accelerator, treat it like you would the Anarchist's Cookbook...
Also be aware that the Evil Genius series is very light on theory of operation, and what is present is occasionally oversimplified to the point of being misleading. Don't rely on them for theory.
But overall, for a hobbyist, they are an excellent example of how to approach a complete project, including planning, packaging, and building your own tools and test equipment. And for those who don't want to craft every PWB or enclosure on their own, the publisher sells kits.
I can see the fnords!
I highly recommend Teach Yourself Electronics by Malcolm Plant. I have a Master's degree in electrical engineering and I started with hobby electronics before I learned to ride a bike, and this book is sitting on my desk as I type. ;)
If you're not part of the solution, you're part of the precipitate.
No joke. I mean, come on posters. leoboiko wants a book for the basics, not for programming microcontrollers.
Electronics for Dummies starts with the tools you need and minimal but practical math, introduces you to the basics like resistors and capacitors, discusses the circuit and reading a schematic, goes over soldering and then dips its toes in more advanced stuff like microcontrollers, robotics and even making your own breadboards. It tops it all of with project idea. It is a logical, clear progression and an excellent reference.
Funny, I'm in the same situation as you, a programmer who just got interested in electronics four days ago after being amazed at the maker faire in san mateo. I looked at a number of these books. Art of Electronics? The Navy Manuals? Go simpler.
You'll have a blast! Just a few chapters into the book I got an idea for a proximity sensor. I ran to the radio shack and picked up the parts then hacked together a circuit. It sends out infrared light and detects the reflection when your hand is near. The completed circuit triggers a transistor, allowing an led to light up in varying degrees as your hand moves closer and back.
Awesome! And that's only three days into this book.