

Ask YC: Learning circuit/hardware; lab book? - Emmjaykay

Hello!<p>I've been wanting to get into hardware type projects (robots, gizmos, etc) for a while but I'm fairly ignorant of hardware. I'm a software developer by trade. I've seen books like "The Art of Electronics" and "Teach Yourself Electricity &#38; Electronics". But what I really need is a book of project/tutorials, that upon completing them, I can honestly say I am very, very familiar with electronics.<p>Is there such a book?
======
gg
I could probably list off $15,000 of Electrical Engineering course text books,
but for getting into "hardware type projects" they really won't get you very
far. You'll learn far more (and far more quickly) by finding more hacker
oriented resources that will bootstrap you with absolutely necessary
information and skip the rest.

# Introductions #

To begin with, Sparkfun[1] has a bunch of tutorials, including a great
introduction to embedded electronics.[2] This encompasses much of what you'll
need for basic hardware projects.

As someone with a software background, the Arduino[2] is a great platform to
start playing around with hardware. It acts as something of a bridge between
software and hardware hacking by allowing you to program a micro-controller in
a (relatively) high level language, and abstracting away a lot of the messy
hardware details. This not only lets you start getting simple things done
quickly, but also allows you to easily interface with virtually any other
hardware modules you can come up with so you can push the boundaries of your
knowledge. By making experimentation cheap, it strongly encourages the best
types of exploratory learning.

# Projects #

Beyond the project tutorials listed on Sparkfun, OpenCircuits[3] is a great
resource for more project ideas. Hack a Day[4] is often a good resource for
inspiration, and the venerable Make[5] seems to always have something
interesting.

# Sourcing Parts #

Sparkfun[1] is a terrific online electronic components store. It is extremely
hacker friendly, having been founded to serve preciecesly that group. For some
items the prices may be slightly higher than at Digikey[5], but this is more
than made up by the fact that they have sorted through the bewildering number
of seemingly-identical components available.

If you know exactly what you need, and especially if you can't find it through
Sparkfun, Digikey is your friend. They have everything. And its uncle. The
site is aimed at commercial designers who know what they're doing, so
navigating the site isn't easy. If you're browsing without a specific
component in mind, Digikey isn't the right place, but Octopart[7] might be.
Its a search engine for electronic components that checks availability and
compares prices of different retailers and also has some features to organize
project shopping lists.

When buying electrical components, always buy plenty extra. You _will_ burn
things out. Five times in a row. Unit costs are cheap enough that its worth
having lots of spares on hand.

As others have mentioned, this is a very broad topic. If you give us more
details on what it is you're looking to learn, we'll probably be able to give
more useful answers.

Good luck!

[1]: <http://www.sparkfun.com> \- Well organized, hacker friendly

[2]: <http://www.sparkfun.com/commerce/hdr.php?p=tutorials#BEE>

[3]: <http://www.opencircuits.com>

[4]: <http://www.hackaday.com/>

[5]: <http://www.makezine.com>

[6]: <http://digikey.com> \- Huge selection. Great if you know what you want.

[7]: <http://octopart.com/> \- Electronic Component search engine

~~~
Emmjaykay
Wow! lot sof links + text. Thank you for this information!

------
npk
Learning electronics was much, much, harder for me than programming.
Electronics seemed magical. I couldn't break complex circuits into the little
components, circuits didn't seem to be built hierarchically. I felt like, if a
circuit designer wrote code, you'd have one big function with no loops and
minimal branching. First thing to keep in mind -- that's not true. It's just
hard to see the components until you get familiar with them.

But, to answer your question. You _need_ The AoE. Read it over and over and
over again. Look at Forrest Mims books. Your local technical library should
have some.

The most important thing (not mentioned) is your lab. Mims books basically beg
you to build his circuits. At minimum, a power supply and multimeter. Consider
adding an oscilloscope* and function generator. I have a lab at home,
basically everything purchased off of ebay, it's great. You'll need
components. These are expensive, I have several bins of components at home.
Handy to have when you think of an experiment to perform. If you live in the
bay area, go to weirdstuff warehouse. You could film wargames 2 in that place.

If you really don't want to invest in a lab, an alternative (might) be the
software package "multisim." Multi-sim lets you hook stuff up in software, and
simulate the output. I've heard this tool helps students learn circuit design.
But I've never used it.

good luck

* Just learning how an oscillscope works, and how to use it will teach you more than you can imagine :)

------
mdakin
Digital and analog circuit design are art-like activities and doing them with
grace requires knowledge of many other levels of abstraction all the way down
to physics.

It is possible to lack these fundamentals and become a decent designer by
doing design and filling in the gaps as you go but that is the exception and
not the rule. And I have only ever seen this exception happen with the help of
a real-life mentor and access to some fancy lab equipment.

