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?"
Did this guy use to work for ModChip.ca?...I'd say give him a bunch of Xbox's and chips and to get cracking...there is loads of money to be made on modded systems.
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.)
Arduino for sure... or Netduino if he swings that way.
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)
GoodReads has a selection that might spark his interest.
"A person is smart. People are dumb, panicky dangerous animals and you know it." - K
Available from Spark Fun at: https://www.sparkfun.com/products/9544
That is all.
The book provides a lot of best programming practices. It's easy to read and the authors will tell you when it's "six of one, half-dozen of the other". If your friend wants to learn how to become a good programmer, this is an excellent book.
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."
It's been several days since the last Raspberry Pi comment, so perhaps it's time to dig it up again.
Am excellent board for the casual hardware/software tinkerer, and there is a book out soon, and vibrant community.
... if he's serious about learning how software works. C++ and the idea of how a computer works, this book is a great place to start.
http://www.amazon.com/Primer-Plus-Edition-Developers-Library/dp/0321776402/
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
>He is fascinated that people can create chips to modify existing hardware.
Hook him up with some digital logic and HDL tutorials and get him a Xilinx Spartan-6 FPGA LX9 MicroBoard. It's a basic FPGA dev board the size of a USB stick and (relatively) inexpensive.
There are also USB stick microcontroller dev kits like the TI ez430 that he'd also probably have fun with as well.
loaders, linkers, libraries, supervisory mode... a basic 200-level CS book might give him plently of high-level fundamentals once he descends into the world of device-specific drivers.
In the future, I would want to not be isolated from my friends in the Space Station.
What kind of budget do you have for this gift?
A Safari subscription could be good... but then, your local library system may already offer access to this (mine does)
Don't blame me, I voted for Kodos
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.
Anything Arduino... Make bots / gadgets, automate the home, tinker everywhere... http://www.frys.com/search?search_type=regular&sqxts=1&query_string=Arduino&cat=0&submit.x=23&submit.y=11
geek. lawyer.
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.
How about a subscription to Make Magazine? That way he can discover projects he is interested in pursuing. They have a lot of Arduino projects.
The programming shop where I work has no books at all. We use Google. At my three previous shops, we had plenty of books but I rarely cracked one.
The best way to learn programming is by doing and to have Google at your disposal when you have questions.
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
If you're lucky and have one nearby, go ask your local hackerspace for ideas or better yet, just take him there.
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
A Makerbot kit might be nice for printing things in PLA plastic. Check out the Rostock printer. It's faster than the Makerbot and has higher resolution.
That was the turning point of my life--I went from negative zero to positive zero.
Looking at the ads alone will give you a ton of ideas ...
A friend of mine has a small company that sells development boards and kits for the Parallax Propeller platform. I'm not that into the hobbyist prototyping stuff, but he's told me a million times that what makes Parallax better than other options is the fact that you don't have to learn a computer language to use it.
If your friend is a mechanic, he may enjoy a kit that my friend just designed call The Car Kracker. Although that kit is specifically designed for BMW models, my friend made the kit himself and I think if someone took the time to understand how to install it on that car, then they could figure out how to make a kit for other cars, and even offer the redesigned kit back to my friend as a designer and make a commission on any sales generated.
I once took an excursion to Reddit, and later HN. Unlimited up/down voting sucks when dealing with a hive-mind.
Forrest Mims Engineer's Notebook
He might want to consider a board that can adapt to lots of different processors/sensors, like BoardX - http://www.upgradeindustries.com- and look into learning CAN Bus
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!
http://www.xilinx.com/products/boards-and-kits/index.htm
Only if he wants to get deep into the bowels...
They only publish excellent books, according to reviews on Slashdot.
Leave him with mechanics I'd say. It's a lot better for the soul than software. And more useful in the very long term.
Arduino is designed to be used by artists. The tutorials are amazing. So, anyone who wants to create something can just string together several tutorials and have a truly awesome project.
The other thing is that the Arduino is extensible. When you get tired of Arduino's programming language, you can write in C or assembler. If you want to create an inexpensive stand-alone project, the Arduino board becomes, effectively, a chip burner.
The first year electronics students, at the college where I teach, use the Arduino because they can do projects without prior knowledge of electronics or programming.
That's why Arduino. It isn't the, admittedly, simple and limited hardware. It's the tutorials.
Funny you should mention this topic because I've just gotten interested in this, too (since software is a dry career now).
I'd recommend Arduino since it's dirt cheap to build components. Both the hardware and software is open source and there are a lot of docs and user groups dedicated to Arduino development. For more info go to www.arduino.cc.
Also, a good book (spendy, but worth it) is "Arduino Cook Book" by Michael Margolis.
Nice big shop with room to set up a lab and library. I suggest one of the many available closed auto dealerships. We had a nice one here that last housed a millwork shop. 440v 3-phase, plenty of room, steel beam construction. Could, obviously, do double duty as a mechanic or machine shop. They tore it down to put up another retail bank building, though. So much for historic preservation, eh?
Am I the only one creeped out with the level of thought you put behind this "friend".
Sounds like you like him if you know what I mean.....
Just open up to him and ask him if he wants to cuddle and talk technology to you while your eyes glaze over......
Captcha: Dismount
I'm biased, but I think your friend would like "SolderSmoke -- Global Adventures in Wireless Electronics" http://soldersmoke.com/book.htm SolderSmoke is the story of a secret, after-hours life in electronics. Bill Meara started out as a normal kid, from a normal American town. But around the age of 12 he got interested in electronics, and he has never been the same. To make matters worse, when he got older he became a diplomat. His work has taken him to Panama, Honduras, El Salvador, the Spanish Basque Country, the Dominican Republic, the Azores islands of Portugal, London, and, most recently, Rome. In almost all of these places his addiction to electronics caused him to seek out like-minded radio fiends, to stay up late into the night working on strange projects, and to build embarrassingly large antennas above innocent foreign neighborhoods. SolderSmoke takes you into the basement workshops and electronics parts stores of these exotic foreign places, and lets you experience the life of an expatriate geek. If you are looking for restaurant or hotel recommendations, look elsewhere. But if you need to know where to get an RF choke re-wound in Santo Domingo, SolderSmoke is the book for you. SolderSmoke is no ordinary memoir. It is a technical memoir. Each chapter contains descriptions of Bill’s struggles to understand (really understand) radio-electronic theory. Why does P=IE? Do holes really flow through transistors? What is a radio wave? How does a frequency mixer produce sum and difference frequencies? If these are the kinds of questions that keep you up at night, this book is for you.
The posted question doesn't provide enough information about the age or background of the person for whom we are making suggestions.
It seems the presumption is the person for whom we are making suggestions is a child or youth between 9 and 16 years old. The person has disassembled, repaired, and programmed a moderate number of gadgets.
The suggestions being offered are really good suggestions from a number of Slashdot readers who have experience as each poster suggests.
As an amateur radio arduino electronics hobbyist "fix anything" mechanic for way more than 20 years I would add, a good part of this hobbyist activity is about dreams and self-education. Figure out ways to expose the person to the larger world of works and ideas while the person is young enough to slip in and be a spectator or helper or bystander without attracting too much attention.
If the person is a young person consider finding ways to give him a chance to be around an artist or a scientist or an engineer or a graduate student or a farmer or a composer or a musician. Got theatre or opera? Let him be an assistant stage hand during a rehearsal.
From the wider worlds of interesting things to do as an adult during the current great American bobsled ride into ecological disaster he or she will get plenty of interesting ideas for gadgets to build and things to learn.
Books are the wrong way to go.
Try groups that get togeather. (Ham radio groups mentioned on ARRL.org are a good place to start - everyone's an hobbyist engineer.)
Try web sites, like AvrFreaks.net. Try discussion formus on web sites.
The Maximite is getting a lot of attention is some quarters. Makes it VERY easy to get started in embedded software and hardware before moving on to more complex languages. Inexpensive too. http://geoffg.net/maximite.html
If he has a son or friends and family he can joust with:
http://www.instructables.com/id/How-to-design-and-build-a-combat-robot/# (PDF)
Maybe get him a membership to a local hacker space?
http://hackerspaces.org/wiki/List_of_Hacker_Spaces
If anyone is still reading this thread, I'd recommend whatever the latest version of "Upgrading and Repairing PC's" by Scott Mueller is out now. Great detail on the inner workings of PC components and fairly approachable.