ESP8266 is the now famous dirt-cheap Wi-Fi SoC used for IoT applications. It can be used by hobbyists and companies alike. But for the later, there was a licensing issue as Espressif ESP8266 SDK was initially released under the GPLv3 license. GPL code is great and lots of open source projects are released under the most common open source license. But since proprietary, closed source software has still its place in the market place, some other more permissive licenses such as LGPL are used for library, and Android for example has an Apache License 2.0.
So previously, if you developed an application using ESP8266 SDK, you’re code would have to be GPL too, since the license is viral. It would also cause issues if you had released your application under an Apache or MIT license.
But now, all is well, as Espressif released ESP8266 SDK 1.10 under an MIT license, and also fixed various bugs in the process. That means that to make sure you don’t have licensing issues in your project, you should probably update to the latest version of the SDK.
Thanks to Paul and Jon for having brought up the issue, and help convince Espressif to change the license.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
Does MIT gives you to right to get the source code from binaries, let’s say for ex liblwip.a?
Here is the licence text: ESPRSSIF MIT License Copyright (c) 2015 Permission is hereby granted for use on ESPRESSIF SYSTEMS ESP8266 only, in which case, it is free of charge, to any person obtaining a copy of this software and associated documentation files (the ¡°Software¡±), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included… Read more »
@Simos
It’s good to add the licence text in the post, and also mention the “ESPRESSIF SYSTEMS ESP8266 only” part.
Maybe you should go work for ARMs pr! viral is an unnecessarily derogatory termm it is not a disease you can catch by accident. All it does is respect the authors rights more than one who wants to use their work selfishly and doesn’t want to share. It doesn’t force anyone to use it over doing or paying for it elsewhere. It also doesn’t force your code to be gnu gpl, only gpl compatible and available in full source form. The ‘only’ clause in the new one seems problematic, it appears to render it gpl incompatible as it adds restrictions… Read more »
@notzed A viral license like the GPL was a problem for the esp8266 base run-time. The GPL and Apache license are not compatible although both are open source. When the esp8266 base was licensed GPL none of the existing Apache licensed code could be used with it. In real a OS there is a boundary between the OS and user space. Viral licenses don’t cross that boundary. So the Linux kernel can be licensed GPL without also forcing every other app on Linux to also be GPL. There are 100’s of open source licenses in use. Many of those licenses… Read more »
@notzed As for the only clause.. Applications written for OS’s where there is no dynamic link boundary and the OS run-time is linked into the application should not be licensed GPL. Licensing LGPL would remove any problems. But if you insist on running GPL licensed code on the ESP8266. You will need to create a dynamic linking layer between your code and the OS. That dynamic linking layer will stop the viral effect from crossing into the OS run-time. Dynamic linking layers are not that crazy – uboot has one for device drivers. It is not considered fair use to… Read more »
It’s good to add the licence text in the post, and also mention the “ESPRESSIF SYSTEMS ESP8266 only” part. Well, I missed this “ESPRESSIF SYSTEMS ESP8266 only” part myself %). What can I say? It’s “common industry practice” as they like to say. Look at the drivers for more or less non-trivial hardware from vendors – they usually have that clause. I can give example of EnergyMicro, whose CMSIS and drivers were Zlib-licensed quite before ARM released core CMSIS under BSD, for what they deserve big kudos. All except USB drivers, which were zlib + “EFM32 only” clause. All in… Read more »