Slashdot Mirror


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?"

6 of 335 comments (clear)

  1. Starter for electronics by Anonymous Coward · · Score: 4, Interesting

    Get yourself an Arduino.

    http://www.arduino.cc/

  2. Pragmatic Programmers on Electronics by mm4 · · Score: 3, Interesting
  3. Re:The Art of Electronics by carnivorouscow · · Score: 5, Interesting

    The electricity misconceptions site seemed so intent on proving things wrong that it made several errors or needless complicated several topics.

    On topic I found "Teach Yourself Electricity and Electronics" by Stan Gibilisco to be a very useful book for hobbiest stuff.

  4. Bridge the gap between HW and SW by sankyuu · · Score: 4, Interesting

    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.)

  5. Practical experience! by Alioth · · Score: 4, Interesting

    *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.

  6. Re:Forrest M. Mims III by fireboy1919 · · Score: 3, Interesting

    Let me second this one by saying that I started with it when I was seven. It was the "intro" book they were selling at Radio Shack back before radio shack changed their logo from "You've got questions, we've got answers" to "You've got questions, we've got blank stares" - i.e., when they were still employing electricians.

    It looks a bit different than it did when I read it.

    Note that what you'll be able to do when you understand the stuff in this book is very little. You'll be able to make tone generators, and blinking lights.

    What good is that? Well, given a basic microcontroller, you'll probably learn enough basic electronics sense to not burn out any of your components, and you'll probably learn enough to be able to read other people's circuit schematics.

    That may be all you need of the electronics part to start you down into the exciting world of digital signal processing without a computer, which I have always thought of as the exciting part.

    --
    Mod me down and I will become more powerful than you can possibly imagine!