2

I basically would like to ask this same question (in another context / more generically):

https://www.reddit.com/r/arduino/comments/25my2t/lgpl_and_arduino_in_commercial_products/

Stated differently:

What are the legal implications of LGPL licence in commercial products using Arduino boards (and or Arduino software/firmware)?

and about creating my own libraries for Arduino? (less or more permissive licenses cases for a derivative work)

and lastly, I'm also curious about this statically vs linked library conditions of LGPL (and how this would be applicable in this case)

thanks!

marcos assis
  • 121
  • 3

1 Answers1

1

IANAL, but my understanding is:

  • Any LGPL code you modify you need to make available as source.
  • Using LGPL code in your project doesn't constitute modification of that code unless you actually modify that code (See above).
  • Any code you write that is not contained within LGPL code (see above) is yours to license as you wish. That means your libraries are your libraries. Your sketch is your sketch.

So in short, things that must be released as LGPL:

  • Modifications to the core code.
  • Modifications to other people's libraries

Things that are yours to license as you wish:

  • Your libraries
  • Your sketches

Things you should (if you're nice) provide attribution for:

  • Arduino API
  • Third party libraries

As far as hardware goes:

These files are licensed under a Creative Commons Attribution Share-Alike license, which allows for both personal and commercial derivative works, as long as they credit Arduino and release their designs under the same license. The Arduino software is also open-source.

Which means if you use their designs within your own design you should attribute it and make it open source under the CC-BY license. Otherwise, if you just use their hardware verbatim there's nothing to attribute - you haven't used their designs, but a commercial product as a component.

Majenko
  • 105,095
  • 5
  • 79
  • 137
  • thanks a lot for your prompt answer! =] "IANAL" always, but this helps a lot.

    as it seems you're more used to this, would you think something like this wold be a "nice" (in that sense) and correct way to mention and clarify dependencies along a project?

    https://github.com/marcosassis/gamepaduino/wiki/modules#gamepad_joystick_adapter-module

    – marcos assis Apr 01 '18 at 19:12
  • Yup, looks good to me. – Majenko Apr 01 '18 at 19:15
  • This looks like a pretty good summary. I've added additional details in my answer on this other question here, and have tried to cover its various facets. I'm not sure if the question I posted my answer on is the best candidate, but it was good enough I suppose. – Gabriel Staples Oct 15 '20 at 18:16
  • Actually when using LGPL libraries (which is unavoidable with Arduino) you must share at least the object code of your entire application to let users relink your application code to a different version of the libraries. This is regardless of whether you made any modifications to those libraries or not. See LGPL section 4, especially 4(d)(0). –  Sep 22 '21 at 09:26