
Prototype to production: How to build and design a PCB prototype - gb9337
https://blog.particle.io/2018/03/06/proto-to-prod/
======
sokoloff
If you're starting from scratch now as a hobbyist or novice PCB designer, I'd
recommend KiCAD over Eagle. KiCAD is fully open-source and has now progressed
to the point where it's viable.

Autodesk, on the other hand, has shown signs of crippling Eagle after they
bought it, such that I have my doubts about Eagle being viable in 5 years.

If you already know Eagle, it's a tougher call, but if you have just begun
learning, I think you're better off with KiCAD.

~~~
jimmyswimmy
How's its library management? Last time I tried Kicad it was impressively bad.

There are other options which may be of interest. Altium have one, I think
it's called circuit maker, and digi-key have schemeit.

Its hard to try new things when you have access to a professional package and
library. I'd really like to try something free but the motivation has been a
challenge.

~~~
Animats
_How 's its library management? Last time I tried Kicad it was impressively
bad._

Yes, KiCAD, for some reason, has a GUI for library management which is both
nonstandard and confusing. The schematic symbol library manager and footprint
library manager have similar GUIs but behave quite differently.

Schematic editing isn't bad, although it has the worst approach to wire
junctions ever seen in a schematic editor. The dot where wires connect is an
entity separate from the wires, and can be omitted or moved, with negative
effects on the netlist.

Layout is OK, but, as mentioned, the footprint library isn't very good. Expect
to spend time looking at manufacturer data sheets and drawing footprints to
match.

There's an autorouter, but due to some political problem you have to download
it from another site and rename it. The autorouter and the design rule checker
don't quite agree on some tight clearances, which can be a problem.

It's open source, and widely used, so you know it's not going away.

~~~
taneq
> The schematic symbol library manager and footprint library manager have
> similar GUIs but behave quite differently.

Just to expand on this, KiCad is an abomination stitched together from the
corpses of about six different programs. There are four different graphical
editors (schematic part, schematic, pcb footprint, pcb layout) which look
somewhat similar but have notably different user interface conventions for
selecting, moving, copying and deleting objects, making it frustrating to
switch between them. To make it even better, the PCB layout program has three
different options for the "canvas" (ie. the layout area) which again have
different interface conventions, and additionally some features are only
available in some canvases and will simply fail to work if another canvas is
selected.

These programs communicate via export/import functions instead of being
properly integrated so the process to add a component to a circuit board
involves five different programs and four export steps. You also can't back-
annotate any changes at the PCB level back to the schematic (or at least, it's
a royal pain to do so.)

Once you get your workflow going and you've pushed past the worst of the
confusion, it works _just_ well enough that it's easier to put up with the
pain for now and allow your resentment to simmer than it is to figure out how
to build the damn thing so you can fix it yourself.

(For comparison, I used EAGLE back in 2004 or so, and I thought it was pretty
good. I'm not sure what they've done to it since then to garner such
animosity.)

------
tyingq
Hardware folks are generally underpaid, FWIW. I had an idea and was able to
get an almost genius level HW guy to do the grunt work for $75/hour, and he
seemed thrilled with the comp level. He worked for a very recognizable brand
name, but did side work for peanuts. I wasn't lowballing either. I bumped his
intitial offer by 50% just to make sure I had his attention.

His design worked out of the box with no issues, and he even had solid advice
on dealing with the end Chinese PCB suppliers.

I'd advise hiring an expert because they generally aren't priced the same as
software experts. I'm pretty sure I'd have spent _a lot_ more fumbling around
trying to do it myself.

Kind of a shame really. It's arguably a harder skill to master these days.

~~~
etaioinshrdlu
I've observed the same thing regarding EE and embedded software compensation
vs. pure software pay. Big difference, and very unfair feeling when you look
at the skill involved with being an EE.

I'd argue that maybe EE's aren't underpaid on an absolute scale, but that
software has completely different market conditions and rather, it's software
people who are doing uniquely great.

~~~
vvanders
+1

Back when was re-evaluating where I wanted to go with my career(post-gamedev
burnout) I briefly considered getting an BS in EE and getting a hardware job
since it's an area that interests me. Did a bunch of research and found
similar things.

I think it largely boils down to a couple factors:

1\. _Everything_ in hardware has to be spec'd to the teeth since re-spin of
HW/Masks can easily run into the 7-figures. That means there's very little
flexibility and opportunity for the "10x" EE to manifest.

2\. Since everything is still heavily spec'd you get a lot of "replaceable cog
in the machine effect".

3\. A lot(but not all) HW is really removed from the end customer so you
aren't as deeply tied with the business side of things which hurts
visibility/etc.

4\. Software is just more flexible which means you have a much easier
opportunity to be "full stack" and not get pigeon-holed to a specific
technology.

At the end of the day I scratch the hardware itch in my spare time and I still
find SW a ton of fun. Plus there's a ton of value in being a software dev that
can speak/understand hardware language and fit it into the larger picture.

