48
\$\begingroup\$

Ok, I am a software guy and new to electronics. My product needs a small computer and currently I have developed everything on development boards like raspberry pi and such. As the development board does not have all the hardware that I need, I have added the missing hardware through USB and GPIO's but obviously the production board can not be like that.

So my question is how do I go to the next step to come up with the production version of my hardware? In other words, what would a hardware specialist do to turn its development board into a production ready product? These are what comes to my mind

1> Get the schematic of current development boards like the pi (or any publicy available schematic that is close to my basic hardware requirement like the cpu type and such) and try to find some one to add the missing pieces to it and re-organize the position of the ports (like usb port and such) to your desire and make it the production product. This is possible because CAD software like Eagle are very powerful and adding a couple of more hardware chips (say like a temperature sensor) and changing the locations of ports is fast to do.

2> Are you stupid? The design of such board is very complex, specially a computer like pi and you have to hire a board design consulting company (or whatever they are called) to design this production ready board for you. If so, how should I talk to? US or China?

3> If your are building a production level hardware, you need to have the design team in-house and you need to hire the right ppl with such expertise to do so. This is not something that you want to contract out. you must have it internally as practice has shown. If it was a simple board you could have done yourself, but a computer needs a lot of work (although there are many commonality among them) and you have to start from scratch as there are so many details involved.

Oh, my production size is not big. I need 5,000 units every 6 month. The main thing is the a good reliable final board design with my requirements to get it to a PCB manufacturer.

As you see, I am sort of lost in this hardware manufacturing space and your insight and personal experience will be very valuable to me.

Many Thanks!

\$\endgroup\$
  • 1
    \$\begingroup\$ "I have added the missing hardware through USB and GPIO's but obviously the production board can not be like that. " Says who? Is this "obvious" in general, or just for this board? \$\endgroup\$ – Kaz Dec 12 '13 at 22:19
57
\$\begingroup\$

Development to 50,000 units every six months? I wish all my projects went like that :) If you don't have the experience there's no reason you can't hire a consulting company to make the board for you. It won't be cheap but they'll get the job done. It's a little riskier too if you don't know the guys you're hiring enough to trust them with the design.

50,000 units is not a small run so if you're really going to do that you should have no trouble finding a manufacturer here in the US or over seas who would work with you. Keep in mind you'll need the cash to buy your parts, and order your boards upfront.

So I'll go through each approach for you:

1.) Do it yourself

Making a Schematic

Start with the reference schematics you have, then find yourself a tool you like. I'm an Orcad guy, I've used Mentor and many others. Just pick one you're comfortable with and you can afford (Eagle is cheap I understand). If you're lucky you can get your reference board schematics in a format that you can modify. If not you'll have to create parts in your schematic tool. Creating parts basically involves looking up each parts datasheet to get it's pin out and then creating a symbol with pin names and numbers to match. Then you can use those symbols in your schematic and connect them up the way they need to be. That's the simple version, oh and double and triple check that your schematic symbols match the pins on the datasheet.

Here's some links to schematic tools

Layout Your PCB

Now you have a schematic that's a big step, from here you could give that schematic to a contractor and ask him to do the layout for you (that's the drawing of the actual traces on the board). You could also opt to do it yourself, it's both easier and harder than the schematics. Drawing connections and placing parts isn't too hard, but knowing where to put things, how many layers, how to route traces correctly for things like cross talk and emissions, and especially how to do the decoupling correctly takes a little know how. If you're committed to it and you review the reference schematics for each of your pieces you can make it through. Oh and you'll spend a lot of time looking at datasheets, and drawing footprints if the standard ones don't work. If you ever took a CAD class in school it's pretty much like that. Ask questions here if you go this route.

Here's some links to layout tools, there are certainly others

Decoupling, SI, and power design

Decoupling, Signal integrity and power design are huge areas and too detailed for this post. However if you're going to get into pcb design you should know them. I could write posts on top of posts about it :) I'd at least check out these two guys and get their books, or at least browse around their websites:

