Learning Hardware as a Software Geek?
digitalvengeance asks: "I'm a long-time software geek with very little experience on the hardware side. I've configured servers and built various desktops for friends and family, but I'd like to move to the next level. I assume I need to purchase a breadboard to begin tinkering, but is there a particular kit I will find more useful than others? What books, sites, or other resources can the hardware geeks recommend for a software geek wanting to learn the basics of electronics and hardware?"
If you're going to do anything outside of just digital electronics, then I thoroughly recommend "The Art of Electronics" by Paul Horowitz and Winfield Hill, Second Edition. Cambridge University Press, ISBN 0-521-37095-7.
It starts off with the real basics, and has a very readable style and lots of practical advice.
It's pretty expensive (about $50) but well worth it. If I'd had this at University, I would have done a whole lot better in my practical electronics courses.
Sean Ellis
Follow OfQuack's antics on Twitter.
Here is a great online book that starts with basic electrical principles and works up to semiconductor and digital circuit stuff. It is wonderful.
For one, you should know about passive analog electronics. Build an AM radio or something.
Next step, is to go digital. Buy a couple of PIC or AVR microcontrollers and build some simple stuff. You'll get to write assembly code (or even in C) and upload the code to the chip and run it there. The pic can be interfaced with ethernet, audio chips, flash chips, LCD, camera CCD etc. Think of the possibilities.
If the PIC is tough, just use the simplest PIC16F54A initially, or even just use a BASIC stamp. Make a set of blinking lights to begin with, and download the test code first before writing code.
After the 8-bit level, you can buy the powerpc or ARM kits from olimex.com or ebay, and with enough flash, sram and boot code, try to boot netbsd, linux or something similar.
"Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
http://www.xgamestation.com/about_gamestation.php/
Great learning tool.
Second of all get your ham radio license! Buy a copy of Now You're Talking! from the ARRL and study up! Amateur radio is approximately 50% applied analog and digital electronics, and don't think all that communications theory stuff doesn't apply to computers because it does, RF knowledge is CRITICAL to engineering high speed digital circuits! Get involved with a local ham radio club and start building ham radio kits and projects. Other than working in an electronics lab, it's the best way to get applied electronics experience quickly.
I'm n1ywb and that's my two cents.
-73, de n1ywb
www.n1ywb.com
You can get an evalkit from anyone of top FPGA vendors for a $hundred or two (for example), program it in VHDL (if you were doing software for a while it will be quite easy for you, just another language -- actually if you've ever done Ada it will be very easy, it is basically the same), compile VHDL program, load it into the board (they come with USB, parallel or plain old serial links) -- and here is your first special-purpoise hardware device! ;-)
;-)
Now, the problem is to figure out what do you want it to do....
Paul B.
I know learning on your own gets you more hacker cred, but a class in electronics might be of real help. Oscilloscopes (especially digital ones), signal generators, various meters, myriad small components, microcontroler test boards, simulation software, and more all cost lots of money. A community college can often give you access to all these in addition to what is hopefully useful instruction. Try to talk to your professor and explain the background you have in digital technology, and try to test/qualify out of any introductory courses that simple explain binary/hex/octal and boolean logic on the digital side, or simply do basic Ohm's law/network theory type stuff on the analog side.
------ Take away the right to say fuck and you take away the right to say fuck the government.
For an introductory title Designing Embedded Hardware is pretty good. It doesn't go into specifics, just introduces terminology and explains the things you need to know.
A good multimeter (digital or analog, your call, each has its advantages), and a good logic probe.
The multimeter is good for simple diagnostics (checking the power supply, checking a circuit for shorts, and troubleshooting analog inputs). The logic probe can make or break a project. This is assuming its mulitple chips and not a single FPGA>
I recommend getting a copy of Horowitz & Hill's "Art of Electronics" book. It's a good read - also get the "laboratory book" (whatever it's called), which is really a fun read and has some experiments listed. Art of Electronics at Amazon
Knew once I a software engineer that dabbled in the hardware, and destroyed him did it.
"How do I know the difference between hardware and software, it's all digital isn't it?"
When alone and peace at are you, clear it will be. Or you could always ask a systems engineer.
-WolfWithoutAClause
"Gravity is only a theory, not a fact!"I'll second the recommendation for Forrest's stuff. He's a very, very, good communicator. I've read plenty of electronics intros over the years and he beats 'em all hands down!
Start from where you are - software - and take baby steps. Start with a Basic Stamp microcontroller board, you can get them from Digikey. Now add peripherals that light up LEDs, cause interrupts from push buttons, then on to driving LCD displays or scanning a keyboard matrix. Then go on to D/A controllers for sounc, PWM for motors or servos, and you are on your way to hardware uber geekdom.
"This mission is too important to allow you to jeopardize it." -- HAL
Best price I've seen on this: http://www.elexp.com/kit_x909.htm
If I remember correctly, ads in Nuts & Volts and Circuit Cellar magazines list these at around $179.
http://www.nutsvolts.com/
http://www.circuitcellar.com/
- Preferences: Solaris 10 (servers), Ubuntu (desktops), Solaris 11 (personal servers) -
The closest thing I could find on the web site was the Electronics Learning Lab, but the old style project kits are still around.
I tried to get back into it a few years ago and was disappointed to find out that none of the local Radio Shacks had any of the Engineer's Mini Notebooks. The folks at the counter hadn't heard of them, either.
Just two weeks ago a friend serendipitously returned something that I'd lent and forgotten about -- Mims' "Getting Started in Electronics", which the cover tells me was published exclusively for Radio Shack. It was a great introduction to electronics and covered enough theory to make it worth reading even if you didn't actually make anything functional.
It's definitely looking for a copy, or writing to Radio Shack to see if they know of any sources. It probably set me back about $10 at the time, and is a great introductory handbook.
Somebody get that guy an ambulance!
Otherwise you might as well leave your objectives at soldering.... Choose something you actually want to do with hardware and progress down that path.
The objective you choose will define the path you need to take.
I started with wanting to build a Joystick interface for Sinclair Spectrums back in the mid-eighties. So then I went out and got books on microprocessor interfacing and spectrum architecture. The learning was simply a natural process then.
There is plenty of fun hardware stuff you can do. Hack a cheap 2 channel radio control into a 10 channel monster with a mini PC in charge ! Build a set of servo's to control a camera remotely ! But choose something you actually wanted to do, or you will just waste your time doing stuff that seems pointless.
I'd second the suggestion of getting some Forrest Mimms stuff. The books seem kind of basic, but they are good... I used to keep them in my reference library way back when I was employed as a serious R&D Engineer as a quick reference to some stuff I was uncomfortable with.... (I was mainly digital, and only sometimes dabbled in analogue).
Also, the Electronics Cookbook is a more serious text that is very useful. Especially if you start to get into more powerful circuits or RF.
After that, you'll need more specific texts that relate to what you are doing.
And as every great hardware hacker knows, if you have a need, the knowledge will slowly present itself. It's the one fixed law of the universe.
David.
Enjoy science fiction? "Turing Evolved" - AI, Mecha, Androids and rail-gun battles. What more could you want?
Analog can be a bitch goddess: variations in resistive, capacitive, and inductive tolerances for cheap components can lead to very different behaviors, and can lead to misbehaviors that are very frustrating to diagnose unless you have several $1000's worth of equipment at your disposal. If/when you get to that level, it can be very rewarding, but its the deep end of the pool, and the life preserver is pretty expensive.
007: "Who are you?"
Pussy: "My name is Pussy Galore."
007: "I must be dreaming..."
I recommend building your own short wave radio and getting getting a few online guides and books related to that.
Learning signal processing is your first step to learning from the bottom up.
(Next step: Google. After you've got a list of reading material: Amazon)
I took an intro to logic design course a few years ago(EE student), and as a easier-to-understand reference for the simpler topics, I got this book. ...but most of my projects now are microcontroller based.
bebop to the boolean boogie
It was nice for an introduction to logic design, and the simpler parts of computer hardware. I later went on to learn about(and program) FPGA's, and do some analog stuff.
Personally, I think the best way to learn is on a project basis. Pick out something you want to make(a volume knob, small robot, IR remote control) and start making it. When you're done, you have that much more experience to put into other projects.
RF is definitely *NOT* critical for anything hobbyist. A hobbyist will generally be making up circuits on breadboard or stripboard. An advanced one will be making his own double-sided PCBs. A *really* advanced one may use some of the larger surface-mount components.
What they *won't* be doing is making up 6-layer PCBs with umpty-tum surface mount components, so small you can hardly see them, auto-routed using Protel or some similar package, etc, etc. This simply is not possible at an amateur level. The equipment costs tens of thousands of pounds even if you're doing manual assembly (add another few hundred K for a pick-and-place machine), the software costs some more thousands, and so on.
And it isn't until you get to that level that you'll be working at fast enough digital frequencies to worry about RF effects. Until then, forget about it.
By all means, choose to use ham radio as your entry point into electronics. But don't think the RF stuff will be relevant to what you're doing in other electronics, bcos 99% of the time it won't.
Grab.
Beware the programmer that carries a screwdriver. Retreat quickly if they carry a soldering iron.
-Adam
I took http://ict.open.ac.uk/courses/t223/ at the Open University (the largest UK based university!). They do world-wide correspondence courses - sadly I don't think the hardware courses are available outside the EU, but this may help someone else here.
4 (ie T224) in the school of informatics.
It seems (M)T223 has been stopped now, but you may find something else there that is useful. The replacement is http://www3.open.ac.uk/courses/bin/p12.dll?C01T22
T223 was a top down look at microprocessors starting with the C programming language, then look at compilation, instructions, microcode and logic to understand how programs are converted to impulses. The course used a serial (RS232) connected thermometer to aid study of some of the hardware aspects.
If you know software then it might be a little basic for you - but you could try for a level-3 course.
HTH
pbhj
You do realize that by posting your call you are effectively giving out your address to everybody here?
BTW, how's the weather in New Rochelle?
Address info courtesy qrz...
.sig
Hook battery-powered stuff to the parallel port on your PC - LEDs, buzzers, HV power supplies connected to your brother's doorknob, etc. Once you do a few simple things and get them working you can decide on bigger projects.
Intron: the portion of DNA which expresses nothing useful.
Second that!
That book was great for all novice skill levels. It helped me teach basic electronics to several people.
Firefox &
There's even a Slashdot Review of the book;/ 2112255&from=rss
http://books.slashdot.org/article.pl?sid=05/01/03
Sound card on IRQ5, because nobody has two parallel printers.
COM 1 and 3 on IRQ4,
COM 2 and 4 on IRQ3. Don't ask me why.
Orange and White, Orange, Green and White, Blue, Blue and White, Green, Brown and White, Brown. (Sing to the tune Mary Had A Little Lamb.) When the times comes, you will know why that is important (hint: network cabling.)
The IDE hard drive closest to the motherboard on the cable is the slave, the one on the far end of the cable (or the only drive on the cable, if there is only one) is the master. Bitchslap anybody who says otherwise.
The red line on the cable goes towards the power connector or towards the front of the case.
Black wires together when putting the cable from the power supply to the motherboard.
ARCnet isn't picky, you can use two coathangers (metal) to transmit signal as long as they don't touch.
On the Intel vs. AMD - I don't care, just pick one and stick with it.
nVidia video card are better simply because they all use the same drivers so upgrading doesn't require anything more than swapping the old card for the new one.
It used to be cheaper to build your own, but that isn't the case anymore.
Anybody that adds lights to the inside of the case, or a see-through panel or neon or anything like that is a pathetic loser and isn't worth your attention.
Pay special attention when wiring the power supply to the switch on your new case. The wires aren't keyed and you can cause a wicked short if you don't get it right.
Twist two wires together, use the iron to get the wires really hot, put the soldier on the hot wires. If the wires aren't hot enough to melt the solder then heat the wires hotter, don't use the iron to melt the solder.
Don't eat the solder, not even a little.
Static electricity kills hardware. Wear a grounding strap, spray the carpet with fabric softener.
Enable the encryption on your wireless point.
You can tell if a 9v battery has power by touching it to your tongue. Don't try this with anything plugged into the wall.
Exotic cooling and overclocking are like hooker sex. Expensive, and you don't really get anything you wouldn't get anyways if you were patient and waited a few months, except maybe a fried PC / PeePee.
If you have to choose between $200 worth of processor upgrade or $200 worth of additional memory, go with the memory.
If you can't tell the difference between two systems / components / configurations without a stopwatch, they are equally fast. A 4.3% advantage isn't really faster. 300%, now THAT's faster.
Glonoinha the MebiByte Slayer
Look for his "Mimms" Learning Lab at the Shack. It looks pretty cheesy but will save you time and money. It has all the components, breadboard, etc. along with detailed project instructions and notes.
You will most likely want a multimeter next.
Good luck from another electronics novice!
KG6TCM
Oh yeah . . . if you do happen to get a radio ticket be sure to watch out where you leave your call.
Just in case some stalker is interested in your outdated information off the net.
uhh ohh