|Project Name||Stars||Downloads||Repos Using This||Packages Using This||Most Recent Commit||Total Releases||Latest Release||Open Issues||License||Language|
|Sming||1,383||8 days ago||98||lgpl-3.0||C++|
|Sming - powerful open source framework simplifying the creation of embedded C++ applications.|
|Esp Open Rtos||1,349||2 years ago||214||bsd-3-clause||C|
|Open source FreeRTOS-based ESP8266 software framework|
|Wechatdeveloper||1,335||8||5||5 days ago||71||June 27, 2023||16||mit||PHP|
|Djitellopy||982||1||3||2 months ago||8||September 05, 2021||20||mit||Python|
|DJI Tello drone python interface using the official Tello SDK. Feel free to contribute!|
|Firebase Esp8266||391||18 days ago||mit||C|
|🔥 Firebase RTDB Arduino Library for ESP8266 and RP2040 Pico. The complete, fast, secured and reliable Firebase Arduino client library that supports CRUD (create, read, update, delete) and Stream operations.|
|Iot_board||262||2 years ago||6||apache-2.0||C|
|RT-Thread for IoT Board (STM32L4 + Wi-Fi, sensor, lcd, audio etc)|
|Ios Sdk||115||4||7 years ago||4||January 11, 2017||1||other||Objective-C|
|Send/Receive Infrared signals via IRKit device|
|St Device Sdk C||104||7 days ago||4||other||C|
|SmartThings SDK for Direct Connected Devices for C|
|St Device Sdk C Ref||88||3 months ago||5||apache-2.0||C|
|SmartThings SDK Reference for Direct Connected Devices for C|
|Bl602 Re||71||2 years ago||8||apache-2.0||Assembly|
|Reverse engineering of BL602 blobs|
A community developed open source FreeRTOS-based framework for ESP8266 WiFi-enabled microcontrollers. Intended for use in both commercial and open source projects.
Originally based on, but substantially different from, the Espressif IOT RTOS SDK.
Email discussion list: https://groups.google.com/d/forum/esp-open-rtos
IRC channel: #esp-open-rtos on Freenode (Web Chat Link).
Github issues list/bugtracker: https://github.com/superhouse/esp-open-rtos/issues
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
Install esp-open-sdk, build it with
make toolchain esptool libhal STANDALONE=n, then edit your PATH and add the generated toolchain
bin directory. The path will be something like
/path/to/esp-open-sdk/xtensa-lx106-elf/bin. (Despite the similar name esp-open-sdk has different maintainers - but we think it's fantastic!)
(Other toolchains may also work, as long as a gcc cross-compiler is available on the PATH and libhal (and libhal headers) are compiled and available to gcc. The proprietary Tensilica "xcc" compiler will probably not work.)
Install esptool.py and make it available on your PATH. If you used esp-open-sdk then this is done already.
The esp-open-rtos build process uses
GNU Make, and the utilities
grep. If you built esp-open-sdk then you have these already.
Use git to clone the esp-open-rtos project (note the
git clone --recursive https://github.com/Superhouse/esp-open-rtos.git cd esp-open-rtos
include/private_ssid_config.hdefining the two macro defines:
#define WIFI_SSID "mywifissid" #define WIFI_PASS "my secret password"
make flash -j4 -C examples/http_get ESPPORT=/dev/ttyUSB0
make help -C examples/http_get for a summary of other Make targets.
-C option to make is the same as changing to that directory, then running make.)
The Build Process wiki page has in-depth details of the build process.
Current status is alpha quality, actively developed. AP STATION mode (ie wifi client mode) and UDP/TCP client modes are tested. Other functionality should work. Contributors and testers are welcome!
examplescontains a range of example projects (one per subdirectory). Check them out!
includecontains header files from Espressif RTOS SDK, relating to the binary libraries & Xtensa core.
corecontains source & headers for low-level ESP8266 functions & peripherals.
core/include/espcontains useful headers for peripheral access, etc. Minimal to no FreeRTOS dependencies.
extrasis a directory that contains optional components that can be added to your project. Most 'extras' components will have a corresponding example in the
examplesdirectory. Extras include:
FreeRTOScontains FreeRTOS implementation, subdirectory structure is the standard FreeRTOS structure.
FreeRTOS/source/portable/esp8266/contains the ESP8266 port.
lwipcontains the lwIP TCP/IP library. See Third Party Libraries wiki page for details.
libccontains the newlib libc. Libc details here.
For details of how third party libraries are integrated, see the wiki page.
Binary libraries (inside the
lib dir) are all supplied by Espressif as part of their RTOS SDK. These parts were MIT Licensed.
As part of the esp-open-rtos build process, all binary SDK symbols are prefixed with
sdk_. This makes it easier to differentiate binary & open source code, and also prevents namespace conflicts.
Espressif's RTOS SDK provided a "libssl" based on axTLS. This has been replaced with the more up to date mbedTLS library (see below).
Some binary libraries appear to contain unattributed open source code:
BSD license (as described in LICENSE) applies to original source files, lwIP. lwIP is Copyright (C) Swedish Institute of Computer Science.
FreeRTOS (since v10) is provided under the MIT license. License details in files under FreeRTOS dir. FreeRTOS is Copyright (C) Amazon.
Source & binary components from the Espressif IOT RTOS SDK were released under the MIT license. Source code components are relicensed here under the BSD license. The original parts are Copyright (C) Espressif Systems.
Newlib is covered by several copyrights and licenses, as per the files in the
mbedTLS is provided under the Apache 2.0 license as described in the file extras/mbedtls/mbedtls/apache-2.0.txt. mbedTLS is Copyright (C) ARM Limited.
extras/ may contain different licenses, please see those directories for details.
Contributions are very welcome!
If you find a bug, please raise an issue to report it.
If you have feature additions or bug fixes then please send a pull request.
There is a list of outstanding 'enhancements' in the issues list. Contributions to these, as well as other improvements, are very welcome.
If you are contributing code, please ensure that it can be licensed under the BSD open source license. Specifically:
Code from Espressif IoT SDK cannot be merged, as it is provided under either the "Espressif General Public License" or the "Espressif MIT License", which are not compatible with the BSD license.
Recent releases of the Espressif IoT RTOS SDK cannot be merged, as they changed from MIT License to the "Espressif MIT License" which is not BSD compatible. The Espressif binaries used in esp-open-rtos were taken from revision ec75c85, as this was the last MIT Licensed revision.
For code submissions based on reverse engineered binary functionality, please either reverse engineer functionality from MIT Licensed Espressif releases or make sure that the reverse engineered code does not directly copy the code structure of the binaries - it cannot be a "derivative work" of an incompatible binary.
The best way to write suitable code is to first add documentation somewhere like the esp8266 reverse engineering wiki describing factual information gained from reverse engineering - such as register addresses, bit masks, orders of register writes, etc. Then write new functions referring to that documentation as reference material.
For new contributions in C, please use BSD style and indent using 4 spaces.
For assembly, please use the following:
#as a comment delimiter.
wsr aX, SRover
If you're an emacs user then there is a .dir-locals.el file in the root which configures cc-mode and asm-mode (you will need to approve some variable values as safe). See also the additional comments in .dir-locals.el, if you're editing assembly code.
Upstream code is left with the indentation and style of the upstream project.
Work on parts of esp-open-rtos has been sponsored by SuperHouse Automation.