Both of them are pretty nice guys and will answers questions if you ask them, you can also join the SI-List over at http://www.freelists.org/archive/si-list It's a great place to ask questions.

That may be more than you're ready to do so there levels of how involved you can get and how involved you need to be on this front. For your design I'd suggest following the app notes and reference design and keeping all your caps as close as possible.

From ok to better here's some ways you can handle signal/power integrity:

  • Ignore it (NO!!! :)
  • Just use a bunch of the highest value smallest size caps you can get and keep them close to your chips Design your own decoupling cap system in pspice, and then wing it on the placement of them in layout
  • Use an excel calculator like the one Altera provides for it's tools http://www.altera.com/literature/ug/pdn_tool_stxiv.zip (pretty useful if you have no other tools)
  • Design your cap system in spice, and then use a full simulator

I've done all of those depending on where I was and what I can afford. When I can get it I love to use Sigrity to do both SI and PI analysis http://www.sigrity.com/ They're actually owned by Cadence now. No affiliation here I just really like their tools.

You can also hire guys to do it for you, I've only ever used http://www.teraspeed.com/ for that but I know there are others. It's not cheap though!

Generating Files To Send To Board House

Once you finish your layout you'll need to quadruple check it because you're about to pay actual money for bare boards. At this point you can generate cad files, either Gerbers or ODB++ files. You send these files to a board house to get a quote. Pricing is based on complexity and how impatient you are. You should probably order a small number, ask them for say 10 or best value that should give a good place to start. ( I should point out that there are some board houses that offer their own free software tools if you want to go that route, it restricts you to them but hey it's free).

You should review these gerber files too not just generate them I've always used the free GC-Prevue from http://www.graphicode.com/GC-Prevue. There's also a nice commercial tool out there that some of my cad guys love called Blueprint http://www.downstreamtech.com/support-viewers.php. There's others too but I always like to look at the final design on a projector and pick out problems. I'll also print the top and bottom layers out in hi-res on a laser printer and make sure the parts fit the footprints I made. If I'm feeling particularly obsessive I might print all the layers on transparencies and look them over. Really, really obsessive I might send the top and bottom layers out as a two layer board just to see how things fit together.

Order Your Proto Parts

At this point you should be ordering parts for your proto-run so they arrive when your boards do. If you don't think you can handle soldering yourself you'll need to pick an assembly house to do you run for you. I can think of a few that handle small runs and they should be easy to find. You'll need to send them your gerbers ahead of time so they can make a solder stencil for you board. Then send them the parts kit, and ship them the bare boards when they come in.

Bare PCB Production

There are a lot of good board houses out there: Cheaper ones like PCB Express ( the guys with the free software) http://www.pcbexpress.com/ I also use Advanced Circuits in Colarado a lot for my hobby projects, and some fast proto types as well http://www.4pcb.com/ They have an assembly service too that I've never used.

For my US production PCBs I use DDI http://www.ddiglobal.com/ now via systems http://www.viasystems.com/ or Vermont Circuits http://www.vtcircuits.com/

PCB Assembly Services

For small to medium US assembly services I use IMS in NH http://www.imscorp-us.com/ They'll do 10 boards for me or 10,000 and their quality is great. I've used them for years. For crazy big runs I'd use a Flextronics or someone like that but that's a whole different league, and not what you're looking for. There are plenty of others, probably even near you. There's a family owned place by me called Edmond Marks that does good work. http://www.edmondmarks.com/ and Advanced who I mentioned before likes to call me and tell me about their assembly options as well.

Over Seas

So most of my China production experience is with million unit plus volumes so that's not as helpful to you, but let me tell you it's a whole different experience :) I do know that people like IMS can help you take something over there if you get a little bit of volume so that's what I'd suggest. My advice to you would be pick a US partner who has the ability to outsource to a Mexico or China plant if you need it. You may not find as much of a cost advantage as you might think for your board though. Especially if you don't have a lot of hand operations.

Done!

If all that goes ok you'll have protos back that you can play with, and you'll have a good time finding all the things you did wrong that you need to fix for your next proto run.

