Commercial use of arduino code.

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.

Thanks in advance.

Maybe if you posted in the Gigs & Colaborations section they might know.

From FAQ:

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

Just to clarify on the FAQ information above:

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.

See this thread for some further discussions on the s/w licensing topic:
http://forum.arduino.cc/index.php?topic=240434.0

--- bill

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](http://should 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.

Ray

1 Like

mrburnette:

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](http://should 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.

Ray

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.
https://groups.google.com/a/arduino.cc/forum/#!topic/developers/QeDMRF__qXs

--- bill

Well, I am not going to use the arduino board. I am going to use the code on the MCUs with the bootloader.

I'm using EEPROM, LiquidCrystal, avr/io and avr/interrupt libraries, and TinyGPS library from arduiniana, I guess I'm gonna have to check the licensing info about that one over ther.

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.

And, what does this mean?

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

What are those object files? Realasing them or making them available in the site? or where?

Thannks in advance.

karkas:
Well, I am not going to use the arduino board. I am going to use the code on the MCUs with the bootloader.

I'm using EEPROM, LiquidCrystal, avr/io and avr/interrupt libraries, and TinyGPS library from arduiniana, I guess I'm gonna have to check the licensing info about that one over ther.

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.

And, what does this mean?

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

What are those object files? Realasing them or making them available in the site? or where?

Thannks in advance.

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.

For full details, I'd suggest carefully reading the actual specific LGPL license that is associated with the library
as there are different versions with slightly different restrictions.

Here is a link to LGPL v2.1
https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html

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.

--- bill