It should be possible to formulate the teaching of EE into a more project-
oriented manner but you need to realize this would be a nontraditional
approach. When I studied for my EE degree we followed a program that has been
roughly constant since the 1960s, starts close to the bottom and expands in
both directions at the same time. They sprinkle design in the whole time but
you do not get to do full designs until junior and senior year.

So finding this book might be tricky because EE is traditionally taught in a
completely different way than _you_ would like to approach it.

One thing worth looking into would be a class at a local college taught for
either local motivated/gifted HS students or for physics majors which teaches
you a bunch of practical EE stuff. The class would be lab oriented. Teach you
the use of test equipment, building and debugging circuits, some theory.
Objective is to get you into a place where you would have some hope of being
able to come up with designs and make them work without having all that
"foundation" knowledge. This would help you get to the point described above
as you would have your mentor and access to the equipment (at least for the
duration of the class-- make the most of it!)

If you are local to Boston the Harvard Extension School used to offer two such
courses-- one for digital and one for analog. I believe the courses were
designed by the author of "The Art of Electronics" and in fact used that text.
(I did not take them but a friend of mine did.)

Neato, you can still take those classes; poke around
<http://www.extension.harvard.edu/> for:

* PHYS E-123a Laboratory Electronics: Analog Circuit Design * ENSC E-123 Laboratory Electronics: Digital Circuit Design

Happy hacking!

~~~
Emmjaykay
The hands on approach definitely appeals to me. I've thought about a local
community college but the hours are not compatible with work.

I guess I could n ot worry about details but part of me is genuinely curious
about how that stuff works. :)

------
kurtosis
Someone else mentioned this but I want to give another boost for the lab
manual for the horowitz and hill's art of electronics - it's a little dated
but still a great resource. For example I remember doing the project where you
build a simple analog to digital converter. I had read the theory behind these
devices many times without comprehension, but building the project illuminated
it.

I've also found the ARRL handbooks to be extremely helpful for getting RF and
microwave projects to work without sinking huge amounts of cash on expensive
equipment like vector network analyzers.

~~~
Emmjaykay
I didn't realize that the Hill/Horowitz book also has a companion lab manual.
It looks something like I would like to have. Some of the books in the ARRL
store look neat, too. Thanks!

------
ericb
I know you asked for books, but I'm going through this course with my ipod--
it's good:

[http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-
Compute...](http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-
Science/6-002Spring-2007/VideoLectures/index.htm)

~~~
Emmjaykay
I lof the OCW! Thanks!

------
ph0rque
Sorry if this is a bit off-topic, but I've had an idea for an online game that
would secretly teach you circuit design. In the game, you would build a series
of water pipes to preform a certain tasks for each level. The amount of water
in a pipe would be voltage, and how fast the water flows would be current. The
game would start off very simply, and after "beating" a level, you would get
more devices available to complete the tasks.

~~~
watmough
That's a really neat idea. I'm a programmer, and I wouldn't mind brainstorming
with you if you wanted to try and put together a simple implementation. I'm
just thinking that implementing components like resistors, diodes, and what-
not sounds like a lot of fun.

~~~
ph0rque
Sounds good. I myself am a newbie programmer; just recently started to learn
RoR. I'm busy with my startup, but I think it might be worthwhile to kick some
ideas around. Drop me an email if you get a chance (my email is in my public
profile).

------
yangyang42
I don't have any good books in mind, but I think you need to know what you're
really interested in learning about hardware. Define "very, very familiar with
electronics."

You might want to think about electronics on several level and topics:

\- Board Level: Op Amps, Feedback Control Systems... etc.

\- Chip Level IC design: Analog IC design, Bipolar/CMOS design... etc.

\- Firmware: C, Assembly language...

...each of these topics are semester/year long courses on its own. I can
recommend books in each topic, but have not seen a do-it-all, teach-it-all
book.

as attack said, "the topic area is more broad than you'd think."

~~~
izak30
I agree, what is "very, very familiar"?

I would buy a circuit kit, like the one for 12 year olds, and you can knock
out those projects pretty quickly, but they usually come with schematics and
pieces for 100 projects or so. RadioShack sells them, but when you want to buy
more parts, don't go there, go to Jamco or Digikey.

Learning Chip Level IC means learning how to reduce binary functions, there
are many 'tricks' to this, and from my CS classes, they didn't really care
much about reducing, and the EEs always did much better when it came to binary
logic then the CS students. Also Figure out transistors, the circuits kit will
have some transistor projects, and do a good overview, but learn the math and
(some) of the physics here, it will help you understand.

After that, find some books on microcontrollers and or microcomputers. Figure
out how RAM and ROM work (not necessiarly the internals) and program some.

I've heard great things about the Arudino, but I've never used it. I started
off on the PIC series, and then to Motorola 8bits and Coldfire 32Bits, both of
the last two, you can program in C, so no real assembly is required.

I agree with yangyang2, as far as a do it all approach, you probably aren't
going to find it..