Compliance and Testing

I should mention also that no matter what you do if you're going to sell these you'll also need to do FCC compliance testing (or other countries if you're selling internationally). In addition there are environmental regs like RoHS and REACH that apply both here and internationally. Don't sell 50,000 units with doing compliance testing, fines are a b*.

Here's some links just to the wiki pages for those:

Typically I pick a compliance lab that's near me. Now that happens to be NTS http://www.nts.com/, but I've also use TUV http://www.tuv.com/global/en/index.html, met labs http://www.metlabs.com/ and even UL http://www.ul.com/ themselves once or twice. I've also used small independent places. They can all help you but I like to pick someplace close by so I can sneak in when I need to.

You may also want to do UL safety testing to ensure your product is safe, in which case any UL lab mentioned above can help you. My guess is you'd be under UL 60950 which is for telecom products.

2.) Use Consultants

Listen everyone here started out at one point with no idea how do to a schematic or layout a board. If we can learn you can to. That said if you can afford it there's nothing wrong with have a consultant do it for you. Just remember that no one loves your product like you do so stay on top of them. I don't consider the PI boards to be very complex but it's not exactly a beginner board. Personally I would stick to the US or Canada for my first attempt. However if you really are going to order 20,000-50,000 I know there are small China (prob US too) manufacturer who would take your design, do the work and then manf for you just to get the business. I've worked with guys like that before, but just keep in mind it's not that hard for them to copy your design... :) Happens all the time.

Also distance, time shift, and language barrier can be difficult but not impossible to over come. One nice thing about this is if you have a day job you can work at night on your project with your guys overseas. (I've certainly never done that before...)

These are the only guys I've ever done a product with, there are countless others but here are some examples who did well by me:

3.) Build Your Own Team

Well listen if you can do it hire the right people, I've done pretty well walking into small places that are a mess on the hardware side and fixing lots of issues. Having the right people with the right knowledge (maybe the right tools if you're lucky). That's really invaluable. But that shouldn't scare you into riding out into the unknown by yourself. This would definitely be the safest route, but hey if we all took the safe route what fun would that be.

You could also consider outsourcing and building your team in another country. I find that this is full of pitfalls though. You really need to know what you're doing yourself in order to manage this, it's hard to outsource effectively if you don't have the expertise in house to know what's going on.

Finishing up

Some last words of advice from a guy who's made a lot of products :P If you really have a channel to move 50,000 units then great. If that's just speculation though don't stick your neck out buying a big order to keep your prices down. Find a way to make it work where you're only making say a 100 and you can still sell them without losing money.

Lastly if your pi project is epic enough to sell 50k units consider doing a kickstarter (www.kickstarter.com) project and seeing if you can pre-sell any. They have a new requirement that you have a working proto and demonstrate what you would do with the money, but many a cool project have been given life there.

Good Luck, and ask us questions as you go.

\$\endgroup\$
  • 1
    \$\begingroup\$ Great answer! You Rock! Many many thanks! Oh, 50,000 was a typo. I meant to say 5000! I wish that was the case. I will sure come back with more questions! \$\endgroup\$ – iCode Oct 4 '12 at 23:51
  • \$\begingroup\$ One more question: How contracting out a project like that should cost? Very Rough Estimate! \$\endgroup\$ – iCode Oct 11 '12 at 1:07
  • 1
    \$\begingroup\$ Well without knowing your board complexity I'll guess: $20k for engineering charges $10k at fcc and another $10-$20k for prototypes depending on board complexity. That's if you use a consulting house and have them do the full job. You could probably do the engineering charges for less if you can find a moonlighter do to it for you. You could also save some if you managed the project. Basically the more you can do yourself the cheaper it will be. \$\endgroup\$ – Some Hardware Guy Oct 11 '12 at 2:53
  • 1
    \$\begingroup\$ Oh and lead times will affect your prototype cost. So if you can wait two months for boards that's going to be cheaper. Than getting boards back in two weeks. They make the pi for less than $35/board but they have volume on their side. I also assumed you'd have to do more than one proto run to get it right :) \$\endgroup\$ – Some Hardware Guy Oct 11 '12 at 2:58
  • 9
    \$\begingroup\$ I find it amusing that "iCode" says I'm a coder, not a hardware guy, and "Some Hardware Guy" answered. :) +1 \$\endgroup\$ – JYelton Oct 11 '12 at 23:30