------
sgillen
Really cool! I wish more universities included this sort of training during
their undergraduate ECE programs.

Also worth noting (didn't see this mentioned in the article, and maybe this is
obvious...), it is usually wise to make your prototype on a
breadboard/perfboard first, before ever printing a run of PCBs. This is
especially true if your board is interacting with other parts of a system
(E.G. you are building a power board for a robot). This let's you get a proof
a concept working right away, and helps ensure no unexpected integration
problems crop up that might call for a redesign.

~~~
Max-q
Making a breadboard prototype used to be common practice, but with a lot of
new technology it's often not possible anymore. High frequencies requires
small tolerances. Luckily, getting a pcb prototype made, isn't as expensive as
it used to be.

~~~
stephen_g
Not to mention that most interesting parts just don't come in through-hole
packages, and the time it takes to wire up anything even remotely complicated.
Yes, there are some prototyping boards that have various SMD package
footprints, but PCBs fabrication is generally cheap and fast enough now that
it's not really worth the time anyway if you're reasonably sure everything
works in theory.

------
boznz
I would recommend you find your enclosure before you even start the PCB and
design the PCB with all the correct sizes, screw holes and cutouts. This might
be useful [http://rodyne.com/?p=415](http://rodyne.com/?p=415) (re-using
existing cases for your design)

~~~
joshvm
For runs of maybe 5-10+ boards, SLS 3D printing is pretty competitive because
you can design everything to fit exactly. The setup cost tends to be high
(minimum order of £40/$50), but individually a small printed enclosure will
cost the same or less than a box from Hammond or the like. Certainly compared
to the cost of customising a name-brand enclosure (short run), it's a no
brainer, and you can add awkward structural elements that simply aren't
possible even with CNC machining.

Once you get a bit bigger (physical volume), the cost becomes prohibitive and
you can look at etruded aluminium. If you're clever you can design a PCB to
act as end panels. 3D printing is also a nice stepping stone before getting a
machined enclosure made - saves a lot of cash if you find you've missed
something.

And yes - too easy to forget things like standoff holes, or where a connector
is going to be mounted. I suspect because it's annoying having to double your
board area so you can fit an M3 clearance hole/keepout. Cheaper to not bother.
If you go with 3D printing you can do things like add slots and slide your
board in.

~~~
jdietrich
Dangerous Prototypes offer SLA printing for $0.95/gram. They also do very
cheap laser-cut acrylic panels.

[http://dangerousprototypes.com/store/print3d](http://dangerousprototypes.com/store/print3d)

~~~
joshvm
That's not bad for SLA (we have a Form1+ at work and I would happily pay
someone else to deal with the mess it makes), but it works out to be very
expensive for even moderately sized parts. You can get 10-20c/cm3 of SLS
nowadays and the tolerance is great.

------
metaphor
FWIW, PCBShopper[1] is a convenient web service for querying several popular
PCB fab houses based on your design requirements. iTead Studio[2] has been my
go-to fab house for personal 2/4-layer and simple flex designs, mostly because
they haven't fail me in 5+ years.

