So i and my friend (from mechanical engineering background) had an idea. We made prototype tested it and got good results. Then i read that i cannot use Arduino IDE for my commercial products as then i have to make my code public and i don't want that.
As now i want to take the next step in the process from prototype to production, can anyone suggest me the software that can be used for this ?
I have read about some of the software like "Atmel studio" and "Platformio" but don't know which is better or even are they useful.
I am using Arduino DUE currently but plan on using Teensy 4.0 finally.
Note that using the Arduino IDE is not the cause of the restriction:
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.
You could write and compile 100% closed source firmware using the Arduino IDE without violating any licenses. The restriction comes from the open source software you incorporate into your firmware. So this means that even if you use Atmel Studio or PlatformIO to compile the firmware, you still need to comply with the licenses of all the software you are using. If you're writing Arduino code in Atmel Studio or PlatformIO, you're likely using the exact same cores and libraries that you would have been with the Arduino IDE.
It is true that the Arduino IDE comes with bundled libraries and the Arduino AVR Boards core that have open source licenses, but it doesn't in any way force you to use that code in your project.
You're welcome to use these alternate IDEs if they have features you want that the Arduino IDE doesn't provide, but don't assume they provide you with some loophole to avoid complying with open source licenses.
If you do want to use open source code in your closed source product, you have the option of contacting the owner of the open source code to see if you can negotiate a licensing agreement with them that will allow you to to use the code in your product.
pert:
Note that using the Arduino IDE is not the cause of the restriction:You could write and compile 100% closed source firmware using the Arduino IDE without violating any licenses. The restriction comes from the open source software you incorporate into your firmware. So this means that even if you use Atmel Studio or PlatformIO to compile the firmware, you still need to comply with the licenses of all the software you are using. If you're writing Arduino code in Atmel Studio or PlatformIO, you're likely using the exact same cores and libraries that you would have been with the Arduino IDE.
It is true that the Arduino IDE comes with bundled libraries and the Arduino AVR Boards core that have open source licenses, but it doesn't in any way force you to use that code in your project.
You're welcome to use these alternate IDEs if they have features you want that the Arduino IDE doesn't provide, but don't assume they provide you with some loophole to avoid complying with open source licenses.
If you do want to use open source code in your closed source product, you have the option of contacting the owner of the open source code to see if you can negotiate a licensing agreement with them that will allow you to to use the code in your product.
thank you for your response, it was very helpful.
so you mean that if I use "LiquidCrystal_I2C" library in my code i have to contact the author and get permission from him.
Right ?
Mayur_Y:
so you mean that if I use "LiquidCrystal_I2C" library in my code i have to contact the author and get permission from him.
It depends on your usage. If your usage complies with the license that you will find either in a dedicated file (usually called LICENSE) in the library's root directory, or in the header of the source code files, then there is no need to contact the author. However, if you require a usage of the code that is not compliant with the license, then you do indeed need to contact the author.
Note also that you may be using other open source licensed code that is not obvious just by looking at the #include directives in the sketch code. For example, if you are compiling the LiquidCrystal_I2C for the Arduino Due, you are likely also using the Wire library, which has the LGPL 2.1 license:
and the Arduino SAM Boards core library, which is also under LGPL 2.1 (though I haven't checked every file to make sure there isn't some code under other licenses):
Likely, you are also using some code from the GCC toolchain (arm-none-eabi-gcc 4.8.3-2014q1), which is licensed under GPL 3.
Unless you're a lawyer, it can all get pretty confusing, and maybe expensive if you need to pay for commercial licenses. The easiest path is to just comply with the licenses. The resulting open source nature of your firmware can then be a value proposition used in your marketing.