I mentioned a couple of weeks ago that I was super busy, and as a result my efforts on this blog have been waning. The good news is that being busy in this case is a good thing. I’ve managed to stay with my current client for over a year and a half, and there are hopes that I can continue to do so through the rest of the 2009. I’m also preparing to take my first Microsoft exam. I’ve always resisted taking the exams because I’ve seen people abuse the system – however there are extenuating circumstances moving me to take the exams, and I’m starting to get into it. It seems like a review of everything that I’ve been doing for years, but I hope to pick up a few gems along the way. Hopefully, I will be ready to take the exam before the end of the month.
On the personal front, lots of cool things. I’m an uncle, three times over – that has been a blast. Plus, being the uncle, I get to do all the fun stuff, but I can hand them back to “Mom” (sorry sis) when they get cranky! I plan to be the math/science teacher to all three of them.
As far as technical things go, I’ve found a new interest: designing embedded hardware circuits and integrating them with Microsoft software. I signed up for BizSpark (excellent program), which will allow me to have access to Microsoft software personally, and host services. As far as the hardware stuff goes, I’ve learned some really cool things by looking at some hardware and books.
For years there has been such a movement in open source software, but what I didn’t know is the movement towards open source hardware (general purpose microcontroller boards, MP3 players, etc). A huge community is building up to help people learn about embedded hardware, and to be able to build there own electronics. At first, it all seems like “magic”, but as I began to learn, it all started to seem almost simple (for basic things - and some not so basic). Here are some things to look at.
First, Arduino. I purchased both a Duemilanove (means “2009”) and a Mini. Through experimenting with these and by looking through Arduino’s web site, I’ve had some hands on experience with integrating hardware.
Second, MAKE Controller. This controller does some more heavy lifting. It can natively control motors and servos, and has Ethernet built in. It also uses this interesting REST-like protocol called Open Sound Control (OSC). I’ve used this controller a little bit, but I’m more interested in learning about the hardware itself, so I can learn how to incorporate similar things into my own designs. Arduino and the MAKE Controller are open source – both the hardware schematic/board layout and the accompanying software. If you interested in learning about hardware, I’d look at Arduino first – but even before that I would recommend you read a book or two.
The first book I read was Practical Electronics for Inventors. This is a really good book. It had really good coverage of many areas of electronics and allowed you to dive in as deep as you want. If fact, it goes really deep – at one point the author, Paul Scherz, said in chapter two that the latter half of the chapter was, in some ways, designed to “scare you”. Indeed it did, but I kept on reading, and Paul was clear that if you didn’t understand some of the math or science, that the rest of the book would still be very useful. There were a few spots where you can find some errors, but for the most part the book is spot on. I hope someday to do a more thorough review of this book on my blog.
The second book, which I’m reading right now, is Physical Computing: Sensing and Controlling the Physical World with Computers. It takes more of a basic, prescriptive approach, and doesn’t get into to much detail. This is probably the book I would recommend you read first if you want some instant gratification, but I would strongly recommend you read Paul’s book afterword to get a strong knowledge foundation.
I’ve started a Hardware Engineering book section on my Resource List, but I may later expand this to a separate resource list, as it may grow large on its own, have more than just a book list (physical tools, software, etc), and some may not be interested in hardware.
To whet your appetite to start learning about hardware, here’s what I’ve figured out so far, many times integrating it with my XP/Vista computers:
I will say this, learning embedded hardware requires more of an investment than a free SDK and a few books, but I’ve found it has been worth it. I’ve been able to repair some electronics that I otherwise would have replaced or paid someone to fix. Plus, there are fewer people in hardware design/development, compared to software design/development – so that is bound to set you apart from the crowd.