Near the end of the lifecycle of mass-market commercial product development, an engineering team may come in and make a design for manufacturability (DFM) pass. The goal is to make the device easy, cheap, and reliable to build and actually improve reliability at the same time. We hackers don’t usually take this last step, because when you’re producing just a couple of any given device, it hardly makes sense. But when you release an open-source hardware design to the world, if a lot of people re-build your widget, it might be worth it to consider DFM, or at least a hardware hacker’s version of DFM.
If you want people to make their own versions of your project, make it easy and cheap for them to do so and don’t forget to also make it hackable. This isn’t the same as industrial DFM: rather than designing for 100,000s of boards to be put together by robot assembly machines, you are designing for an audience of penny-pinching hackers, each building your project only once. But thinking about how buildable your design is will still be worthwhile.
In this article, I’m going to touch on a couple of Design for Hackers (DFH) best practices. I really want to hear your experience and desires in the comments. What would you like to see in someone else’s open designs? What drives you nuts when replicating a project? What tricks do you know to make a project easily and cheaply buildable by the average hacker?
Design for DIY
Your audience isn’t technologically illiterate, but they’re not pick-and-place machines with micrometer positioning accuracy either. You want to make the assembly easy on them, but you don’t want to have to use through-hole components that are as big as your head and becoming more and more difficult to source all the time. What to do?
That’s not a rhetorical question. What should we do? I’m entirely happy soldering surface mount technology (SMT) down to 0805 and 0.5 mm pin-pitch with good illumination and a magnifying lens, but below that it gets tricky. People who use solder paste and reflow can handle even smaller parts. But if you require reflow skills to rebuild your project, you’re also limiting the potential audience to a small percentage of Hackaday readers, much less the entire human population.
Home etching is doable down to just about the same resolution as hand-soldering in my experience, but only with a bit of practice. Double-sided boards can be made to work at this scale with yet more practice. When your design gets complicated in these directions, you force the hacker to outsource the PCB fabrication. These days, that’s less and less of a problem, but depending on where people live it can introduce a delay even if it doesn’t add much extra cost to the project.
But if you want people to copy your design, think about the difficulty of DIY manufacture versus the gains you get from using a given technology. There are definitely discrete jumps of difficulty. Almost nobody is making four-layer PCBs at home, and relatively few are making double-sided boards. Once you need to move beyond a single-sided board with a few jumpers, you can pretty safely go nuts on the complexity of a professionally fabricated PCB, which means that you can also use tiny little track widths if you need to.
My best guess is that 1206, 0805, and the bigger SOIC parts are not show-stoppers for the average Hackaday reader even with the most brutal soldering iron, but I could be totally wrong. What’s your tolerance for bigger SMT parts? How many through-hole holdouts do we have out there?
Design for Modules
There are some cases where you can’t avoid tiny parts, or where the fabrication of the board itself really matters. In these cases, using already-built DIP modules can often help. This is fairly obvious for things like radio-frequency parts: high-frequency circuitry can be tricky so having a tested design for the radio part guarantees that it will work. As long as you’re not making a custom radio, designing in a module like an RFM69 for ISM bands, nRF24 for 2.4 GHz, an HC-05 for Bluetooth LE, or an ESP8266 for WiFi is probably the only reasonable choice in single units. They (and similar radio modules) are an amazing bargain considering the development time and effort they embody.
The same goes for wired connections. Things like the ENC28J60 Ethernet LAN module, and USB-serial adapters are also available about as cheaply in module format as the individual parts would be in small volumes. This is the economics of scale: I can buy a complete ENC28J60 module for less money than I can buy the chip, magnetics, and a crystal to run it. It’s no surprise that we see more designs incorporating these modules whole, versus re-building them from scratch.
The surprising exception to this rule is in the choice of microcontrollers. I’ll be the first to admit that I have a stable of favorite microcontrollers that I draw from depending on the features that I need — one that I like for its DAC, another that I like because it is fast, another because it has many SPI peripherals or USB and so on. I’ll buy these in sticks of 25 or so, where they’re cheap. I’ll make 25 projects eventually, or end up with half-full sticks cluttering up my closet.
For a one-off project, all of this is over-optimization and a waste of time, effort, and money. And if you want another hacker to reproduce your project, what matters is the single-piece cost and the ease of incorporating the microcontroller into the design. The design-for-hackers alternative is to settle on one of a couple of cheap microcontroller modules.
Everyone with access to eBay can get their hands on a pre-soldered ATmega328p or STM32F103 board with a crystal, power supply, and all of the pins broken out for just about the single-source cost of the microcontrollers themselves. There are, of course, a wide variety of modules out there, but the ubiquitous “Pro Mini” and “Nano” Arduino knockoffs and the Maple-mini clones shaped like a blue stick (search for “STM32F103C8T6”) are obvious choices from a price/performance perspective.
These modules, just like the RF or Ethernet modules, take a lot of the soldering and assembly work off the hacker reproducing the project in single-unit quantities. It’s a win all around. In my opinion, any project that specs an ATmega or STM32F10x chip by itself, rather than in the eBay-friendly module format, is doing the hacker a disservice.
The Cost of Modules
The downside of using modules is that you’re at the whim of the market. You can buy complete nine degree-of-freedom IMUs today for prices that were unheard of five years ago, even for the raw chips in quantity. But you don’t get your choice of IMU. You have to buy the most popular one, so there’s a design constraint.
The particular STM32 chip in the Maple Mini knock-offs is fairly old, and its peripheral set is limited relative to the entire lineup. It lacks the DAC of its newer brothers, for instance. But for the price of an outboard DAC and some SPI hookup, you can get both better output quality and reduce the soldering complexity for the DIY’er. That’s a win in my book.
The other, hidden, cost is that some of these modules can be flaky. I’ve personally received one bad STM32F103 “blue pill” board out of an order of five. Bad luck? Probably. But I’ll test the chips out before I solder them to my main board from now on. The upside of the pre-built module format is that this is very easy to do because it’s got all the programming and power pins already built in.
I’ve just scratched the surface of Design for Hackers, but the column’s already long enough. Next time, I’ll look into things like layout considerations, parts selection, and tricks to reduce BOM cost for single-unit manufacturing. Heck, maybe I’ll even begin to practice what I preach.
Until then, please leave your comments on your experience with (SMT) part sizes, board layering, and module use in other peoples’ projects. Include links to particularly good examples of best practices. What little touches have made your life easier? What design choices work for 100,000 quantities, but fail when translated to the DIY lab?