I have ported the Arduino core library to NIOS soft-core CPU. This core comes with a "Hardware abstraction library", which is freely available (e.g by downloading the FPGA development environment) but AFAIK is not GPL. My library includes modified Arduino files, but not the HAL files.

Am I right to assume that I can redistribute my work under the same license as Arduino (GPLv2)? Does HAL fall under the definition of "System library" in GPL terms, or do I have to distribute it? I would really prefer not to, because HAL is by definition hardware-dependent, so my version would be useless to anyone using a different hardware configuration, and the whole point of FPGAs is the ability to experiment with hardware.

1 Answer 1


If your library contains GPL-licensed Arduino code, then you must use the GPL license also for your library. Otherwise, you would be in violation of the licence under which you received the Arduino files.

Distributing your code under the GPL does not mean you have to actively distribute all libraries that you depend on, but you must make sure for each dependency that at least one of the following points is true:

  1. The dependency is available under an open-source license that gives at least the freedoms that the GPL license does (i.e. a license that is compatible with the GPL)
  2. The dependency is a part of what (nearly) everyone needs to depend on in order to use the target platform (the "System libraries").
  • Thanks for the reply. I suppose the second point applies to my case, after all, original Arduino code depends on AVR C library, just as Arduino clones with different CPUs depend on basic include files of these CPUs. Feb 12, 2018 at 16:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.