~~~
Emmjaykay
The Arudino looks neat. I will definitely keep it in mind. I have taken
digital electronics while in college and do remember k-maps and so forth, so
it should hopefully not be too far ahead of me. :) Thanks again!

------
bprater
You may want to get started by jumping into the BasicStamp world. The
advantage is that it is programmable, so it's be straightforward for you to
make it "do stuff".

Get it with the development board and you can make LEDs blink, drive a LCD
panel, etc. Grab a high-level book on robotics and bam! it'll quickly click
how all this fits together.

It's high-level way to start, but a great way to dive into the hardware world
without worrying too much about hardcore hardware stuff. (Which, as a fellow
software hacker, is pretty boring! I want stuff I can code!)

~~~
Emmjaykay
I've seen the BoeBot and it is quite adorable. I was wanting to put my
software skills to a real test, though and I don't know if there is enough
space on a BasicStamp chip. But it does seem like a good place to start! Even,
still, I need to be aware of how components come together if I want to do
something fancy on the bread board (don't want to short stuff out,e tc).

------
pmorici
I didn't know much about this stuff either here are some websites I found that
were helpful in getting me started.

<http://www.sparkfun.com> has a lot of cool electronics type stuff to learn
with. <http://www.batchpcb.com> to manufacture custom circuit board designs
for cheap (2.50 per/sq in). If you want to design something simple FreePCB is
super easy to learn <http://www.freepcb.com/>

YouTube has a lot of videos on how to solder if that interests you.

For FPGAs <http://www.fpga4fun.com/> and <http://www.knjn.com/>

Other cool hardware related sites... <http://www.curiousinventor.com/>
<http://www.gumstix.com/> <http://www.cmucam.org/>
<http://www.electronics123.com/>

~~~
Emmjaykay
Hurray for lots of of links!

I tinkered with FPGAs in college as part of my digital logic class. I remember
reading about Hugo De Garis's work with them and they sound neat.

------
krschultz
Have you looked into MIT's open course ware stuff?

[http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-
Compute...](http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-
Science/6-002Spring-2007/CourseHome/index.htm)

That is probably a good place to start although some background with physics
and differential equations might be helpful.

------
comatose_kid
One of the best resources for getting a practical handle on electronics is the
ARRL Handbook. They've released a version every year for many years now.

<http://www.arrl.org/catalog/?item=no-hb2008>

By the way, The Art Of Electronics has a pretty nice lab manual that goes with
it....

------
cian
This book may help as a starting point assuming no prior knowledge, you could
work from there to an O'Reilly hacks book. A Peek at Computer Electronics:
Things you Should Know <http://www.pragprog.com/titles/ctelec>

------
drbunsen
If you've got some basic eletronics knowledge I highly recommend "Designing
Embedded Hardware": <http://www.oreilly.com/catalog/dbhardware2/index.html>

------
attack
It would be quite a huge book. The topic area is more broad than you'd think,
although not at all impenetrable. I don't know if any such comprehensive text
exists. All of the books I used, I found to be quite poor and limited in scope
compared to books in other fields. I think it's easy to see why. Frequently
I'd just read everything I could scattered around the internet. Maybe you have
a more narrow goal for what you want to learn than "electronics"?

Even the narrowly scoped books I found to usually be quite a bit less
effective than they should be. Then again, the books I'm referring to where
school books.

~~~
Emmjaykay
I am worried about breadth vs depth issues. It's probably why people get
degrees in this. :) I'm sorry if I made it sound like I thought it was
trivial. I'm not in any hurry, though; The Hardware Hacking books from
O'Reilly are ok but not .. I dunno, "enough". The "Teach Yourself .." book is
pretty dense...

~~~
attack
That's a problem with most EE books, it's either extreme depth or broad and
shallow. You have a good question. I'd like to see others' recommendations.

I wish I could help more, but I still curse the books I learned from:)

~~~
Emmjaykay
why thank you!

I hope this is certainly possible to answer. Theoretically, if someone reads
the right books and practices in the right way, along with hefty discipline
and focus, one could say they would be very, very familiar with software and
systems.

------
martythemaniak
What specifically are you looking to learn though?

Do you want to learn about digital hardware - how chips and components are
constructed using AND, OR and NOT gates? This will give you a pretty good idea
of how hardware works, but the projects will be limited to you, a breadboard
and some switches - not terribly exciting stuff.

On the other hand, if you want to learn build simple robots and such, you'll
have something neat to do, but at the end you likely still won't have an idea
of how a CPU works or GPS chip works.

------
comatose_kid
If you're serious about getting into this, consider obtaining a scope - even a
cheap used one. Reading about various waveforms is one thing, but seeing the
output of your circuit at various nodes can help build intuition.

------
mhb
I couldn't find it online - maybe it is out of print, but are you also aware
of the Laboratory Manual for the Art of Electronics?