14
\$\begingroup\$

Some hardware guy has some excellent suggestions. I've got a couple of additions.

1 - Please, please, please build up 10 or 15 units first before you buy parts and board for several hundred. It really sucks to have to toss 100 boards because you put a part footprint on backwards. Test them completely, over temperature, after you drop them, etc. Then, do the same thing for the fixed board you're going to design after the first one is wrong somehow. You may get lucky and have it work on your first spin. My personal record is 18 versions before production, and then there was a cost reduction spin once we were in production. :-0 In Truth, this was a complicated 8 layer PCB for a cellphone, and the IC's were being developed in parallel, so it's not quite as bad as it sounds...

2 - Housing? What are you going to house them in? How is the board going to be held in the housing, and how are you going to connect to any buttons and switches on the outside.

3 - I'd stay away from the free PCB tools for something like this. You'll want to get quotes from a couple of different PCB vendors for this, and the free tools will lock you into someone.

4 - Think about version control right now. What are you going to do when a part goes obsolete and you have to redesign something? It's useful for the software to have the ability to figure out what version of board it's running on, and there are a bunch of ways to do that. Silkscreen a version number on the board so you can look at it and tell. You don't want to have to look for a trace that's run a certain way to see what board version you've got in your hand.

This is a lot of work, and you should seriously consider teaming up with either a design house who can do all this work for you (expensive) or team up with an experienced hardware guy who's learned this already.

\$\endgroup\$
  • 1
    \$\begingroup\$ Open source PCB tools (KiCAD, gEDA) export gerbers and won't lock you into any particular vendor. \$\endgroup\$ – mng Oct 5 '12 at 16:59
  • 1
    \$\begingroup\$ Poor phrasing on my part. I was referring to products such as ExpressPCB, which seems to lock you into their service. KiCAD and gEDA are both useful tools. \$\endgroup\$ – rfdave Oct 6 '12 at 1:32
13
\$\begingroup\$

What's not mentioned here is sourcing of the parts - will you be able to get the parts needed to build your final design? AFAIK PI uses specific Broadcom "system on chip" processor - are you sure you will be able to get that in quantities?

On another hand - are you sure you are not overengineering - do you really need all the power of full blown linux computer to make your design work?

\$\endgroup\$
  • 4
    \$\begingroup\$ Indeed. A custom board is more likely to end up derived from something like a beagle board/bone than a pi, for precisely this reason. Or you make a custom companion to an off-the-shelf board. \$\endgroup\$ – Chris Stratton Oct 5 '12 at 14:14
  • \$\begingroup\$ True miceuz. I am really not using the PI and it was just an example. \$\endgroup\$ – iCode Oct 5 '12 at 21:00
  • \$\begingroup\$ @Chris Stratton: Would you please elaborate more on the point you were trying to make? \$\endgroup\$ – iCode Oct 5 '12 at 21:01
  • \$\begingroup\$ As miceuz says, the Broadcom SOC around which the pi is designed is not readily available for small to moderate quantity custom boards. But the TI parts used by the beagle family of boards are available, and as a result there are a lot of custom boards that are either derivatives of those, or at least inspired by them and using that processor family. There are a number of other linux-capable SOCs out there which are reasonable to integrate in custom products, too. \$\endgroup\$ – Chris Stratton Oct 5 '12 at 21:07
  • \$\begingroup\$ @iCode - wow, one beefy example :) you know, the level of expertise required to release your own design based on PI is really different from a design based on some "tinyduino" - you should clearly state what is the platform you are based on to get reasonable answers ;) \$\endgroup\$ – miceuz Oct 6 '12 at 6:26

protected by Kortuk Dec 13 '13 at 3:50

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.