Have Designer, Will Travel

Making custom digital hardware used to be difficult and expensive. No longer. It's time for us to realise that we live in the age of custom hardware being within reach of the ordinary.


I used to work for a hardware manufacturer back in the '90s and got to see with my own eyes much of the process of making hardware back then.  It was difficult, finicky, error-prone and, thus, expensive work.  As pretty much a pure-software guy (my motto was "if I have to worry about voltage, it's too low-level") the process horrified me.  Even the most difficult software I had to write (and writing stable MS-DOS TSRs qualifies as extremely difficult, let me tell you!) was nowhere near as potentially-bankrupting as the hardware work I saw being done.  I have nightmares, still, of a batch of six-layer boards having a fatal bug in the traces somewhere in the 4th layer and of the technician using insanely steady hands to drill through the board to cut that specific trace on that specific level so that the boards could be shipped.  We had to do this because most of our capital was tied up in that shipment of boards and the company would have gone bankrupt if we couldn't have sent the boards to customers.


(It was from watching these people work, incidentally, that I learnt exactly why software developers are, on the whole, utterly and completely undisciplined by comparison.  They can afford to be.  If you make a monumental screw-up in your software, it costs you a few nights' sleep, a bit of peace of mind and a few thousand dollars.  If you make a monumental screw-up in your hardware it costs you your company.)


The process (kinda)

When developing the telephony hardware, Jim, the engineering VP of the company (and the engineer – note the singular!), would first, of course, do all the engineering "dreaming up a device" magic which I won't get into.  He would then spend weeks poring over component spec sheets, catalogues, etc., to find the exact mix of components he'd want to implement the magic.  He would then ramp up the design of the circuits, finding ways to assemble the various ICs—ICs which seemed often to go out of their way to be stupidly incompatible at a profound level—with a whole bunch of "glue" components (resistors, capacitors, etc.) to permit them to interact.


Then came the job of laying out the components on the PC board, trying to keep the layer count down because if you needed more than two layers you were paying a seriously nasty premium for the boards!  (I swear that the six-layer boards mentioned above were more costly than the components on them, even though the components on them included four then-expensive DSPs and an 8-bit microcontroller.)


Once all this was done, you had to get the PC boards made.  This involved some magic analogue format (I think it was called "paper") which was then shipped off to a place which would make the boards for you.  This would take anywhere from six weeks to several months, depending on how much you were willing to spend.  And you had to buy in batch; they wouldn't make just one board for you.  I think the smallest number of boards I ever saw coming back was 10.  That's ten prototypes (they may not even be right yet; there was no good way to simulate the circuits on the hardware of the time) that you're probably going to have to throw away.  Go through that cycle a few times.  Can you see the mounting expenses yet?


Finally, you have a board that works.  It's been hand-soldered by the company's technician (note the singular) and looks a mess, but it works.  You've got it!  Ready to ship, right?


Really?  You want to have your technician (singular!) hand-assemble all your boards?  No, of course not.  The overtime alone on a sizeable order would kill your profits.  You have to get the boards assembled at a plant.  You get the components together, packaged the way the assembly plant wants them.  (No two plants want things the same way.)  You ship them all to the assembly plant.  They send them back to you.  Again there's minimum orders involved.  I wasn't privy to the details at that level, but the boxes came back with quite a few; they were serious investments.  And, of course, this was again an iterative process because there would inevitably be bugs in the assembly line that had to get worked out.  This process could take six weeks to several months again, similarly based on how much money you were willing to spend to get it done right the first time.

The problem

The innovative stuff the company was doing was right at the very outer edge of what such a small company could manage and that it was able to do only because one of the owners of the company was using the proceeds of a Sun workstation reseller (that's what they were at the time; things have changed) to fund the R&D at Pika.  It was painfully expensive to make custom hardware and it took perseverence and funding that most small companies simply had no access to.  For all practical purposes, custom hardware in small volumes was simply out of reach of all but the biggest and wealthiest of the big and wealthy.

Eyes opened

I recently made the acquaintance of a talented hardware designer here.  (I tutor his son in English and he found out to his surprise that I was a software geek.)  Over a few months we got comfortable talking shop with each other and he let me in on a few of his projects.  To say I was dumbfounded was putting it mildly.  When I remembered how much "glue" I had to use to make my various MCUs talk to the outside world back when I had fun with those things (and recall that I said having to know voltage levels was too low-level; it's just that you had to know some of this stuff if you wanted to work with MCUs at all), the tiny amount of glue needed in modern hardware was just gob-smacking stuff.  I, the electro-phobe, could make semi-competent designs with this stuff!  It's like snapping together LEGO, almost, or at least along the lines of Mecano.


The price is a bit of a face slap as well.  I have sitting within arm's reach of me three eval boards and a small ARM-based SBC that in total cost me less than the equivalent of about $150.  When I compare this to the $500 (in 1990s dollars!) I had to spend to get a decent HC11 development board (with about a tenth of the functionality of the least of the three eval boards!) ... well, you can imagine what bicuspid grinding is going on.


But that wasn't the biggest surprise.

The real surprise

At one point, I needed to access the STM8 CPU on one of my eval boards via serial communication (instead of the debug interface) because I wanted a "console" for my Forth implementation.  Unfortunately I didn't have a serial port on my laptop.  My friend, Frank, said "I may have something for that here" and rummaged in his parts bin.  He pulled up a little PC board with a mini-USB connector on one end and four pins' broken out on the other.  "Here you go," he said.  Then he casually mentioned, "that's one of my designs."  I was flabbergasted because Frank didn't strike me as rich.  "You mean you designed this for a customer?"  "No, I made it for myself.  My laptop doesn't have a serial port either."


That's when I found out how cheap it is to make custom hardware today.

The process (kinda)

When developing his hardware, Frank would identify a potential need, small or large, and then hit the web looking for usable components.  Within a few hours he'd have a collection of data sheets and would quickly zero in on components suited to his needs.  He'd design the circuits, assembling the various ICs (if he needed more than one; frequently he wouldn't!) without bothering with "glue components" very often.  Why?  Because modern MCUs and other ICs are designed to be easily interoperable.  "Glue" components are simply not necessary, much of the time, and when they are they're simple and small.


Laying out the circuits is easily accomplished both because the actual physical designs are so much simpler and because there's some very good software to automate (and simulate) the layouts.  For most purposes beyond the truly insane a two-layer PC board with components soldered on one side only is all you need.


The designs are done in standard electronic formats which you then ship, via email or some other simple electronic process, to a board foundry who will make your boards for you.  The process is highly automated and doesn't require factory tooling when you're doing small batches.  This means that once you have a design finalized and a PC board laid out it's about a week from submission to you getting your board back in your hot little hands.  The price for this is negligible.  (Basically, if you've got the design skills to do this, you probably have a job that allows you to pay for this kind of stuff as a hobby like people used to make electric train sets.)  If there are errors or bugs in your design, it's a simple resubmit and a new board (note the singular!) comes back.


Finally you have a board that works.  You've hand-soldered it and it looks a bit of a mess, but it works.  At this point, if you're making this for yourself, you stop.  And you've probably spent under twenty bucks if you're making something like that USB/serial bridge I mentioned above.  A lot less than twenty bucks, in fact, for a small thing like the bridge.


So you want to have the board populated?  That adds about another week and another little bit of cash.  Again, even if you're only getting one done.  (For small things like the USB bridge, which has twelve components total, you wouldn't waste the time but for bigger, more complicated boards, you might want to do this.)  Now you'll have a proper, wave-soldered board in your hand that looks very professionally done.  Because it has been.


Note, I'm still talking about making a single board here.  The ultimate in custom hardware.  The USB/Serial bridge I was handed is one of five that exist in the whole world.  And the five together cost Frank less than the equivalent of twenty bucks.


Custom digital hardware is no longer only for large and wealthy companies.

Have Designer, Will Travel

This brings me (finally!) to the point of my story.  I have a business idea.  Have Designer, Will Travel: Custom Hardware for Less than You'd Think  I'm thinking that I'm ideally placed to work together with Frank to do high-quality, low-priced custom digital hardware (with or without a driving MCU—you'd not believe how cheap those are these days!) for people who need it but lack the ability and/or connections to do so.  I mean really, at this point it's as low-risk a venture to make custom hardware as it was to make custom software in the '90s!


There is no reason beyond fear why people today couldn't have custom hardware made to suit their precise needs at a very reasonable price.  I'm thinking of supplying just that.

Filed under: