
Ask HN: Where to begin when learning hardware hacking? - anujkk
For someone having a decade of experience in software application development(mostly web applications) but not so much knowledge about hardware, what is the best approach to get into hardware hacking?<p>C was the first programming language I learned and while I was in college I did some fun projects like developing a graphics &amp; GUI library from scratch using just BIOS interrupt calls to set video mode, read&#x2F;write pixel on screen and mouse handling. Since I left college I code mostly using python, php &amp; javascript.<p>What would be the best approach for a person like me to get into hardware hacking?
======
asher_
Arduino. You are writing in C but there are plenty of examples you can use to
start with. The community support around Arduino is fantastic, and is a great
way to get into hardware.

Although somewhat overpriced, the Arduino starter kits that you can get are a
pretty good first step. I bought one a few years ago for about $90. The
premium you pay is worth it, in my opinion, for the components, instructions,
and sample projects that come with it. Starting with projects from a kit like
this lets you get your feet wet, while picking up bits and pieces along the
way. From there, you can branch out, make modifications to the code, buy new
components, and start building your own projects.

More information about what kinds of things you are interested in would help
in guiding you also, although I think Arduino is probably the best starting
point in any case.

~~~
lhl
I'd second the Arduino - it was designed for teaching electronics, and the
Wiring IDE makes it simple for anyone with a programming background to get
started. There's a huge community out there so finding support through forums,
tutorials, etc, is very straightforward.

I'll add some links:

* [http://www.arduino.cc/](http://www.arduino.cc/) \- a good place to start

* [http://www.ladyada.net/learn/arduino/](http://www.ladyada.net/learn/arduino/) \- adafruit sells kits and stuff and has some pretty well laid out "basic electronics" stuff as well as tons of tutorials/projects (connected to things you can buy for those kits)

* [https://learn.sparkfun.com/tutorials](https://learn.sparkfun.com/tutorials) \- sparkfun also is great in the same regard

* [http://hackaday.com/](http://hackaday.com/) \- has a steady stream of neat "stuff" that's good exposure

* [https://www.youtube.com/user/EEVblog](https://www.youtube.com/user/EEVblog) \- my favorite EE vlog for clear/mostly to the point videos on specific topics. There's lots of stuff on YouTube for just about anything you might be confused about, although quality of presentation varies greatly.

* If you're a "book" person, this is the classic (what ITP uses to teach students) and covers the fundamentals: [http://www.amazon.com/Physical-Computing-Sensing-Controlling...](http://www.amazon.com/Physical-Computing-Sensing-Controlling-Computers/dp/159200346X) \- here's the associated site: [http://www.tigoe.com/pcomp/code/](http://www.tigoe.com/pcomp/code/)

I think for someone coming from a pure software background, learning basic
electronics, reading schematics, etc will be the biggest challenge, but is
something you should try to master w/ breadboards and low current DC before
you try anything potentially dangerous.

A few tips from someone that's been making a similar journey over the past few
years (I had a bit of EE background but mostly did software, but started doing
more and more hardware for fun and now work over the past few years):

* You can never have too many basic components like male/female jumpers, resistors, etc - buying some bulk packs are totally worth it, otherwise you may find yourself diving in parts bins at Radio Shack, which is no fun

* Sparkfun and Adafruit can be convenient, but usually about 10x the pricing on components vs Digikey, Newark, etc, so once you know what you're doing you'll probably want to start moving there

* Similarly, Arduinos are great for learning, but they're rarely the best answer for building things and will depend on the kinds of things you like to build. There are a lot of innovation going on in the microcontroller space right now, so probably best to keep your eyes peeled.

* Picking up a decent variable DC power supply is totally worth it. I've been using a Mastech HY3005D, it's great.

Oh, and a couple random suppliers I like (interesting selections, good
pricing):

* [http://yourduino.com/](http://yourduino.com/) \- dirt cheap, but everything I've gotten has worked well. Their wiki has lots of good info (despite the Comic Sans). Shipping from China

* [http://imall.iteadstudio.com/](http://imall.iteadstudio.com/) \- great prices and interesting selection of stuff. Shipping from China

* [http://www.seeedstudio.com/depot/](http://www.seeedstudio.com/depot/) \- huge selection of stuff from lots of little studios (most stuff not in stock, dependent on demand). Shipping from China

* [http://numato.com/](http://numato.com/) \- good prices for some really convenient, well documented relays/GPIO. Shipping from India

* [http://oshpark.com/](http://oshpark.com/) \- I just made my first PCBs in EAGLE - these guys were awesome for doing onesies cheap and w/ good turnaround. Based in PDX

------
taoquay
If you want a more structured introduction to hardware hacking, UTAustin is
offering a MOOC called "Embedded Systems - Shape The World" that starts on
January 23, 2014 and puts a heavy emphasis on hands-on labs. The platform used
in the course is based on the Cortex M4 ARM chip and the board is made by
Texas Instruments.

Course website:
[http://users.ece.utexas.edu/~valvano/edX/index.html](http://users.ece.utexas.edu/~valvano/edX/index.html)

edX website: [https://www.edx.org/course/utaustinx/utaustinx-
ut-6-01x-embe...](https://www.edx.org/course/utaustinx/utaustinx-
ut-6-01x-embedded-systems-1172)

------
zw123456
As a long time HWH and SWH I actually get asked that often. The answer I
always give is to find a project that interests you, and go do it. That is the
best way to learn, dig in. There are a ton of resources online so just start
reading up and researching your project and keep going.

