I'm learning Arduino to build a very specific project. I've already finished the project with another technology but some of its limitations made me attempt it in Arduino. I'm a seasoned programmer in various languages so I know the software side won't be a problem but the hardware part may be a problem as I know almost nothing about electronics (quite succesfull at tinkering though!). I know I can complete my project in a month or so and after that I will need to build at least 20 to 30 more "units" of the same thing. Perhaps more depending on how/if this takes off.

The Arduino prototype will be too flimsy even after using a plastic casing and will definitely not be able to withstand the kind of human handling I'm aiming for. Just to give you an idea of the project, it's kind of a black box (hard drive sized approximately depending on the case I use but definitely something hand-held) with a keypad and maybe an LCD; you push some buttons and hand it to the next person, etc, they do the same, etc, etc. The box should be able to be dropped without having the tiny Arduino cables from becoming disconnected. Drunk people might have to handle this (think party game)!

As I understand it, Arduino is for prototyping. So if that is the case, how do I get my project from prototype to production-ready gadget?

You'll more than likely want to take your arduino concept and create your own PCB board. This will eliminate most of the loose cables that you are talking about. Then you'll want to add some shock absorption into your case to help dissipate shock loads.

Besides what laadams85 posted (which I agree 100%), if you need connectors, look for the industrial types, like AMP (the brand/manufacturer, not the measure!), Molex, Foxconn and so many others manufacture. You'll have to completely forget about the solutions we use when prototyping.

That will mean it will cost more to build, but it will also mean a more robust and tougher product.

Start by going to sites of connectors manufacturers and, if necessary, ask for brochures.

I am currently undergoing this process, but I am aiming at a 10K units/year (hopefully), for an automotive accessory based on an Arduino. I'll still be using the Atmega328P, but instead of the PDIP package, my product will be based on a custom-designed double-layer board with SMD devices.

For 30 units, it pays off to have a custom-designed board manufactured by iTeadStudio or someone like them. For my prototype I had 10 units of a 2"x2" double-layer board manufactured for $9.90 + $7 S&H.

If you have a broken CD/DVD drive, open it and you'll notice how smart is their anti-vibration solution. The disc tray is connected to the rest of the structure through rubber shock-absorbers.

Thank you all for the info. Reading your posts sent me on an almost endless Google trip. Very interesting stuff indeed. I can see myself doing this a lot!

Based on what I read and of course your input, I see that there is a step between my prototype and the custom PCB boards where I should create a diagram of the board in a software like Fritzing, am I right? Also, for what I could see from the custom PCB providers that you've referred me to, they do the printing but not the assembly. Is that something that I would necessarily need to do myself or is that also commonly available for hire? I'm asking because while I've soldered stuff before (all my 500+ recording studio cables), the scale on this PCB stuff is much much smaller than what I'm used to doing. Plus one thing is to solder a cable to a jack, another thing is to solder a whole project like this with a few dozen parts.

@CrossRoads (fellow Bostonian!), by custom design do you mean that I can post on the forums "hey, I need this and that" and people offer to build this for a fee? Or do you mean that I can tell somebody "here's a working prototype, how much to make it into the real thing?". Or maybe you mean something else!

Based on what I read and of course your input, I see that there is a step between my prototype and the custom PCB boards where I should create a diagram of the board in a software like Fritzing, am I right?

Partially right! You need to provide the PCB manufacturer the project of your board (in a set of files called Gerber), but you need to create the design in anything but Fritzing! The end product of this step are the Gerber files, and Fritzing does generate them.

The problem is that depending on the components you'll be using in the design, Fritzing might not have all of them. I use a program called DipTrace (http://www.diptrace.com). I really like DipTrace + they have a free version which is more than enough for most amateurs hobbist. Their components database has over 300,000 components. The greatest advantage of DipTrace is that it is that among all the packages I've used, it is the easiest to learn.

