Using Arduino bootloader in commercial product

What are the requirements for using an AVR with Arduino bootloader, that's programmed using the Arduino IDE, in a commercial product? If the company wished to keep the project closed source, is it still mandatory to release the source code?

http://arduino.cc/en/Main/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”.

Unless you modify the bootloader source, or arduino core files (or make a clone with physical changes) your cool, change one or the other your required to disclose the changes

Alright, thank you very much.

Sorry for upping this, but what is considered a clone with physical changes?

I am planning on using Arduino Bootloader as medium of programming an ATmega328P on a commercial product. Can I do this with no restriction? The board where this will be implemented is very different from an Arduino, as it is an integrated solution for a specific objective.

I am planning on using Arduino Bootloader as medium of programming an ATmega328P on a commercial product. Can I do this with no restriction?

The optiboot bootloader (Google Code Archive - Long-term storage for Google Code Project Hosting. ) was not written and is not maintained by the Arduino team/company, and there is no restriction in using it on non-arduino products.

It IS licensed (by the original author) using GPL2, which in my opinion (as the current maintainer of optiboot) is:

  1. A poor choice of license for any SW associated with an embedded system
  2. not well defined WRT bootloader-type applications (but it's probably better than libraries.) (It does seem to meet the spirit of GPL-type licenses; a user can replace the bootloader with an updated or different OSSW version that does the same thing (even their own modified version of optiboot), and it won't interact in an overt way with the part of the SW that is proprietary.)

On the other hand, I can pretty much assure you that there are no "license trolls" sitting around waiting to take advantage of some inadvertent differences of interpretation of the fine print of the license. The idea is to provide an OS bootloader, accept improvements, and prevent commercial exploitation of the bootloader itself (ie, some company selling optiboot itself, as a SW product. (although that's probably technically legal.)) (licensing is complicated.)

To be really safe, you'd probably need to find a SW vendor who WAS selling bootloader SW, under carefully specified commercial use licenses. (I don't actually know of anyone selling a commercial serial bootloader. But PRC has their "half-k" USB bootloader, which is proprietary and can probably be licensed...)

Where can I find such "shop"? How much would it cost?

Thanks for all the info! You were really kind to help!

with respect to GPL compliance:

IANAL and just my opinion...

In general you should just simply put the source file for the bootloader someplace online, along with any other 'gpl compliance' source for the firmware, then provide a (non-trivial is ok) method to flash it, which might simply be an unpopulated ISP header and 2 pins that connect to the Rx and Tx lines (with resistors if they might conflict with how you wired them up already). If the end-user must dismantle everything to get to those pins, so what. Linksys put out a zillion wifi routers like this, put their code online with a build environment, open sourced all the GPL stuff, 'binary blob'bed their secret-sauce, and put it all online where it's easy to find. But you had to solder a connector for the serial port in order to program it with non-standard firmware, and ctrl+C the bootloader at the right point if you wanted to use a non-linksys image, but it was POSSIBLE to flash just about anything onto those boards with a little hacking. [standard firmware could be 'uploaded' with the original firmware's 'upgrade' feature, on a related note].

I like to use THAT as an example of how to do it. I'm sure their 'lyers' (read: attorneys) did a LOT of research on GPL compliance, and it's been that way for a decade or so for them. That being said, IANAL and it's just my opinion.

worst case, you might need an 'upgrade' feature to allow people to re-flash the firmware, but most people implement that anyway. Putting an ISP header (unpopulated) on the board is probably more than enough to allow bootloader flash. If you have to, write special flash firmware that updates the bootloader and also allows you to flash a normal image afterwards, then open source it with a bootloader image and source to create it.

I like to use [LinkSys]as an example of how to do it. I'm sure their 'lyers' (read: attorneys) did a LOT of research on GPL compliance, and it's been that way for a decade or so for them.

IIRC, Linksys got caught using linux and some GPL stuff as their core operating system WITHOUT meeting the GPL requirements, and then did a lot of re-action to make things right. When cisco acquired linksys, they had the software re-spun to run under VxWorks (allowed a smaller memory footprint, IIRC), which upset a lot of people who had been counting on putting other firmware on the linux-compatible (older) HW. As part of a reaction to that, cisco continued to offer the older hardware essentially long after that router model was otherwise obsolete.

Not exactly a "model example" of how the prorpietary/OSSW mix ought to be done, IMO.

Hello, sorry to bring the old topic to life but I did not uderstand Arduino bootloader in commercial product.

If I will not use an Arduino board but just Atmel chip where I want to burn Arduino bootloader and then to program chip with C++ as in Arduino IDE, do I need to share anything from my code?

According to the FAQ of Arduino page should I share the information about new board because I will use Arduino bootlader in different board than Arduino official board?

For me is important if I create some hardware with Atmel chip with Arduino bootloader what exactly do I need to share.

Please help me to understand.

Thank you

I saw: (source https://www.arduino.cc/en/Main/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”.

See https://github.com/Optiboot/optiboot/blob/master/LICENSE