[1] [https://pcbshopper.com/](https://pcbshopper.com/)

[2] [https://www.itead.cc/open-pcb/pcb-
prototyping.html](https://www.itead.cc/open-pcb/pcb-prototyping.html)

------
madez
Is there free software to create and simulate virtual populated PCBs? Fritzing
allows creation, but it doesn't simulate the board.

For simulation one needs the exact behaviour of all parts. That excludes board
with parts that have a closed design, or insufficient documentation. But for
many parts, and hopefully soon with CPU-ICs thanks to RISC-V, we can do
simulation.

I don't expect real-time simulation, but at least a solution for letting the
machine compute over night to see if the board successfully does X.

Any suggestions? Is this a problem waiting for a solution?

~~~
monocasa
You can do SPICE simulation with pretty much any CAD. I'm pretty sure that
Eagle can do that.

Edit: not sure why I got drive by downvotes.

[https://www.autodesk.com/products/eagle/blog/spice-
simulatio...](https://www.autodesk.com/products/eagle/blog/spice-simulation-
part-1/)

Edit2: for KiCAD
[http://mithatkonar.com/wiki/doku.php/kicad/kicad_spice_quick...](http://mithatkonar.com/wiki/doku.php/kicad/kicad_spice_quick_guide)

~~~
madez
I'd like to for example create a PCB with some sensors, LEDs, and a
microcontroller, specify the sensor input over time and the software on the
microcontroller, and let the computer figure out the behaviour of that system,
so it can tell me state of the system (i.e. what LEDs are on, or what values
are in the registers of the microcontroller?) at a given time. For performance
reasons, that would require both low-level simulation (electrics) and high-
level simulation (software on the microcontroller) simultaneously in a
compatible way. Can SPICE do that?

~~~
jimmyswimmy
SPICE can do a lot, but you're asking a LOT. Modelling internal states of a
micro is generally a different package than the mainly analog simulation that
SPICE does. It is rare for them to be tied together.

Practically speaking, your interface ought to be separate enough that you can
define the range of states the micro's inputs should see, and the range of
outputs it should drive, and separate the two. There are times when I've
wished for a combined simulation but it wasn't worth the hassle to set it up.
Honestly for the accuracy I expect I usually prefer to just build the thing
rather than simulate it.

LEDs are really boring to model anyway.

~~~
madez
I also think that I ask for a lot. And I know that simulation is hard, error-
prone, and often more expensive than just buillding the real system. However,
building the system does not always give the insight that a simulation can
give, and it's sometimes prohibitively expensive. More specifically, I already
had built the system, but I couldn't get the information out of it without
disturbing it too much. That's why I wanted to simulate it.

------
Yaggo
What's the best option for PCB CAD on Mac?

Last time I checked, the most popular options didn't even support HiDPI mode.
E.g. KiCAD on Mac feels very "out of place", e.g. two fingers control zooming
instead of scrolling (panning), not to mention other usability issues /
general unpolishness.

I've tried [https://circuits.io](https://circuits.io) (Autodesk Circuits web
app) and it's surprisingly good (for a beginner, at least).

~~~
DeRock
FYI, touchpad panning was enabled a year or 2 ago, but you have to turn it on
in the preferences. As well, I strongly suggest switching to OpenGL rendering.
With those 2 changes Kicad on Mac went from barely usable to outright pleasant
(still not a huge fan of their library management though).

------
djthorpe
I suppose this is only the first article, but before you commit components to
a manufactured board, I recommend you do a schematic layout and then a wire-
wrapped or bread-boarded version first. Manufacturing takes time, and can be
costly in mostly time if you make a mistake.

I made a few PCB's using [http://aisler.net/](http://aisler.net/) which seem
fine for prototype manufacturing. They can also make the laser-cut stencil for
SMD component mounting. You can upload Eagle BRD files directly (my experience
with KiCAD and Fritzing was a lot less than stellar). Cost was around nine
euros for three small PCB's and another nine for the stencil and took about a
week to be delivered.

~~~
antoniuschan99
Is this the same as oshpark?

~~~
djthorpe
OSHPark also allow you to upload Eagle BRD files, but based in the US. I think
it's a separate company.

------
FraKtus
He speaks a little bit about RoHS compliance... If you plan to make a real
product, make sure you work with somebody that has done that before. Having
certification can be tricky as soon as you start having high-frequency
components, and it's always the case today...

~~~
stephen_g
Are you confusing RoHS (reduction of hazardous substances) and EMI/EMC (part
of CE certification)?

------
cushychicken
Solid PCB design article. However, I want to come out and state clearly what
they seem to be just implying: _talk to your PCB vendor and your assembly
house before you pull the trigger on a prototype!_

You have two great resources on designing for manufacturing/test right at your
fingertips. Building electronics is what these houses do _every day_ , and
they possess an immense amount of knowledge about it. Give them the chance to
review your designs so you don't make dumb, expensive mistakes!

------
PeanutNore
I've been designing PCBs for guitar amps and pedals for the last year or so
and I highly recommend OSHPark for fabricating PCBs. It's not the cheapest,
but the quality is great and it's still quite affordable. Mainly, though, it's
the ease of use of their ordering system that makes me recommend it so highly.

------
apcragg
> (when in doubt about any particular UI solution, check how it has been done
> in a certain proprietary app that is very popular among OSHW folks and do
> exactly opposite).

This is currently listed on the CERN roadmap for KiCad. Given all the
complaints about the UX here I thought it might be relevant.

------
sadface
Thanks for linking this. I had a pretty tough time getting quotes on a custom
PCB a few months ago. If I'd had this article ahead of time, everything would
have made quite a bit more sense!

------
matte_black
I once wanted to make a custom PCB for my mechanical keyboard layout. I was so
frustrated and disheartened by how difficult it was and all the pitfalls that
could occur I decided to just stick to hand wiring.

I’d love to be able to just hire someone to make me a custom PCB the way
someone would hire a developer to write an app, but unfortunately it seems
there is no market for this.

~~~
theatrus2
There is a market of freelancers who do this, but the cost is probably not
what you are expecting from the software market.

~~~
amatix
I have a small prototype I need to get from a schematic stage (needs
additional checking & decoupling caps, etc added) to a few PCBs - I was
thinking of hiring someone to do the PCB layout. forum.eevblog.com was
mentioned above, there are hardware designers on upwork - anywhere else I
should look?

~~~
Kliment
I do this - my email is in my profile, or poke me on IRC and we'll talk.

~~~
theatrus2
Same - I still do it from time to time. The EEVBlog forums have ended up as
the main discussion area for professionals and small-time operators/hobbyists.

Do realize that keyboard-sized PCBs will be expensive in single quantities
past the design stage as well.

