Hacker News new | past | comments | ask | show | jobs | submit login
Intro to modern hardware prototyping (obogason.com)
138 points by horigome on July 12, 2016 | hide | past | favorite | 59 comments

Eh, Eagle in this day in age? If you're going cheap, I'd stick with KiCAD. It's unintuitive, like GIMP vs Photoshop, but gets the job done with no restrictions on functionality. I've also heard decent things about CircuitMaker, but never used it.

If you have any academic links at all though, or don't mind piracy, I'd grab a student edition of Altium Designer. Solidworks too if you can get it for mechanical modeling. If you ever make it big, these are the tools you want to learn and know how to use. You don't mention anything about a good debugger - this is crucial! If you work with ARM the Segger JLink is the gold standard.

Also you should probably mention where to get cheap stencils, like Osh Stencils etc. With all the cheap parts going to extra small packages, stencils are a godsend. Or, just have your prototype made in China at any of the small board-houses - quite cheap as well compared to the time you might spend doing board assembly.

Just my quick 2c.

I'm very much against software piracy but if you're starting out in electrical engineering, you are doing an absolute disservice by not using a pirated version of Altium. Not only is it basically the industry standard (Cadence, Orcad, etc are mostly propped up by legacy clients, especially in aerospace and defence) but its interface and features are leaps and bounds beyond anything else. Pretty much all ECAD software is a naive port of the pen and paper schematic design process to mouse and keyboard (it's still called "schematic capture" in contrast to "PCB design") but Altium has moved far beyond that, especially with the introduction of cloud features in the last five years (like an online repository for user and vendor created footprints). The field of electrical engineering has been extremely averse to the ideas of open source but for many reasons, Altium's online resources among them, that is finally starting to change. Eagle does have a large community with companies like Sparkfun and Adafruit but those pale in comparison to the community forming around Altium, which is made up of a large number of vendors and professionals who are starting to grasp the benefits of sharing data.

Considering how much the package costs and how much Altium benefits from the growing community, I honestly don't think they'd mind if you pirated the software a few years before you could afford it.

Altium also recently developed a free (!) entry-level version, CircuitMaker (http://circuitmaker.com/).

We looked at CircuitMaker but it appears that you can't have private designs - they are all public. So fine for open source but difficult to use for product dev.

I used Cadence a fair bit, back in university (CMU) about 8 years ago - it is really surprisingly poorly made and maintained software.

Very powerful, huge number of features. Crashed if you looked at it funny. Some windows made with TK, some with Athena widgets, some with GTK1, some with straight X11. Can't copy and paste between most of them.

I'm glad to hear it's not really the industry standard I had the impression it was. I had the impression that most purely-hardware-focused engineers didn't care about software quality much and so the whole industry just naturally leaned that way.

The thing with hardware is that once you've designed the PCB and it works to the spec, you don't need to do anything until some part you need goes out of production. This means that the major ECAD money comes from shops that do a lot of one off projects which means that aerospace and defense are king. Since those industries are risk averse and spend much more time in manufacturing and testing than in design, they never really had much care for the quality of design software, even when it costs an arm and a leg like Cadence. Since these industries have extensive quality control and review processes, a bug or a crash would only cost a little bit of time. Remember though that Orcad was first developed in the mid-eighties so with the risk averse clients it's no wonder it hasn't aged well.

But yes, rest assured, outside of some (rather large) niches, no one really tolerates the garbage that is the old ECAD packages.

haha, you almost exactly described the Cadence HDL simulation suite, used for HDL simulation in ASIC/FPGA design. But... it is widely used in industry. Their tools are so buggy, and poorly made.

>it's still called "schematic capture" in contrast to "PCB design"

So what is it called when I capture a schematic in order to do some SPICE simulations on it? "PCB design minus the designing PCB part"?

"Capture" in this context means "the act of putting information in a form that a computer can use or read"¹, so I don't see how the phrase "schematic capture" is archaic when it mentions computers in its definition.


Are you arguing that a term can't be archaic because its definition has the word "computer" in it? That's silly.

The term capture comes from a time when ECAD programs were unwieldy and difficult to use (we're talking 60s and 70s) and components weren't as complex so engineers first designed the schematic using pencil and paper and only then "captured" it in a digital format using an ECAD program. We design circuits and yet still capture schematics because of the usability of half century old software.

Instead of pirating, maybe better to check out some low-cost tools from Altium like CircuitStudio, or even CircuitMaker (which is free). If it's the data sharing and community you're after, check out SnapEDA too, which works with vendors to provide libraries for free to engineers in all major design formats (Altium, EAGLE, KiCad, OrCAD, etc.)

True, Altium has done a great job with bringing in the modern features but we weren't comfortable shipping a product with "borrowed" software. We've found some tools that help with the others. For example, SnapEDA has a great component library of footprints and symbols.

On the other hand, if you get accustomed to using better software, and end up working at a place that uses, say, Orcad 16.2, it will be much more painful of an experience.

I work at such a place (16.6, to be sure), and agree that it is indeed quite painful.

Fortunately, after almost 2 long years of pushing, a colleague and I finally convinced our branch of its technical merits and justified the business case to switch.

The team at CERN has made big improvements to KiCad, including the push and shove router: https://www.youtube.com/watch?v=CCG4daPvuVI

Another good reason to think about KiCad is if you care about open formats (vs. Altium for example.) CERN's own statement [1]: "We think that KiCad can do to PCB design what the gcc compiler did to software: ensure there are no artificial barriers to sharing so that design and development knowledge can flow more freely."

[1] http://www.ohwr.org/projects/cern-kicad/wiki

Ironically, CERN has one of the best open source part libraries for Altium.

That's really cool of them.

Where can I find this library? Googling led me to the two sites below, but there's no download location in them.

[1] http://ts-dep-dem.web.cern.ch/ts-dep-dem/services/library/

[2] http://information-technology.web.cern.ch/services/software/...

I found a 460MB CERN_ALTIUM_LIB_july_2014.7z file on torrent sites. Is this what you're talking about?

This may not be pleasant in practice, but is there anything that offers a text-based language for describing schematics and/or PCBs? (Similar to the way OpenSCAD has a DSL/Scheme for 3D modelling?)

From what I understand, VHDL etc. are for FPGAs and ICs, I'm just talking about boards with components.

Absolutely nothing is stopping anyone from writing Gerber files by hand. It's just a flat text file with a well documented format.

Likewise, Eagle (and I am sure, KiCad) files are text based.

What are some of the reputable "small board-houses"? Any recommendations?

OSH Park is very cheap and good for bare boards: https://oshpark.com/

If you want somebody to populate the boards for you, I love Macrofab: https://macrofab.com/

First I've heard of Macrofab, have you ever tried circuithub? I've been using the latter and wonder how they compared.

Edit: just checked out Macrofab and they seem to be more expensive than circuithub at least for the couple example projects I threw into the quoting engine.

OSH Park are also beginner friendly. Allowing you to import your design directly from Eagle rather than having to generate individual layer files and also not requiring you to specify copper thickness, board finish, etc.

I'm going to throw in a plug for OSH Stencils. Cheap, high quality PCB stencils. I'm never going back to a syringe full of paste! Had a QFN-64 that I hated doing because of that.

For small personal projects, iTeadStudio[1] is my go-to PCB fab house. If their design constraints fit your needs, I'd def recommend giving them a shot. I've personally spun 10-ish projects with them and have yet to be disappointed...just try not to push an order around Chinese New Year if you're in a rush.

[1] https://www.itead.cc/open-pcb/pcb-prototyping.html

BayAreaCircuits is pretty cheap, in the USA and you can have boards in under a week.

I also like macrofab if you want something assembled.

A few times I have ordered from the board houses on Ebay. Like $20 for 10+ boards and they come in about 2 weeks.

For simpler prototype boards I use oshpark.com, but a big downside is no electrical testing. For more important/complex stuff, I've been very happy with jetpcb.com in Taiwan. Full e-test and I get the boards in about 5 days

I always had good results with Advanced Circuits out in Colorado, but this is over a decade ago now.

Curious if you've heard about the sale of CadSoft to AutoDesk, I was about to write Eagle off myself but I'm hoping they give it a little love.


Yeah, I heard about it. I think Eagle is a sinking ship. The low-end PCB design software market is going to be swallowed up by KiCAD, which has been getting much better ever since CERN decided to sponsor it.

Can't beat free and unencumbered. Thank the European taxpayer and move on, IMO. The market is going to be KiCAD at the bottom, Altium Designer / Pads / Orcad in the middle, then Zuken / Allegro / Expedition at the top.

I'm so glad you mentioned that! KiCAD was infuriating last time I tried it. I considered getting involved and trying to contribute, but ended up moving out of PCB design and back into system software instead. It's good to know that the project is getting some real investment and that the whole open-source promise is working out once again. I'll take another look.

Holy shit, that JLink is expensive. What does it get me more than the JTAG<->FTDI<->OpenOCD<->GDB setup that I have currently, who's boards cost my ~$100 in super low volume?

Just grab a cheap Chinese clone off of Ebay. They're pretty much completely functionally identical in my experience.

FWIW -- for non-commercial uses you can get a J-Link EDU for about $70. The hardware is identical to J-Link BASE.

JLink is updated very quickly and works with every arm platform and IDE imaginable.

Yes, this exactly. It is way ahead of OpenOCD if you are working with hardware released in the last 12-18 months.

I mean, GCC and OpenOCD had CortexM4 support before anybody else as far as I could tell. Keil and IAR wouldn't even give us a release date at the time.

Interview with Autodesk about the CadSoft EAGLE purchase :


Matt Berggren (Director of Autodesk Circuits) is a big supporter of the DIY / maker community.

I've used KiCAD for a bunch of 2 layer and 4 layer prototypes for my company. The GIMP vs. Photoshop comparison is very accurate in my opinion!

Site is down for me, here is a link to the Google cached version:


I've been getting into playing with Arduino's and Photons, and have some ideas that I'd like to THINK about taking to market, but all of these sort of intros seem to stop at the PCB stage. They leave off the part about how to get an enclosure made - designing one, prototyping it, injection molding, etc.

I think it's because that's where things get really expensive...

Yeah, so don't make an enclosure. For one-offs and small runs, there are companies that will sell you a box - you design your PCB to fit. Way cheaper.

That and because the vast majority of products can use a standard, off the shelf enclosure. Problem is that many of the new product designers don't come from a hardware background and either aren't aware of the huge scope of what you can buy (and get modified cheaply) off the shelf, or they think that their product must have a fully custom enclosure.

One of the benefits of having a traditional engineering education and experience is working alongside other engineers and designers who are trained in fields you weren't. It's really hard to put that type of combined experiences into a book or a tutorial.

Is there some way to find "of the shelf" enclosures online?

Besides the other suggestions, you can go to the source. Three of my favorite electronic enclosure manufacturers are Hammond, Bud and Polycase. Polycase in particular has pretty low setup and per-unit costs for modifying enclosures.

Here's the UK version of Farnell, who are "quite big" in component distribution.


There are several thousand off the shelf boxes here.

Google "electronics enclosures". Or look on the distributor's sites (Mouser, Digi-Key, Element 14, etc.) where you buy other electronics parts.

That's definitely one reason for the lack of step-by-step tutorials. Another one is that each product is so unique, with its own needs when it comes to later prototyping phase and then manufacturing.

Also, designing a enclosure is a completely different beast. Nowadays you would typically start out by 3D printing stuff and then later on in the process get it manufactured by injection molding. That means going to the factory and making sure that everything is set up right before they start the manufacturing the part. Again a very ad hoc procedure that's unique for every product.

Sure, I get that. I guess I'd still like to hear some stories from small companies that went through it.

How do you find someone who can 3d print it for you?

For that matter, how do you find someone who can do the design for you (and the experience to do it right)?

Did you get it done locally, or in China?

What are some pitfalls to look out for?

How can you save money?

How long does this step take?


Yeah the real reason you never get guides to this stuff is that when it comes down to making a successful prototype, what makes it good vs. just barely work or not work at all is somewhat of a black art. There is so much intuition and experience that goes behind decisions like what material to use, what kind of fastening, how to seal it, finish, how/where to route cables, what kind of cables, connectors, will-it-pass regulation XYZ, is it safe, etc. It's nigh impossible to really get all that into a guide, you really just have to go at it and learn (which includes reading what guides there are ;-).

Anyhow here are a few points that might be relevant to you:

- As someone else mentioned, unless you're in a money-is-no-object sort of group, usually at a large corporation like google, then you'll almost always start with some stock enclosure for testing purposes. There are tons of choices, from extruded aluminum to cast steel, bent sheet metal, ABS weather proof housings. The list goes on. No, it's not a custom box designed by Dang from Silicon Valley, but trust me there's crap you didn't think of yet for the stuff inside the box. One step at a time, and remember, Compromise is the Hypotenuse of the Conjoined Triangles of success.

- Next stop: Proto Case[0]. They will use your CAD, or you can use their custom 'box cad' package. They will do sheet metal, solid machined metal, powder coating, fasteners, everything. Not ultra cheap or anything but still a good deal if you value your time. I can't tell you how many hours I've spent fixing/remaking sheet metal enclosures when I accidentally bent a flange 2mm too long, or screwed up dimension scaling while waterjetting it. It takes time to become proficient, even if you have the tools.

- For 3D printing and such, there are tons of 'Maker' shops that have popped up over the years. I've used Ponoko[1] before, and while slightly slow and again not ultra cheap, the parts are nice. They do 3D printing of many sorts (ABS, PLA, sintered metal, powder ceramic, UV resin), as well as laser cutting. Note: Laser cutters are REALLY awesome for prototyping things. I use a laser cutter constantly when developing prototypes.

- For machining, check out the First Cut[2] service from protolabs. You send them a CAD model, they analyze it and then you use a flash plugin to select materials, tools, threading, etc. and click go. Last time I used them they did single approach 3-axis parts in Stainless, aluminum, mild steel, various plastics, and brass. They also do CNC turned parts (on a lathe). The parts are very high quality for the price. Beware: The tolerances are not super tight, and they won't make any guarantees about mating parts! They made parts that mate for me and it worked, but it's a bit of a gamble.

- Protolabs also does 3D printing, as well as small run injection molding[3]. I haven't used this service so I can't say much about it, other than that their advertised prices are significantly cheaper than getting tooling made and certified anywhere else.

- Locally vs. China? Well if you mean getting a production run done in Shenzen, then if you have to as the answer is probably 'local'.

Anyhow, this is just based on my experience. I'm by no means a manufacturing or design expert. But I've made and worked on countless prototypes for all sorts of applications (nuclear medicine, MRI imaging, thoracic surgery, industrial microscopy, POC blood testing) and what I've said has held true in my arena. One final hint: If you're thinking of taking some hardware device 'to market', stop and think HARD about who your market is, how big it is, and how much it will cost to get there. It's quite possible that a traditionally 'production run' isn't necessary to get started. Lots of hardware projects started small. Also, in my experience investors aren't too keen to accept risk of the 'will the prototype work', or 'do you have the expertise to scale the hardware' variety. So bear that in mind.

[0] http://www.protocase.com/products/electronic-enclosures/

[1] https://www.ponoko.com/

[2] https://www.protolabs.com/cnc-machining/

[3] https://www.protolabs.com/injection-molding/

I'm tangentially related to a business that uses protolabs for injection molding. It's worth noting that the tooling is so much cheaper in part because you don't actually own the mold; You cannot choose another factory for future production runs.

That said, for us protolabs was still the right choice and they have been a pleasure to work with.

Thanks for your great answer!

Even though I may not make it to Shenzhen, I purchased this from Bunnie and it was worth every penny. A work of art.

As an addition to this, it might be useful to go into more detail on the other aspects of making a hardware based MVP - i.e. 3D design, laser cutting and 3d printing.

Personally, I've alway gone in for using openSCAD[1] for the 3d design aspects, though clearly that's when approaching the problem as a programmer! I've always had laser cutting done by external services, but have a form labs 2 and repraps for printing parts. Perhaps this would justify a separate blog?

[1] http://www.openscad.org/

It's great to mention github. Since you point out to be careful that some software has licenses, it is probably worth noting that software without a license means it reserves all rights [0]. No license != no copyright.

[0] https://help.github.com/articles/open-source-licensing/#what...

I am working on getting the servers back up.

This tutorial helped me with generating Gerbers since the Jeremy Blum video didn't really help me there


Useful read and touches on several concepts I'm working through (or around) currently on a prototype. 2nd, maybe 3rd iteration thus far. Frustrating but the good kind of challenge.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact