Re-organize documentation
Drop support for localized content, #2213 Restructure some content to match more closely what we have in master, #2542
This commit is contained in:
parent
eb8d8b588a
commit
5750da121c
|
@ -26,4 +26,4 @@ Supported platforms: anything that runs Python, runnable .exe available for Wind
|
|||
|
||||
Supports flashing *aggregated binaries* as for example produced by [the Docker build](build.md#docker-image).
|
||||
|
||||
Disclaimer: the availability of [NodeMCU PyFlasher was announced on the NodeMCU Facebook page](https://www.facebook.com/NodeMCU/posts/663197460515251) but it is not an official offering of the current NodeMCU firmware team.
|
||||
Disclaimer: the availability of [NodeMCU PyFlasher was announced on the NodeMCU Facebook page](https://www.facebook.com/NodeMCU/posts/663197460515251) but it is not an official offering of the current NodeMCU firmware team.
|
|
@ -1,17 +1,10 @@
|
|||
# NodeMCU Documentation
|
||||
|
||||
NodeMCU is an [eLua](http://www.eluaproject.net/) based firmware for the [ESP32](http://espressif.com/en/products/hardware/esp32/overview) and [ESP8266 WiFi SOC from Espressif](http://espressif.com/en/products/esp8266/). The NodeMCU *firmware* is a companion project to the popular [NodeMCU dev kits](https://github.com/nodemcu/nodemcu-devkit-v1.0), ready-made open source development boards with ESP8266-12E chips.
|
||||
NodeMCU is an open source [Lua](https://www.lua.org/) based firmware for the [ESP32](http://espressif.com/en/products/hardware/esp32/overview) and [ESP8266 WiFi SOC from Espressif](http://espressif.com/en/products/esp8266/) and uses an on-module flash-based [SPIFFS](https://github.com/pellepl/spiffs) file system. NodeMCU is implemented in C and is layered on the [Espressif ESP-IDF](https://github.com/espressif/ESP-IDF).
|
||||
|
||||
The firmware was initially developed as is a companion project to the popular ESP8266-based [NodeMCU development modules](https://github.com/nodemcu/nodemcu-devkit-v1.0), but the project is now community-supported, and the firmware can now be run on _any_ ESP module.
|
||||
|
||||
Support for the new [ESP32 WiFi/BlueTooth SOC from Espressif](http://www.espressif.com/en/products/hardware/esp32/overview) is under way.
|
||||
|
||||
## Up-To-Date Documentation
|
||||
At the moment the only up-to-date documentation maintained by the current NodeMCU team is in English. It is part of the source code repository (`/docs` subfolder) and kept in sync with the code.
|
||||
|
||||
We encourage you to help transferring the outdated translations (see below) into the repository.
|
||||
|
||||
## Outdated And Sparse Documentation
|
||||
The following translations are based on outdated documentation, use them with caution. The links point to the [NodeMCU wiki on GitHub](https://github.com/nodemcu/nodemcu-firmware/wiki).
|
||||
|
||||
- Chinese, [中文](https://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_cn)
|
||||
- Russian, [русский](https://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_ru)
|
||||
- Spanish, [español](https://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_es)
|
||||
|
|
120
docs/js/extra.js
120
docs/js/extra.js
|
@ -1,15 +1,9 @@
|
|||
var nodemcu = nodemcu || {};
|
||||
(function () {
|
||||
'use strict';
|
||||
//var languageCodeToNameMap = {en: 'English', de: 'Deutsch'};
|
||||
var languageCodeToNameMap = {en: 'English'};
|
||||
var languageNames = values(languageCodeToNameMap);
|
||||
var defaultLanguageCode = 'en';
|
||||
|
||||
$(document).ready(function () {
|
||||
addToc();
|
||||
hideNavigationForAllButSelectedLanguage();
|
||||
addLanguageSelectorToRtdFlyOutMenu();
|
||||
replaceRelativeLinksWithStaticGitHubUrl();
|
||||
});
|
||||
|
||||
|
@ -43,75 +37,13 @@ var nodemcu = nodemcu || {};
|
|||
}
|
||||
}
|
||||
|
||||
function hideNavigationForAllButSelectedLanguage() {
|
||||
var selectedLanguageCode = determineSelectedLanguageCode();
|
||||
var selectedLanguageName = languageCodeToNameMap[selectedLanguageCode];
|
||||
// Finds all subnav elements and hides them if they're /language/ subnavs. Hence, all 'Modules' subnav elements
|
||||
// won't be hidden.
|
||||
// <ul class="subnav">
|
||||
// <li><span>Modules</span></li>
|
||||
// <li class="toctree-l1 ">
|
||||
// <a class="" href="EN/modules/node/">node</a>
|
||||
// </li>
|
||||
$('.subnav li span').not(':contains(' + selectedLanguageName + ')').each(function (index) {
|
||||
var spanElement = $(this);
|
||||
if ($.inArray(spanElement.text(), languageNames) > -1) {
|
||||
spanElement.parent().parent().hide();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a language selector to the RTD fly-out menu found bottom left. Example:
|
||||
*
|
||||
* <dl>
|
||||
* <dt>Languages</dt>
|
||||
* <dd><a href="http://nodemcu.readthedocs.io/en/<branch>/de/">de</a></dd>
|
||||
* <strong>
|
||||
* <dd><a href="http://nodemcu.readthedocs.io/en/<branch>/en/">en</a></dd>
|
||||
* </strong>
|
||||
* </dl>
|
||||
*
|
||||
* UGLY! That fly-out menu is added by RTD with an AJAX call after page load. Hence, we need to
|
||||
* react to the subsequent DOM manipulation using a DOM4 MutationObserver. The provided structure
|
||||
* is as follows:
|
||||
*
|
||||
* <div class="rst-other-versions">
|
||||
* <!-- Inserted RTD Footer -->
|
||||
* <div class="injected">
|
||||
*/
|
||||
function addLanguageSelectorToRtdFlyOutMenu() {
|
||||
var flyOutWrapper = $('.rst-other-versions');
|
||||
// only relevant on RTD
|
||||
if (flyOutWrapper.size() > 0) {
|
||||
var observer = new MutationObserver(function (mutations) {
|
||||
// since mutation on the target node was triggered we can safely assume the injected RTD div has now been added
|
||||
var injectedDiv = $('.rst-other-versions .injected');
|
||||
var selectedLanguageCode = determineSelectedLanguageCode();
|
||||
var dl = document.createElement('dl');
|
||||
var dt = document.createElement('dt');
|
||||
dl.appendChild(dt);
|
||||
dt.appendChild(document.createTextNode('Languages'));
|
||||
for (var languageCode in languageCodeToNameMap) {
|
||||
dl.appendChild(createLanguageLinkFor(languageCode, selectedLanguageCode === languageCode));
|
||||
}
|
||||
injectedDiv.prepend(dl);
|
||||
// no need for that observer anymore
|
||||
observer.disconnect();
|
||||
});
|
||||
|
||||
// observed target node is the fly-out wrapper, the only event we care about is when children are modified
|
||||
observer.observe(flyOutWrapper[0], {childList: true});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The module doc pages contain relative links to artifacts in the GitHub repository. For those links to work both
|
||||
* on GitHub (i.e. when the page is viewed on GitHub) and on RTD they are defined with a relative URL. This function
|
||||
* replaces the relative path with an absolute path based on the selected branch.
|
||||
*/
|
||||
function replaceRelativeLinksWithStaticGitHubUrl() {
|
||||
var relativePath = "../../../..";
|
||||
var relativePath = "../../..";
|
||||
var gitHubPath = "https://github.com/nodemcu/nodemcu-firmware/tree/" + determineSelectedBranch();
|
||||
var gitHubLinks = $("a[href^='" + relativePath + "']").each(function (index) {
|
||||
var url = $(this).attr('href');
|
||||
|
@ -119,48 +51,6 @@ var nodemcu = nodemcu || {};
|
|||
});
|
||||
}
|
||||
|
||||
function createLanguageLinkFor(languageCode, isCurrentlySelected) {
|
||||
var strong;
|
||||
// split[0] is an '' because the path starts with the separator
|
||||
var pathSegments = window.location.pathname.split('/');
|
||||
var dd = document.createElement("dd");
|
||||
var href = document.createElement("a");
|
||||
href.setAttribute('href', '/' + pathSegments[1] + '/' + pathSegments[2] + '/' + languageCode);
|
||||
href.appendChild(document.createTextNode(languageCode));
|
||||
dd.appendChild(href);
|
||||
if (isCurrentlySelected) {
|
||||
strong = document.createElement("strong");
|
||||
strong.appendChild(dd);
|
||||
return strong;
|
||||
} else {
|
||||
return dd;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Analyzes the URL of the current page to find out what the selected language is. It's usually
|
||||
* part of the location path. The code needs to distinguish between running MkDocs standalone
|
||||
* and docs served from RTD. If no valid language could be determined the default language is
|
||||
* returned.
|
||||
*
|
||||
* @returns 2-char language code
|
||||
*/
|
||||
function determineSelectedLanguageCode() {
|
||||
var selectedLanguageCode, path = window.location.pathname;
|
||||
if (window.location.origin.indexOf('readthedocs') > -1) {
|
||||
// path is like /en/<branch>/<lang>/build/ -> extract 'lang'
|
||||
// split[0] is an '' because the path starts with the separator
|
||||
selectedLanguageCode = path.split('/')[3];
|
||||
} else {
|
||||
// path is like /<lang>/build/ -> extract 'lang'
|
||||
selectedLanguageCode = path.substr(1, 2);
|
||||
}
|
||||
if (!selectedLanguageCode || selectedLanguageCode.length > 2) {
|
||||
selectedLanguageCode = defaultLanguageCode;
|
||||
}
|
||||
return selectedLanguageCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* Analyzes the URL of the current page to find out what the selected GitHub branch is. It's usually
|
||||
* part of the location path. The code needs to distinguish between running MkDocs standalone
|
||||
|
@ -173,7 +63,11 @@ var nodemcu = nodemcu || {};
|
|||
if (window.location.origin.indexOf('readthedocs') > -1) {
|
||||
// path is like /en/<branch>/<lang>/build/ -> extract 'lang'
|
||||
// split[0] is an '' because the path starts with the separator
|
||||
branch = path.split('/')[2];
|
||||
var thirdPathSegment = path.split('/')[2];
|
||||
// 'latest' is an alias on RTD for the 'dev' branch - which is the default for 'branch' here
|
||||
if (thirdPathSegment != 'latest') {
|
||||
branch = thirdPathSegment;
|
||||
}
|
||||
}
|
||||
return branch;
|
||||
}
|
||||
|
@ -187,4 +81,4 @@ var nodemcu = nodemcu || {};
|
|||
}
|
||||
return values;
|
||||
}
|
||||
}());
|
||||
}());
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# ADC Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2017-04-22 | | | [adc.c](../../../components/modules/bthci.c)|
|
||||
| 2017-04-22 | | | [adc.c](../../components/modules/bthci.c)|
|
||||
|
||||
The ADC module provides access to the in-built ADC1.
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# bit Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2014-12-24 | [https://github.com/LuaDist/bitlib](https://github.com/LuaDist/bitlib), [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [bit.c](../../../app/modules/bit.c)|
|
||||
| 2014-12-24 | [https://github.com/LuaDist/bitlib](https://github.com/LuaDist/bitlib), [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [bit.c](../../app/modules/bit.c)|
|
||||
|
||||
|
||||
Bit manipulation support, on 32bit integers.
|
|
@ -1,7 +1,7 @@
|
|||
# BT HCI Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2016-09-29 | [DiUS](https://github.com/DiUS), [Johny Mattsson](https://github.com/jmattsson) | [Johny Mattsson](https://github.com/jmattsson) | [bthci.c](../../../components/modules/bthci.c)|
|
||||
| 2016-09-29 | [DiUS](https://github.com/DiUS), [Johny Mattsson](https://github.com/jmattsson) | [Johny Mattsson](https://github.com/jmattsson) | [bthci.c](../../components/modules/bthci.c)|
|
||||
|
||||
The BT HCI module provides a minimal HCI-level interface to BlueTooth
|
||||
adverisements. Via this module you can set up BT LE advertisements and also
|
|
@ -1,7 +1,7 @@
|
|||
# CAN Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2017-04-27 | [@ThomasBarth](https://github.com/ThomasBarth/ESP32-CAN-Driver/), zelll | | [can.c](../../../components/modules/can.c)|
|
||||
| 2017-04-27 | [@ThomasBarth](https://github.com/ThomasBarth/ESP32-CAN-Driver/), zelll | | [can.c](../../components/modules/can.c)|
|
||||
|
||||
The CAN module provides access to the in-built CAN controller.
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# DAC Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2018-10-14 | [Arnim Läuger](https://github.com/devsaurus) | [Arnim Läuger](https://github.com/devsaurus) | [dac.c](../../../components/modules/dac.c)|
|
||||
| 2018-10-14 | [Arnim Läuger](https://github.com/devsaurus) | [Arnim Läuger](https://github.com/devsaurus) | [dac.c](../../components/modules/dac.c)|
|
||||
|
||||
The DAC module provides access to the two built-in Digital to Analog Converters.
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# DHT Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2017-03-30 | [Arnim Läuger](https://github.com/devsaurus) | [Arnim Läuger](https://github.com/devsaurus) | [dht](../../../components/modules/dht.c)|
|
||||
| 2017-03-30 | [Arnim Läuger](https://github.com/devsaurus) | [Arnim Läuger](https://github.com/devsaurus) | [dht](../../components/modules/dht.c)|
|
||||
|
||||
## Constants
|
||||
Constants for various functions.
|
|
@ -1,7 +1,7 @@
|
|||
# encoder Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2016-02-26 | [Terry Ellison](https://github.com/TerryE) | [Terry Ellison](https://github.com/TerryE) | [encoder.c](../../../app/modules/encoder.c)|
|
||||
| 2016-02-26 | [Terry Ellison](https://github.com/TerryE) | [Terry Ellison](https://github.com/TerryE) | [encoder.c](../../app/modules/encoder.c)|
|
||||
|
||||
The encoder modules provides various functions for encoding and decoding byte data.
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# file Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2014-12-22 | [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [file.c](../../../components/modules/file.c)|
|
||||
| 2014-12-22 | [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [file.c](../../components/modules/file.c)|
|
||||
|
||||
The file module provides access to the file system and its individual files.
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# GPIO Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2016-11-26 | [Johny Mattsson](https://github.com/jmattsson) | [Johny Mattsson](https://github.com/jmattsson) | [gpio.c](../../../components/modules/gpio.c)|
|
||||
| 2016-11-26 | [Johny Mattsson](https://github.com/jmattsson) | [Johny Mattsson](https://github.com/jmattsson) | [gpio.c](../../components/modules/gpio.c)|
|
||||
|
||||
|
||||
This module provides access to the [GPIO](https://en.wikipedia.org/wiki/General-purpose_input/output) (General Purpose Input/Output) subsystem.
|
|
@ -1,7 +1,7 @@
|
|||
# HTTP Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2018-10-27 | [Tom Sutcliffe](https://github.com/tomsci) | [Tom Sutcliffe](https://github.com/tomsci) | [http.c](../../../components/modules/http.c)|
|
||||
| 2018-10-27 | [Tom Sutcliffe](https://github.com/tomsci) | [Tom Sutcliffe](https://github.com/tomsci) | [http.c](../../components/modules/http.c)|
|
||||
|
||||
HTTP *client* module that provides an interface to do GET/POST/PUT/DELETE over HTTP and HTTPS, as well as customized requests. It can support large requests with an API similar to that of the `net` module. Multiple concurrent HTTP requests are supported. Both synchronous and asynchronous modes are supported.
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# I²C Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2014-12-22 | [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [i2c.c](../../../app/modules/i2c.c)|
|
||||
| 2014-12-22 | [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [i2c.c](../../app/modules/i2c.c)|
|
||||
|
||||
This module supports different interfaces for communicating via I²C protocol. All interfaces can be assigned to arbitrary GPIOs for SCL and SDA and can be operated concurrently.
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# I2S Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2017-04-29 | zelll | [Arnim Läuger](https://github.com/devsaurus) | [i2s.c](../../../components/modules/i2s.c)|
|
||||
| 2017-04-29 | zelll | [Arnim Läuger](https://github.com/devsaurus) | [i2s.c](../../components/modules/i2s.c)|
|
||||
|
||||
The I2S module provides access to the in-built two I2S controllers.
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# LEDC Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2017-07-05 | [Lars Stenberg](https://github.com/larsstenberg) | [Lars Stenberg](https://github.com/larsstenberg) | [ledc.c](../../../components/modules/ledc.c)|
|
||||
| 2017-07-05 | [Lars Stenberg](https://github.com/larsstenberg) | [Lars Stenberg](https://github.com/larsstenberg) | [ledc.c](../../components/modules/ledc.c)|
|
||||
|
||||
|
||||
This module provides access to the [LEDC](http://esp-idf.readthedocs.io/en/latest/api-reference/peripherals/ledc.html) PWM driver.
|
|
@ -1,7 +1,7 @@
|
|||
# MQTT Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2018-10-08 | [Tuan PM](https://github.com/tuanpmt/esp_mqtt), [Espressif](https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/protocols/mqtt.html) | | [mqtt.c](../../../components/modules/mqtt.c)|
|
||||
| 2018-10-08 | [Tuan PM](https://github.com/tuanpmt/esp_mqtt), [Espressif](https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/protocols/mqtt.html) | | [mqtt.c](../../components/modules/mqtt.c)|
|
||||
|
||||
The client supports version 3.1 and 3.1.1 of the [MQTT](https://en.wikipedia.org/wiki/MQTT) protocol. Make sure that the correct version is set with `make menuconfig` -> "Component config" -> "ESP-MQTT Configurations" -> "Enable MQTT protocol 3.1.1".
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# net Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2014-12-22 | [PhoeniX](https://github.com/djphoenix) | [Johny Mattsson](https://github.com/jmattsson), [Arnim Läuger](https://github.com/devsaurus) | [net.c](../../../components/modules/net.c)|
|
||||
| 2014-12-22 | [PhoeniX](https://github.com/djphoenix) | [Johny Mattsson](https://github.com/jmattsson), [Arnim Läuger](https://github.com/devsaurus) | [net.c](../../components/modules/net.c)|
|
||||
|
||||
## Constants
|
||||
Constants to be used in other functions: `net.TCP`, `net.UDP`
|
|
@ -1,7 +1,7 @@
|
|||
# node Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2014-12-22 | [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [node.c](../../../app/modules/node.c)|
|
||||
| 2014-12-22 | [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [node.c](../../app/modules/node.c)|
|
||||
|
||||
The node module provides access to system-level features such as sleep, restart and various info and IDs.
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# 1-Wire Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2014-12-22 | [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [ow.c](../../../components/modules/ow.c)|
|
||||
| 2014-12-22 | [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [ow.c](../../components/modules/ow.c)|
|
||||
|
||||
This module provides functions to work with the [1-Wire](https://en.wikipedia.org/wiki/1-Wire) device communications bus system.
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# QR Code Generator Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2018-10-20 | https://github.com/nayuki/QR-Code-generator.git integrated by [Tom Sutcliffe](https://github.com/tomsci) | [Tom Sutcliffe](https://github.com/tomsci) | [qrcodegen.c](../../../components/modules/qrcodegen.c)|
|
||||
| 2018-10-20 | https://github.com/nayuki/QR-Code-generator.git integrated by [Tom Sutcliffe](https://github.com/tomsci) | [Tom Sutcliffe](https://github.com/tomsci) | [qrcodegen.c](../../components/modules/qrcodegen.c)|
|
||||
|
||||
This module wraps the [QR Code](https://en.wikipedia.org/wiki/QR_code) Generator API written in C by https://github.com/nayuki/QR-Code-generator.git for producing a QR Code.
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# SDMMC Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2017-04-17 | [Arnim Läuger](https://github.com/devsaurus) | [Arnim Läuger](https://github.com/devsaurus) | [sdmmc.c](../../../components/modules/sdmmc.c)|
|
||||
| 2017-04-17 | [Arnim Läuger](https://github.com/devsaurus) | [Arnim Läuger](https://github.com/devsaurus) | [sdmmc.c](../../components/modules/sdmmc.c)|
|
||||
|
||||
!!! note
|
||||
|
||||
|
@ -36,7 +36,7 @@ Connections to `CLK`, `CMD`, and `DAT0` are mandatory and enable basic operation
|
|||
|
||||
The adapter does not require level shifters since SD and ESP are supposed to be powered with the same voltage. If your specific model contains level shifters then make sure that both sides can be operated at 3V3.
|
||||
|
||||
![1:1 micro-sd adapter](../../img/micro_sd-small.jpg "1:1 micro-sd adapter")
|
||||
![1:1 micro-sd adapter](../img/micro_sd-small.jpg "1:1 micro-sd adapter")
|
||||
|
||||
## sdmmc.init()
|
||||
Initialize the SDMMC and probe the attached SD card.
|
|
@ -1,7 +1,7 @@
|
|||
# Sigma-delta Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2017-01-13 | [Arnim Läuger](https://github.com/devsaurus) | [Arnim Läuger](https://github.com/devsaurus) | [sigma_delta.c](../../../app/modules/sigma_delta.c)|
|
||||
| 2017-01-13 | [Arnim Läuger](https://github.com/devsaurus) | [Arnim Läuger](https://github.com/devsaurus) | [sigma_delta.c](../../app/modules/sigma_delta.c)|
|
||||
|
||||
This module provides access to the [sigma-delta](https://en.wikipedia.org/wiki/Delta-sigma_modulation) component. It's a hardware signal generator that can be routed to any of the output GPIOs.
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# SJSON Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2017-02-01 | [Philip Gladstone](https://github.com/pjsg) | [Philip Gladstone](https://github.com/pjsg) | [sjson](../../../app/modules/sjson.c) |
|
||||
| 2017-02-01 | [Philip Gladstone](https://github.com/pjsg) | [Philip Gladstone](https://github.com/pjsg) | [sjson](../../app/modules/sjson.c) |
|
||||
|
||||
The JSON support module. Allows encoding and decoding to/from JSON.
|
||||
|
||||
|
@ -23,7 +23,7 @@ When encoding a Lua object, if a function is found, then it is invoked (with no
|
|||
|
||||
!!! note
|
||||
|
||||
All examples below use in-memory JSON or content read from the SPIFFS file system. However, where a streaming implementation really shines is in fetching large JSON structures from the remote resources and extracting values on-the-fly. An elaborate streaming example can be found in the [`/lua_examples`](../../../lua_examples/sjson-streaming.lua) folder.
|
||||
All examples below use in-memory JSON or content read from the SPIFFS file system. However, where a streaming implementation really shines is in fetching large JSON structures from the remote resources and extracting values on-the-fly. An elaborate streaming example can be found in the [`/lua_examples`](../../lua_examples/sjson-streaming.lua) folder.
|
||||
|
||||
## sjson.encoder()
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# Sodium module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2018-10-27 | [Tom Sutcliffe](https://github.com/tomsci) | [Tom Sutcliffe](https://github.com/tomsci) | [sodium.c](../../../components/modules/sodium.c)|
|
||||
| 2018-10-27 | [Tom Sutcliffe](https://github.com/tomsci) | [Tom Sutcliffe](https://github.com/tomsci) | [sodium.c](../../components/modules/sodium.c)|
|
||||
|
||||
This module wraps the [LibSodium](https://libsodium.org/) C library. LibSodium is a library for performing Elliptic Curve Cryptography.
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# SPI Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2017-05-04 | [Arnim Läuger](https://github.com/devsaurus) | [Arnim Läuger](https://github.com/devsaurus) | [spi.c](../../../components/modules/spi.c)|
|
||||
| 2017-05-04 | [Arnim Läuger](https://github.com/devsaurus) | [Arnim Läuger](https://github.com/devsaurus) | [spi.c](../../components/modules/spi.c)|
|
||||
|
||||
# SPI Bus
|
||||
The ESP32 contains 4 SPI bus hosts called `SPI`, `SPI1`, `HSPI`, and `VSPI`. `SPI` is locked to flash communication and is not available for the application. `SPI1` is currently also tied to flash support, but might be available in the future. Applications can currently only use the `HSPI` and `VSPI` hosts.
|
||||
|
@ -10,7 +10,7 @@ The host signals can be mapped to any suitable GPIO pins.
|
|||
|
||||
!!! note
|
||||
|
||||
The API on ESP32 differs from the API on ESP8266. For backwards compatibility please refer to [`lua_compat/spi_compat.lua`](../../../lua_compat/spi_compat.lua).
|
||||
The API on ESP32 differs from the API on ESP8266. For backwards compatibility please refer to [`lua_compat/spi_compat.lua`](../../lua_compat/spi_compat.lua).
|
||||
|
||||
|
||||
## spi.master()
|
|
@ -1,7 +1,7 @@
|
|||
# Struct Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2015-02-13 | [Roberto Ierusalimschy](http://www.inf.puc-rio.br/~roberto/struct/), [Philip Gladstone](https://github.com/pjsg) | [Philip Gladstone](https://github.com/pjsg) | [struct.c](../../../app/modules/struct.c)|
|
||||
| 2015-02-13 | [Roberto Ierusalimschy](http://www.inf.puc-rio.br/~roberto/struct/), [Philip Gladstone](https://github.com/pjsg) | [Philip Gladstone](https://github.com/pjsg) | [struct.c](../../app/modules/struct.c)|
|
||||
|
||||
This module offers basic facilities to convert Lua values to and from C structs. Its main functions are `struct.pack`, which packs multiple Lua values into a struct-like string; and `struct.unpack`, which unpacks multiple Lua values from a given struct-like string.
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# Timer Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2018-11-25 | [Skirmantas Lauzikas](https://github.com/x-logLT) | [Skirmantas Lauzikas](https://github.com/x-logLT) | [time.c](../../../components/modules/time.c)|
|
||||
| 2018-11-25 | [Skirmantas Lauzikas](https://github.com/x-logLT) | [Skirmantas Lauzikas](https://github.com/x-logLT) | [time.c](../../components/modules/time.c)|
|
||||
|
||||
This module offers facilities for coverting beteen unix time and calendar, setting/getting system time, locale and controll of NTP client.
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# Timer Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2014-12-12 | [Zeroday](https://github.com/funshine) | [dnc40085](https://github.com/dnc40085) | [tmr.c](../../../app/modules/tmr.c)|
|
||||
| 2014-12-12 | [Zeroday](https://github.com/funshine) | [dnc40085](https://github.com/dnc40085) | [tmr.c](../../app/modules/tmr.c)|
|
||||
|
||||
The tmr module allows access to simple timers. It is aimed at setting up regularly occurring tasks and timing out operations.
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# u8g2 Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2017-06-02 | [Oli Kraus](https://github.com/olikraus/u8glib), [Arnim Läuger](https://github.com/devsaurus) | [Arnim Läuger](https://github.com/devsaurus) | [u8g2.c](../../../components/modules/u8g2.c)|
|
||||
| 2017-06-02 | [Oli Kraus](https://github.com/olikraus/u8glib), [Arnim Läuger](https://github.com/devsaurus) | [Arnim Läuger](https://github.com/devsaurus) | [u8g2.c](../../components/modules/u8g2.c)|
|
||||
|
||||
U8g2 is a graphics library developed at [olikraus/u8g2](https://github.com/olikraus/u8g2) with support for many different displays. It is the successor of [U8glib](https://github.com/olikraus/u8glib) which is not developed any further. Please see [How to port U8g code](https://github.com/olikraus/u8g2/wiki/u8gvsu8g2) for generic porting instructions.
|
||||
|
||||
|
@ -102,7 +102,7 @@ res = 0 -- RES is optional YMMV
|
|||
disp = u8g2.ssd1306_128x64_noname(bus, cs, dc, res)
|
||||
```
|
||||
|
||||
This object provides all of u8g2's methods to control the display. Refer to [graphics_test.lua](../../../lua_examples/u8g2/graphics_test.lua) to get an impression how this is achieved with Lua code. Visit the [u8g2 homepage](https://github.com/olikraus/u8g2) for technical details.
|
||||
This object provides all of u8g2's methods to control the display. Refer to [graphics_test.lua](../../lua_examples/u8g2/graphics_test.lua) to get an impression how this is achieved with Lua code. Visit the [u8g2 homepage](https://github.com/olikraus/u8g2) for technical details.
|
||||
|
||||
### Displays selection
|
||||
I²C and HW SPI based displays with support in u8g2 can be enabled.
|
||||
|
@ -110,7 +110,7 @@ I²C and HW SPI based displays with support in u8g2 can be enabled.
|
|||
The procedure is different for ESP8266 and ESP32 platforms.
|
||||
|
||||
#### ESP8266
|
||||
Add the desired entries to the I²C or SPI display tables in [app/include/u8g2_displays.h](../../../app/include/u8g2_displays.h):
|
||||
Add the desired entries to the I²C or SPI display tables in [app/include/u8g2_displays.h](../../app/include/u8g2_displays.h):
|
||||
```c
|
||||
#define U8G2_DISPLAY_TABLE_I2C \
|
||||
U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_i2c_128x64_noname_f, ssd1306_i2c_128x64_noname) \
|
||||
|
@ -135,7 +135,7 @@ U8g2 comes with a wide range of fonts for small displays. Fonts can be supplied
|
|||
The procedure is different for ESP8266 and ESP32 platforms.
|
||||
|
||||
#### ESP8266
|
||||
Add the desired fonts to the font table in [app/include/u8g2_fonts.h](../../../app/include/u8g2_fonts.h):
|
||||
Add the desired fonts to the font table in [app/include/u8g2_fonts.h](../../app/include/u8g2_fonts.h):
|
||||
```c
|
||||
#define U8G2_FONT_TABLE \
|
||||
U8G2_FONT_TABLE_ENTRY(font_6x10_tf) \
|
||||
|
@ -151,7 +151,7 @@ make EXTRA_CCFLAGS='-include $(TOP_DIR)/my_extras.h'
|
|||
Add the desired fonts to the font selection sub-entry via `make menuconfig`.
|
||||
|
||||
### Bitmaps
|
||||
XBM bitmaps are supplied as strings to `drawXBM()` in contrast to the source code based inclusion of XBMs in upstream u8g2 library. This off-loads all data handling from the u8g2 module to generic methods for binary files. See [graphics_test.lua](../../../lua_examples/u8g2/graphics_test.lua).
|
||||
XBM bitmaps are supplied as strings to `drawXBM()` in contrast to the source code based inclusion of XBMs in upstream u8g2 library. This off-loads all data handling from the u8g2 module to generic methods for binary files. See [graphics_test.lua](../../lua_examples/u8g2/graphics_test.lua).
|
||||
|
||||
Conversion of XBM bitmaps can be performed online with [Online-Utility's Image Converter](http://www.online-utility.org/image_converter.jsp): Convert from XBM to MONO format and upload the binary result.
|
||||
|
||||
|
@ -482,7 +482,7 @@ Draw a XBM Bitmap.
|
|||
|
||||
See [u8g2 drawXBM()](https://github.com/olikraus/u8g2/wiki/u8g2reference#drawxbm).
|
||||
|
||||
XBM bitmaps are supplied as strings to `drawXBM()`. This off-loads all data handling from the u8g2 module to generic methods for binary files. See [graphics_test.lua](../../../lua_examples/u8glib/u8g_graphics_test.lua).
|
||||
XBM bitmaps are supplied as strings to `drawXBM()`. This off-loads all data handling from the u8g2 module to generic methods for binary files. See [graphics_test.lua](../../lua_examples/u8glib/u8g_graphics_test.lua).
|
||||
|
||||
In contrast to the source code based inclusion of XBMs in upstream u8g2 library, it's required to provide precompiled binary files. This can be performed online with [Online-Utility's Image Converter](http://www.online-utility.org/image_converter.jsp): Convert from XBM to MONO format and upload the binary result.
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# UART Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2014-12-22 | [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [uart.c](../../../app/modules/uart.c)|
|
||||
| 2014-12-22 | [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [uart.c](../../app/modules/uart.c)|
|
||||
|
||||
The [UART](https://en.wikipedia.org/wiki/Universal_asynchronous_receiver/transmitter) (Universal asynchronous receiver/transmitter) module allows configuration of and communication over the UART serial port.
|
||||
|
|
@ -92,7 +92,7 @@ The procedure is different for ESP8266 and ESP32 platforms.
|
|||
|
||||
#### ESP8266
|
||||
|
||||
Add the desired entries to the display table in [app/include/ucg_config.h](../../../app/include/ucg_config.h):
|
||||
Add the desired entries to the display table in [app/include/ucg_config.h](../../app/include/ucg_config.h):
|
||||
```c
|
||||
#define UCG_DISPLAY_TABLE \
|
||||
UCG_DISPLAY_TABLE_ENTRY(ili9341_18x240x320_hw_spi, ucg_dev_ili9341_18x240x320, ucg_ext_ili9341_18) \
|
||||
|
@ -109,7 +109,7 @@ The procedure is different for ESP8266 and ESP32 platforms.
|
|||
|
||||
#### ESP8266
|
||||
|
||||
Add the desired fonts to the font table in [app/include/ucg_config.h](../../../app/include/ucg_config.h):
|
||||
Add the desired fonts to the font table in [app/include/ucg_config.h](../../app/include/ucg_config.h):
|
||||
```c
|
||||
#define UCG_FONT_TABLE \
|
||||
UCG_FONT_TABLE_ENTRY(font_7x13B_tr) \
|
|
@ -1,7 +1,7 @@
|
|||
# WiFi Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2016-10-03 | [Johny Mattsson](https://github.com/jmattsson) |[Johny Mattsson](https://github.com/jmattsson) | [wifi.c](../../../components/modules/wifi.c)|
|
||||
| 2016-10-03 | [Johny Mattsson](https://github.com/jmattsson) |[Johny Mattsson](https://github.com/jmattsson) | [wifi.c](../../components/modules/wifi.c)|
|
||||
|
||||
|
||||
The NodeMCU WiFi control is spread across several tables:
|
|
@ -1,14 +1,14 @@
|
|||
# WS2812 Module
|
||||
| Since | Origin / Contributor | Maintainer | Source |
|
||||
| :----- | :-------------------- | :---------- | :------ |
|
||||
| 2015-02-05 | [Till Klocke](https://github.com/dereulenspiegel), [Thomas Soëte](https://github.com/Alkorin) | [Arnim Läuger](https://github.com/devsaurus) | [ws2812.c](../../../components/modules/ws2812.c)|
|
||||
| 2015-02-05 | [Till Klocke](https://github.com/dereulenspiegel), [Thomas Soëte](https://github.com/Alkorin) | [Arnim Läuger](https://github.com/devsaurus) | [ws2812.c](../../components/modules/ws2812.c)|
|
||||
|
||||
ws2812 is a library to handle ws2812-like led strips.
|
||||
It works at least on WS2812, WS2812b, APA104, SK6812 (RGB or RGBW).
|
||||
|
||||
!!! note
|
||||
|
||||
The API on ESP32 differs from the API on ESP8266. For backwards compatibility please refer to [`lua_compat/ws2812_compat.lua`](../../../lua_compat/ws2812_compat.lua`).
|
||||
The API on ESP32 differs from the API on ESP8266. For backwards compatibility please refer to [`lua_compat/ws2812_compat.lua`](../../lua_compat/ws2812_compat.lua`).
|
||||
|
||||
## ws2812.write()
|
||||
Send data to up to 8 led strip using its native format which is generally Green,Red,Blue for RGB strips and Green,Red,Blue,White for RGBW strips.
|
|
@ -40,4 +40,4 @@ Subdirectories are supported on FAT volumes only.
|
|||
|
||||
## Multiple partitions / multiple cards
|
||||
|
||||
The mapping from logical volumes (eg. `/SD0`) to partitions on an SD card is defined in [`fatfs_config.h`](../../components/fatfs/fatfs_config.h). More volumes can be added to the `VolToPart` array with any combination of physical drive number (aka SDMMC slots) and partition number. Their names have to be added to `_VOLUME_STRS` in [`ffconf.h`](../../components/fatfs/ffconf.h) as well.
|
||||
The mapping from logical volumes (eg. `/SD0`) to partitions on an SD card is defined in [`fatfs_config.h`](../components/fatfs/fatfs_config.h). More volumes can be added to the `VolToPart` array with any combination of physical drive number (aka SDMMC slots) and partition number. Their names have to be added to `_VOLUME_STRS` in [`ffconf.h`](../components/fatfs/ffconf.h) as well.
|
|
@ -6,4 +6,4 @@ Which ever site you use you need to make sure the description of the problem is
|
|||
StackOverflow is the perfect place to ask coding questions. Use one or several of the following tags: [esp8266](http://stackoverflow.com/tags/esp8266), [nodemcu](http://stackoverflow.com/tags/nodemcu) or [Lua](http://stackoverflow.com/tags/lua).
|
||||
|
||||
## esp8266.com Forums
|
||||
esp8266.com has a few [NodeMCU specific forums](http://www.esp8266.com/viewforum.php?f=17) where a number of our active community members tend to hang out.
|
||||
esp8266.com has a few [NodeMCU specific forums](http://www.esp8266.com/viewforum.php?f=17) where a number of our active community members tend to hang out.
|
|
@ -15,7 +15,7 @@ The NodeMCU firmware team does not give any recommendations as for which uploade
|
|||
|
||||
> The essential multiplatforms tools for any ESP8266 developer from luatool author’s, including Lua for NodeMCU and MicroPython. Also, all AT commands are supported. Requires Java (Standard Edition - SE ver 7 and above) installed.
|
||||
|
||||
![ESPlorer](../img/ESPlorer.jpg "ESPlorer")
|
||||
![ESPlorer](img/ESPlorer.jpg "ESPlorer")
|
||||
|
||||
Source: [https://github.com/4refr0nt/ESPlorer](https://github.com/4refr0nt/ESPlorer)
|
||||
|
85
mkdocs.yml
85
mkdocs.yml
|
@ -4,7 +4,7 @@ repo_url: https://github.com/nodemcu/nodemcu-firmware/
|
|||
|
||||
theme:
|
||||
name: "readthedocs"
|
||||
strict: true
|
||||
strict: false
|
||||
|
||||
markdown_extensions:
|
||||
#http://pythonhosted.org/Markdown/extensions/admonition.html
|
||||
|
@ -21,44 +21,45 @@ extra_javascript:
|
|||
|
||||
pages:
|
||||
- Overview: 'index.md'
|
||||
- English:
|
||||
- Building the firmware: 'en/build.md'
|
||||
- Flashing the firmware: 'en/flash.md'
|
||||
- Filesystem on SD card: 'en/sdcard.md'
|
||||
- Uploading code: 'en/upload.md'
|
||||
- FAQs:
|
||||
- Lua Developer FAQ: 'en/lua-developer-faq.md'
|
||||
- Extension Developer FAQ: 'en/extn-developer-faq.md'
|
||||
- Support: 'en/support.md'
|
||||
- Modules:
|
||||
- 'adc': 'en/modules/adc.md'
|
||||
- 'bit': 'en/modules/bit.md'
|
||||
- 'bthci': 'en/modules/bthci.md'
|
||||
- 'can': 'en/modules/can.md'
|
||||
- 'dac': 'en/modules/dac.md'
|
||||
- 'dht': 'en/modules/dht.md'
|
||||
- 'encoder': 'en/modules/encoder.md'
|
||||
- 'file': 'en/modules/file.md'
|
||||
- 'gpio': 'en/modules/gpio.md'
|
||||
- 'http': 'en/modules/http.md'
|
||||
- 'i2c': 'en/modules/i2c.md'
|
||||
- 'i2s': 'en/modules/i2s.md'
|
||||
- 'ledc': 'en/modules/ledc.md'
|
||||
- 'mqtt': 'en/modules/mqtt.md'
|
||||
- 'net': 'en/modules/net.md'
|
||||
- 'node': 'en/modules/node.md'
|
||||
- 'ow (1-Wire)': 'en/modules/ow.md'
|
||||
- 'qrcodegen': 'en/modules/qrcodegen.md'
|
||||
- 'sdmmc': 'en/modules/sdmmc.md'
|
||||
- 'sigma delta': 'en/modules/sigma-delta.md'
|
||||
- 'sjson': 'en/modules/sjson.md'
|
||||
- 'sodium': 'en/modules/sodium.md'
|
||||
- 'spi': 'en/modules/spi.md'
|
||||
- 'struct': 'en/modules/struct.md'
|
||||
- 'time': 'en/modules/time.md'
|
||||
- 'tmr': 'en/modules/tmr.md'
|
||||
- 'u8g2': 'en/modules/u8g2.md'
|
||||
- 'uart': 'en/modules/uart.md'
|
||||
- 'ucg': 'en/modules/ucg.md'
|
||||
- 'wifi': 'en/modules/wifi.md'
|
||||
- 'ws2812': 'en/modules/ws2812.md'
|
||||
- Basics:
|
||||
- Building the firmware: 'build.md'
|
||||
- Flashing the firmware: 'flash.md'
|
||||
- Uploading code: 'upload.md'
|
||||
- Support: 'support.md'
|
||||
- FAQs:
|
||||
- Lua Developer FAQ: 'lua-developer-faq.md'
|
||||
- Extension Developer FAQ: 'extn-developer-faq.md'
|
||||
- Whitepapers:
|
||||
- Filesystem on SD card: 'sdcard.md'
|
||||
- Lua Modules:
|
||||
- 'adc': 'modules/adc.md'
|
||||
- 'bit': 'modules/bit.md'
|
||||
- 'bthci': 'modules/bthci.md'
|
||||
- 'can': 'modules/can.md'
|
||||
- 'dac': 'modules/dac.md'
|
||||
- 'dht': 'modules/dht.md'
|
||||
- 'encoder': 'modules/encoder.md'
|
||||
- 'file': 'modules/file.md'
|
||||
- 'gpio': 'modules/gpio.md'
|
||||
- 'http': 'modules/http.md'
|
||||
- 'i2c': 'modules/i2c.md'
|
||||
- 'i2s': 'modules/i2s.md'
|
||||
- 'ledc': 'modules/ledc.md'
|
||||
- 'mqtt': 'modules/mqtt.md'
|
||||
- 'net': 'modules/net.md'
|
||||
- 'node': 'modules/node.md'
|
||||
- 'ow (1-Wire)': 'modules/ow.md'
|
||||
- 'qrcodegen': 'modules/qrcodegen.md'
|
||||
- 'sdmmc': 'modules/sdmmc.md'
|
||||
- 'sigma delta': 'modules/sigma-delta.md'
|
||||
- 'sjson': 'modules/sjson.md'
|
||||
- 'sodium': 'modules/sodium.md'
|
||||
- 'spi': 'modules/spi.md'
|
||||
- 'struct': 'modules/struct.md'
|
||||
- 'time': 'modules/time.md'
|
||||
- 'tmr': 'modules/tmr.md'
|
||||
- 'u8g2': 'modules/u8g2.md'
|
||||
- 'uart': 'modules/uart.md'
|
||||
- 'ucg': 'modules/ucg.md'
|
||||
- 'wifi': 'modules/wifi.md'
|
||||
- 'ws2812': 'modules/ws2812.md'
|
||||
|
|
Loading…
Reference in New Issue