For many years, I studied computers without ever understanding how they work. On the inside, a computer is a monstrously complex beast, with layers upon layers of abstraction which ultimately boil down to electrons running through silicon, obeying the fundamental laws of physics. We’ve built up so many layers of abstraction that the vast majority of people using computers – even the vast majority of highly technical programmers – don’t know (and don’t need to know!) how it all works on the inside. But while understanding every single layer of abstraction to its fullest extent is practically impossible, it’s incredibly fascinating how modern computers are built and what physical principles allow them to function.
In this series of blog posts, I’d like to introduce you to many of the layers of abstraction bridging the gap between the laws of physics and assembly language. Given the rather large scope, I’m going to end up leaving out a lot of information about every topic I discuss. Just note that every topic I mention has, essentially, a field and a half solely devoted to it. With that said, let’s begin with circuits.
The always knowledgeable Chris Gammell (of The Amp Hour fame) pointed me to one of the best CNC and mold making resources I’ve ever seen online, and while this may be old news to some people there’s an incredible collection of advice holed up in this article book: The Guerilla Guide to CNC Machining, Mold Making and Resin Casting by Michal Zalewski. If you’ve ever wondered how you can use a CNC mill to make custom gears, or just what the limits of a CNC mill are, this is probably the best online resource you’re likely to come across (note: feel free to prove me wrong in the comments below!).
I’ve been on the fence for years between buying a mid-range 3D printer or a mid-range CNC mill. They’re different solutions to (in my case) similar problems, but their respective advantages and disadvantages come close to cancelling each other out, which is why I still haven’t taken the plunge on either. My only interest is create prototypes of enclosures, or small mechanical parts like gears, and molds for silicon keypads or resin prototype parts, etc. A CNC mill is more flexible since a mid-range mill can also cut soft metals, and has a better finish than many affordable 3D printers, but you’re also more limited with the shape of the interior area compared to 3D printing.
If anyone out there has anything to contribute on the debate (in my head) between 3D printers and CNC mills, my guess is I’m not the only ‘maker’ in this same boat … where finish quality and price are important and it’s probably not realistic to just ‘buy both’. Feel free to chime in below with your own thoughts and experience!
I don’t remember how I originally stumbled across this, but looking through my ‘Embedded’ bookmarks I was reminded of this interesting and relatively accessible introduction to basic sensors. Rather than focusing on sensors, though (temperature, humidity, etc.), it focuses on something much more interesting … the ways that many sensors actually measure things (via resistance, capacitance, inductance, etc.). If you’re looking for a basic primer of the advantage and disadvantages of different ways of measuring the physical world around us (visible or not), this is as good a starting point as any! Head over to Introduction to Sensors by the University of Exeter for more information.
If you’re really interesting in the many details that separate functional PCB designs from professionally designed boards, you can’t do much better in the free department than reading Tom Hausherr’s Blog (Mentor Graphics). There’s some exceptionally good info in there. Find any favorites … please post them up in the comments below for other people to benefit from them!
If I had to come up with a list of the top 5 technical resources ever, the CC-Antenna-DK kit from TI (formerly Chipcon) would definitely place pretty high up there. Antenna design is a time consuming, repetitive task requiring an excellent attention to detail and understanding of the materials you’re working with, more than a few calculations, and a dash of trial and error. $49.00 for more than a dozen pre-rolled, easy to test, easy (and legal!) to steal antennas is seriously one of the best deals I’m yet to come across. Heck, they even throw in short, load and open boards if you’re in a pinch and need a cheap way to calibrate your VNA! The frequencies are a bit biased towards Europe with a lot of 868MHz boards (no surprise since Chipcon was Norwegian), but if you’re looking for an excellent primer in antenna design, including complicated ones like mixing 868MHz and 2.4GHz in the same antenna, you’ll definately benefit from reading some details on this excellent board. See Design Note DN031: CC-Antenna-DK and Antenna Measurements Summary. And if you’re interested in RF at all, seriously … buy one now before someone at TI wises up and starts charging the $495.00 this board is really worth!
There’s nothing particularly fancy about trimpots … but my weakness for hand-drawn books and illustrations kind of forced me to publish Bourn’s “Best of the Trimmer Primers“. Need a trimpot with a safari hat and a gun? Bourns has got you covered!
While I rarely work with signals much beyond 100MHz (SDRAM, etc., usually being the limit), it never hurts to try to improve your understanding of high speed layout. By far the best book you can buy on the subject is High Speed Digital Design: A Handbook of Black Magic by Howard Johnson and Martin Graham. That said, I found myself routing some USB signals that I wanted to have matched since the USB connection is high speed, and after routing the board I took a look around to see what advice I could find before signing off on that part of the board. There are some excellent replies over on stackexchange to “How should I lay out timing matched traces“, with a valuable reminder to step back and consider the scale of your board, and that 1mm length on your PCB probably equals about 5 picoseconds in reality!. Sometimes is helps to just zoom out, look at something at life size, and realize how small that little green board really is! The other good source of information I found was Board Design Guidelines for PCI Express Architecture. Some very good tips on layout and real-world technical considerations that aren’t always cleared explained in more academic texts. Any suggestions yourself? Feel free to post them in the comments below. I’m as happy to find new sources of expert advice as anyone!
As a sidenote, the new Meander tool in Eagle 6 is very useful for this. You can use it to click on a trace and it will tell you the exact length, which makes it much easier than having to type ‘run length-freq-ri.ulp’ in Eagle 5 and try to find your trace in the other 300 listed by name!
Limor sent this wonderful little document my way after we had some problems with a 0.4mm pitch footprint I made, just to see if we could improve the paste layer and reduce the bridging a bit: Root Cause Failure Analysis of Printed Circuit Board Assemblies. Despite the organization not being the best — a clearer separation of problems from potential solutions/recommendations would have been helpful — there’s a lot of useful information in here. It’s often easier to understand the kinds of problems you encounter working with fine-pitch devices looking at photos. Unfortunately, X-ray images of things like ‘ball-drop’ with BGA reflow aren’t easy to come by, nor post-mortem, sawed-in-half BGA packages, etc. If you’re fascinated by the many ways boards can die a premature death, this is a goldmine of info.
It’s a while since I’ve included a book in EE Bookshelf, but I’ve purchased a lot of books lately on the manufacturing process — specifically material science and manufacturing techniques — so I figured a few book suggestions are long overdue. There are a decent number of good books out there on manufacturing and industrial design (I picked up six after collecting some recommendations), but by far the best book of the bunch to me was Manufacturing Processes for Design Professionals by Rob Thompson. It wasn’t the cheapest book of the bunch, but it’s an exceptional value and a fascinating read if you have any interest in moving from a populated PCB to a finished product, but don’t know what options are out there to wrap around your PCB. Thompson not only goes into sufficient detail on many modern manufacturing processes — describing their relative strengths, weakness, associated costs, etc. — but the book relies heavily on invaluable technical illustrations and photographs, including some inspiring examples of products that were manufactured with the said process. If you’re interested in getting inside factories around the world, this is the cheapest quality tour you’ll find!
I’m not sure how this fits into the usual flow of things with EE Bookshelf, but given all the interest in the Raspberry Pi, I figured there are probably a lot of people out there for whom this might be their first foray in Linux. While there are a lot of good books and resources out there for Linux, it can be tough to wrap your head around which commands are available from the console, etc. The GNU Coreutils documentation does a decent job of showing what should be included in any distribution, and will hopefully help people get a bit more familiar with the command line. There’s also a PDF version for offline browsing.
If you’re just looking for a concise cheatsheet, there’s lots out there, but this one from FOSSWire should get you started pretty quickly.
Every question, curiousity and doubt anyone has ever had about Peltier cells seems to be addressed in this FAQ from Tellurex. I stumbled across it over the weekend, and yes … it’s marketting material, but there’s still a lot of good information in there if you want to keep your favorite that beverage nice and chilly, or scavanage free energy using a heat differential. If you didn’t know about Peltier cells, now’s a great time to look them up and figure out some fun things you can do with them (post the details below … I love these things)!
Since we’ve been busy adding quite a few I2C sensors and breakouts lately, I thought this technical overview of the 2-wire “Inter-Integrated Circuit” bus might be handy. I2C isn’t fast (typically limited to 400kHz in most real-world situations), but it’s convenient since it only requires two pins and more than 120 devices can be connected on the same bus, address space permitting. For low-pin count devices, it can be a real life-saver since you can hook an OLED display, a DAC, a 7-segment display and 16 servo motors up to your Arduino with a measley two pins and some careful coding! The full bus specification is available from NXP in UM10204 – the bus was created by Philips, whose semiconductor branch later became NXP — but the more concise information from Embedded Systems Academy might be easier to digest as a starting point. The FAQ has some very good information in it.
Filter design is one of the most interesting aspects of electrical engineering. This is in no small part due to the wide variety of topologies and configurations available for each kind of filter. In the early days, filters were passive — made exclusively of resistors, caps and inductors — but since the advent of low-cost, low-distortion op-amps, active filters have become much more prominent. One of the greatest benefits of active filters is that they don’t require inductors, so size and weight are kept to a minimum.
App note 1762 from Maxim is a good survey of common active filter topos, and explains the strengths and weaknesses of each one. The basic topologies can be extended with more advanced techniques, such as voltage control or switched capacitors, but the underlying configurations are the same.