Hello, I have been wondering if there are any imposibilities or requirements to make a commercial use of a an arduino code. I have been paid to make a dvelopment with and arduino MEGA2560, and they want to make a dedicated board design, which I would be making. So, if I make the schematic design with the ATmega2560 and burn the bootloader on it so I can use the code I already wrote, I would like to know, is there any inconvenient if they want to sell the board, and make a mass production of it? I really don't know much about these limitations, they are not seen very much in my country. Is it possible to use the code in this manner? or should I make a new development in another environment? I would like to know as much as I can about this.
Can I build a commercial product based on Arduino?
Yes, with the following conditions:
Physically embedding an Arduino board inside a commercial product does not require you to disclose or open-source any information about its design.
Deriving the design of a commercial product from the Eagle files for an Arduino board requires you to release the modified files under the same Creative Commons Attribution Share-Alike license. You may manufacture and sell the resulting product.
Using the Arduino core and libraries for the firmware of a commercial product does not require you to release the source code for the firmware. The LGPL does, however, require you to make available object files that allow for the relinking of the firmware against updated versions of the Arduino core and libraries. Any modifications to the core and libraries must be released under the LGPL.
The source code for the Arduino environment is covered by the GPL, which requires any modifications to be open-sourced under the same license. It does not prevent the sale of derivative software or its inclusion in commercial products.
In all cases, the exact requirements are determined by the applicable license. Additionally, see the previous question for information about the use of the name Arduino
Using the Arduino core and libraries for the firmware of a commercial product does not require you to release the source code for the firmware. The LGPL does, however, require you to make available object files that allow for the relinking of the firmware against updated versions of the Arduino core and libraries. Any modifications to the core and libraries must be released under the LGPL.
The information above provided by the Arduino team on their FAQ page is not correct.
The libraries included with the IDE by the Arduino team are not
all licensed vi LGPL There are several different licenses involved because different libraries
are using different licenses. Each of the different licenses have different rules & restrictions on their use.
The SD library, for example, is licensed under GPL v3 and that license does
require that you release the source to your code.
The information above provided by the Arduino team on their FAQ page is not correct.
The libraries included with the IDE by the Arduino team are not
all licensed vi LGPL There are several different licenses involved because different libraries
are using different licenses. Each of the different licenses have different rules & restrictions on their use.
Then these nonconforming libraries [should not be]( not be) packaged with the IDE, but separately downloaded. Or, the FAQ must be changed. It could be that the core team negotiated the change but failed to edit the license statements.
I doubt any new licenses were negotiated.
Most of the other licenses on the included libraries are more liberal than LGPL but are compatible with LGPL.
The SD library is the only one that ships with the IDE that
requires opening up the users code when used.
I seem to recall that there was an attempt to get the author to license it as LGPL and it was refused.
(Good for him).
Although there are a few other libraries that have no specified license or a license ambiguity
with multiple authors, so no telling what the real requirements on those libraries are.
Anyway, I do think that the FAQ should be updated to reflect reality.
I also think that no library should be included in the IDE without a clear license
yet there are a few. So that should be remedied ASAP.
I brought up the licensing "mess" back in Feb on the developers forum and
yet there doesn't appear to have been any movement to resolve it.
!topic/developers/QeDMRF__qXs
But I have some doubts about the information you have given. First, is there any other possible requirement or limtation when burning and selling the board based on the MCU with the code I wrtoe? I mean, other than releasen or making available object files. I am only using the libraries, I am not modifying them at all.
Doesn't matter if you modify any of the libraries. The licensing requirements are still the same.
And my guess is that you are using more than just the libraries, in that you have some of your own code as well.
If your code is open source, then things are easy.
It is only if you are refusing to disclose your source code that things can get sticky.
i.e. you want to create a closed source project/product that takes advantage of using other people's open source libraries.
The LGPL license allows LGPL licensed open source code to be used with authors that refuse to disclose their own source.
The spirit of the LGPL license is that users always have the freedom to modify the LGPL licensed code
even if it is part of a larger work.
In order to allow that to happen when authors refuse to disclose certain portions of a larger work that uses
LGPL code the author must make available all that is necessary for a person
to re-create the image (firmware in this case) so that they can make modifications to any of the
LGPL open source modules that were used in the larger work.
For example, suppose there is an update to the EEPROM library code or to tinyGPS.
The user must have the ability to use the updated versions of those libraries in your larger work.
In order to do that, the user must be able to build the larger work, which at a minimum requires
providing the pre-compiled objects of the closed source modules.
That said, given the way the Arduino IDE works, I'm not sure it is ever truly possible to fully comply
with LGPL when using closed source, since the IDE does not provide a way to use pre-compiled
objects.
Section 6 is probably what you are most concerned about.
For an embedded product, section 6a will come into play along
with probably 6c and 6d depending on how you wish to distribute the build materials.
The micro-controllers used in Arduino products are the same ones used in commercial applications. From the chip manufacturers point of view an Arduino board is as much a commercial product as any other consumer product containing their devices. You don't need your program to 'as fast as a micro embedded device', you need it to run fast enough for your product to work as you desire.
Then the answer is obvious, it is very expensive in comparison to what you would be paying for the same functionality if you buy in volume and get PCB manufactured on industrial scale with your own layout having less components since you won't need half the components on Arduino board.
Actual arduino boards are not optimized for commercial use, because it not intended for it.
For example, they are not optimized for mobile power and consume handreds times more power than it's chip itself. They are definitely not optimized by pcb size.. and last, they are absolutely loose to commercial analogs by price
Ruggedized Arduino and Industrial Arduino Microcontrollers. Rugged Arduino Compatible Micros, Raspberry Pi, and Custom Design Solutions. Home of the Ruggeduino and Rugged MEGA. Made in the USA. Rugged Circuits LLC Grand Rapids Michigan. Hardened...
I know my way around in C (started 9 years ago) so ideally I would code everything myself using the ATMEL official framework, compile it with AVR-GCC and burn the EEPROM with AVRDude. There is also the method of uploading the .hex to the bootloader already burned to avoid using an in circuit programmer (done by Arduino). No surprises.
However, the framework is -obviously- very low level. I don't really have the time to manipulate the registers directly every time I use an ADC or send data on the USART (actually more prone to error). So I thought the Arduino library can't be unreliable given all the time it's been out there (it has the C++ syntax but why not).
But actually, if I'm going to use the Arduino libraries, what is wrong with using the entire Arduino IDE for a commercial product? What does programming via the Arduino IDE hide (to make it simpler for the users) that makes it "not trusted" for commercial applications? Or is it a myth?
Totally give up the idea that using Arduino lib in a commercial products. Not only because it's in-efficiently, but also because the Thread Safety is not guaranteed. For example, some variables and data-structures (queue) are not protected from ISR context to main context, which may cause data integrity issue or even random Hard Fault. Although the probability is low, you should still give up the idea unless the quality of your products is not important.
7fc3f7cf58