Hardware hacking can seem unapproachable, but the good news is that its core framework – namely physics – has been stable since the beginning of the universe. This is unlike software, where it’s a constant struggle to keep up with the deluge of new platforms, languages, and trends.
One of the best ways to learn about hardware is to just start opening stuff up and looking inside. I started a monthly ‘name that ware’ competition on my blog [bunniestudios. com] about twelve years ago to encourage this kind of thinking, and now you have iFixit [ifixit.com] and eevblog [eevblog.com] doing amazing teardowns all the time. The purpose of taking things apart isn’t to understand everything. Rather, it’s to start populating your brain with patterns and memes. There’s a certain shape and size to everything, and there are common themes.
And then you start making observations. Why, for example, is it that almost every circuit board is somewhere between the size of your palm and a sheet of paper? Turns out it has something to do with the speed of light. It also has something to do with the fact that it’s hard to make things absolutely perfect. And it also has to do with how quickly you can get heat out of objects. Pick any thread and pull, and you’ll find frameworks that go all the way down to quantum mechanics. The deeper you go, the more you’ll discover that everything is related to everything else in some way – it’s all choreographed by the laws of nature.
Now imagine you are presented with a piece of unknown electronics that you want to hack. It’s like looking at a chess match, in its final positions, and figuring out what went through the players’ minds. First, look for exceptions to common design patterns. It takes real effort to make new design patterns, so engineers only make exceptions, or create new ones, if they really have to. Then, look for debug and test facilities; economic realities inevitably demand their presence. Finally, feel out the cracks between abstraction layers. Look for assumptions that might not have been checked carefully. Standard interfaces can often be exploited to do new and interesting things.
This is where it helps to be a practising design engineer – when implementing standard interfaces, take note of where the specs are weak or have ambiguities. Drive wedges into these weak spots; often just the tiniest breach in the wall is all that’s needed to bring about the flood!