Skip to content

Why Arduino code is not deploy in commercial/industry products

August 12, 2017


A friend of mine is asking this question and my answers are:

1. Reliability of Source Code

Arduino is originally target for electronics beginner hobbyists to quickly building electronics circuit or prototype. Thus the requirement is less stringent as compare to embedded development. If a device is not working, a simple device reset in Arduino is fine. However, this is not the case on embedded products.
In embedded development, getting the device to work is just part of the work. The most important part of the work would be ensuring system running well in all situations. This inherently means the firmware require to anticipate errors of input parameter, sensor values and there has to be some recovery to ensure system is reliable.

2. Efficiency of System

Arduino system is written with 2 main function, setup() and loop(). Setup() stage is called when MCU initialize during power up while loop() is call in a superloop case. Is some cases, these 2 function is sufficient to perform system functionality.
In embedded system, efficiency is important key aspect to development. An highly efficient system will require less powerful MCU, thus saving in resources and cost. To achieve that, a different light weight operating system(e.g. round-robin task scheduler, RTOS) will be use in system. A superloop will not be suitable in this case as superloop tends to have slower system responds as compare to operating system

3. System/Code Optimization

In embedded system, every bytes (on flash or RAM) count, thus system use to write in optimism way to produce highly efficient code with smallest code size. This may not be the case in Arduino code. When such Arduino code is being use in embedded systems, more code/RAM would be require. However, with advance of technologies, this impact will not be as great as old days.

4. Arduino Pin-out

Arduino has a standard pin-out assignment to ease development. While in embedded systems, each pin-out is use differently depending on hardware design. If a Arduino code hard coded to use these standard pin-out, then there is a possibilities libraries is not usable on embedded system due to this limitation.





From → Embedded System

Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: