Ask Slashdot: Good Books and Tools For a Software/Hardware Hobbyist?
postermmxvicom writes "I have a friend who is a mechanic, but enjoys tinkering with software and hardware as a hobby. I want to get him a gift that will either broaden his horizons or deepen his understanding in these fields. He is proficient at soldering components and removing them from circuit boards. His programming experience is with a wide variety of scripting languages. He recently used teensy and arduino boards and an accelerometer to add some bells and whistles to a toy car he made. He also used his knowledge to help a friend find and correct weaknesses in his shareware (that would have let 'customers' share more freely than intended). He is fascinated that people can create chips to modify existing hardware. Do you know of any good books or kits (or even tools of the trade) that would appeal to a hobbyist and allow him to grow? Is there anything that might also play off of his handyman/mechanic abilities?"
I really liked MSP430 state machine programming by Tom Baugh. I learned a lot about state machines, and they are basic to many applications.
Nullius in verba
http://mindstorms.lego.com/en-us/Default.aspx Could be a good mix of the two?
As an engineer and tinkerer I have to throwin a plug for increasing his capabilities. If he has a multimeter, get him a scope. If he has a dremel tool, get him a mini mill (shapeoko), etc.
>> "I have a friend who..."
C'mon, man up and admit that YOU have a question. (This is Slashdot, not Penthouse.)
subscribe him to MAKE magazine.
...and a nudge in the direction of Sparkfun, Adafruit, Hack-a-Day, et. al. This particular community is vast and welcoming for the most part. Example code, parts lists, and detailed write-ups are all over the place.
0 = 1 + e^(Alt something)
http://shop.oreilly.com/product/9780596510510.do
http://www.digilentinc.com/index.cfm
http://www.raspberrypi.org/faqs
http://www.parallax.com/
"I say we take off, nuke the site from orbit. It's the only way to be sure."
I want to get him a gift that will either broaden his horizons or deepen his understanding in these fields.
If he's a reader: the ARRL handbook, the Art of Electronics, if radio shack still sells the Forrest Mims books get those...
If he just wants to mess with ckts you could do worse than the 200 in 1 lab kits etc. "Snap circuits" are a bit expensive but a lot of fun.
His programming experience is with a wide variety of scripting languages.
http://en.wikipedia.org/wiki/Programming_paradigm
The little schemer book/series as appropriate
I've found over a couple decades that no one really knows what to get me, but me. Maybe your best bet is wake him up early on saturday, feed him lots of pancakes, stuff $200 in his wallet, drive him to the ham fest flea market in your area, and see what he finds for himself?
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
As far as ways to exercise his interests: Amateur radio is a great hobby for tinkerers. There are plenty of opportunities for exercising his soldering or other electronics related skills. Many aspects of the hobby are extremely computer friendly (Digital signal processing, APRS + many others). If he is in to model cars, rockets ..., a ham license gives you additional options for handling telemetry.
His law states that headlines ending in question marks can be answered "no", but, based on his statements and the obvious intent of what he meant, it would have been better stated as saying that a headline ending in a question mark is almost always properly answered as "no". The idea there is that if a journalist doesn't trust their sources and information enough to make an assertive headline, then the article is almost assuredly a sensationalist piece that has little basis in reality, and is thus best dealt with by simply answering in the negative and moving on.
In this case, the question mark is not being used to weaken the assertion of the headline, but rather to ask an honest question. So while it can indeed be answered "no", just as virtually any other question, it is properly answered with a list of recommendations.
Also, this meme of merely citing Betteridge's Law and saying "No" is trite and boring. At least the other memes around here (e.g. insensitive clod, Beowulf cluster, how many Libraries of Congress, etc.) are funny when applied correctly.
Makes me immediately think of robotics. With that in mind, I'd suggest books like JunkBots, Bugbots, and Bots on Wheels: Building Simple Robots With BEAM Technology or Robot Builder's Bonanza. Maybe not these exact books, because they might be a little dated, but anything in that vein. You can also look at microcontroller programming (PIC, Arduino, ..), which allows you to do all sorts of things with feedback systems and motor control, etc. Of course there's the good ol' fallback too: Lego Mindstorms.
Three days from now?? Thats tomorrow!! ~Peter Griffin
The Elements of Computing Systems is a great book if he really wants to get a grasp of computers from the level of logic gates on up.
Working through the exercises in each chapter, you use HDL to design your own logic gates, build them into more advanced circuits (DFF, adder, ALU, etc.), and then a full-fledged Von Neumann computer.
After that, you move into software mode, starting with machine language, then assembly, and finally a high-level Java-like language. Along the way your write your own symbolic assembler and compiler!
It's really unique - kind of like Petzold's Code, except you really create the stuff you're learning about.
Bus Pirate: good for looking at communication waveforms to debug problems. ($35)
Logic Sniffer: For more complex problems than the above, allows looking at parallel signals.($50)
Raspberry Pi: Tiny ARM11 700MHz CPU with powerful graphics, 10/100 ethernet, USB2.0 host (2 ports), HDMI out, and GPIO connector. Boots from SD card. ($35)
MSP430 Launchpad: inexpensive microcontroller development platform ($4.30)
STM32F4Discovery: Development platform for powerful microcontroller. ARM Cortex M4 with FPU, 168MHz (210DMIPS), Ethernet MAC, 2xUSB host/device/OTG, etc. etc. Board has stereo audio DAC with speaker driver, USB Micro-AB connector, 3-axis accelerometer, digital mic, 4 user LEDs, two pushbuttons (one is reset), and onboard debugger which is supported by open source tools. ($15) <--- take that, arduino
consider an inexpensive FPGA board like the Altera DE1. There are nearly unlimited things you can build based off such a kit, whether you decide to look at it from the viewpoint of hardware, software or both. http://www.altera.com/education/univ/materials/boards/de1/unv-de1-board.html
(there are several other low cost FPGA boards, I just happen to use the DE1. It's quite adequate for a great many things, but there may be even better options out there by now)
Also, consider amateur radio. If you have an active local club, it will server as a gateway into a whole realm of interesting things (many only tangentially related to radio) and an introduction to the people who are doing them locally.
-Lod
Forrest Mims Engineer's Notebook
I vote tools.
1) Really nice electronics-oriented multimeter. I'm sure he has one already, but it might be cheap/lacking in function/etc
2) O-scope. Super handy and fun too. Old analog ones can be had for cheap. Check craigslist and ebay.
3) Logic analyzer/Bus Pirate. I realize these are two pretty different things, but they fill a similar place in the "debugging digital stuff" category.
Other than tools, I think some kind of audio kit/project would be cool. IMO nothing helps you learn more about how electronics really work than analog audio, synthesizers, amps, etc. It really helps connect the concepts of how voltage/current/power/etc are connected since it all ends up in a very tangible (audible) medium.
Plus: Boom Boxes are sweet. It's a scientific fact.
Ze Atomic Device! It iz Ztolen!