You may have already used an Arduino board, or you are thinking about whether you should use one or not.
And you have this question in mind: is Arduino used in real-life products and applications?
For example, is there any chance that the remote control of your TV has an embedded Arduino board, or your washing machine, your car, your lawn mower, … ?
Well, I’ll cut the suspense right here: there is no chance you can find an Arduino board in those hardware devices. Maybe you’ll find one counter-example somewhere, for example a startup that launched an innovative product using Arduino. And chances are that when the startup grows, they’ll optimize the product and ditch Arduino for good.
So… Why even bother using an Arduino board ? Is it useless ?
Absolutely not! Arduino has some great strengths that can make your life easier, but those strengths are not what you need if you want to develop a real life product.
First we’ll see why Arduino is not adapted to develop everyday hardware products, and then you’ll discover the true purpose of Arduino.
Arduino Weaknesses for real life products
Of course you can build a 3D printer, a robotic arm, a CNC machine, a coffee machine, … You can build almost anything you want with Arduino and a little bit of imagination.
But, there is a huge gap between building one working prototype for fun and producing thousands of units for commercial purpose.
Here are some of the main reasons why Arduino is not used for real products:
A company that sells a product wants to make money (no surprise here). And to make more money on a product, obviously you need to reduce the cost of production. You can also increase the product price, but hey, the competition might take advantage of that.
An official Arduino board will cost you between 20-40$. You can find cheaper ones (not official ones) for about 10$. This might not be expensive for you to buy just one, but for production of a real product, that is just too much. You can get the same thing at a fraction of the price, maybe 10 times cheaper. What you need to do is just designing the electronics boards by yourself and buy a micro-controller which is cheaper (and not necessarily of lower quality).
Compared to other micro-controllers in the industry, Arduino is really bad at performance, especially when you compare the performance/price ratio.
If you want to get serious about performance, you may want to start looking at the STM32 micro-controller family for example. You can get more than 10 times the performance of an the micro-controller used on an Arduino board, for the same (or lower) price.
Also, robustness is really important. The lifespan of an Arduino board is not as high as the lifespan of enterprise level micro-controllers. You don’t want your product to have a high chance of not working after 5+ years (unless that’s what you’re planning to do, but I’ll continue by assuming you don’t).
Arduino is an open source project (both hardware and software).
But… Why on earth the fact that Arduino is open source could be a weakness ?
Well, many big companies are “allergic” to open source. They just don’t want to use open source products and software libraries on their own product. Think of intellectual property, distribution limitations, lack of maintenance if the project is abandoned, lack of enterprise support, possible securities issues, etc.
At a one person or small company level, most of those points are really not something we feel we should worry about. But for companies with thousands of employees, dozens (hundreds?) of lawyers, and billions of dollars of sales, this is really important. Open source is often not a good thing for them.
Even if Arduino is widely spread all over the Internet, there are (not that I’m aware of) no industrial partnerships between Arduino and another company.
If you go to an industrial exhibition anywhere in the world, chances are that you’ll see ST Microelectronics, Microchip, Schneider, Siemens, etc etc. Those are companies that are searching for industrial partnerships so they can conquer more shares of the market. By being active on this, they will obviously have a non negligible advantage over Arduino.
Debugging, development tools and environments
Arduino debugging is just… Not existing. There is no debugger on the Arduino. Also, the Arduino IDE is OK, but really far from a powerful. It’s sometimes quite buggy. And many of the Arduino libraries that you find on the Internet are not tested at all, sometimes poorly written, and abandoned for years.
Industrial micro-controllers often come with a full IDE, with all possible debugging options and many tested libraries to use. You can also get some specific development boards to test some functionalities and develop faster. And, of course, you can directly get help from the company providing the micro-controller if you have signed a support contract with them. This last point is a really important one.
Supply for years to come (5-10 years)
When you sell a real life or industrial product, sometimes you have to provide important guarantees, such as being able to replace a component, even 5 to 10 years after the release of the product. How can you be sure that the specific Arduino board you used in the product will still be available in 5 years ? Or that there will be enough stock for you to buy ? Just as an example, the Arduino Due board is not officially produced anymore.
If you have a contract with a company that sells micro-controllers, you can negotiate to have a guarantee of supply for the years to come, so it can match the own guarantee that you give to your clients. They are certainly already used to this guarantee.
So… What’s the point of Arduino?
With all those points, you can clearly see that Arduino is absolutely not the best choice when producing real life products and applications.
Simply because it was never the goal of Arduino.
Their true goal is to make robotics development more accessible to people.
Arduino is a really great development board to use for:
- Technology education
- Electronics hobby
- Hardware product prototype (early phase)
It has many advantages over the other standard electronic boards and micro-controllers:
- You don’t need to know much to get started. The hardware and programming are really ultra-simplified.
- A lot of fun to start. Instead of diving into theory right at the beginning of your learning path, you’ll have the chance to experiment a lot.
- You’ll find a huge community online, that will help you if you need help (forums, courses, videos, etc)
- You can easily get a lot of Arduino compatible devices/actuators/sensors. Most of them are plug and play, so you can build a complete application quite fast.
Arduino is a lot of fun and perfect for learning new technologies. It will give you a basic overview of the low-level programming and electronic parts of robotics.
With all those advantages, you can easily build a POC (Proof Of Concept) for your hardware prototype. If you are creating a new product or launching a hardware startup, this will save you a huge amount of time at the beginning of your development.
And then… What to do once you’ve learned Arduino or developed a prototype with an Arduino board ?
It’s now time to learn more about electronics, PCB design, programming, PLCs, mechanics, reading a datasheet, and so on.
For a product development, after you’ve made your Arduino prototype, start to build your real product by designing your own PCB and using better micro-controllers.
Conclusion: Go for Arduino if you’re learning about embedded systems, or if you want to develop a prototype really fast.
Then, as you start to learn more and make progress, you’ll switch to more advanced and suitable boards and micro-controllers.
And, don’t forget to have fun along the way!