Another software option - and the one most people use - is Eeagle (http://www.cadsoftusa.com/). Although they have a free version as well and have nearly all the features you might ever need, the learning curve is quite steep.

Quote

Also, for what I could see from the custom PCB providers that you've referred me to, they do the printing but not the assembly. Is that something that I would necessarily need to do myself or is that also commonly available for hire?

Correct. They manufature only the PCBs and send them to you unpopulated. You'll have to either do it yourself or outsource it. You'll also have to think about who will be buying the components used in the PCB: you or whoever is assembling it for you.

Quote

@CrossRoads (fellow Bostonian!)

I've been to Boston twice and it is one of the most beatiful cities I've visited in the US. I still have pictures of a very young me in front of FAO Schwarz's HUGE teddy bear in front of the store!

It really depends on the type of components you are using in your end product. Most things will be SMD components. This means a smaller package, but much more difficult to solder. You can however get through-hole components. These are pretty much the type of components you used in your prototype, but you end up soldering it to your board. Depending on your client base you can always sell your product as a kit, assembly required.

Yes, you can go to all extremes. For example, I regularly design cards for folks, send out to have bare boards made, purchase parts, have the boards & parts drop-shipped to an assembly house, and either:receive the assembled boards back, program them (sometimes just the bootloader), and return them for installation and additional programming.or,have the completed boards go right to the customer for programming.

Often I stop at creating gerber files for the design, and folks take it from there, purchasing the boards and parts themselves from iteadstudio, digikey.com, mouser.com, newark.com, farnell.com, etc.

I do my designing in Eagle. It was a little frustrating to start, mostly due to the huge number of parts to select from. Once that was understood, then designs were much easier to make.

Sometimes designs take a 2nd pass to get correct, or a trace can be cut & a jumper added to make a fix.

If you are making the plunge into designing your own boards, another package to consider (instead of Fritzing, which not only has a very limited parts database, but making new parts is anything but easy) is KiCAD. http://www.kicad-pcb.org/display/KICAD/KiCad+EDA+Software+Suite IMHO it is a very good piece of software, and is FOSS. The parts library isn't as extensive as the commercial offerings, but the parts editor is about as simple as the big guys (unlike Fritzing), and there is active community support. Just remember, any decent EDA suite will have a strong learning curve but that is because properly designing a PCB is an exacting process.

I suspect that designing a PCB will be quite a challenge if you have never done it before and I myself would certainly be reluctant to go that route for only 20 or so copies. Populating the PCB and soldering smd components will also be a challenge.

Unless your project involves a lot of add-on components (which will need some sort of PCB anyway) I suggest you reconsider whether the Arduino board is adequate. My Arduino Uno board looks as robust as any other PCB I've seen and the plug-in connectors are pretty substantial. Wires could, perhaps, be glued in place and as long as there aren't waggly bits to create a strain I don't see why they should come out. Or you could use one of the Arduino boards with solder connections rather than sockets.

Thank you all very much for the info. My "big" project is on its way and I will not attempt to design this one myself just yet. The PCB design software looks like it should not be my first step; It'll be better if a pro does it. I think I can manage the assembly myself though so I will attempt that. But since I will attempt to sell this I'd rather have a seasoned "arduiner" do the heavy lifting for me at first.

In the meantime I'll focus on messing around with my breadboard on some other small projects and learn the ropes, so you'll be seeing me pop up in the forums quite a bit. This weekend I got myself a starter kit and went over all the projects there. The possibilities are endless... Why didn't someone get me this kit 15 years ago when I was a teenager?!

Why didn't someone get me this kit 15 years ago when I was a teenager?!

Because it didn't exist? :)

The embedded world was a vastly different place 15 years ago, there were no easy options like Arduino IIRC (Maybe the Basic Stamp I can't remember when that came into being), but in general you paid $100s or even $1000s for a cross compiler and to build something with the capability of the single MCU on the Arduino Mega probably used 20 chips and a square foot of PCB.

And if you wanted real debugging add another $3000+ for an ICE.

All good fun though and in 15 years we'll say similar about today I suppose.