Yun Randomly hanging

jfourie:
One more question is if the Arduino is only for prototyping, what is the full production unit then ? Or is Arduino only seen as a toy ?

That's an interesting philosophical question, one which I don't think has a black and white answer: it is what you want it to be, so the answer is really different shades of grey, depending on who you are and who you ask.

I think the Arduino platform is targeted at the beginner/hobbyist/artist, and I don't think it's taken seriously in the professional/industrial world. There's nothing wrong with that: it has a stated purpose, and it fulfills that purpose admirably. It has brought the world of embedded electronics and programming to a group of people that haven't had access to it before. Traditionally, the barriers to get into embedded programming are high (expensive and/or sophisticated development environments, working with bare processors and electronics, etc.) but the Arduino environment/culture has significantly lowered the barriers and made the technology much more easily approachable.

There is nothing in the Arduino design that precludes it from being used in a production environment. However, using it as a prototyping platform, and then designing a custom built product has certain advantages: while the cost of most Arduino boards is low, the individual parts are cheaper, and if you are making more than a few of your product, you can probably build a custom board that includes the processor and all of your task-specific hardware that will cost less than just building a shield for your custom hardware and using an off-the shelf processor board. In addition, a custom solution may let you design something that is more robust (better power supplies, better input/output conditioning, etc.)

I think it's mostly a matter of the economies of scale: build just a few units, and it's probably cheaper to use an available preexisting solution (like an Arduino processor board) because the engineering expense of designing a board from scratch can be expensive compared to the cost of a few commercial boards. But if you are building many thousands of units, the the non-recurring engineering expense is spread out over a greater number of boards, and the engineering cost per board drops dramatically. At that point, the cost of the parts becomes significant, and it can be much cheaper to buy and assemble the individual parts than it is to purchase complete boards. Given high enough production quantities, saving just a few cents per board can quickly multiply into significant additional profits.

In my professional career, where we design and program custom hardware according to a customer's specifications, we would never use a prototyping platform as a basis for the final product - it's always a full custom development. Of course, we will sometimes use a development board like a Texas Instruments LauchPad board (ultra low power MSP430 processor) or a Freescale (now NXP) Tower System (high performance Kinetis ARM RISC processor) for the early development stages, but that is typically only for a proof of concept, or to have a platform to start coding on while waiting for the hardware to be designed and built.

However, in my personal life, where I'm working on mostly one-off projects, time and money are more important, and I will generally incorporate the Arduino board in the finished project - it just doesn't make sense to spend all of that time recreating something that already works. This is especially true of my Yun based projects, since the underlying hardware is so complicated to duplicate.

So it's a tough call, one that requires a personal decision. In the commercial world, besides the benefits of economy of scale and the ability to customize the processor to the environment, there is also the appearance of professionalism - Arduino is often viewed as a hobbyist toy, and including one in a commercial product may be seen to diminish the stature of the product. Also, "Not Invented Here" could be a factor. However, there really isn't anything in the Arduino that makes it generally unsuitable in a production environment - as long as it meets your needs, and works in the operational conditions, there is no reason to exclude it just because it's primarily intended as a prototyping platform.