Compare commits
32 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
884dd9fc3b | ||
|
|
04c564936a | ||
|
|
957138960a | ||
|
|
58a0297915 | ||
|
|
61bf536207 | ||
|
|
4136a7b372 | ||
|
|
b3afc9961d | ||
|
|
27e2e042da | ||
|
|
cc659bad30 | ||
|
|
776931c0ad | ||
|
|
e22b4b6fe1 | ||
|
|
cad534bffe | ||
|
|
3b44adb6fa | ||
|
|
cc0bd1473f | ||
|
|
58124d27bf | ||
|
|
9ad118814a | ||
|
|
270f8dd093 | ||
|
|
fde0ae4781 | ||
|
|
b87ce8c75d | ||
|
|
e372c87836 | ||
|
|
f8478d7742 | ||
|
|
a3d6923fec | ||
|
|
7bfa22187d | ||
|
|
7a8affae32 | ||
|
|
e48dd7c4c4 | ||
|
|
6d298c1746 | ||
|
|
4fe9ab92e0 | ||
|
|
f2ac4cdc64 | ||
|
|
be902401d1 | ||
|
|
020e93bca2 | ||
|
|
61dfdc2258 | ||
|
|
a98e3c8eab |
63
Changelog.md
@@ -2,7 +2,70 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### 8.5.0 - Multi Meter Support (2021-10-07)
|
||||||
|
|
||||||
|
* Upgrade digital CNN to v13.1.0 (added new images)
|
||||||
|
* bug fix: wlan password with space, double digit output
|
||||||
|
|
||||||
|
##### 8.4.0 - Multi Meter Support (2021-09-25)
|
||||||
|
|
||||||
|
* License change (remove MIT license, remark see below)
|
||||||
|
|
||||||
|
* html: show hostname in title and main page
|
||||||
|
|
||||||
|
* configuration:
|
||||||
|
|
||||||
|
* moved setting `ExtendedResolution` to individual number settings
|
||||||
|
* New parameter `IgnoreLeadingNaN` (delete leading NaN's specifically)
|
||||||
|
* **ATTENTION**: update of the `config.ini` needed (open, adjust `ExtendedResolution`, save)
|
||||||
|
|
||||||
|
* Bug fixing (html, images of recognized numbers)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### **ATTENTION: LICENSE CHANGE - removal of MIT License.**
|
||||||
|
|
||||||
|
- Currently no licence published - copyright belongs to author
|
||||||
|
- If you are interested in a commercial usage or dedicated versions please contact the developer
|
||||||
|
- no limits to private usage
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### 8.3.0 - Multi Meter Support (2021-09-12)
|
||||||
|
|
||||||
|
* Upgrade digital CNN to v12.1.0 (added new images)
|
||||||
|
* Dedicated NaN handling, internal refactoring (CNN-Handling)
|
||||||
|
* HTML: confirmation after config.ini update
|
||||||
|
* Bug fixing
|
||||||
|
|
||||||
|
##### 8.2.0 - Multi Meter Support (2021-08-24)
|
||||||
|
|
||||||
|
* Improve server responsiveness
|
||||||
|
* Flow status and prevalue status in overview
|
||||||
|
* Improved prevalue handling
|
||||||
|
|
||||||
|
##### 8.1.0 - Multi Meter Support (2021-08-12)
|
||||||
|
|
||||||
|
* GPIO: using the general mqtt main topic for GPIO
|
||||||
|
|
||||||
|
* Upgrade digital CNN to v12.0.0 (added new images)
|
||||||
|
* Update tfmicro to new master (2021-08-07)
|
||||||
|
* Bug fix: remove text in mqtt value, remove connect limit in wlan reconnet
|
||||||
|
|
||||||
|
##### 8.0.5 - Multi Meter Support (2021-08-01)
|
||||||
|
|
||||||
|
* NEW 8.0.5: bug fix: saving prevalue
|
||||||
|
* NEW 8.0.4: bug fix: load config.ini after upgrade
|
||||||
|
* NEW 8.0.3: bug fix: reboot during `config.ini` handling, html error
|
||||||
|
* NEW 8.0.2: saving roundes prevalue, bug fix html server
|
||||||
|
* NEW 8.0.1: bug fix: html handling of parameter `FixedExposure` and `ImageSize`
|
||||||
|
* Dual / multi meter support (more than 1 number to be recognized)
|
||||||
|
This is implemented with the feature "number" on the ROI definition as well as selected options
|
||||||
|
* MQTT: standardization of the naming - including new topics (`json`, `freeMem `, `uptime`)c
|
||||||
|
* Preparation for extended GPIO support (thanks to Zwerk2k) - not tested and fully functional yet
|
||||||
|
* Bug fixing: html server, memory leak, MQTT connect, hostname, turn of flash LED
|
||||||
|
|
||||||
|
<span style="color: red;">**ATTENTION: the configuration and prevalue files are modified automatically and will not be backward compatible!**</span>
|
||||||
|
|
||||||
##### 7.1.2 MQTT-Update - (2021-06-17)
|
##### 7.1.2 MQTT-Update - (2021-06-17)
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,30 @@
|
|||||||
|
|
||||||
____
|
____
|
||||||
|
|
||||||
|
#### #14 Backup and restore option for configuration
|
||||||
|
|
||||||
|
* https://github.com/jomjol/AI-on-the-edge-device/issues/459
|
||||||
|
|
||||||
|
* Implement a zip file compression for store and restore
|
||||||
|
|
||||||
|
* Update the html to handle it
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#### #13 Manage non linear gauge without CNN re-training
|
||||||
|
|
||||||
|
* https://github.com/jomjol/AI-on-the-edge-device/issues/443
|
||||||
|
|
||||||
|
* Implement a look up table for non linear analog meters
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#### #12 Less reboots due to memory leakage
|
||||||
|
|
||||||
|
* Issue: #414 & #425 #430
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#### #11 MQTT - configurable payload
|
#### #11 MQTT - configurable payload
|
||||||
|
|
||||||
* https://github.com/jomjol/AI-on-the-edge-device/issues/344
|
* https://github.com/jomjol/AI-on-the-edge-device/issues/344
|
||||||
|
|||||||
99
README.md
@@ -6,6 +6,8 @@ This is an example of Artificial Intelligence (AI) calculations on a very cheap
|
|||||||
|
|
||||||
A 3d-printable housing can be found here: https://www.thingiverse.com/thing:4573481
|
A 3d-printable housing can be found here: https://www.thingiverse.com/thing:4573481
|
||||||
|
|
||||||
|
or here https://www.thingiverse.com/thing:5028229
|
||||||
|
|
||||||
respectively ESP32-Cam housing only: https://www.thingiverse.com/thing:4571627
|
respectively ESP32-Cam housing only: https://www.thingiverse.com/thing:4571627
|
||||||
|
|
||||||
<img src="https://raw.githubusercontent.com/jomjol/AI-on-the-edge-device/master/images/watermeter_all.jpg" width="200"><img src="https://raw.githubusercontent.com/jomjol/AI-on-the-edge-device/master/images/main.jpg" width="200"><img src="https://raw.githubusercontent.com/jomjol/AI-on-the-edge-device/master/images/size.png" width="200">
|
<img src="https://raw.githubusercontent.com/jomjol/AI-on-the-edge-device/master/images/watermeter_all.jpg" width="200"><img src="https://raw.githubusercontent.com/jomjol/AI-on-the-edge-device/master/images/main.jpg" width="200"><img src="https://raw.githubusercontent.com/jomjol/AI-on-the-edge-device/master/images/size.png" width="200">
|
||||||
@@ -32,85 +34,64 @@ If you have any technical topics, you can file a issue in this repository.
|
|||||||
|
|
||||||
In other cases you can contact the developer via email: <img src="https://raw.githubusercontent.com/jomjol/AI-on-the-edge-device/master/images/mail.jpg" height="25">
|
In other cases you can contact the developer via email: <img src="https://raw.githubusercontent.com/jomjol/AI-on-the-edge-device/master/images/mail.jpg" height="25">
|
||||||
|
|
||||||
## Change log
|
------
|
||||||
|
## Coming next
|
||||||
|
|
||||||
|
* Automated update of the neural network file (tflite) to make the learing of additional pictures much easier and automated (GitHub action)
|
||||||
|
* New "hyprid" neural network for digital numbers --> allowing the detection of intermediate states ("ring between two numbers") as a subdigit
|
||||||
|
|
||||||
|
|
||||||
------
|
------
|
||||||
|
## Change log
|
||||||
### Known Issues
|
### Known Issues
|
||||||
|
|
||||||
* slow response of web server during picture analysis
|
* slow response of web server during picture analysis
|
||||||
* spontaneous reboots (mostly due to html access during image processing) - self recovery implemented
|
* spontaneous reboots (mostly due to html access during image processing) - self recovery implemented
|
||||||
|
|
||||||
------
|
|
||||||
|
|
||||||
**General remark:** Beside the `firmware.bin`, typically also the content of `/html` needs to be updated!
|
**General remark:** Beside the `firmware.bin`, typically also the content of `/html` needs to be updated!
|
||||||
|
|
||||||
|
------
|
||||||
|
|
||||||
|
##### 10.0.0 - Stability Increase (2021-12-30)
|
||||||
|
|
||||||
##### 8.5.0 - Multi Meter Support (2021-10-07)
|
- Updated compiler toolchain to ESP-IDF 4.3
|
||||||
|
- Removal of memory leak
|
||||||
|
- Improved error handling during startup (check PSRAM and camera with remark in logfile)
|
||||||
|
- MQTT: implemented raw value additionally, removal of regex contrain
|
||||||
|
|
||||||
* Upgrade digital CNN to v13.1.0 (added new images)
|
- Normalized Parameter ``MaxRateValue`` to "change per minute"
|
||||||
* bug fix: wlan password with space, double digit output
|
|
||||||
|
|
||||||
##### 8.4.0 - Multi Meter Support (2021-09-25)
|
- HTML: improved input handling
|
||||||
|
|
||||||
* License change (remove MIT license, remark see below)
|
- Corrected error handling: in case of error the old value, rate, timestamp are not transmitted any more
|
||||||
|
|
||||||
* html: show hostname in title and main page
|
|
||||||
|
|
||||||
* configuration:
|
|
||||||
|
|
||||||
* moved setting `ExtendedResolution` to individual number settings
|
|
||||||
* New parameter `IgnoreLeadingNaN` (delete leading NaN's specifically)
|
|
||||||
* **ATTENTION**: update of the `config.ini` needed (open, adjust `ExtendedResolution`, save)
|
|
||||||
|
|
||||||
* Bug fixing (html, images of recognized numbers)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### **ATTENTION: LICENSE CHANGE - removal of MIT License.**
|
##### 9.2.0 - External Illumination (2021-12-02)
|
||||||
|
|
||||||
- Currently no licence published - copyright belongs to author
|
- Direct JSON access: ``http://IP-ADRESS/json``
|
||||||
- If you are interested in a commercial usage or dedicated versions please contact the developer
|
- Error message in log file in case camera error during startup
|
||||||
- no limits to private usage
|
- Upgrade analog CNN to v9.1.0
|
||||||
|
- Upgrade digital CNN to v13.3.0 (added new images)
|
||||||
|
- html: support of different ports
|
||||||
|
|
||||||
|
##### 9.1.1 - External Illumination (2021-11-16)
|
||||||
|
|
||||||
|
- NEW 9.1.1 bug fix: LED implemenetation
|
||||||
|
- External LEDs: change control mode (resolve bug with more than 2 LEDs)
|
||||||
|
- Additional info into log file
|
||||||
|
- Bug fix: decimal shift, html, log file
|
||||||
|
|
||||||
|
##### 9.0.0 - External Illumination (2021-10-23)
|
||||||
|
|
||||||
|
* Implementation of external illumination to adjust positioning, brightness and color of the illumination now individually
|
||||||
|
* Technical details can be found in the wiki: https://github.com/jomjol/AI-on-the-edge-device/wiki/External-LED
|
||||||
|
<img src="https://raw.githubusercontent.com/jomjol/ai-on-the-edge-device/master/images/intern_vs_external.jpg" width="500">
|
||||||
|
* New housing published for external LEDs and small clearing: https://www.thingiverse.com/thing:5028229
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
##### 8.3.0 - Multi Meter Support (2021-09-12)
|
|
||||||
|
|
||||||
* Upgrade digital CNN to v12.1.0 (added new images)
|
|
||||||
* Dedicated NaN handling, internal refactoring (CNN-Handling)
|
|
||||||
* HTML: confirmation after config.ini update
|
|
||||||
* Bug fixing
|
|
||||||
|
|
||||||
##### 8.2.0 - Multi Meter Support (2021-08-24)
|
|
||||||
|
|
||||||
* Improve server responsiveness
|
|
||||||
* Flow status and prevalue status in overview
|
|
||||||
* Improved prevalue handling
|
|
||||||
|
|
||||||
##### 8.1.0 - Multi Meter Support (2021-08-12)
|
|
||||||
|
|
||||||
* GPIO: using the general mqtt main topic for GPIO
|
|
||||||
|
|
||||||
* Upgrade digital CNN to v12.0.0 (added new images)
|
|
||||||
* Update tfmicro to new master (2021-08-07)
|
|
||||||
* Bug fix: remove text in mqtt value, remove connect limit in wlan reconnet
|
|
||||||
|
|
||||||
##### 8.0.5 - Multi Meter Support (2021-08-01)
|
|
||||||
|
|
||||||
* NEW 8.0.5: bug fix: saving prevalue
|
|
||||||
* NEW 8.0.4: bug fix: load config.ini after upgrade
|
|
||||||
* NEW 8.0.3: bug fix: reboot during `config.ini` handling, html error
|
|
||||||
* NEW 8.0.2: saving roundes prevalue, bug fix html server
|
|
||||||
* NEW 8.0.1: bug fix: html handling of parameter `FixedExposure` and `ImageSize`
|
|
||||||
* Dual / multi meter support (more than 1 number to be recognized)
|
|
||||||
This is implemented with the feature "number" on the ROI definition as well as selected options
|
|
||||||
* MQTT: standardization of the naming - including new topics (`json`, `freeMem `, `uptime`)c
|
|
||||||
* Preparation for extended GPIO support (thanks to Zwerk2k) - not tested and fully functional yet
|
|
||||||
* Bug fixing: html server, memory leak, MQTT connect, hostname, turn of flash LED
|
|
||||||
|
|
||||||
<span style="color: red;">**ATTENTION: the configuration and prevalue files are modified automatically and will not be backward compatible!**</span>
|
|
||||||
|
|
||||||
|
|
||||||
## Additional ideas
|
## Additional ideas
|
||||||
@@ -123,9 +104,9 @@ There are some ideas and feature request, which are not followed currently - mai
|
|||||||
|
|
||||||
## History
|
## History
|
||||||
|
|
||||||
##### 7.1.2 MQTT-Update - (2021-06-17)
|
##### 8.5.0 - Multi Meter Support (2021-10-07)
|
||||||
|
|
||||||
**7.0.1 MQTT-Update - (2021-05-13)**
|
##### 7.1.2 MQTT-Update - (2021-06-17)
|
||||||
|
|
||||||
##### 6.7.2 Image Processing in Memory - (2021-05-01)
|
##### 6.7.2 Image Processing in Memory - (2021-05-01)
|
||||||
|
|
||||||
|
|||||||
3
code/.helper/copy-esp-idf.bat
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
copy "..\..\code\build\esp32cam-server-only.bin" "..\..\firmware\firmware.bin"
|
||||||
|
copy "..\..\code\build\bootloader\bootloader.bin" "..\..\firmware\bootloader.bin"
|
||||||
|
copy "..\..\code\build\partition_table\partition-table.bin" "..\..\firmware\partitions.bin"
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
#include "SmartLeds.h"
|
|
||||||
|
|
||||||
IsrCore SmartLed::_interruptCore = CoreCurrent;
|
|
||||||
intr_handle_t SmartLed::_interruptHandle = NULL;
|
|
||||||
|
|
||||||
SmartLed*& IRAM_ATTR SmartLed::ledForChannel( int channel ) {
|
|
||||||
static SmartLed* table[8] = { nullptr };
|
|
||||||
assert( channel < 8 );
|
|
||||||
return table[ channel ];
|
|
||||||
}
|
|
||||||
|
|
||||||
void IRAM_ATTR SmartLed::interruptHandler(void*) {
|
|
||||||
for (int channel = 0; channel != 8; channel++) {
|
|
||||||
auto self = ledForChannel( channel );
|
|
||||||
|
|
||||||
if ( RMT.int_st.val & (1 << (24 + channel ) ) ) { // tx_thr_event
|
|
||||||
if ( self )
|
|
||||||
self->copyRmtHalfBlock();
|
|
||||||
RMT.int_clr.val |= 1 << ( 24 + channel );
|
|
||||||
} else if ( RMT.int_st.val & ( 1 << (3 * channel ) ) ) { // tx_end
|
|
||||||
if ( self )
|
|
||||||
xSemaphoreGiveFromISR( self->_finishedFlag, nullptr );
|
|
||||||
RMT.int_clr.val |= 1 << ( 3 * channel );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void IRAM_ATTR SmartLed::copyRmtHalfBlock() {
|
|
||||||
int offset = detail::MAX_PULSES * _halfIdx;
|
|
||||||
_halfIdx = !_halfIdx;
|
|
||||||
int len = 3 - _componentPosition + 3 * ( _count - 1 );
|
|
||||||
len = std::min( len, detail::MAX_PULSES / 8 );
|
|
||||||
|
|
||||||
if ( !len ) {
|
|
||||||
for ( int i = 0; i < detail::MAX_PULSES; i++) {
|
|
||||||
RMTMEM.chan[ _channel].data32[i + offset ].val = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int i;
|
|
||||||
for ( i = 0; i != len && _pixelPosition != _count; i++ ) {
|
|
||||||
uint8_t val = _buffer[ _pixelPosition ].getGrb( _componentPosition );
|
|
||||||
for ( int j = 0; j != 8; j++, val <<= 1 ) {
|
|
||||||
int bit = val >> 7;
|
|
||||||
int idx = i * 8 + offset + j;
|
|
||||||
RMTMEM.chan[ _channel ].data32[ idx ].val = _bitToRmt[ bit & 0x01 ].value;
|
|
||||||
}
|
|
||||||
if ( _pixelPosition == _count - 1 && _componentPosition == 2 ) {
|
|
||||||
RMTMEM.chan[ _channel ].data32[ i * 8 + offset + 7 ].duration1 =
|
|
||||||
_timing.TRS / ( detail::RMT_DURATION_NS * detail::DIVIDER );
|
|
||||||
}
|
|
||||||
|
|
||||||
_componentPosition++;
|
|
||||||
if ( _componentPosition == 3 ) {
|
|
||||||
_componentPosition = 0;
|
|
||||||
_pixelPosition++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for ( i *= 8; i != detail::MAX_PULSES; i++ ) {
|
|
||||||
RMTMEM.chan[ _channel ].data32[ i + offset ].val = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
530
code/SmartLeds.h
@@ -1,530 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
/*
|
|
||||||
* A C++ driver for the WS2812 LEDs using the RMT peripheral on the ESP32.
|
|
||||||
*
|
|
||||||
* Jan "yaqwsx" Mrázek <email@honzamrazek.cz>
|
|
||||||
*
|
|
||||||
* Based on the work by Martin F. Falatic - https://github.com/FozzTexx/ws2812-demo
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Permission is hereby granted, 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 in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
* THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <memory>
|
|
||||||
#include <cassert>
|
|
||||||
#include <cstring>
|
|
||||||
|
|
||||||
#if defined ( ARDUINO )
|
|
||||||
extern "C" { // ...someone forgot to put in the includes...
|
|
||||||
#include "esp32-hal.h"
|
|
||||||
#include "esp_intr_alloc.h"
|
|
||||||
#include "esp_ipc.h"
|
|
||||||
#include "driver/gpio.h"
|
|
||||||
#include "driver/periph_ctrl.h"
|
|
||||||
#include "freertos/semphr.h"
|
|
||||||
#include "soc/rmt_struct.h"
|
|
||||||
#include <driver/spi_master.h>
|
|
||||||
#include "esp_idf_version.h"
|
|
||||||
#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL( 4, 0, 0 )
|
|
||||||
#include "soc/dport_reg.h"
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#elif defined ( ESP_PLATFORM )
|
|
||||||
extern "C" { // ...someone forgot to put in the includes...
|
|
||||||
#include <esp_intr_alloc.h>
|
|
||||||
#include <esp_ipc.h>
|
|
||||||
#include <driver/gpio.h>
|
|
||||||
#include <freertos/FreeRTOS.h>
|
|
||||||
#include <freertos/semphr.h>
|
|
||||||
#include <soc/dport_reg.h>
|
|
||||||
#include <soc/gpio_sig_map.h>
|
|
||||||
#include <soc/rmt_struct.h>
|
|
||||||
#include <driver/spi_master.h>
|
|
||||||
}
|
|
||||||
#include <stdio.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "Color.h"
|
|
||||||
|
|
||||||
namespace detail {
|
|
||||||
|
|
||||||
struct TimingParams {
|
|
||||||
uint32_t T0H;
|
|
||||||
uint32_t T1H;
|
|
||||||
uint32_t T0L;
|
|
||||||
uint32_t T1L;
|
|
||||||
uint32_t TRS;
|
|
||||||
};
|
|
||||||
|
|
||||||
union RmtPulsePair {
|
|
||||||
struct {
|
|
||||||
int duration0:15;
|
|
||||||
int level0:1;
|
|
||||||
int duration1:15;
|
|
||||||
int level1:1;
|
|
||||||
};
|
|
||||||
uint32_t value;
|
|
||||||
};
|
|
||||||
|
|
||||||
static const int DIVIDER = 4; // 8 still seems to work, but timings become marginal
|
|
||||||
static const int MAX_PULSES = 32; // A channel has a 64 "pulse" buffer - we use half per pass
|
|
||||||
static const double RMT_DURATION_NS = 12.5; // minimum time of a single RMT duration based on clock ns
|
|
||||||
|
|
||||||
} // namespace detail
|
|
||||||
|
|
||||||
using LedType = detail::TimingParams;
|
|
||||||
|
|
||||||
static const LedType LED_WS2812 = { 350, 700, 800, 600, 50000 };
|
|
||||||
static const LedType LED_WS2812B = { 400, 850, 850, 400, 50100 };
|
|
||||||
static const LedType LED_SK6812 = { 300, 600, 900, 600, 80000 };
|
|
||||||
static const LedType LED_WS2813 = { 350, 800, 350, 350, 300000 };
|
|
||||||
|
|
||||||
enum BufferType { SingleBuffer = 0, DoubleBuffer };
|
|
||||||
|
|
||||||
enum IsrCore { CoreFirst = 0, CoreSecond = 1, CoreCurrent = 2};
|
|
||||||
|
|
||||||
class SmartLed {
|
|
||||||
public:
|
|
||||||
// The RMT interrupt must not run on the same core as WiFi interrupts, otherwise SmartLeds
|
|
||||||
// can't fill the RMT buffer fast enough, resulting in rendering artifacts.
|
|
||||||
// Usually, that means you have to set isrCore == CoreSecond.
|
|
||||||
//
|
|
||||||
// If you use anything other than CoreCurrent, the FreeRTOS scheduler MUST be already running,
|
|
||||||
// so you can't use it if you define SmartLed as global variable.
|
|
||||||
SmartLed( const LedType& type, int count, int pin, int channel = 0, BufferType doubleBuffer = SingleBuffer, IsrCore isrCore = CoreCurrent)
|
|
||||||
: _timing( type ),
|
|
||||||
_channel( channel ),
|
|
||||||
_count( count ),
|
|
||||||
_firstBuffer( new Rgb[ count ] ),
|
|
||||||
_secondBuffer( doubleBuffer ? new Rgb[ count ] : nullptr ),
|
|
||||||
_finishedFlag( xSemaphoreCreateBinary() )
|
|
||||||
{
|
|
||||||
assert( channel >= 0 && channel < 8 );
|
|
||||||
assert( ledForChannel( channel ) == nullptr );
|
|
||||||
|
|
||||||
xSemaphoreGive( _finishedFlag );
|
|
||||||
|
|
||||||
DPORT_SET_PERI_REG_MASK( DPORT_PERIP_CLK_EN_REG, DPORT_RMT_CLK_EN );
|
|
||||||
DPORT_CLEAR_PERI_REG_MASK( DPORT_PERIP_RST_EN_REG, DPORT_RMT_RST );
|
|
||||||
|
|
||||||
PIN_FUNC_SELECT( GPIO_PIN_MUX_REG[ pin ], 2 );
|
|
||||||
gpio_set_direction( static_cast< gpio_num_t >( pin ), GPIO_MODE_OUTPUT );
|
|
||||||
gpio_matrix_out( static_cast< gpio_num_t >( pin ), RMT_SIG_OUT0_IDX + _channel, 0, 0 );
|
|
||||||
initChannel( _channel );
|
|
||||||
|
|
||||||
RMT.tx_lim_ch[ _channel ].limit = detail::MAX_PULSES;
|
|
||||||
RMT.int_ena.val |= 1 << ( 24 + _channel );
|
|
||||||
RMT.int_ena.val |= 1 << ( 3 * _channel );
|
|
||||||
|
|
||||||
_bitToRmt[ 0 ].level0 = 1;
|
|
||||||
_bitToRmt[ 0 ].level1 = 0;
|
|
||||||
_bitToRmt[ 0 ].duration0 = _timing.T0H / ( detail::RMT_DURATION_NS * detail::DIVIDER );
|
|
||||||
_bitToRmt[ 0 ].duration1 = _timing.T0L / ( detail::RMT_DURATION_NS * detail::DIVIDER );
|
|
||||||
|
|
||||||
_bitToRmt[ 1 ].level0 = 1;
|
|
||||||
_bitToRmt[ 1 ].level1 = 0;
|
|
||||||
_bitToRmt[ 1 ].duration0 = _timing.T1H / ( detail::RMT_DURATION_NS * detail::DIVIDER );
|
|
||||||
_bitToRmt[ 1 ].duration1 = _timing.T1L / ( detail::RMT_DURATION_NS * detail::DIVIDER );
|
|
||||||
|
|
||||||
if ( !anyAlive() ) {
|
|
||||||
_interruptCore = isrCore;
|
|
||||||
if(isrCore != CoreCurrent) {
|
|
||||||
ESP_ERROR_CHECK(esp_ipc_call_blocking(isrCore, registerInterrupt, NULL));
|
|
||||||
} else {
|
|
||||||
registerInterrupt(NULL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ledForChannel( channel ) = this;
|
|
||||||
}
|
|
||||||
|
|
||||||
~SmartLed() {
|
|
||||||
ledForChannel( _channel ) = nullptr;
|
|
||||||
if ( !anyAlive() ) {
|
|
||||||
if(_interruptCore != CoreCurrent) {
|
|
||||||
ESP_ERROR_CHECK(esp_ipc_call_blocking(_interruptCore, unregisterInterrupt, NULL));
|
|
||||||
} else {
|
|
||||||
unregisterInterrupt(NULL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
vSemaphoreDelete( _finishedFlag );
|
|
||||||
}
|
|
||||||
|
|
||||||
Rgb& operator[]( int idx ) {
|
|
||||||
return _firstBuffer[ idx ];
|
|
||||||
}
|
|
||||||
|
|
||||||
const Rgb& operator[]( int idx ) const {
|
|
||||||
return _firstBuffer[ idx ];
|
|
||||||
}
|
|
||||||
|
|
||||||
void show() {
|
|
||||||
_buffer = _firstBuffer.get();
|
|
||||||
startTransmission();
|
|
||||||
swapBuffers();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wait( TickType_t timeout = portMAX_DELAY ) {
|
|
||||||
if( xSemaphoreTake( _finishedFlag, timeout ) == pdTRUE ) {
|
|
||||||
xSemaphoreGive( _finishedFlag );
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
int size() const {
|
|
||||||
return _count;
|
|
||||||
}
|
|
||||||
|
|
||||||
Rgb *begin() { return _firstBuffer.get(); }
|
|
||||||
const Rgb *begin() const { return _firstBuffer.get(); }
|
|
||||||
const Rgb *cbegin() const { return _firstBuffer.get(); }
|
|
||||||
|
|
||||||
Rgb *end() { return _firstBuffer.get() + _count; }
|
|
||||||
const Rgb *end() const { return _firstBuffer.get() + _count; }
|
|
||||||
const Rgb *cend() const { return _firstBuffer.get() + _count; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
static intr_handle_t _interruptHandle;
|
|
||||||
static IsrCore _interruptCore;
|
|
||||||
|
|
||||||
static void initChannel( int channel ) {
|
|
||||||
RMT.apb_conf.fifo_mask = 1; //enable memory access, instead of FIFO mode.
|
|
||||||
RMT.apb_conf.mem_tx_wrap_en = 1; //wrap around when hitting end of buffer
|
|
||||||
RMT.conf_ch[ channel ].conf0.div_cnt = detail::DIVIDER;
|
|
||||||
RMT.conf_ch[ channel ].conf0.mem_size = 1;
|
|
||||||
RMT.conf_ch[ channel ].conf0.carrier_en = 0;
|
|
||||||
RMT.conf_ch[ channel ].conf0.carrier_out_lv = 1;
|
|
||||||
RMT.conf_ch[ channel ].conf0.mem_pd = 0;
|
|
||||||
|
|
||||||
RMT.conf_ch[ channel ].conf1.rx_en = 0;
|
|
||||||
RMT.conf_ch[ channel ].conf1.mem_owner = 0;
|
|
||||||
RMT.conf_ch[ channel ].conf1.tx_conti_mode = 0; //loop back mode.
|
|
||||||
RMT.conf_ch[ channel ].conf1.ref_always_on = 1; // use apb clock: 80M
|
|
||||||
RMT.conf_ch[ channel ].conf1.idle_out_en = 1;
|
|
||||||
RMT.conf_ch[ channel ].conf1.idle_out_lv = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void registerInterrupt(void *) {
|
|
||||||
ESP_ERROR_CHECK(esp_intr_alloc( ETS_RMT_INTR_SOURCE, 0, interruptHandler, nullptr, &_interruptHandle));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void unregisterInterrupt(void*) {
|
|
||||||
esp_intr_free( _interruptHandle );
|
|
||||||
}
|
|
||||||
|
|
||||||
static SmartLed*& IRAM_ATTR ledForChannel( int channel );
|
|
||||||
static void IRAM_ATTR interruptHandler( void* );
|
|
||||||
|
|
||||||
void IRAM_ATTR copyRmtHalfBlock();
|
|
||||||
|
|
||||||
void swapBuffers() {
|
|
||||||
if ( _secondBuffer )
|
|
||||||
_firstBuffer.swap( _secondBuffer );
|
|
||||||
}
|
|
||||||
|
|
||||||
void startTransmission() {
|
|
||||||
// Invalid use of the library
|
|
||||||
if( xSemaphoreTake( _finishedFlag, 0 ) != pdTRUE )
|
|
||||||
abort();
|
|
||||||
|
|
||||||
_pixelPosition = _componentPosition = _halfIdx = 0;
|
|
||||||
copyRmtHalfBlock();
|
|
||||||
if ( _pixelPosition < _count )
|
|
||||||
copyRmtHalfBlock();
|
|
||||||
|
|
||||||
RMT.conf_ch[ _channel ].conf1.mem_rd_rst = 1;
|
|
||||||
RMT.conf_ch[ _channel ].conf1.tx_start = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool anyAlive() {
|
|
||||||
for ( int i = 0; i != 8; i++ )
|
|
||||||
if ( ledForChannel( i ) != nullptr ) return true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
const LedType& _timing;
|
|
||||||
int _channel;
|
|
||||||
detail::RmtPulsePair _bitToRmt[ 2 ];
|
|
||||||
int _count;
|
|
||||||
std::unique_ptr< Rgb[] > _firstBuffer;
|
|
||||||
std::unique_ptr< Rgb[] > _secondBuffer;
|
|
||||||
Rgb *_buffer;
|
|
||||||
|
|
||||||
xSemaphoreHandle _finishedFlag;
|
|
||||||
|
|
||||||
int _pixelPosition;
|
|
||||||
int _componentPosition;
|
|
||||||
int _halfIdx;
|
|
||||||
};
|
|
||||||
|
|
||||||
class Apa102 {
|
|
||||||
public:
|
|
||||||
struct ApaRgb {
|
|
||||||
ApaRgb( uint8_t r = 0, uint8_t g = 0, uint32_t b = 0, uint32_t v = 0xFF )
|
|
||||||
: v( 0xE0 | v ), b( b ), g( g ), r( r )
|
|
||||||
{}
|
|
||||||
|
|
||||||
ApaRgb& operator=( const Rgb& o ) {
|
|
||||||
r = o.r;
|
|
||||||
g = o.g;
|
|
||||||
b = o.b;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
ApaRgb& operator=( const Hsv& o ) {
|
|
||||||
*this = Rgb{ o };
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t v, b, g, r;
|
|
||||||
};
|
|
||||||
|
|
||||||
static const int FINAL_FRAME_SIZE = 4;
|
|
||||||
static const int TRANS_COUNT = 2 + 8;
|
|
||||||
|
|
||||||
Apa102( int count, int clkpin, int datapin, BufferType doubleBuffer = SingleBuffer )
|
|
||||||
: _count( count ),
|
|
||||||
_firstBuffer( new ApaRgb[ count ] ),
|
|
||||||
_secondBuffer( doubleBuffer ? new ApaRgb[ count ] : nullptr ),
|
|
||||||
_initFrame( 0 )
|
|
||||||
{
|
|
||||||
spi_bus_config_t buscfg;
|
|
||||||
memset( &buscfg, 0, sizeof( buscfg ) );
|
|
||||||
buscfg.mosi_io_num = datapin;
|
|
||||||
buscfg.miso_io_num = -1;
|
|
||||||
buscfg.sclk_io_num = clkpin;
|
|
||||||
buscfg.quadwp_io_num = -1;
|
|
||||||
buscfg.quadhd_io_num = -1;
|
|
||||||
buscfg.max_transfer_sz = 65535;
|
|
||||||
|
|
||||||
spi_device_interface_config_t devcfg;
|
|
||||||
memset( &devcfg, 0, sizeof( devcfg ) );
|
|
||||||
devcfg.clock_speed_hz = 1000000;
|
|
||||||
devcfg.mode = 0;
|
|
||||||
devcfg.spics_io_num = -1;
|
|
||||||
devcfg.queue_size = TRANS_COUNT;
|
|
||||||
devcfg.pre_cb = nullptr;
|
|
||||||
|
|
||||||
auto ret = spi_bus_initialize( HSPI_HOST, &buscfg, 1 );
|
|
||||||
assert( ret == ESP_OK );
|
|
||||||
|
|
||||||
ret = spi_bus_add_device( HSPI_HOST, &devcfg, &_spi );
|
|
||||||
assert( ret == ESP_OK );
|
|
||||||
|
|
||||||
std::fill_n( _finalFrame, FINAL_FRAME_SIZE, 0xFFFFFFFF );
|
|
||||||
}
|
|
||||||
|
|
||||||
~Apa102() {
|
|
||||||
// ToDo
|
|
||||||
}
|
|
||||||
|
|
||||||
ApaRgb& operator[]( int idx ) {
|
|
||||||
return _firstBuffer[ idx ];
|
|
||||||
}
|
|
||||||
|
|
||||||
const ApaRgb& operator[]( int idx ) const {
|
|
||||||
return _firstBuffer[ idx ];
|
|
||||||
}
|
|
||||||
|
|
||||||
void show() {
|
|
||||||
_buffer = _firstBuffer.get();
|
|
||||||
startTransmission();
|
|
||||||
swapBuffers();
|
|
||||||
}
|
|
||||||
|
|
||||||
void wait() {
|
|
||||||
for ( int i = 0; i != _transCount; i++ ) {
|
|
||||||
spi_transaction_t *t;
|
|
||||||
spi_device_get_trans_result( _spi, &t, portMAX_DELAY );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private:
|
|
||||||
void swapBuffers() {
|
|
||||||
if ( _secondBuffer )
|
|
||||||
_firstBuffer.swap( _secondBuffer );
|
|
||||||
}
|
|
||||||
|
|
||||||
void startTransmission() {
|
|
||||||
for ( int i = 0; i != TRANS_COUNT; i++ ) {
|
|
||||||
_transactions[ i ].cmd = 0;
|
|
||||||
_transactions[ i ].addr = 0;
|
|
||||||
_transactions[ i ].flags = 0;
|
|
||||||
_transactions[ i ].rxlength = 0;
|
|
||||||
_transactions[ i ].rx_buffer = nullptr;
|
|
||||||
}
|
|
||||||
// Init frame
|
|
||||||
_transactions[ 0 ].length = 32;
|
|
||||||
_transactions[ 0 ].tx_buffer = &_initFrame;
|
|
||||||
spi_device_queue_trans( _spi, _transactions + 0, portMAX_DELAY );
|
|
||||||
// Data
|
|
||||||
_transactions[ 1 ].length = 32 * _count;
|
|
||||||
_transactions[ 1 ].tx_buffer = _buffer;
|
|
||||||
spi_device_queue_trans( _spi, _transactions + 1, portMAX_DELAY );
|
|
||||||
_transCount = 2;
|
|
||||||
// End frame
|
|
||||||
for ( int i = 0; i != 1 + _count / 32 / FINAL_FRAME_SIZE; i++ ) {
|
|
||||||
_transactions[ 2 + i ].length = 32 * FINAL_FRAME_SIZE;
|
|
||||||
_transactions[ 2 + i ].tx_buffer = _finalFrame;
|
|
||||||
spi_device_queue_trans( _spi, _transactions + 2 + i, portMAX_DELAY );
|
|
||||||
_transCount++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
spi_device_handle_t _spi;
|
|
||||||
int _count;
|
|
||||||
std::unique_ptr< ApaRgb[] > _firstBuffer, _secondBuffer;
|
|
||||||
ApaRgb *_buffer;
|
|
||||||
|
|
||||||
spi_transaction_t _transactions[ TRANS_COUNT ];
|
|
||||||
int _transCount;
|
|
||||||
|
|
||||||
uint32_t _initFrame;
|
|
||||||
uint32_t _finalFrame[ FINAL_FRAME_SIZE ];
|
|
||||||
};
|
|
||||||
|
|
||||||
class LDP8806 {
|
|
||||||
public:
|
|
||||||
struct LDP8806_GRB {
|
|
||||||
|
|
||||||
LDP8806_GRB( uint8_t g_7bit = 0, uint8_t r_7bit = 0, uint32_t b_7bit = 0 )
|
|
||||||
: g( g_7bit ), r( r_7bit ), b( b_7bit )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
LDP8806_GRB& operator=( const Rgb& o ) {
|
|
||||||
//Convert 8->7bit colour
|
|
||||||
r = ( o.r * 127 / 256 ) | 0x80;
|
|
||||||
g = ( o.g * 127 / 256 ) | 0x80;
|
|
||||||
b = ( o.b * 127 / 256 ) | 0x80;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
LDP8806_GRB& operator=( const Hsv& o ) {
|
|
||||||
*this = Rgb{ o };
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t g, r, b;
|
|
||||||
};
|
|
||||||
|
|
||||||
static const int LED_FRAME_SIZE_BYTES = sizeof( LDP8806_GRB );
|
|
||||||
static const int LATCH_FRAME_SIZE_BYTES = 3;
|
|
||||||
static const int TRANS_COUNT_MAX = 20;//Arbitrary, supports up to 600 LED
|
|
||||||
|
|
||||||
LDP8806( int count, int clkpin, int datapin, BufferType doubleBuffer = SingleBuffer, uint32_t clock_speed_hz = 2000000 )
|
|
||||||
: _count( count ),
|
|
||||||
_firstBuffer( new LDP8806_GRB[ count ] ),
|
|
||||||
_secondBuffer( doubleBuffer ? new LDP8806_GRB[ count ] : nullptr ),
|
|
||||||
// one 'latch'/start-of-data mark frame for every 32 leds
|
|
||||||
_latchFrames( ( count + 31 ) / 32 )
|
|
||||||
{
|
|
||||||
spi_bus_config_t buscfg;
|
|
||||||
memset( &buscfg, 0, sizeof( buscfg ) );
|
|
||||||
buscfg.mosi_io_num = datapin;
|
|
||||||
buscfg.miso_io_num = -1;
|
|
||||||
buscfg.sclk_io_num = clkpin;
|
|
||||||
buscfg.quadwp_io_num = -1;
|
|
||||||
buscfg.quadhd_io_num = -1;
|
|
||||||
buscfg.max_transfer_sz = 65535;
|
|
||||||
|
|
||||||
spi_device_interface_config_t devcfg;
|
|
||||||
memset( &devcfg, 0, sizeof( devcfg ) );
|
|
||||||
devcfg.clock_speed_hz = clock_speed_hz;
|
|
||||||
devcfg.mode = 0;
|
|
||||||
devcfg.spics_io_num = -1;
|
|
||||||
devcfg.queue_size = TRANS_COUNT_MAX;
|
|
||||||
devcfg.pre_cb = nullptr;
|
|
||||||
|
|
||||||
auto ret = spi_bus_initialize( HSPI_HOST, &buscfg, 1 );
|
|
||||||
assert( ret == ESP_OK );
|
|
||||||
|
|
||||||
ret = spi_bus_add_device( HSPI_HOST, &devcfg, &_spi );
|
|
||||||
assert( ret == ESP_OK );
|
|
||||||
|
|
||||||
std::fill_n( _latchBuffer, LATCH_FRAME_SIZE_BYTES, 0x0 );
|
|
||||||
}
|
|
||||||
|
|
||||||
~LDP8806() {
|
|
||||||
// noop
|
|
||||||
}
|
|
||||||
|
|
||||||
LDP8806_GRB& operator[]( int idx ) {
|
|
||||||
return _firstBuffer[ idx ];
|
|
||||||
}
|
|
||||||
|
|
||||||
const LDP8806_GRB& operator[]( int idx ) const {
|
|
||||||
return _firstBuffer[ idx ];
|
|
||||||
}
|
|
||||||
|
|
||||||
void show() {
|
|
||||||
_buffer = _firstBuffer.get();
|
|
||||||
startTransmission();
|
|
||||||
swapBuffers();
|
|
||||||
}
|
|
||||||
|
|
||||||
void wait() {
|
|
||||||
while ( _transCount-- ) {
|
|
||||||
spi_transaction_t *t;
|
|
||||||
spi_device_get_trans_result( _spi, &t, portMAX_DELAY );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private:
|
|
||||||
void swapBuffers() {
|
|
||||||
if ( _secondBuffer )
|
|
||||||
_firstBuffer.swap( _secondBuffer );
|
|
||||||
}
|
|
||||||
|
|
||||||
void startTransmission() {
|
|
||||||
_transCount = 0;
|
|
||||||
for ( int i = 0; i != TRANS_COUNT_MAX; i++ ) {
|
|
||||||
_transactions[ i ].cmd = 0;
|
|
||||||
_transactions[ i ].addr = 0;
|
|
||||||
_transactions[ i ].flags = 0;
|
|
||||||
_transactions[ i ].rxlength = 0;
|
|
||||||
_transactions[ i ].rx_buffer = nullptr;
|
|
||||||
}
|
|
||||||
// LED Data
|
|
||||||
_transactions[ 0 ].length = ( LED_FRAME_SIZE_BYTES * 8 ) * _count;
|
|
||||||
_transactions[ 0 ].tx_buffer = _buffer;
|
|
||||||
spi_device_queue_trans( _spi, _transactions + _transCount, portMAX_DELAY );
|
|
||||||
_transCount++;
|
|
||||||
|
|
||||||
// 'latch'/start-of-data marker frames
|
|
||||||
for ( int i = 0; i < _latchFrames; i++ ) {
|
|
||||||
_transactions[ _transCount ].length = ( LATCH_FRAME_SIZE_BYTES * 8 );
|
|
||||||
_transactions[ _transCount ].tx_buffer = _latchBuffer;
|
|
||||||
spi_device_queue_trans( _spi, _transactions + _transCount, portMAX_DELAY );
|
|
||||||
_transCount++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
spi_device_handle_t _spi;
|
|
||||||
int _count;
|
|
||||||
std::unique_ptr< LDP8806_GRB[] > _firstBuffer, _secondBuffer;
|
|
||||||
LDP8806_GRB *_buffer;
|
|
||||||
|
|
||||||
spi_transaction_t _transactions[ TRANS_COUNT_MAX ];
|
|
||||||
int _transCount;
|
|
||||||
|
|
||||||
int _latchFrames;
|
|
||||||
uint8_t _latchBuffer[ LATCH_FRAME_SIZE_BYTES ];
|
|
||||||
};
|
|
||||||
@@ -400,24 +400,19 @@ bool GpioHandler::readConfig()
|
|||||||
|
|
||||||
if (gpioExtLED > 0)
|
if (gpioExtLED > 0)
|
||||||
{
|
{
|
||||||
// LogFile.WriteToFile("Startsequence 06");
|
// LogFile.WriteToFile("Startsequence 06"); // Nremove
|
||||||
// vTaskDelay( xDelay );
|
// vTaskDelay( xDelay );
|
||||||
// xDelay = 5000 / portTICK_PERIOD_MS;
|
// xDelay = 5000 / portTICK_PERIOD_MS;
|
||||||
// printf("main: sleep for : %ldms\n", (long) xDelay);
|
// printf("main: sleep for : %ldms\n", (long) xDelay);
|
||||||
|
|
||||||
SmartLed leds( LED_WS2812, 2, GPIO_NUM_12, 0, DoubleBuffer );
|
// SmartLed leds( LED_WS2812, 2, GPIO_NUM_12, 0, DoubleBuffer );
|
||||||
|
|
||||||
|
|
||||||
leds[ 0 ] = Rgb{ 255, 0, 0 };
|
// leds[ 0 ] = Rgb{ 255, 0, 0 };
|
||||||
leds[ 1 ] = Rgb{ 255, 255, 255 };
|
// leds[ 1 ] = Rgb{ 255, 255, 255 };
|
||||||
leds.show();
|
// leds.show();
|
||||||
/*
|
// SmartLed leds = new SmartLed(LEDType, LEDNumbers, gpioExtLED, 0, DoubleBuffer);
|
||||||
// _SmartLED = new SmartLed(LEDType, LEDNumbers, gpioExtLED, 0, DoubleBuffer);
|
// _SmartLED = new SmartLed( LED_WS2812, 2, GPIO_NUM_12, 0, DoubleBuffer );
|
||||||
_SmartLED = new SmartLed( LED_WS2812, 2, GPIO_NUM_12, 0, DoubleBuffer );
|
|
||||||
(*_SmartLED)[ 0 ] = Rgb{ 255, 0, 0 };
|
|
||||||
(*_SmartLED)[ 1 ] = LEDColor;
|
|
||||||
_SmartLED->show();
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -565,18 +560,41 @@ void GpioHandler::flashLightEnable(bool value)
|
|||||||
{
|
{
|
||||||
if (it->second->getMode() == GPIO_PIN_MODE_EXTERNAL_FLASH_WS281X)
|
if (it->second->getMode() == GPIO_PIN_MODE_EXTERNAL_FLASH_WS281X)
|
||||||
{
|
{
|
||||||
|
#ifdef __LEDGLOBAL
|
||||||
|
if (leds_global == NULL) {
|
||||||
|
ESP_LOGI(TAG_SERVERGPIO, "init SmartLed: LEDNumber=%d, GPIO=%d", LEDNumbers, (int)it->second->getGPIO());
|
||||||
|
leds_global = new SmartLed( LEDType, LEDNumbers, it->second->getGPIO(), 0, DoubleBuffer );
|
||||||
|
} else {
|
||||||
|
// wait until we can update: https://github.com/RoboticsBrno/SmartLeds/issues/10#issuecomment-386921623
|
||||||
|
leds_global->wait();
|
||||||
|
}
|
||||||
|
#else
|
||||||
SmartLed leds( LEDType, LEDNumbers, it->second->getGPIO(), 0, DoubleBuffer );
|
SmartLed leds( LEDType, LEDNumbers, it->second->getGPIO(), 0, DoubleBuffer );
|
||||||
|
#endif
|
||||||
|
|
||||||
if (value)
|
if (value)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < LEDNumbers; ++i)
|
for (int i = 0; i < LEDNumbers; ++i)
|
||||||
|
#ifdef __LEDGLOBAL
|
||||||
|
(*leds_global)[i] = LEDColor;
|
||||||
|
#else
|
||||||
leds[i] = LEDColor;
|
leds[i] = LEDColor;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for (int i = 0; i < LEDNumbers; ++i)
|
for (int i = 0; i < LEDNumbers; ++i)
|
||||||
|
#ifdef __LEDGLOBAL
|
||||||
|
(*leds_global)[i] = Rgb{0, 0, 0};
|
||||||
|
#else
|
||||||
leds[i] = Rgb{0, 0, 0};
|
leds[i] = Rgb{0, 0, 0};
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
leds.show();
|
#ifdef __LEDGLOBAL
|
||||||
|
leds_global->show();
|
||||||
|
#else
|
||||||
|
leds.show();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,9 @@
|
|||||||
|
|
||||||
//#include "ClassControllCamera.h"
|
//#include "ClassControllCamera.h"
|
||||||
|
|
||||||
|
// wenn __LEDGLOBAL definiert ist, wird eine globale Variable für die LED-Ansteuerung verwendet, ansonsten lokal und jedesmal neu
|
||||||
|
#define __LEDGLOBAL
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
GPIO_PIN_MODE_DISABLED = 0x0,
|
GPIO_PIN_MODE_DISABLED = 0x0,
|
||||||
GPIO_PIN_MODE_INPUT = 0x1,
|
GPIO_PIN_MODE_INPUT = 0x1,
|
||||||
@@ -86,7 +89,9 @@ private:
|
|||||||
int LEDNumbers = 2;
|
int LEDNumbers = 2;
|
||||||
Rgb LEDColor = Rgb{ 255, 255, 255 };
|
Rgb LEDColor = Rgb{ 255, 255, 255 };
|
||||||
LedType LEDType = LED_WS2812;
|
LedType LEDType = LED_WS2812;
|
||||||
|
#ifdef __LEDGLOBAL
|
||||||
|
SmartLed *leds_global = NULL;
|
||||||
|
#endif
|
||||||
|
|
||||||
bool readConfig();
|
bool readConfig();
|
||||||
void clear();
|
void clear();
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ static camera_config_t camera_config = {
|
|||||||
|
|
||||||
//XCLK 20MHz or 10MHz for OV2640 double FPS (Experimental)
|
//XCLK 20MHz or 10MHz for OV2640 double FPS (Experimental)
|
||||||
// .xclk_freq_hz = 20000000, // Orginalwert
|
// .xclk_freq_hz = 20000000, // Orginalwert
|
||||||
.xclk_freq_hz = 5000000, // Test, um die Bildfehler los zu werden !!!!
|
.xclk_freq_hz = 5000000, // Test, um die Bildfehler los zu werden !!!!
|
||||||
.ledc_timer = LEDC_TIMER_0,
|
.ledc_timer = LEDC_TIMER_0,
|
||||||
.ledc_channel = LEDC_CHANNEL_0,
|
.ledc_channel = LEDC_CHANNEL_0,
|
||||||
|
|
||||||
@@ -86,6 +86,8 @@ static camera_config_t camera_config = {
|
|||||||
|
|
||||||
.jpeg_quality = 5, //0-63 lower number means higher quality
|
.jpeg_quality = 5, //0-63 lower number means higher quality
|
||||||
.fb_count = 1 //if more than one, i2s runs in continuous mode. Use only with JPEG
|
.fb_count = 1 //if more than one, i2s runs in continuous mode. Use only with JPEG
|
||||||
|
// .grab_mode = CAMERA_GRAB_WHEN_EMPTY,
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -279,13 +281,23 @@ esp_err_t CCamera::CaptureToBasisImage(CImageBasis *_Image, int delay)
|
|||||||
ESP_LOGE(TAGCAMERACLASS, "CaptureToBasisImage: Camera Capture Failed");
|
ESP_LOGE(TAGCAMERACLASS, "CaptureToBasisImage: Camera Capture Failed");
|
||||||
LEDOnOff(false);
|
LEDOnOff(false);
|
||||||
LightOnOff(false);
|
LightOnOff(false);
|
||||||
doReboot();
|
|
||||||
|
LogFile.SwitchOnOff(true);
|
||||||
|
LogFile.WriteToFile("Camera is not working anymore - most propably hardware problem (instablility, ...). "
|
||||||
|
"System will reboot.");
|
||||||
|
doReboot();
|
||||||
|
|
||||||
return ESP_FAIL;
|
return ESP_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
int _size = fb->len;
|
int _size = fb->len;
|
||||||
zwischenspeicher = (uint8_t*) malloc(_size);
|
zwischenspeicher = (uint8_t*) malloc(_size);
|
||||||
|
if (!zwischenspeicher)
|
||||||
|
{
|
||||||
|
ESP_LOGE(TAGCAMERACLASS, "Nicht ausreichend Speicherplatz für Bild in Funktion CaptureToBasisImage()");
|
||||||
|
LogFile.SwitchOnOff(true);
|
||||||
|
LogFile.WriteToFile("Nicht ausreichend Speicherplatz für Bild in Funktion CaptureToBasisImage()");
|
||||||
|
}
|
||||||
for (int i = 0; i < _size; ++i)
|
for (int i = 0; i < _size; ++i)
|
||||||
*(zwischenspeicher + i) = *(fb->buf + i);
|
*(zwischenspeicher + i) = *(fb->buf + i);
|
||||||
esp_camera_fb_return(fb);
|
esp_camera_fb_return(fb);
|
||||||
|
|||||||
@@ -11,11 +11,48 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
#define OV9650_PID (0x96)
|
#ifdef __cplusplus
|
||||||
#define OV7725_PID (0x77)
|
extern "C" {
|
||||||
#define OV2640_PID (0x26)
|
#endif
|
||||||
#define OV3660_PID (0x36)
|
|
||||||
#define OV5640_PID (0x56)
|
typedef enum {
|
||||||
|
OV9650_PID = 0x96,
|
||||||
|
OV7725_PID = 0x77,
|
||||||
|
OV2640_PID = 0x26,
|
||||||
|
OV3660_PID = 0x3660,
|
||||||
|
OV5640_PID = 0x5640,
|
||||||
|
OV7670_PID = 0x76,
|
||||||
|
NT99141_PID = 0x1410,
|
||||||
|
GC2145_PID = 0x2145,
|
||||||
|
GC032A_PID = 0x232a,
|
||||||
|
GC0308_PID = 0x9b,
|
||||||
|
} camera_pid_t;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
CAMERA_OV7725,
|
||||||
|
CAMERA_OV2640,
|
||||||
|
CAMERA_OV3660,
|
||||||
|
CAMERA_OV5640,
|
||||||
|
CAMERA_OV7670,
|
||||||
|
CAMERA_NT99141,
|
||||||
|
CAMERA_GC2145,
|
||||||
|
CAMERA_GC032A,
|
||||||
|
CAMERA_GC0308,
|
||||||
|
CAMERA_MODEL_MAX,
|
||||||
|
CAMERA_NONE,
|
||||||
|
} camera_model_t;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
OV2640_SCCB_ADDR = 0x30,// 0x60 >> 1
|
||||||
|
OV5640_SCCB_ADDR = 0x3C,// 0x78 >> 1
|
||||||
|
OV3660_SCCB_ADDR = 0x3C,// 0x78 >> 1
|
||||||
|
OV7725_SCCB_ADDR = 0x21,// 0x42 >> 1
|
||||||
|
OV7670_SCCB_ADDR = 0x21,// 0x42 >> 1
|
||||||
|
NT99141_SCCB_ADDR = 0x2A,// 0x54 >> 1
|
||||||
|
GC2145_SCCB_ADDR = 0x3C,// 0x78 >> 1
|
||||||
|
GC032A_SCCB_ADDR = 0x21,// 0x42 >> 1
|
||||||
|
GC0308_SCCB_ADDR = 0x21,// 0x42 >> 1
|
||||||
|
} camera_sccb_addr_t;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
PIXFORMAT_RGB565, // 2BPP/RGB565
|
PIXFORMAT_RGB565, // 2BPP/RGB565
|
||||||
@@ -56,6 +93,15 @@ typedef enum {
|
|||||||
FRAMESIZE_INVALID
|
FRAMESIZE_INVALID
|
||||||
} framesize_t;
|
} framesize_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
const camera_model_t model;
|
||||||
|
const char *name;
|
||||||
|
const camera_sccb_addr_t sccb_addr;
|
||||||
|
const camera_pid_t pid;
|
||||||
|
const framesize_t max_size;
|
||||||
|
const bool support_jpeg;
|
||||||
|
} camera_sensor_info_t;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
ASPECT_RATIO_4X3,
|
ASPECT_RATIO_4X3,
|
||||||
ASPECT_RATIO_3X2,
|
ASPECT_RATIO_3X2,
|
||||||
@@ -99,11 +145,13 @@ typedef struct {
|
|||||||
|
|
||||||
// Resolution table (in sensor.c)
|
// Resolution table (in sensor.c)
|
||||||
extern const resolution_info_t resolution[];
|
extern const resolution_info_t resolution[];
|
||||||
|
// camera sensor table (in sensor.c)
|
||||||
|
extern const camera_sensor_info_t camera_sensor[];
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint8_t MIDH;
|
uint8_t MIDH;
|
||||||
uint8_t MIDL;
|
uint8_t MIDL;
|
||||||
uint8_t PID;
|
uint16_t PID;
|
||||||
uint8_t VER;
|
uint8_t VER;
|
||||||
} sensor_id_t;
|
} sensor_id_t;
|
||||||
|
|
||||||
@@ -188,4 +236,10 @@ typedef struct _sensor {
|
|||||||
int (*set_xclk) (sensor_t *sensor, int timer, int xclk);
|
int (*set_xclk) (sensor_t *sensor, int timer, int xclk);
|
||||||
} sensor_t;
|
} sensor_t;
|
||||||
|
|
||||||
|
camera_sensor_info_t *esp_camera_sensor_get_info(sensor_id_t *id);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* __SENSOR_H__ */
|
#endif /* __SENSOR_H__ */
|
||||||
|
|||||||
@@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
#include "ClassLogFile.h"
|
#include "ClassLogFile.h"
|
||||||
|
|
||||||
#define SCRATCH_BUFSIZE2 8192
|
// #define SCRATCH_BUFSIZE2 8192
|
||||||
char scratch2[SCRATCH_BUFSIZE2];
|
// char scratch2[SCRATCH_BUFSIZE2];
|
||||||
|
|
||||||
//#define DEBUG_DETAIL_ON
|
//#define DEBUG_DETAIL_ON
|
||||||
static const char *TAGPARTCAMERA = "server_camera";
|
static const char *TAGPARTCAMERA = "server_camera";
|
||||||
|
|||||||
@@ -30,6 +30,7 @@
|
|||||||
#include "server_file.h"
|
#include "server_file.h"
|
||||||
#include "server_GPIO.h"
|
#include "server_GPIO.h"
|
||||||
|
|
||||||
|
|
||||||
#include "ClassLogFile.h"
|
#include "ClassLogFile.h"
|
||||||
|
|
||||||
#include "Helper.h"
|
#include "Helper.h"
|
||||||
|
|||||||
@@ -624,4 +624,37 @@ esp_err_t ClassFlowControll::GetJPGStream(std::string _fn, httpd_req_t *req)
|
|||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
string ClassFlowControll::getJSON()
|
||||||
|
{
|
||||||
|
std::vector<NumberPost*>* NUMBERS = flowpostprocessing->GetNumbers();
|
||||||
|
|
||||||
|
std::string json="{\n";
|
||||||
|
|
||||||
|
for (int i = 0; i < (*NUMBERS).size(); ++i)
|
||||||
|
{
|
||||||
|
json += "\"" + (*NUMBERS)[i]->name + "\":\n";
|
||||||
|
json += " {\n";
|
||||||
|
if ((*NUMBERS)[i]->ReturnValueNoError.length() > 0)
|
||||||
|
json += " \"value\": " + (*NUMBERS)[i]->ReturnValueNoError + ",\n";
|
||||||
|
else
|
||||||
|
json += " \"value\": \"\",\n";
|
||||||
|
json += " \"raw\": \"" + (*NUMBERS)[i]->ReturnRawValue + "\",\n";
|
||||||
|
json += " \"error\": \"" + (*NUMBERS)[i]->ErrorMessageText + "\",\n";
|
||||||
|
if ((*NUMBERS)[i]->ReturnRateValue.length() > 0)
|
||||||
|
json += " \"rate\": " + (*NUMBERS)[i]->ReturnRateValue + ",\n";
|
||||||
|
else
|
||||||
|
json += " \"rate\": \"\",\n";
|
||||||
|
|
||||||
|
json += " \"timestamp\": \"" + (*NUMBERS)[i]->timeStamp + "\"\n";
|
||||||
|
if ((i+1) < (*NUMBERS).size())
|
||||||
|
json += " },\n";
|
||||||
|
else
|
||||||
|
json += " }\n";
|
||||||
|
}
|
||||||
|
json += "}";
|
||||||
|
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ public:
|
|||||||
string UpdatePrevalue(std::string _newvalue, std::string _numbers, bool _extern);
|
string UpdatePrevalue(std::string _newvalue, std::string _numbers, bool _extern);
|
||||||
string GetPrevalue(std::string _number = "");
|
string GetPrevalue(std::string _number = "");
|
||||||
bool ReadParameter(FILE* pfile, string& aktparamgraph);
|
bool ReadParameter(FILE* pfile, string& aktparamgraph);
|
||||||
|
string getJSON();
|
||||||
|
|
||||||
string TranslateAktstatus(std::string _input);
|
string TranslateAktstatus(std::string _input);
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ struct NumberPost {
|
|||||||
float FlowRateAct; // m3 / min
|
float FlowRateAct; // m3 / min
|
||||||
float PreValue; // letzter Wert, der gut ausgelesen wurde
|
float PreValue; // letzter Wert, der gut ausgelesen wurde
|
||||||
float Value; // letzer ausgelesener Wert, inkl. Korrekturen
|
float Value; // letzer ausgelesener Wert, inkl. Korrekturen
|
||||||
|
string ReturnRateValue; // RückgabewertRate
|
||||||
string ReturnRawValue; // Rohwert (mit N & führenden 0)
|
string ReturnRawValue; // Rohwert (mit N & führenden 0)
|
||||||
string ReturnValue; // korrigierter Rückgabewert, ggf. mit Fehlermeldung
|
string ReturnValue; // korrigierter Rückgabewert, ggf. mit Fehlermeldung
|
||||||
string ReturnPreValue; // korrigierter Rückgabewert ohne Fehlermeldung
|
string ReturnPreValue; // korrigierter Rückgabewert ohne Fehlermeldung
|
||||||
|
|||||||
@@ -135,6 +135,7 @@ bool ClassFlowMQTT::doFlow(string zwtime)
|
|||||||
|
|
||||||
std::string result;
|
std::string result;
|
||||||
std::string resulterror = "";
|
std::string resulterror = "";
|
||||||
|
std::string resultraw = "";
|
||||||
std::string resultrate = "";
|
std::string resultrate = "";
|
||||||
std::string resulttimestamp = "";
|
std::string resulttimestamp = "";
|
||||||
string zw = "";
|
string zw = "";
|
||||||
@@ -159,8 +160,9 @@ bool ClassFlowMQTT::doFlow(string zwtime)
|
|||||||
for (int i = 0; i < (*NUMBERS).size(); ++i)
|
for (int i = 0; i < (*NUMBERS).size(); ++i)
|
||||||
{
|
{
|
||||||
result = (*NUMBERS)[i]->ReturnValueNoError;
|
result = (*NUMBERS)[i]->ReturnValueNoError;
|
||||||
|
resultraw = (*NUMBERS)[i]->ReturnRawValue;
|
||||||
resulterror = (*NUMBERS)[i]->ErrorMessageText;
|
resulterror = (*NUMBERS)[i]->ErrorMessageText;
|
||||||
resultrate = std::to_string((*NUMBERS)[i]->FlowRateAct);
|
resultrate = (*NUMBERS)[i]->ReturnRateValue;
|
||||||
resulttimestamp = (*NUMBERS)[i]->timeStamp;
|
resulttimestamp = (*NUMBERS)[i]->timeStamp;
|
||||||
|
|
||||||
namenumber = (*NUMBERS)[i]->name;
|
namenumber = (*NUMBERS)[i]->name;
|
||||||
@@ -169,22 +171,34 @@ bool ClassFlowMQTT::doFlow(string zwtime)
|
|||||||
else
|
else
|
||||||
namenumber = maintopic + "/" + namenumber + "/";
|
namenumber = maintopic + "/" + namenumber + "/";
|
||||||
|
|
||||||
zw = namenumber + "value";
|
zw = namenumber + "value";
|
||||||
MQTTPublish(zw, result);
|
if (result.length() > 0)
|
||||||
|
MQTTPublish(zw, result);
|
||||||
|
|
||||||
zw = namenumber + "error";
|
zw = namenumber + "error";
|
||||||
MQTTPublish(zw, resulterror, 1);
|
if (resulterror.length() > 0)
|
||||||
|
MQTTPublish(zw, resulterror, 1);
|
||||||
|
|
||||||
zw = namenumber + "rate";
|
zw = namenumber + "rate";
|
||||||
MQTTPublish(zw, resultrate);
|
if (resultrate.length() > 0)
|
||||||
|
MQTTPublish(zw, resultrate);
|
||||||
|
|
||||||
|
zw = namenumber + "raw";
|
||||||
|
if (resultraw.length() > 0)
|
||||||
|
MQTTPublish(zw, resultraw);
|
||||||
|
|
||||||
zw = namenumber + "timestamp";
|
zw = namenumber + "timestamp";
|
||||||
MQTTPublish(zw, resulttimestamp);
|
if (resulttimestamp.length() > 0)
|
||||||
|
MQTTPublish(zw, resulttimestamp);
|
||||||
|
|
||||||
|
|
||||||
std::string json="{\"value\":"+result;
|
std::string json="{\"value\":"+result;
|
||||||
|
json += ",\"raw\":\""+resultraw;
|
||||||
json += ",\"error\":\""+resulterror;
|
json += ",\"error\":\""+resulterror;
|
||||||
json += "\",\"rate\":"+resultrate;
|
if (resultrate.length() > 0)
|
||||||
|
json += "\",\"rate\":"+resultrate;
|
||||||
|
else
|
||||||
|
json += "\",\"rate\":\"\"";
|
||||||
json += ",\"timestamp\":\""+resulttimestamp+"\"}";
|
json += ",\"timestamp\":\""+resulttimestamp+"\"}";
|
||||||
|
|
||||||
zw = namenumber + "json";
|
zw = namenumber + "json";
|
||||||
|
|||||||
@@ -117,6 +117,7 @@ bool ClassFlowPostProcessing::LoadPreValue(void)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
NUMBERS[j]->PreValueOkay = true;
|
NUMBERS[j]->PreValueOkay = true;
|
||||||
|
/*
|
||||||
NUMBERS[j]->Value = NUMBERS[j]->PreValue;
|
NUMBERS[j]->Value = NUMBERS[j]->PreValue;
|
||||||
NUMBERS[j]->ReturnValue = to_string(NUMBERS[j]->Value);
|
NUMBERS[j]->ReturnValue = to_string(NUMBERS[j]->Value);
|
||||||
NUMBERS[j]->ReturnValueNoError = NUMBERS[j]->ReturnValue;
|
NUMBERS[j]->ReturnValueNoError = NUMBERS[j]->ReturnValue;
|
||||||
@@ -126,6 +127,7 @@ bool ClassFlowPostProcessing::LoadPreValue(void)
|
|||||||
NUMBERS[j]->ReturnValue = RundeOutput(NUMBERS[j]->Value, NUMBERS[j]->Nachkomma + 1); // SIcherheitshalber 1 Stelle mehr, da ggf. Exgtended Resolution an ist (wird erst beim ersten Durchlauf gesetzt)
|
NUMBERS[j]->ReturnValue = RundeOutput(NUMBERS[j]->Value, NUMBERS[j]->Nachkomma + 1); // SIcherheitshalber 1 Stelle mehr, da ggf. Exgtended Resolution an ist (wird erst beim ersten Durchlauf gesetzt)
|
||||||
NUMBERS[j]->ReturnValueNoError = NUMBERS[j]->ReturnValue;
|
NUMBERS[j]->ReturnValueNoError = NUMBERS[j]->ReturnValue;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -492,8 +494,6 @@ void ClassFlowPostProcessing::InitNUMBERS()
|
|||||||
_number->MaxRateValue = 0.1;
|
_number->MaxRateValue = 0.1;
|
||||||
_number->useMaxRateValue = false;
|
_number->useMaxRateValue = false;
|
||||||
_number->checkDigitIncreaseConsistency = false;
|
_number->checkDigitIncreaseConsistency = false;
|
||||||
_number->PreValueOkay = false;
|
|
||||||
_number->useMaxRateValue = false;
|
|
||||||
_number->DecimalShift = 0;
|
_number->DecimalShift = 0;
|
||||||
_number->DecimalShiftInitial = 0;
|
_number->DecimalShiftInitial = 0;
|
||||||
_number->isExtendedResolution = false;
|
_number->isExtendedResolution = false;
|
||||||
@@ -568,12 +568,8 @@ bool ClassFlowPostProcessing::doFlow(string zwtime)
|
|||||||
time_t imagetime = 0;
|
time_t imagetime = 0;
|
||||||
string rohwert;
|
string rohwert;
|
||||||
|
|
||||||
// ErrorMessageText = "";
|
|
||||||
|
|
||||||
// Update Nachkomma, da sich beim Wechsel von CNNType Auto --> xyz auch die Nachkommastellen ändern können:
|
// Update Nachkomma, da sich beim Wechsel von CNNType Auto --> xyz auch die Nachkommastellen ändern können:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
imagetime = flowMakeImage->getTimeImageTaken();
|
imagetime = flowMakeImage->getTimeImageTaken();
|
||||||
if (imagetime == 0)
|
if (imagetime == 0)
|
||||||
time(&imagetime);
|
time(&imagetime);
|
||||||
@@ -662,7 +658,12 @@ bool ClassFlowPostProcessing::doFlow(string zwtime)
|
|||||||
zwvalue = RundeOutput(NUMBERS[j]->Value, NUMBERS[j]->Nachkomma);
|
zwvalue = RundeOutput(NUMBERS[j]->Value, NUMBERS[j]->Nachkomma);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (NUMBERS[j]->useMaxRateValue && (abs(NUMBERS[j]->Value - NUMBERS[j]->PreValue) > NUMBERS[j]->MaxRateValue))
|
double difference = difftime(imagetime, NUMBERS[j]->lastvalue); // in Sekunden
|
||||||
|
difference /= 60; // in Minuten
|
||||||
|
NUMBERS[j]->FlowRateAct = (NUMBERS[j]->Value - NUMBERS[j]->PreValue) / difference;
|
||||||
|
NUMBERS[j]->ReturnRateValue = std::to_string(NUMBERS[j]->FlowRateAct);
|
||||||
|
|
||||||
|
if (NUMBERS[j]->useMaxRateValue && (abs(NUMBERS[j]->FlowRateAct) > NUMBERS[j]->MaxRateValue))
|
||||||
{
|
{
|
||||||
NUMBERS[j]->ErrorMessageText = NUMBERS[j]->ErrorMessageText + "Rate too high - Read: " + RundeOutput(NUMBERS[j]->Value, NUMBERS[j]->Nachkomma) + " - Pre: " + RundeOutput(NUMBERS[j]->PreValue, NUMBERS[j]->Nachkomma);
|
NUMBERS[j]->ErrorMessageText = NUMBERS[j]->ErrorMessageText + "Rate too high - Read: " + RundeOutput(NUMBERS[j]->Value, NUMBERS[j]->Nachkomma) + " - Pre: " + RundeOutput(NUMBERS[j]->PreValue, NUMBERS[j]->Nachkomma);
|
||||||
NUMBERS[j]->Value = NUMBERS[j]->PreValue;
|
NUMBERS[j]->Value = NUMBERS[j]->PreValue;
|
||||||
@@ -674,20 +675,27 @@ bool ClassFlowPostProcessing::doFlow(string zwtime)
|
|||||||
if (NUMBERS[j]->ErrorMessage && (NUMBERS[j]->ErrorMessageText.length() > 0))
|
if (NUMBERS[j]->ErrorMessage && (NUMBERS[j]->ErrorMessageText.length() > 0))
|
||||||
NUMBERS[j]->ReturnValue = NUMBERS[j]->ReturnValue + "\t" + NUMBERS[j]->ErrorMessageText;
|
NUMBERS[j]->ReturnValue = NUMBERS[j]->ReturnValue + "\t" + NUMBERS[j]->ErrorMessageText;
|
||||||
|
|
||||||
|
|
||||||
double difference = difftime(imagetime, NUMBERS[j]->lastvalue); // in Sekunden
|
|
||||||
difference /= 60; // in Minuten
|
|
||||||
NUMBERS[j]->FlowRateAct = (NUMBERS[j]->Value - NUMBERS[j]->PreValue) / difference;
|
|
||||||
NUMBERS[j]->lastvalue = imagetime;
|
|
||||||
|
|
||||||
if (NUMBERS[j]->ErrorMessageText.length() == 0)
|
if (NUMBERS[j]->ErrorMessageText.length() == 0)
|
||||||
{
|
{
|
||||||
|
NUMBERS[j]->lastvalue = imagetime;
|
||||||
NUMBERS[j]->PreValue = NUMBERS[j]->Value;
|
NUMBERS[j]->PreValue = NUMBERS[j]->Value;
|
||||||
|
|
||||||
|
NUMBERS[j]->ReturnValueNoError = NUMBERS[j]->ReturnValue;
|
||||||
NUMBERS[j]->ReturnPreValue = RundeOutput(NUMBERS[j]->PreValue, NUMBERS[j]->Nachkomma);
|
NUMBERS[j]->ReturnPreValue = RundeOutput(NUMBERS[j]->PreValue, NUMBERS[j]->Nachkomma);
|
||||||
NUMBERS[j]->ErrorMessageText = "no error";
|
NUMBERS[j]->ErrorMessageText = "no error";
|
||||||
UpdatePreValueINI = true;
|
UpdatePreValueINI = true;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
NUMBERS[j]->ReturnRateValue = "";
|
||||||
|
NUMBERS[j]->ReturnValue = "";
|
||||||
|
NUMBERS[j]->ReturnValueNoError = "";
|
||||||
|
NUMBERS[j]->timeStamp = "";
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
string _zw = "PostProcessing - Raw: " + NUMBERS[j]->ReturnRawValue + " Value: " + NUMBERS[j]->ReturnValue + " Error: " + NUMBERS[j]->ErrorMessageText;
|
||||||
|
LogFile.WriteToFile(_zw);
|
||||||
}
|
}
|
||||||
|
|
||||||
SavePreValue();
|
SavePreValue();
|
||||||
@@ -724,8 +732,8 @@ void ClassFlowPostProcessing::UpdateNachkommaDecimalShift()
|
|||||||
{
|
{
|
||||||
// printf("Nur digital + analog\n");
|
// printf("Nur digital + analog\n");
|
||||||
|
|
||||||
NUMBERS[j]->Nachkomma = NUMBERS[j]->analog_roi->ROI.size();
|
|
||||||
NUMBERS[j]->DecimalShift = NUMBERS[j]->DecimalShiftInitial;
|
NUMBERS[j]->DecimalShift = NUMBERS[j]->DecimalShiftInitial;
|
||||||
|
NUMBERS[j]->Nachkomma = NUMBERS[j]->analog_roi->ROI.size() - NUMBERS[j]->DecimalShift;
|
||||||
|
|
||||||
if (NUMBERS[j]->isExtendedResolution && flowAnalog->isExtendedResolution()) // extended resolution ist an und soll auch bei dieser Ziffer verwendet werden
|
if (NUMBERS[j]->isExtendedResolution && flowAnalog->isExtendedResolution()) // extended resolution ist an und soll auch bei dieser Ziffer verwendet werden
|
||||||
NUMBERS[j]->Nachkomma = NUMBERS[j]->Nachkomma+1;
|
NUMBERS[j]->Nachkomma = NUMBERS[j]->Nachkomma+1;
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ void memCopyGen(uint8_t* _source, uint8_t* _target, int _size)
|
|||||||
|
|
||||||
FILE* OpenFileAndWait(const char* nm, const char* _mode, int _waitsec)
|
FILE* OpenFileAndWait(const char* nm, const char* _mode, int _waitsec)
|
||||||
{
|
{
|
||||||
printf("open config file %s in mode %s\n", nm, _mode);
|
printf("open file %s in mode %s\n", nm, _mode);
|
||||||
FILE *pfile = fopen(nm, _mode);
|
FILE *pfile = fopen(nm, _mode);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#include "CImageBasis.h"
|
#include "CImageBasis.h"
|
||||||
#include "Helper.h"
|
#include "Helper.h"
|
||||||
#include "ClassLogFile.h"
|
#include "ClassLogFile.h"
|
||||||
|
#include "server_ota.h"
|
||||||
|
|
||||||
#include <esp_log.h>
|
#include <esp_log.h>
|
||||||
|
|
||||||
@@ -337,6 +338,18 @@ void CImageBasis::LoadFromMemory(stbi_uc *_buffer, int len)
|
|||||||
rgb_image = stbi_load_from_memory(_buffer, len, &width, &height, &channels, 3);
|
rgb_image = stbi_load_from_memory(_buffer, len, &width, &height, &channels, 3);
|
||||||
bpp = channels;
|
bpp = channels;
|
||||||
printf("Image loaded from memory: %d, %d, %d\n", width, height, channels);
|
printf("Image loaded from memory: %d, %d, %d\n", width, height, channels);
|
||||||
|
if ((width * height * channels) == 0)
|
||||||
|
{
|
||||||
|
ESP_LOGE(TAG, "Image with size 0 loaded --> reboot to be done! "
|
||||||
|
"Check that your camera module is working and connected properly.");
|
||||||
|
|
||||||
|
LogFile.SwitchOnOff(true);
|
||||||
|
LogFile.WriteToFile("Image with size 0 loaded --> reboot to be done! "
|
||||||
|
"Check that your camera module is working and connected properly.");
|
||||||
|
|
||||||
|
doReboot();
|
||||||
|
|
||||||
|
}
|
||||||
RGBImageRelease();
|
RGBImageRelease();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,6 @@ FILE(GLOB_RECURSE app_sources ${CMAKE_CURRENT_SOURCE_DIR}/*.*)
|
|||||||
|
|
||||||
idf_component_register(SRCS ${app_sources}
|
idf_component_register(SRCS ${app_sources}
|
||||||
INCLUDE_DIRS "."
|
INCLUDE_DIRS "."
|
||||||
REQUIRES jomjol_helper jomjol_logfile esp_http_server)
|
REQUIRES jomjol_helper jomjol_logfile esp_http_server jomjol_fileserver_ota)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -236,14 +236,13 @@ bool CTfLiteClass::LoadModel(std::string _fn){
|
|||||||
this->error_reporter = new tflite::MicroErrorReporter;
|
this->error_reporter = new tflite::MicroErrorReporter;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
unsigned char *rd;
|
modelload = ReadFileToCharArray(_fn.c_str());
|
||||||
rd = ReadFileToCharArray(_fn.c_str());
|
|
||||||
|
|
||||||
if (rd == NULL)
|
if (modelload == NULL)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
this->model = tflite::GetModel(rd);
|
model = tflite::GetModel(modelload);
|
||||||
free(rd);
|
// free(rd);
|
||||||
TFLITE_MINIMAL_CHECK(model != nullptr);
|
TFLITE_MINIMAL_CHECK(model != nullptr);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -266,6 +265,8 @@ CTfLiteClass::~CTfLiteClass()
|
|||||||
delete this->tensor_arena;
|
delete this->tensor_arena;
|
||||||
delete this->interpreter;
|
delete this->interpreter;
|
||||||
delete this->error_reporter;
|
delete this->error_reporter;
|
||||||
|
if (modelload)
|
||||||
|
free(modelload);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -46,6 +46,9 @@ class CTfLiteClass
|
|||||||
int kTensorArenaSize;
|
int kTensorArenaSize;
|
||||||
uint8_t *tensor_arena;
|
uint8_t *tensor_arena;
|
||||||
|
|
||||||
|
unsigned char *modelload = NULL;
|
||||||
|
|
||||||
|
|
||||||
float* input;
|
float* input;
|
||||||
int input_i;
|
int input_i;
|
||||||
int im_height, im_width, im_channel;
|
int im_height, im_width, im_channel;
|
||||||
|
|||||||
@@ -189,6 +189,36 @@ esp_err_t handler_doflow(httpd_req_t *req)
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
esp_err_t handler_json(httpd_req_t *req)
|
||||||
|
{
|
||||||
|
#ifdef DEBUG_DETAIL_ON
|
||||||
|
LogFile.WriteHeapInfo("handler_json - Start");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
printf("handler_JSON uri:\n"); printf(req->uri); printf("\n");
|
||||||
|
|
||||||
|
char _query[100];
|
||||||
|
char _size[10];
|
||||||
|
|
||||||
|
httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*");
|
||||||
|
httpd_resp_set_type(req, "application/json");
|
||||||
|
|
||||||
|
std::string zw = tfliteflow.getJSON();
|
||||||
|
if (zw.length() > 0)
|
||||||
|
httpd_resp_sendstr_chunk(req, zw.c_str());
|
||||||
|
|
||||||
|
string query = std::string(_query);
|
||||||
|
|
||||||
|
/* Respond with an empty chunk to signal HTTP response completion */
|
||||||
|
httpd_resp_sendstr_chunk(req, NULL);
|
||||||
|
|
||||||
|
#ifdef DEBUG_DETAIL_ON
|
||||||
|
LogFile.WriteHeapInfo("handler_JSON - Done");
|
||||||
|
#endif
|
||||||
|
return ESP_OK;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
esp_err_t handler_wasserzaehler(httpd_req_t *req)
|
esp_err_t handler_wasserzaehler(httpd_req_t *req)
|
||||||
@@ -664,7 +694,23 @@ void task_autodoFlow(void *pvParameter)
|
|||||||
|
|
||||||
void TFliteDoAutoStart()
|
void TFliteDoAutoStart()
|
||||||
{
|
{
|
||||||
xTaskCreate(&task_autodoFlow, "task_autodoFlow", configMINIMAL_STACK_SIZE * 64, NULL, tskIDLE_PRIORITY+1, &xHandletask_autodoFlow);
|
BaseType_t xReturned;
|
||||||
|
|
||||||
|
int _i = configMINIMAL_STACK_SIZE;
|
||||||
|
|
||||||
|
printf("task_autodoFlow configMINIMAL_STACK_SIZE: %d\n", _i);
|
||||||
|
printf("getESPHeapInfo: %s\n", getESPHeapInfo().c_str());
|
||||||
|
|
||||||
|
xReturned = xTaskCreate(&task_autodoFlow, "task_autodoFlow", configMINIMAL_STACK_SIZE * 60, NULL, tskIDLE_PRIORITY+1, &xHandletask_autodoFlow);
|
||||||
|
if( xReturned != pdPASS )
|
||||||
|
{
|
||||||
|
|
||||||
|
//Memory: 64 --> 48 --> 35 --> 25
|
||||||
|
printf("ERROR task_autodoFlow konnte nicht erzeugt werden !!\r\n");
|
||||||
|
}
|
||||||
|
printf("getESPHeapInfo: %s\n", getESPHeapInfo().c_str());
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string GetMQTTMainTopic()
|
std::string GetMQTTMainTopic()
|
||||||
@@ -710,4 +756,10 @@ void register_server_tflite_uri(httpd_handle_t server)
|
|||||||
camuri.handler = handler_wasserzaehler;
|
camuri.handler = handler_wasserzaehler;
|
||||||
camuri.user_ctx = (void*) "Wasserzaehler";
|
camuri.user_ctx = (void*) "Wasserzaehler";
|
||||||
httpd_register_uri_handler(server, &camuri);
|
httpd_register_uri_handler(server, &camuri);
|
||||||
|
|
||||||
|
camuri.uri = "/json";
|
||||||
|
camuri.handler = handler_json;
|
||||||
|
camuri.user_ctx = (void*) "JSON";
|
||||||
|
httpd_register_uri_handler(server, &camuri);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,132 +0,0 @@
|
|||||||
#include "Color.h"
|
|
||||||
#include <algorithm>
|
|
||||||
#include <cmath>
|
|
||||||
#include <cassert>
|
|
||||||
|
|
||||||
namespace {
|
|
||||||
|
|
||||||
// Int -> fixed point
|
|
||||||
int up( int x ) { return x * 255; }
|
|
||||||
|
|
||||||
} // namespace
|
|
||||||
|
|
||||||
int iRgbSqrt( int num ) {
|
|
||||||
// https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Binary_numeral_system_.28base_2.29
|
|
||||||
assert( "sqrt input should be non-negative" && num >= 0 );
|
|
||||||
assert( "sqrt input should no exceed 16 bits" && num <= 0xFFFF );
|
|
||||||
int res = 0;
|
|
||||||
int bit = 1 << 16;
|
|
||||||
while ( bit > num )
|
|
||||||
bit >>= 2;
|
|
||||||
while ( bit != 0 ) {
|
|
||||||
if ( num >= res + bit ) {
|
|
||||||
num -= res + bit;
|
|
||||||
res = ( res >> 1 ) + bit;
|
|
||||||
} else
|
|
||||||
res >>= 1;
|
|
||||||
bit >>= 2;
|
|
||||||
}
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
Rgb::Rgb( Hsv y ) {
|
|
||||||
// https://stackoverflow.com/questions/24152553/hsv-to-rgb-and-back-without-floating-point-math-in-python
|
|
||||||
// greyscale
|
|
||||||
if( y.s == 0 ) {
|
|
||||||
r = g = b = y.v;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const int region = y.h / 43;
|
|
||||||
const int remainder = ( y.h - ( region * 43 ) ) * 6;
|
|
||||||
|
|
||||||
const int p = ( y.v * ( 255 - y.s ) ) >> 8;
|
|
||||||
const int q = ( y.v * ( 255 - ( ( y.s * remainder ) >> 8 ) ) ) >> 8;
|
|
||||||
const int t = ( y.v * ( 255 - ( ( y.s * (255 -remainder ) ) >> 8 ) ) ) >> 8;
|
|
||||||
|
|
||||||
switch( region ) {
|
|
||||||
case 0: r = y.v; g = t; b = p; break;
|
|
||||||
case 1: r = q; g = y.v; b = p; break;
|
|
||||||
case 2: r = p; g = y.v; b = t; break;
|
|
||||||
case 3: r = p; g = q; b = y.v; break;
|
|
||||||
case 4: r = t; g = p; b = y.v; break;
|
|
||||||
case 5: r = y.v; g = p; b = q; break;
|
|
||||||
default: __builtin_trap();
|
|
||||||
}
|
|
||||||
|
|
||||||
a = y.a;
|
|
||||||
}
|
|
||||||
|
|
||||||
Rgb& Rgb::operator=( Hsv hsv ) {
|
|
||||||
Rgb r{ hsv };
|
|
||||||
swap( r );
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
Rgb Rgb::operator+( Rgb in ) const {
|
|
||||||
auto copy = *this;
|
|
||||||
copy += in;
|
|
||||||
return copy;
|
|
||||||
}
|
|
||||||
|
|
||||||
Rgb& Rgb::operator+=( Rgb in ) {
|
|
||||||
unsigned int red = r + in.r;
|
|
||||||
r = ( red < 255 ) ? red : 255;
|
|
||||||
unsigned int green = g + in.g;
|
|
||||||
g = ( green < 255 ) ? green : 255;
|
|
||||||
unsigned int blue = b + in.b;
|
|
||||||
b = ( blue < 255 ) ? blue : 255;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
Rgb& Rgb::blend( Rgb in ) {
|
|
||||||
unsigned int inAlpha = in.a * ( 255 - a );
|
|
||||||
unsigned int alpha = a + inAlpha;
|
|
||||||
r = iRgbSqrt( ( ( r * r * a ) + ( in.r * in.r * inAlpha ) ) / alpha );
|
|
||||||
g = iRgbSqrt( ( ( g * g * a ) + ( in.g * in.g * inAlpha ) ) / alpha );
|
|
||||||
b = iRgbSqrt( ( ( b * b * a ) + ( in.b * in.b * inAlpha ) ) / alpha );
|
|
||||||
a = alpha;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t IRAM_ATTR Rgb::getGrb( int idx ) {
|
|
||||||
switch ( idx ) {
|
|
||||||
case 0: return g;
|
|
||||||
case 1: return r;
|
|
||||||
case 2: return b;
|
|
||||||
}
|
|
||||||
__builtin_unreachable();
|
|
||||||
}
|
|
||||||
|
|
||||||
Hsv::Hsv( Rgb r ) {
|
|
||||||
int min = std::min( r.r, std::min( r.g, r.b ) );
|
|
||||||
int max = std::max( r.r, std::max( r.g, r.b ) );
|
|
||||||
int chroma = max - min;
|
|
||||||
|
|
||||||
v = max;
|
|
||||||
if ( chroma == 0 ) {
|
|
||||||
h = s = 0;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
s = up( chroma ) / max;
|
|
||||||
int hh;
|
|
||||||
if ( max == r.r )
|
|
||||||
hh = ( up( int( r.g ) - int( r.b ) ) ) / chroma / 6;
|
|
||||||
else if ( max == r.g )
|
|
||||||
hh = 255 / 3 + ( up( int( r.b ) - int( r.r ) ) ) / chroma / 6;
|
|
||||||
else
|
|
||||||
hh = 2 * 255 / 3 + ( up( int( r.r ) - int( r.g ) ) ) / chroma / 6;
|
|
||||||
|
|
||||||
if ( hh < 0 )
|
|
||||||
hh += 255;
|
|
||||||
h = hh;
|
|
||||||
|
|
||||||
a = r.a;
|
|
||||||
}
|
|
||||||
|
|
||||||
Hsv& Hsv::operator=( Rgb rgb ) {
|
|
||||||
Hsv h{ rgb };
|
|
||||||
swap( h );
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
@@ -1,69 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include <cstdint>
|
|
||||||
#include "esp_attr.h"
|
|
||||||
union Hsv;
|
|
||||||
|
|
||||||
union Rgb {
|
|
||||||
struct __attribute__ ((packed)) {
|
|
||||||
uint8_t r, g, b, a;
|
|
||||||
};
|
|
||||||
uint32_t value;
|
|
||||||
|
|
||||||
Rgb( uint8_t r = 0, uint8_t g = 0, uint8_t b = 0, uint8_t a = 255 ) : r( r ), g( g ), b( b ), a( a ) {}
|
|
||||||
Rgb( Hsv c );
|
|
||||||
Rgb& operator=( Rgb rgb ) { swap( rgb ); return *this; }
|
|
||||||
Rgb& operator=( Hsv hsv );
|
|
||||||
Rgb operator+( Rgb in ) const;
|
|
||||||
Rgb& operator+=( Rgb in );
|
|
||||||
bool operator==( Rgb in ) const { return in.value == value; }
|
|
||||||
Rgb& blend( Rgb in );
|
|
||||||
void swap( Rgb& o ) { value = o.value; }
|
|
||||||
void linearize() {
|
|
||||||
r = channelGamma(r);
|
|
||||||
g = channelGamma(g);
|
|
||||||
b = channelGamma(b);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t IRAM_ATTR getGrb( int idx );
|
|
||||||
|
|
||||||
void stretchChannels( uint8_t maxR, uint8_t maxG, uint8_t maxB ) {
|
|
||||||
r = stretch( r, maxR );
|
|
||||||
g = stretch( g, maxG );
|
|
||||||
b = stretch( b, maxB );
|
|
||||||
}
|
|
||||||
|
|
||||||
void stretchChannelsEvenly( uint8_t max ) {
|
|
||||||
stretchChannels( max, max, max );
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
uint8_t stretch( int value, uint8_t max ) {
|
|
||||||
return ( value * max ) >> 8;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t channelGamma( int channel ) {
|
|
||||||
/* The optimal gamma correction is x^2.8. However, this is expensive to
|
|
||||||
* compute. Therefore, we use x^3 for gamma correction. Also, we add a
|
|
||||||
* bias as the WS2812 LEDs do not turn on for values less than 4. */
|
|
||||||
if (channel == 0)
|
|
||||||
return channel;
|
|
||||||
channel = channel * channel * channel * 251;
|
|
||||||
channel >>= 24;
|
|
||||||
return static_cast< uint8_t >( 4 + channel );
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
union Hsv {
|
|
||||||
struct __attribute__ ((packed)) {
|
|
||||||
uint8_t h, s, v, a;
|
|
||||||
};
|
|
||||||
uint32_t value;
|
|
||||||
|
|
||||||
Hsv( uint8_t h, uint8_t s = 0, uint8_t v = 0, uint8_t a = 255 ) : h( h ), s( s ), v( v ), a( a ) {}
|
|
||||||
Hsv( Rgb r );
|
|
||||||
Hsv& operator=( Hsv h ) { swap( h ); return *this; }
|
|
||||||
Hsv& operator=( Rgb rgb );
|
|
||||||
bool operator==( Hsv in ) const { return in.value == value; }
|
|
||||||
void swap( Hsv& o ) { value = o.value; }
|
|
||||||
};
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
#include "SmartLeds.h"
|
|
||||||
|
|
||||||
IsrCore SmartLed::_interruptCore = CoreCurrent;
|
|
||||||
intr_handle_t SmartLed::_interruptHandle = NULL;
|
|
||||||
|
|
||||||
SmartLed*& IRAM_ATTR SmartLed::ledForChannel( int channel ) {
|
|
||||||
static SmartLed* table[8] = { nullptr };
|
|
||||||
assert( channel < 8 );
|
|
||||||
return table[ channel ];
|
|
||||||
}
|
|
||||||
|
|
||||||
void IRAM_ATTR SmartLed::interruptHandler(void*) {
|
|
||||||
for (int channel = 0; channel != 8; channel++) {
|
|
||||||
auto self = ledForChannel( channel );
|
|
||||||
|
|
||||||
if ( RMT.int_st.val & (1 << (24 + channel ) ) ) { // tx_thr_event
|
|
||||||
if ( self )
|
|
||||||
self->copyRmtHalfBlock();
|
|
||||||
RMT.int_clr.val |= 1 << ( 24 + channel );
|
|
||||||
} else if ( RMT.int_st.val & ( 1 << (3 * channel ) ) ) { // tx_end
|
|
||||||
if ( self )
|
|
||||||
xSemaphoreGiveFromISR( self->_finishedFlag, nullptr );
|
|
||||||
RMT.int_clr.val |= 1 << ( 3 * channel );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void IRAM_ATTR SmartLed::copyRmtHalfBlock() {
|
|
||||||
int offset = detail::MAX_PULSES * _halfIdx;
|
|
||||||
_halfIdx = !_halfIdx;
|
|
||||||
int len = 3 - _componentPosition + 3 * ( _count - 1 );
|
|
||||||
len = std::min( len, detail::MAX_PULSES / 8 );
|
|
||||||
|
|
||||||
if ( !len ) {
|
|
||||||
for ( int i = 0; i < detail::MAX_PULSES; i++) {
|
|
||||||
RMTMEM.chan[ _channel].data32[i + offset ].val = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int i;
|
|
||||||
for ( i = 0; i != len && _pixelPosition != _count; i++ ) {
|
|
||||||
uint8_t val = _buffer[ _pixelPosition ].getGrb( _componentPosition );
|
|
||||||
for ( int j = 0; j != 8; j++, val <<= 1 ) {
|
|
||||||
int bit = val >> 7;
|
|
||||||
int idx = i * 8 + offset + j;
|
|
||||||
RMTMEM.chan[ _channel ].data32[ idx ].val = _bitToRmt[ bit & 0x01 ].value;
|
|
||||||
}
|
|
||||||
if ( _pixelPosition == _count - 1 && _componentPosition == 2 ) {
|
|
||||||
RMTMEM.chan[ _channel ].data32[ i * 8 + offset + 7 ].duration1 =
|
|
||||||
_timing.TRS / ( detail::RMT_DURATION_NS * detail::DIVIDER );
|
|
||||||
}
|
|
||||||
|
|
||||||
_componentPosition++;
|
|
||||||
if ( _componentPosition == 3 ) {
|
|
||||||
_componentPosition = 0;
|
|
||||||
_pixelPosition++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for ( i *= 8; i != detail::MAX_PULSES; i++ ) {
|
|
||||||
RMTMEM.chan[ _channel ].data32[ i + offset ].val = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,530 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
/*
|
|
||||||
* A C++ driver for the WS2812 LEDs using the RMT peripheral on the ESP32.
|
|
||||||
*
|
|
||||||
* Jan "yaqwsx" Mrázek <email@honzamrazek.cz>
|
|
||||||
*
|
|
||||||
* Based on the work by Martin F. Falatic - https://github.com/FozzTexx/ws2812-demo
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Permission is hereby granted, 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 in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
* THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <memory>
|
|
||||||
#include <cassert>
|
|
||||||
#include <cstring>
|
|
||||||
|
|
||||||
#if defined ( ARDUINO )
|
|
||||||
extern "C" { // ...someone forgot to put in the includes...
|
|
||||||
#include "esp32-hal.h"
|
|
||||||
#include "esp_intr_alloc.h"
|
|
||||||
#include "esp_ipc.h"
|
|
||||||
#include "driver/gpio.h"
|
|
||||||
#include "driver/periph_ctrl.h"
|
|
||||||
#include "freertos/semphr.h"
|
|
||||||
#include "soc/rmt_struct.h"
|
|
||||||
#include <driver/spi_master.h>
|
|
||||||
#include "esp_idf_version.h"
|
|
||||||
#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL( 4, 0, 0 )
|
|
||||||
#include "soc/dport_reg.h"
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#elif defined ( ESP_PLATFORM )
|
|
||||||
extern "C" { // ...someone forgot to put in the includes...
|
|
||||||
#include <esp_intr_alloc.h>
|
|
||||||
#include <esp_ipc.h>
|
|
||||||
#include <driver/gpio.h>
|
|
||||||
#include <freertos/FreeRTOS.h>
|
|
||||||
#include <freertos/semphr.h>
|
|
||||||
#include <soc/dport_reg.h>
|
|
||||||
#include <soc/gpio_sig_map.h>
|
|
||||||
#include <soc/rmt_struct.h>
|
|
||||||
#include <driver/spi_master.h>
|
|
||||||
}
|
|
||||||
#include <stdio.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "Color.h"
|
|
||||||
|
|
||||||
namespace detail {
|
|
||||||
|
|
||||||
struct TimingParams {
|
|
||||||
uint32_t T0H;
|
|
||||||
uint32_t T1H;
|
|
||||||
uint32_t T0L;
|
|
||||||
uint32_t T1L;
|
|
||||||
uint32_t TRS;
|
|
||||||
};
|
|
||||||
|
|
||||||
union RmtPulsePair {
|
|
||||||
struct {
|
|
||||||
int duration0:15;
|
|
||||||
int level0:1;
|
|
||||||
int duration1:15;
|
|
||||||
int level1:1;
|
|
||||||
};
|
|
||||||
uint32_t value;
|
|
||||||
};
|
|
||||||
|
|
||||||
static const int DIVIDER = 4; // 8 still seems to work, but timings become marginal
|
|
||||||
static const int MAX_PULSES = 32; // A channel has a 64 "pulse" buffer - we use half per pass
|
|
||||||
static const double RMT_DURATION_NS = 12.5; // minimum time of a single RMT duration based on clock ns
|
|
||||||
|
|
||||||
} // namespace detail
|
|
||||||
|
|
||||||
using LedType = detail::TimingParams;
|
|
||||||
|
|
||||||
static const LedType LED_WS2812 = { 350, 700, 800, 600, 50000 };
|
|
||||||
static const LedType LED_WS2812B = { 400, 850, 850, 400, 50100 };
|
|
||||||
static const LedType LED_SK6812 = { 300, 600, 900, 600, 80000 };
|
|
||||||
static const LedType LED_WS2813 = { 350, 800, 350, 350, 300000 };
|
|
||||||
|
|
||||||
enum BufferType { SingleBuffer = 0, DoubleBuffer };
|
|
||||||
|
|
||||||
enum IsrCore { CoreFirst = 0, CoreSecond = 1, CoreCurrent = 2};
|
|
||||||
|
|
||||||
class SmartLed {
|
|
||||||
public:
|
|
||||||
// The RMT interrupt must not run on the same core as WiFi interrupts, otherwise SmartLeds
|
|
||||||
// can't fill the RMT buffer fast enough, resulting in rendering artifacts.
|
|
||||||
// Usually, that means you have to set isrCore == CoreSecond.
|
|
||||||
//
|
|
||||||
// If you use anything other than CoreCurrent, the FreeRTOS scheduler MUST be already running,
|
|
||||||
// so you can't use it if you define SmartLed as global variable.
|
|
||||||
SmartLed( const LedType& type, int count, int pin, int channel = 0, BufferType doubleBuffer = SingleBuffer, IsrCore isrCore = CoreCurrent)
|
|
||||||
: _timing( type ),
|
|
||||||
_channel( channel ),
|
|
||||||
_count( count ),
|
|
||||||
_firstBuffer( new Rgb[ count ] ),
|
|
||||||
_secondBuffer( doubleBuffer ? new Rgb[ count ] : nullptr ),
|
|
||||||
_finishedFlag( xSemaphoreCreateBinary() )
|
|
||||||
{
|
|
||||||
assert( channel >= 0 && channel < 8 );
|
|
||||||
assert( ledForChannel( channel ) == nullptr );
|
|
||||||
|
|
||||||
xSemaphoreGive( _finishedFlag );
|
|
||||||
|
|
||||||
DPORT_SET_PERI_REG_MASK( DPORT_PERIP_CLK_EN_REG, DPORT_RMT_CLK_EN );
|
|
||||||
DPORT_CLEAR_PERI_REG_MASK( DPORT_PERIP_RST_EN_REG, DPORT_RMT_RST );
|
|
||||||
|
|
||||||
PIN_FUNC_SELECT( GPIO_PIN_MUX_REG[ pin ], 2 );
|
|
||||||
gpio_set_direction( static_cast< gpio_num_t >( pin ), GPIO_MODE_OUTPUT );
|
|
||||||
gpio_matrix_out( static_cast< gpio_num_t >( pin ), RMT_SIG_OUT0_IDX + _channel, 0, 0 );
|
|
||||||
initChannel( _channel );
|
|
||||||
|
|
||||||
RMT.tx_lim_ch[ _channel ].limit = detail::MAX_PULSES;
|
|
||||||
RMT.int_ena.val |= 1 << ( 24 + _channel );
|
|
||||||
RMT.int_ena.val |= 1 << ( 3 * _channel );
|
|
||||||
|
|
||||||
_bitToRmt[ 0 ].level0 = 1;
|
|
||||||
_bitToRmt[ 0 ].level1 = 0;
|
|
||||||
_bitToRmt[ 0 ].duration0 = _timing.T0H / ( detail::RMT_DURATION_NS * detail::DIVIDER );
|
|
||||||
_bitToRmt[ 0 ].duration1 = _timing.T0L / ( detail::RMT_DURATION_NS * detail::DIVIDER );
|
|
||||||
|
|
||||||
_bitToRmt[ 1 ].level0 = 1;
|
|
||||||
_bitToRmt[ 1 ].level1 = 0;
|
|
||||||
_bitToRmt[ 1 ].duration0 = _timing.T1H / ( detail::RMT_DURATION_NS * detail::DIVIDER );
|
|
||||||
_bitToRmt[ 1 ].duration1 = _timing.T1L / ( detail::RMT_DURATION_NS * detail::DIVIDER );
|
|
||||||
|
|
||||||
if ( !anyAlive() ) {
|
|
||||||
_interruptCore = isrCore;
|
|
||||||
if(isrCore != CoreCurrent) {
|
|
||||||
ESP_ERROR_CHECK(esp_ipc_call_blocking(isrCore, registerInterrupt, NULL));
|
|
||||||
} else {
|
|
||||||
registerInterrupt(NULL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ledForChannel( channel ) = this;
|
|
||||||
}
|
|
||||||
|
|
||||||
~SmartLed() {
|
|
||||||
ledForChannel( _channel ) = nullptr;
|
|
||||||
if ( !anyAlive() ) {
|
|
||||||
if(_interruptCore != CoreCurrent) {
|
|
||||||
ESP_ERROR_CHECK(esp_ipc_call_blocking(_interruptCore, unregisterInterrupt, NULL));
|
|
||||||
} else {
|
|
||||||
unregisterInterrupt(NULL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
vSemaphoreDelete( _finishedFlag );
|
|
||||||
}
|
|
||||||
|
|
||||||
Rgb& operator[]( int idx ) {
|
|
||||||
return _firstBuffer[ idx ];
|
|
||||||
}
|
|
||||||
|
|
||||||
const Rgb& operator[]( int idx ) const {
|
|
||||||
return _firstBuffer[ idx ];
|
|
||||||
}
|
|
||||||
|
|
||||||
void show() {
|
|
||||||
_buffer = _firstBuffer.get();
|
|
||||||
startTransmission();
|
|
||||||
swapBuffers();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wait( TickType_t timeout = portMAX_DELAY ) {
|
|
||||||
if( xSemaphoreTake( _finishedFlag, timeout ) == pdTRUE ) {
|
|
||||||
xSemaphoreGive( _finishedFlag );
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
int size() const {
|
|
||||||
return _count;
|
|
||||||
}
|
|
||||||
|
|
||||||
Rgb *begin() { return _firstBuffer.get(); }
|
|
||||||
const Rgb *begin() const { return _firstBuffer.get(); }
|
|
||||||
const Rgb *cbegin() const { return _firstBuffer.get(); }
|
|
||||||
|
|
||||||
Rgb *end() { return _firstBuffer.get() + _count; }
|
|
||||||
const Rgb *end() const { return _firstBuffer.get() + _count; }
|
|
||||||
const Rgb *cend() const { return _firstBuffer.get() + _count; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
static intr_handle_t _interruptHandle;
|
|
||||||
static IsrCore _interruptCore;
|
|
||||||
|
|
||||||
static void initChannel( int channel ) {
|
|
||||||
RMT.apb_conf.fifo_mask = 1; //enable memory access, instead of FIFO mode.
|
|
||||||
RMT.apb_conf.mem_tx_wrap_en = 1; //wrap around when hitting end of buffer
|
|
||||||
RMT.conf_ch[ channel ].conf0.div_cnt = detail::DIVIDER;
|
|
||||||
RMT.conf_ch[ channel ].conf0.mem_size = 1;
|
|
||||||
RMT.conf_ch[ channel ].conf0.carrier_en = 0;
|
|
||||||
RMT.conf_ch[ channel ].conf0.carrier_out_lv = 1;
|
|
||||||
RMT.conf_ch[ channel ].conf0.mem_pd = 0;
|
|
||||||
|
|
||||||
RMT.conf_ch[ channel ].conf1.rx_en = 0;
|
|
||||||
RMT.conf_ch[ channel ].conf1.mem_owner = 0;
|
|
||||||
RMT.conf_ch[ channel ].conf1.tx_conti_mode = 0; //loop back mode.
|
|
||||||
RMT.conf_ch[ channel ].conf1.ref_always_on = 1; // use apb clock: 80M
|
|
||||||
RMT.conf_ch[ channel ].conf1.idle_out_en = 1;
|
|
||||||
RMT.conf_ch[ channel ].conf1.idle_out_lv = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void registerInterrupt(void *) {
|
|
||||||
ESP_ERROR_CHECK(esp_intr_alloc( ETS_RMT_INTR_SOURCE, 0, interruptHandler, nullptr, &_interruptHandle));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void unregisterInterrupt(void*) {
|
|
||||||
esp_intr_free( _interruptHandle );
|
|
||||||
}
|
|
||||||
|
|
||||||
static SmartLed*& IRAM_ATTR ledForChannel( int channel );
|
|
||||||
static void IRAM_ATTR interruptHandler( void* );
|
|
||||||
|
|
||||||
void IRAM_ATTR copyRmtHalfBlock();
|
|
||||||
|
|
||||||
void swapBuffers() {
|
|
||||||
if ( _secondBuffer )
|
|
||||||
_firstBuffer.swap( _secondBuffer );
|
|
||||||
}
|
|
||||||
|
|
||||||
void startTransmission() {
|
|
||||||
// Invalid use of the library
|
|
||||||
if( xSemaphoreTake( _finishedFlag, 0 ) != pdTRUE )
|
|
||||||
abort();
|
|
||||||
|
|
||||||
_pixelPosition = _componentPosition = _halfIdx = 0;
|
|
||||||
copyRmtHalfBlock();
|
|
||||||
if ( _pixelPosition < _count )
|
|
||||||
copyRmtHalfBlock();
|
|
||||||
|
|
||||||
RMT.conf_ch[ _channel ].conf1.mem_rd_rst = 1;
|
|
||||||
RMT.conf_ch[ _channel ].conf1.tx_start = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool anyAlive() {
|
|
||||||
for ( int i = 0; i != 8; i++ )
|
|
||||||
if ( ledForChannel( i ) != nullptr ) return true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
const LedType& _timing;
|
|
||||||
int _channel;
|
|
||||||
detail::RmtPulsePair _bitToRmt[ 2 ];
|
|
||||||
int _count;
|
|
||||||
std::unique_ptr< Rgb[] > _firstBuffer;
|
|
||||||
std::unique_ptr< Rgb[] > _secondBuffer;
|
|
||||||
Rgb *_buffer;
|
|
||||||
|
|
||||||
xSemaphoreHandle _finishedFlag;
|
|
||||||
|
|
||||||
int _pixelPosition;
|
|
||||||
int _componentPosition;
|
|
||||||
int _halfIdx;
|
|
||||||
};
|
|
||||||
|
|
||||||
class Apa102 {
|
|
||||||
public:
|
|
||||||
struct ApaRgb {
|
|
||||||
ApaRgb( uint8_t r = 0, uint8_t g = 0, uint32_t b = 0, uint32_t v = 0xFF )
|
|
||||||
: v( 0xE0 | v ), b( b ), g( g ), r( r )
|
|
||||||
{}
|
|
||||||
|
|
||||||
ApaRgb& operator=( const Rgb& o ) {
|
|
||||||
r = o.r;
|
|
||||||
g = o.g;
|
|
||||||
b = o.b;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
ApaRgb& operator=( const Hsv& o ) {
|
|
||||||
*this = Rgb{ o };
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t v, b, g, r;
|
|
||||||
};
|
|
||||||
|
|
||||||
static const int FINAL_FRAME_SIZE = 4;
|
|
||||||
static const int TRANS_COUNT = 2 + 8;
|
|
||||||
|
|
||||||
Apa102( int count, int clkpin, int datapin, BufferType doubleBuffer = SingleBuffer )
|
|
||||||
: _count( count ),
|
|
||||||
_firstBuffer( new ApaRgb[ count ] ),
|
|
||||||
_secondBuffer( doubleBuffer ? new ApaRgb[ count ] : nullptr ),
|
|
||||||
_initFrame( 0 )
|
|
||||||
{
|
|
||||||
spi_bus_config_t buscfg;
|
|
||||||
memset( &buscfg, 0, sizeof( buscfg ) );
|
|
||||||
buscfg.mosi_io_num = datapin;
|
|
||||||
buscfg.miso_io_num = -1;
|
|
||||||
buscfg.sclk_io_num = clkpin;
|
|
||||||
buscfg.quadwp_io_num = -1;
|
|
||||||
buscfg.quadhd_io_num = -1;
|
|
||||||
buscfg.max_transfer_sz = 65535;
|
|
||||||
|
|
||||||
spi_device_interface_config_t devcfg;
|
|
||||||
memset( &devcfg, 0, sizeof( devcfg ) );
|
|
||||||
devcfg.clock_speed_hz = 1000000;
|
|
||||||
devcfg.mode = 0;
|
|
||||||
devcfg.spics_io_num = -1;
|
|
||||||
devcfg.queue_size = TRANS_COUNT;
|
|
||||||
devcfg.pre_cb = nullptr;
|
|
||||||
|
|
||||||
auto ret = spi_bus_initialize( HSPI_HOST, &buscfg, 1 );
|
|
||||||
assert( ret == ESP_OK );
|
|
||||||
|
|
||||||
ret = spi_bus_add_device( HSPI_HOST, &devcfg, &_spi );
|
|
||||||
assert( ret == ESP_OK );
|
|
||||||
|
|
||||||
std::fill_n( _finalFrame, FINAL_FRAME_SIZE, 0xFFFFFFFF );
|
|
||||||
}
|
|
||||||
|
|
||||||
~Apa102() {
|
|
||||||
// ToDo
|
|
||||||
}
|
|
||||||
|
|
||||||
ApaRgb& operator[]( int idx ) {
|
|
||||||
return _firstBuffer[ idx ];
|
|
||||||
}
|
|
||||||
|
|
||||||
const ApaRgb& operator[]( int idx ) const {
|
|
||||||
return _firstBuffer[ idx ];
|
|
||||||
}
|
|
||||||
|
|
||||||
void show() {
|
|
||||||
_buffer = _firstBuffer.get();
|
|
||||||
startTransmission();
|
|
||||||
swapBuffers();
|
|
||||||
}
|
|
||||||
|
|
||||||
void wait() {
|
|
||||||
for ( int i = 0; i != _transCount; i++ ) {
|
|
||||||
spi_transaction_t *t;
|
|
||||||
spi_device_get_trans_result( _spi, &t, portMAX_DELAY );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private:
|
|
||||||
void swapBuffers() {
|
|
||||||
if ( _secondBuffer )
|
|
||||||
_firstBuffer.swap( _secondBuffer );
|
|
||||||
}
|
|
||||||
|
|
||||||
void startTransmission() {
|
|
||||||
for ( int i = 0; i != TRANS_COUNT; i++ ) {
|
|
||||||
_transactions[ i ].cmd = 0;
|
|
||||||
_transactions[ i ].addr = 0;
|
|
||||||
_transactions[ i ].flags = 0;
|
|
||||||
_transactions[ i ].rxlength = 0;
|
|
||||||
_transactions[ i ].rx_buffer = nullptr;
|
|
||||||
}
|
|
||||||
// Init frame
|
|
||||||
_transactions[ 0 ].length = 32;
|
|
||||||
_transactions[ 0 ].tx_buffer = &_initFrame;
|
|
||||||
spi_device_queue_trans( _spi, _transactions + 0, portMAX_DELAY );
|
|
||||||
// Data
|
|
||||||
_transactions[ 1 ].length = 32 * _count;
|
|
||||||
_transactions[ 1 ].tx_buffer = _buffer;
|
|
||||||
spi_device_queue_trans( _spi, _transactions + 1, portMAX_DELAY );
|
|
||||||
_transCount = 2;
|
|
||||||
// End frame
|
|
||||||
for ( int i = 0; i != 1 + _count / 32 / FINAL_FRAME_SIZE; i++ ) {
|
|
||||||
_transactions[ 2 + i ].length = 32 * FINAL_FRAME_SIZE;
|
|
||||||
_transactions[ 2 + i ].tx_buffer = _finalFrame;
|
|
||||||
spi_device_queue_trans( _spi, _transactions + 2 + i, portMAX_DELAY );
|
|
||||||
_transCount++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
spi_device_handle_t _spi;
|
|
||||||
int _count;
|
|
||||||
std::unique_ptr< ApaRgb[] > _firstBuffer, _secondBuffer;
|
|
||||||
ApaRgb *_buffer;
|
|
||||||
|
|
||||||
spi_transaction_t _transactions[ TRANS_COUNT ];
|
|
||||||
int _transCount;
|
|
||||||
|
|
||||||
uint32_t _initFrame;
|
|
||||||
uint32_t _finalFrame[ FINAL_FRAME_SIZE ];
|
|
||||||
};
|
|
||||||
|
|
||||||
class LDP8806 {
|
|
||||||
public:
|
|
||||||
struct LDP8806_GRB {
|
|
||||||
|
|
||||||
LDP8806_GRB( uint8_t g_7bit = 0, uint8_t r_7bit = 0, uint32_t b_7bit = 0 )
|
|
||||||
: g( g_7bit ), r( r_7bit ), b( b_7bit )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
LDP8806_GRB& operator=( const Rgb& o ) {
|
|
||||||
//Convert 8->7bit colour
|
|
||||||
r = ( o.r * 127 / 256 ) | 0x80;
|
|
||||||
g = ( o.g * 127 / 256 ) | 0x80;
|
|
||||||
b = ( o.b * 127 / 256 ) | 0x80;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
LDP8806_GRB& operator=( const Hsv& o ) {
|
|
||||||
*this = Rgb{ o };
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t g, r, b;
|
|
||||||
};
|
|
||||||
|
|
||||||
static const int LED_FRAME_SIZE_BYTES = sizeof( LDP8806_GRB );
|
|
||||||
static const int LATCH_FRAME_SIZE_BYTES = 3;
|
|
||||||
static const int TRANS_COUNT_MAX = 20;//Arbitrary, supports up to 600 LED
|
|
||||||
|
|
||||||
LDP8806( int count, int clkpin, int datapin, BufferType doubleBuffer = SingleBuffer, uint32_t clock_speed_hz = 2000000 )
|
|
||||||
: _count( count ),
|
|
||||||
_firstBuffer( new LDP8806_GRB[ count ] ),
|
|
||||||
_secondBuffer( doubleBuffer ? new LDP8806_GRB[ count ] : nullptr ),
|
|
||||||
// one 'latch'/start-of-data mark frame for every 32 leds
|
|
||||||
_latchFrames( ( count + 31 ) / 32 )
|
|
||||||
{
|
|
||||||
spi_bus_config_t buscfg;
|
|
||||||
memset( &buscfg, 0, sizeof( buscfg ) );
|
|
||||||
buscfg.mosi_io_num = datapin;
|
|
||||||
buscfg.miso_io_num = -1;
|
|
||||||
buscfg.sclk_io_num = clkpin;
|
|
||||||
buscfg.quadwp_io_num = -1;
|
|
||||||
buscfg.quadhd_io_num = -1;
|
|
||||||
buscfg.max_transfer_sz = 65535;
|
|
||||||
|
|
||||||
spi_device_interface_config_t devcfg;
|
|
||||||
memset( &devcfg, 0, sizeof( devcfg ) );
|
|
||||||
devcfg.clock_speed_hz = clock_speed_hz;
|
|
||||||
devcfg.mode = 0;
|
|
||||||
devcfg.spics_io_num = -1;
|
|
||||||
devcfg.queue_size = TRANS_COUNT_MAX;
|
|
||||||
devcfg.pre_cb = nullptr;
|
|
||||||
|
|
||||||
auto ret = spi_bus_initialize( HSPI_HOST, &buscfg, 1 );
|
|
||||||
assert( ret == ESP_OK );
|
|
||||||
|
|
||||||
ret = spi_bus_add_device( HSPI_HOST, &devcfg, &_spi );
|
|
||||||
assert( ret == ESP_OK );
|
|
||||||
|
|
||||||
std::fill_n( _latchBuffer, LATCH_FRAME_SIZE_BYTES, 0x0 );
|
|
||||||
}
|
|
||||||
|
|
||||||
~LDP8806() {
|
|
||||||
// noop
|
|
||||||
}
|
|
||||||
|
|
||||||
LDP8806_GRB& operator[]( int idx ) {
|
|
||||||
return _firstBuffer[ idx ];
|
|
||||||
}
|
|
||||||
|
|
||||||
const LDP8806_GRB& operator[]( int idx ) const {
|
|
||||||
return _firstBuffer[ idx ];
|
|
||||||
}
|
|
||||||
|
|
||||||
void show() {
|
|
||||||
_buffer = _firstBuffer.get();
|
|
||||||
startTransmission();
|
|
||||||
swapBuffers();
|
|
||||||
}
|
|
||||||
|
|
||||||
void wait() {
|
|
||||||
while ( _transCount-- ) {
|
|
||||||
spi_transaction_t *t;
|
|
||||||
spi_device_get_trans_result( _spi, &t, portMAX_DELAY );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private:
|
|
||||||
void swapBuffers() {
|
|
||||||
if ( _secondBuffer )
|
|
||||||
_firstBuffer.swap( _secondBuffer );
|
|
||||||
}
|
|
||||||
|
|
||||||
void startTransmission() {
|
|
||||||
_transCount = 0;
|
|
||||||
for ( int i = 0; i != TRANS_COUNT_MAX; i++ ) {
|
|
||||||
_transactions[ i ].cmd = 0;
|
|
||||||
_transactions[ i ].addr = 0;
|
|
||||||
_transactions[ i ].flags = 0;
|
|
||||||
_transactions[ i ].rxlength = 0;
|
|
||||||
_transactions[ i ].rx_buffer = nullptr;
|
|
||||||
}
|
|
||||||
// LED Data
|
|
||||||
_transactions[ 0 ].length = ( LED_FRAME_SIZE_BYTES * 8 ) * _count;
|
|
||||||
_transactions[ 0 ].tx_buffer = _buffer;
|
|
||||||
spi_device_queue_trans( _spi, _transactions + _transCount, portMAX_DELAY );
|
|
||||||
_transCount++;
|
|
||||||
|
|
||||||
// 'latch'/start-of-data marker frames
|
|
||||||
for ( int i = 0; i < _latchFrames; i++ ) {
|
|
||||||
_transactions[ _transCount ].length = ( LATCH_FRAME_SIZE_BYTES * 8 );
|
|
||||||
_transactions[ _transCount ].tx_buffer = _latchBuffer;
|
|
||||||
spi_device_queue_trans( _spi, _transactions + _transCount, portMAX_DELAY );
|
|
||||||
_transCount++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
spi_device_handle_t _spi;
|
|
||||||
int _count;
|
|
||||||
std::unique_ptr< LDP8806_GRB[] > _firstBuffer, _secondBuffer;
|
|
||||||
LDP8806_GRB *_buffer;
|
|
||||||
|
|
||||||
spi_transaction_t _transactions[ TRANS_COUNT_MAX ];
|
|
||||||
int _transCount;
|
|
||||||
|
|
||||||
int _latchFrames;
|
|
||||||
uint8_t _latchBuffer[ LATCH_FRAME_SIZE_BYTES ];
|
|
||||||
};
|
|
||||||
@@ -27,6 +27,7 @@
|
|||||||
#include "ClassControllCamera.h"
|
#include "ClassControllCamera.h"
|
||||||
#include "server_main.h"
|
#include "server_main.h"
|
||||||
#include "server_camera.h"
|
#include "server_camera.h"
|
||||||
|
#include "Helper.h"
|
||||||
|
|
||||||
// #include "jomjol_WS2812Slow.h"
|
// #include "jomjol_WS2812Slow.h"
|
||||||
#include "SmartLeds.h"
|
#include "SmartLeds.h"
|
||||||
@@ -142,13 +143,7 @@ void task_NoSDBlink(void *pvParameter)
|
|||||||
extern "C" void app_main(void)
|
extern "C" void app_main(void)
|
||||||
{
|
{
|
||||||
TickType_t xDelay;
|
TickType_t xDelay;
|
||||||
|
|
||||||
|
|
||||||
printf("Do Reset Camera\n");
|
|
||||||
PowerResetCamera();
|
|
||||||
Camera.InitCam();
|
|
||||||
Camera.LightOnOff(false);
|
|
||||||
|
|
||||||
if (!Init_NVS_SDCard())
|
if (!Init_NVS_SDCard())
|
||||||
{
|
{
|
||||||
xTaskCreate(&task_NoSDBlink, "task_NoSDBlink", configMINIMAL_STACK_SIZE * 64, NULL, tskIDLE_PRIORITY+1, NULL);
|
xTaskCreate(&task_NoSDBlink, "task_NoSDBlink", configMINIMAL_STACK_SIZE * 64, NULL, tskIDLE_PRIORITY+1, NULL);
|
||||||
@@ -176,8 +171,8 @@ extern "C" void app_main(void)
|
|||||||
printf("DNS IP: %s\n", dns);
|
printf("DNS IP: %s\n", dns);
|
||||||
|
|
||||||
|
|
||||||
wifi_init_sta(ssid, passwd, hostname, ip, gateway, netmask, dns);
|
wifi_init_sta(ssid, passwd, hostname, ip, gateway, netmask, dns);
|
||||||
|
|
||||||
|
|
||||||
xDelay = 2000 / portTICK_PERIOD_MS;
|
xDelay = 2000 / portTICK_PERIOD_MS;
|
||||||
printf("main: sleep for : %ldms\n", (long) xDelay);
|
printf("main: sleep for : %ldms\n", (long) xDelay);
|
||||||
@@ -198,8 +193,8 @@ extern "C" void app_main(void)
|
|||||||
printf("time %s\n", zw.c_str());
|
printf("time %s\n", zw.c_str());
|
||||||
|
|
||||||
// Camera.InitCam();
|
// Camera.InitCam();
|
||||||
// Camera.LightOnOff(false);
|
// Camera.LightOnOff(false);
|
||||||
xDelay = 2000 / portTICK_PERIOD_MS;
|
xDelay = 2000 / portTICK_PERIOD_MS;
|
||||||
printf("main: sleep for : %ldms\n", (long) xDelay);
|
printf("main: sleep for : %ldms\n", (long) xDelay);
|
||||||
vTaskDelay( xDelay );
|
vTaskDelay( xDelay );
|
||||||
|
|
||||||
@@ -215,6 +210,48 @@ extern "C" void app_main(void)
|
|||||||
register_server_main_uri(server, "/sdcard");
|
register_server_main_uri(server, "/sdcard");
|
||||||
|
|
||||||
printf("vor dotautostart\n");
|
printf("vor dotautostart\n");
|
||||||
TFliteDoAutoStart();
|
|
||||||
|
// init camera module
|
||||||
|
printf("Do Reset Camera\n");
|
||||||
|
PowerResetCamera();
|
||||||
|
|
||||||
|
|
||||||
|
size_t _hsize = getESPHeapSize();
|
||||||
|
if (_hsize < 4000000)
|
||||||
|
{
|
||||||
|
std::string _zws = "Not enought PSRAM available. Expected 4.194.304 MByte - available: " + std::to_string(_hsize);
|
||||||
|
_zws = _zws + "\nEither not initialzed or too small (2MByte only) or not present at all. Firmware cannot start!!";
|
||||||
|
printf(_zws.c_str());
|
||||||
|
LogFile.SwitchOnOff(true);
|
||||||
|
LogFile.WriteToFile(_zws);
|
||||||
|
LogFile.SwitchOnOff(false);
|
||||||
|
} else {
|
||||||
|
esp_err_t cam = Camera.InitCam();
|
||||||
|
if (cam != ESP_OK) {
|
||||||
|
ESP_LOGE(TAGMAIN, "Failed to initialize camera module. "
|
||||||
|
"Check that your camera module is working and connected properly.");
|
||||||
|
|
||||||
|
LogFile.SwitchOnOff(true);
|
||||||
|
LogFile.WriteToFile("Failed to initialize camera module. "
|
||||||
|
"Check that your camera module is working and connected properly.");
|
||||||
|
LogFile.SwitchOnOff(false);
|
||||||
|
} else {
|
||||||
|
// Test Camera
|
||||||
|
camera_fb_t * fb = esp_camera_fb_get();
|
||||||
|
if (!fb) {
|
||||||
|
ESP_LOGE(TAGMAIN, "esp_camera_fb_get: Camera Capture Failed");
|
||||||
|
LogFile.SwitchOnOff(true);
|
||||||
|
LogFile.WriteToFile("Camera cannot be initialzed. "
|
||||||
|
"System will reboot.");
|
||||||
|
doReboot();
|
||||||
|
}
|
||||||
|
esp_camera_fb_return(fb);
|
||||||
|
|
||||||
|
Camera.LightOnOff(false);
|
||||||
|
TFliteDoAutoStart();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
const char* GIT_REV="d0bf12f";
|
const char* GIT_REV="04c5649";
|
||||||
const char* GIT_TAG="";
|
const char* GIT_TAG="";
|
||||||
const char* GIT_BRANCH="master";
|
const char* GIT_BRANCH="master";
|
||||||
const char* BUILD_TIME="2021-10-07 07:17";
|
const char* BUILD_TIME="2021-12-30 18:32";
|
||||||
@@ -13,7 +13,7 @@ extern "C"
|
|||||||
#include "Helper.h"
|
#include "Helper.h"
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
const char* GIT_BASE_BRANCH = "master - v8.5.0 - 2021-10-07";
|
const char* GIT_BASE_BRANCH = "master - v10.0.0 - 2021-12-30";
|
||||||
|
|
||||||
|
|
||||||
const char* git_base_branch(void)
|
const char* git_base_branch(void)
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ src_dir = main
|
|||||||
|
|
||||||
|
|
||||||
[env:esp32cam]
|
[env:esp32cam]
|
||||||
platform = espressif32@2.1.0
|
;platform = espressif32@2.1.0
|
||||||
;platform = espressif32
|
platform = espressif32
|
||||||
board = esp32cam
|
board = esp32cam
|
||||||
framework = espidf
|
framework = espidf
|
||||||
|
|
||||||
|
|||||||
301
code/sdkconfig
@@ -3,6 +3,7 @@
|
|||||||
# Espressif IoT Development Framework (ESP-IDF) Project Configuration
|
# Espressif IoT Development Framework (ESP-IDF) Project Configuration
|
||||||
#
|
#
|
||||||
CONFIG_IDF_CMAKE=y
|
CONFIG_IDF_CMAKE=y
|
||||||
|
CONFIG_IDF_TARGET_ARCH_XTENSA=y
|
||||||
CONFIG_IDF_TARGET="esp32"
|
CONFIG_IDF_TARGET="esp32"
|
||||||
CONFIG_IDF_TARGET_ESP32=y
|
CONFIG_IDF_TARGET_ESP32=y
|
||||||
CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000
|
CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000
|
||||||
@@ -30,12 +31,14 @@ CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y
|
|||||||
CONFIG_APP_COMPILE_TIME_DATE=y
|
CONFIG_APP_COMPILE_TIME_DATE=y
|
||||||
# CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set
|
# CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set
|
||||||
# CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set
|
# CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set
|
||||||
|
# CONFIG_APP_PROJECT_VER_FROM_CONFIG is not set
|
||||||
CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16
|
CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16
|
||||||
# end of Application manager
|
# end of Application manager
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bootloader config
|
# Bootloader config
|
||||||
#
|
#
|
||||||
|
CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x1000
|
||||||
CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y
|
CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y
|
||||||
# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set
|
# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set
|
||||||
# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set
|
# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set
|
||||||
@@ -56,8 +59,11 @@ CONFIG_BOOTLOADER_WDT_ENABLE=y
|
|||||||
CONFIG_BOOTLOADER_WDT_TIME_MS=9000
|
CONFIG_BOOTLOADER_WDT_TIME_MS=9000
|
||||||
# CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set
|
# CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set
|
||||||
# CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set
|
# CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set
|
||||||
|
# CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set
|
||||||
|
# CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set
|
||||||
CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0
|
CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0
|
||||||
# CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set
|
# CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set
|
||||||
|
CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT=y
|
||||||
# end of Bootloader config
|
# end of Bootloader config
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -72,6 +78,7 @@ CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0
|
|||||||
# Serial flasher config
|
# Serial flasher config
|
||||||
#
|
#
|
||||||
CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200
|
CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200
|
||||||
|
# CONFIG_ESPTOOLPY_NO_STUB is not set
|
||||||
# CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set
|
# CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set
|
||||||
# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set
|
# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set
|
||||||
CONFIG_ESPTOOLPY_FLASHMODE_DIO=y
|
CONFIG_ESPTOOLPY_FLASHMODE_DIO=y
|
||||||
@@ -95,6 +102,7 @@ CONFIG_ESPTOOLPY_BEFORE="default_reset"
|
|||||||
CONFIG_ESPTOOLPY_AFTER_RESET=y
|
CONFIG_ESPTOOLPY_AFTER_RESET=y
|
||||||
# CONFIG_ESPTOOLPY_AFTER_NORESET is not set
|
# CONFIG_ESPTOOLPY_AFTER_NORESET is not set
|
||||||
CONFIG_ESPTOOLPY_AFTER="hard_reset"
|
CONFIG_ESPTOOLPY_AFTER="hard_reset"
|
||||||
|
# CONFIG_ESPTOOLPY_MONITOR_BAUD_CONSOLE is not set
|
||||||
# CONFIG_ESPTOOLPY_MONITOR_BAUD_9600B is not set
|
# CONFIG_ESPTOOLPY_MONITOR_BAUD_9600B is not set
|
||||||
# CONFIG_ESPTOOLPY_MONITOR_BAUD_57600B is not set
|
# CONFIG_ESPTOOLPY_MONITOR_BAUD_57600B is not set
|
||||||
CONFIG_ESPTOOLPY_MONITOR_BAUD_115200B=y
|
CONFIG_ESPTOOLPY_MONITOR_BAUD_115200B=y
|
||||||
@@ -122,10 +130,14 @@ CONFIG_PARTITION_TABLE_MD5=y
|
|||||||
# Example Connection Configuration
|
# Example Connection Configuration
|
||||||
#
|
#
|
||||||
CONFIG_EXAMPLE_CONNECT_WIFI=y
|
CONFIG_EXAMPLE_CONNECT_WIFI=y
|
||||||
# CONFIG_EXAMPLE_CONNECT_ETHERNET is not set
|
|
||||||
CONFIG_EXAMPLE_WIFI_SSID="myssid"
|
CONFIG_EXAMPLE_WIFI_SSID="myssid"
|
||||||
CONFIG_EXAMPLE_WIFI_PASSWORD="mypassword"
|
CONFIG_EXAMPLE_WIFI_PASSWORD="mypassword"
|
||||||
|
# CONFIG_EXAMPLE_CONNECT_ETHERNET is not set
|
||||||
CONFIG_EXAMPLE_CONNECT_IPV6=y
|
CONFIG_EXAMPLE_CONNECT_IPV6=y
|
||||||
|
CONFIG_EXAMPLE_CONNECT_IPV6_PREF_LOCAL_LINK=y
|
||||||
|
# CONFIG_EXAMPLE_CONNECT_IPV6_PREF_GLOBAL is not set
|
||||||
|
# CONFIG_EXAMPLE_CONNECT_IPV6_PREF_SITE_LOCAL is not set
|
||||||
|
# CONFIG_EXAMPLE_CONNECT_IPV6_PREF_UNIQUE_LOCAL is not set
|
||||||
# end of Example Connection Configuration
|
# end of Example Connection Configuration
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -147,6 +159,7 @@ CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y
|
|||||||
# CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set
|
# CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set
|
||||||
# CONFIG_COMPILER_WARN_WRITE_STRINGS is not set
|
# CONFIG_COMPILER_WARN_WRITE_STRINGS is not set
|
||||||
# CONFIG_COMPILER_DISABLE_GCC8_WARNINGS is not set
|
# CONFIG_COMPILER_DISABLE_GCC8_WARNINGS is not set
|
||||||
|
# CONFIG_COMPILER_DUMP_RTL_FILES is not set
|
||||||
# end of Compiler options
|
# end of Compiler options
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -161,21 +174,47 @@ CONFIG_APPTRACE_DEST_NONE=y
|
|||||||
CONFIG_APPTRACE_LOCK_ENABLE=y
|
CONFIG_APPTRACE_LOCK_ENABLE=y
|
||||||
# end of Application Level Tracing
|
# end of Application Level Tracing
|
||||||
|
|
||||||
|
#
|
||||||
|
# ESP-ASIO
|
||||||
|
#
|
||||||
|
# CONFIG_ASIO_SSL_SUPPORT is not set
|
||||||
|
# end of ESP-ASIO
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bluetooth
|
# Bluetooth
|
||||||
#
|
#
|
||||||
# CONFIG_BT_ENABLED is not set
|
# CONFIG_BT_ENABLED is not set
|
||||||
CONFIG_BTDM_CTRL_BR_EDR_SCO_DATA_PATH_EFF=0
|
CONFIG_BTDM_CTRL_BR_EDR_SCO_DATA_PATH_EFF=0
|
||||||
|
CONFIG_BTDM_CTRL_PCM_ROLE_EFF=0
|
||||||
|
CONFIG_BTDM_CTRL_PCM_POLAR_EFF=0
|
||||||
CONFIG_BTDM_CTRL_BLE_MAX_CONN_EFF=0
|
CONFIG_BTDM_CTRL_BLE_MAX_CONN_EFF=0
|
||||||
CONFIG_BTDM_CTRL_BR_EDR_MAX_ACL_CONN_EFF=0
|
CONFIG_BTDM_CTRL_BR_EDR_MAX_ACL_CONN_EFF=0
|
||||||
CONFIG_BTDM_CTRL_BR_EDR_MAX_SYNC_CONN_EFF=0
|
CONFIG_BTDM_CTRL_BR_EDR_MAX_SYNC_CONN_EFF=0
|
||||||
CONFIG_BTDM_CTRL_PINNED_TO_CORE=0
|
CONFIG_BTDM_CTRL_PINNED_TO_CORE=0
|
||||||
CONFIG_BTDM_BLE_SLEEP_CLOCK_ACCURACY_INDEX_EFF=1
|
CONFIG_BTDM_BLE_SLEEP_CLOCK_ACCURACY_INDEX_EFF=1
|
||||||
|
CONFIG_BT_CTRL_MODE_EFF=1
|
||||||
|
CONFIG_BT_CTRL_BLE_MAX_ACT=10
|
||||||
|
CONFIG_BT_CTRL_BLE_MAX_ACT_EFF=10
|
||||||
|
CONFIG_BT_CTRL_BLE_STATIC_ACL_TX_BUF_NB=0
|
||||||
|
CONFIG_BT_CTRL_PINNED_TO_CORE=0
|
||||||
|
CONFIG_BT_CTRL_HCI_TL=1
|
||||||
|
CONFIG_BT_CTRL_ADV_DUP_FILT_MAX=30
|
||||||
|
CONFIG_BT_CTRL_HW_CCA_EFF=0
|
||||||
|
CONFIG_BT_CTRL_DFT_TX_POWER_LEVEL_EFF=0
|
||||||
|
CONFIG_BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_SUPP=y
|
||||||
|
CONFIG_BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_NUM=100
|
||||||
|
CONFIG_BT_CTRL_BLE_ADV_REPORT_DISCARD_THRSHOLD=20
|
||||||
|
CONFIG_BT_CTRL_BLE_SCAN_DUPL=y
|
||||||
|
CONFIG_BT_CTRL_SCAN_DUPL_TYPE=0
|
||||||
|
CONFIG_BT_CTRL_SCAN_DUPL_CACHE_SIZE=100
|
||||||
|
CONFIG_BT_CTRL_COEX_PHY_CODED_TX_RX_TLIM_EFF=0
|
||||||
|
CONFIG_BT_CTRL_SLEEP_MODE_EFF=0
|
||||||
|
CONFIG_BT_CTRL_SLEEP_CLOCK_EFF=0
|
||||||
|
CONFIG_BT_CTRL_HCI_TL_EFF=1
|
||||||
CONFIG_BT_RESERVE_DRAM=0
|
CONFIG_BT_RESERVE_DRAM=0
|
||||||
|
CONFIG_BT_NIMBLE_USE_ESP_TIMER=y
|
||||||
# end of Bluetooth
|
# end of Bluetooth
|
||||||
|
|
||||||
# CONFIG_BLE_MESH is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# CoAP Configuration
|
# CoAP Configuration
|
||||||
#
|
#
|
||||||
@@ -205,6 +244,16 @@ CONFIG_SPI_MASTER_ISR_IN_IRAM=y
|
|||||||
CONFIG_SPI_SLAVE_ISR_IN_IRAM=y
|
CONFIG_SPI_SLAVE_ISR_IN_IRAM=y
|
||||||
# end of SPI configuration
|
# end of SPI configuration
|
||||||
|
|
||||||
|
#
|
||||||
|
# TWAI configuration
|
||||||
|
#
|
||||||
|
# CONFIG_TWAI_ISR_IN_IRAM is not set
|
||||||
|
# CONFIG_TWAI_ERRATA_FIX_BUS_OFF_REC is not set
|
||||||
|
# CONFIG_TWAI_ERRATA_FIX_TX_INTR_LOST is not set
|
||||||
|
# CONFIG_TWAI_ERRATA_FIX_RX_FRAME_INVALID is not set
|
||||||
|
# CONFIG_TWAI_ERRATA_FIX_RX_FIFO_CORRUPT is not set
|
||||||
|
# end of TWAI configuration
|
||||||
|
|
||||||
#
|
#
|
||||||
# UART configuration
|
# UART configuration
|
||||||
#
|
#
|
||||||
@@ -216,6 +265,12 @@ CONFIG_SPI_SLAVE_ISR_IN_IRAM=y
|
|||||||
#
|
#
|
||||||
CONFIG_RTCIO_SUPPORT_RTC_GPIO_DESC=y
|
CONFIG_RTCIO_SUPPORT_RTC_GPIO_DESC=y
|
||||||
# end of RTCIO configuration
|
# end of RTCIO configuration
|
||||||
|
|
||||||
|
#
|
||||||
|
# GPIO Configuration
|
||||||
|
#
|
||||||
|
# CONFIG_GPIO_ESP32_SUPPORT_SWITCH_SLP_PULL is not set
|
||||||
|
# end of GPIO Configuration
|
||||||
# end of Driver configurations
|
# end of Driver configurations
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -233,13 +288,16 @@ CONFIG_EFUSE_MAX_BLK_LEN=192
|
|||||||
# ESP-TLS
|
# ESP-TLS
|
||||||
#
|
#
|
||||||
CONFIG_ESP_TLS_USING_MBEDTLS=y
|
CONFIG_ESP_TLS_USING_MBEDTLS=y
|
||||||
|
# CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set
|
||||||
# CONFIG_ESP_TLS_SERVER is not set
|
# CONFIG_ESP_TLS_SERVER is not set
|
||||||
# CONFIG_ESP_TLS_PSK_VERIFICATION is not set
|
# CONFIG_ESP_TLS_PSK_VERIFICATION is not set
|
||||||
|
# CONFIG_ESP_TLS_INSECURE is not set
|
||||||
# end of ESP-TLS
|
# end of ESP-TLS
|
||||||
|
|
||||||
#
|
#
|
||||||
# ESP32-specific
|
# ESP32-specific
|
||||||
#
|
#
|
||||||
|
CONFIG_ESP32_ECO3_CACHE_LOCK_FIX=y
|
||||||
CONFIG_ESP32_REV_MIN_0=y
|
CONFIG_ESP32_REV_MIN_0=y
|
||||||
# CONFIG_ESP32_REV_MIN_1 is not set
|
# CONFIG_ESP32_REV_MIN_1 is not set
|
||||||
# CONFIG_ESP32_REV_MIN_2 is not set
|
# CONFIG_ESP32_REV_MIN_2 is not set
|
||||||
@@ -247,15 +305,16 @@ CONFIG_ESP32_REV_MIN_0=y
|
|||||||
CONFIG_ESP32_REV_MIN=0
|
CONFIG_ESP32_REV_MIN=0
|
||||||
CONFIG_ESP32_DPORT_WORKAROUND=y
|
CONFIG_ESP32_DPORT_WORKAROUND=y
|
||||||
# CONFIG_ESP32_DEFAULT_CPU_FREQ_80 is not set
|
# CONFIG_ESP32_DEFAULT_CPU_FREQ_80 is not set
|
||||||
CONFIG_ESP32_DEFAULT_CPU_FREQ_160=y
|
# CONFIG_ESP32_DEFAULT_CPU_FREQ_160 is not set
|
||||||
# CONFIG_ESP32_DEFAULT_CPU_FREQ_240 is not set
|
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
|
||||||
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=160
|
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=240
|
||||||
CONFIG_ESP32_SPIRAM_SUPPORT=y
|
CONFIG_ESP32_SPIRAM_SUPPORT=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# SPI RAM config
|
# SPI RAM config
|
||||||
#
|
#
|
||||||
CONFIG_SPIRAM_TYPE_AUTO=y
|
CONFIG_SPIRAM_TYPE_AUTO=y
|
||||||
|
# CONFIG_SPIRAM_TYPE_ESPPSRAM16 is not set
|
||||||
# CONFIG_SPIRAM_TYPE_ESPPSRAM32 is not set
|
# CONFIG_SPIRAM_TYPE_ESPPSRAM32 is not set
|
||||||
# CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set
|
# CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set
|
||||||
CONFIG_SPIRAM_SIZE=-1
|
CONFIG_SPIRAM_SIZE=-1
|
||||||
@@ -268,7 +327,7 @@ CONFIG_SPIRAM_BOOT_INIT=y
|
|||||||
CONFIG_SPIRAM_USE_MALLOC=y
|
CONFIG_SPIRAM_USE_MALLOC=y
|
||||||
CONFIG_SPIRAM_MEMTEST=y
|
CONFIG_SPIRAM_MEMTEST=y
|
||||||
CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=16384
|
CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=16384
|
||||||
# CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP is not set
|
CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y
|
||||||
CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=32768
|
CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=32768
|
||||||
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
|
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
|
||||||
CONFIG_SPIRAM_CACHE_WORKAROUND=y
|
CONFIG_SPIRAM_CACHE_WORKAROUND=y
|
||||||
@@ -305,6 +364,7 @@ CONFIG_D2WD_PSRAM_CS_IO=10
|
|||||||
CONFIG_PICO_PSRAM_CS_IO=10
|
CONFIG_PICO_PSRAM_CS_IO=10
|
||||||
# end of PSRAM clock and cs IO for ESP32-PICO
|
# end of PSRAM clock and cs IO for ESP32-PICO
|
||||||
|
|
||||||
|
# CONFIG_SPIRAM_CUSTOM_SPIWP_SD3_PIN is not set
|
||||||
CONFIG_SPIRAM_SPIWP_SD3_PIN=7
|
CONFIG_SPIRAM_SPIWP_SD3_PIN=7
|
||||||
# CONFIG_SPIRAM_2T_MODE is not set
|
# CONFIG_SPIRAM_2T_MODE is not set
|
||||||
# end of SPI RAM config
|
# end of SPI RAM config
|
||||||
@@ -316,10 +376,6 @@ CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR=y
|
|||||||
CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES=4
|
CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES=4
|
||||||
# CONFIG_ESP32_ULP_COPROC_ENABLED is not set
|
# CONFIG_ESP32_ULP_COPROC_ENABLED is not set
|
||||||
CONFIG_ESP32_ULP_COPROC_RESERVE_MEM=0
|
CONFIG_ESP32_ULP_COPROC_RESERVE_MEM=0
|
||||||
# CONFIG_ESP32_PANIC_PRINT_HALT is not set
|
|
||||||
CONFIG_ESP32_PANIC_PRINT_REBOOT=y
|
|
||||||
# CONFIG_ESP32_PANIC_SILENT_REBOOT is not set
|
|
||||||
# CONFIG_ESP32_PANIC_GDBSTUB is not set
|
|
||||||
CONFIG_ESP32_DEBUG_OCDAWARE=y
|
CONFIG_ESP32_DEBUG_OCDAWARE=y
|
||||||
CONFIG_ESP32_BROWNOUT_DET=y
|
CONFIG_ESP32_BROWNOUT_DET=y
|
||||||
CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_0=y
|
CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_0=y
|
||||||
@@ -349,16 +405,11 @@ CONFIG_ESP32_XTAL_FREQ=40
|
|||||||
# CONFIG_ESP32_DISABLE_BASIC_ROM_CONSOLE is not set
|
# CONFIG_ESP32_DISABLE_BASIC_ROM_CONSOLE is not set
|
||||||
# CONFIG_ESP32_NO_BLOBS is not set
|
# CONFIG_ESP32_NO_BLOBS is not set
|
||||||
# CONFIG_ESP32_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set
|
# CONFIG_ESP32_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set
|
||||||
|
# CONFIG_ESP32_COMPATIBLE_PRE_V3_1_BOOTLOADERS is not set
|
||||||
# CONFIG_ESP32_USE_FIXED_STATIC_RAM_SIZE is not set
|
# CONFIG_ESP32_USE_FIXED_STATIC_RAM_SIZE is not set
|
||||||
CONFIG_ESP32_DPORT_DIS_INTERRUPT_LVL=5
|
CONFIG_ESP32_DPORT_DIS_INTERRUPT_LVL=5
|
||||||
# end of ESP32-specific
|
# end of ESP32-specific
|
||||||
|
|
||||||
#
|
|
||||||
# Power Management
|
|
||||||
#
|
|
||||||
# CONFIG_PM_ENABLE is not set
|
|
||||||
# end of Power Management
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# ADC-Calibration
|
# ADC-Calibration
|
||||||
#
|
#
|
||||||
@@ -370,18 +421,18 @@ CONFIG_ADC_CAL_LUT_ENABLE=y
|
|||||||
#
|
#
|
||||||
# Common ESP-related
|
# Common ESP-related
|
||||||
#
|
#
|
||||||
# CONFIG_ESP_TIMER_PROFILING is not set
|
|
||||||
CONFIG_ESP_ERR_TO_NAME_LOOKUP=y
|
CONFIG_ESP_ERR_TO_NAME_LOOKUP=y
|
||||||
CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32
|
CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32
|
||||||
CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304
|
CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304
|
||||||
CONFIG_ESP_MAIN_TASK_STACK_SIZE=3584
|
CONFIG_ESP_MAIN_TASK_STACK_SIZE=3584
|
||||||
CONFIG_ESP_IPC_TASK_STACK_SIZE=1024
|
CONFIG_ESP_IPC_TASK_STACK_SIZE=1024
|
||||||
CONFIG_ESP_IPC_USES_CALLERS_PRIORITY=y
|
CONFIG_ESP_IPC_USES_CALLERS_PRIORITY=y
|
||||||
CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584
|
|
||||||
CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048
|
CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048
|
||||||
CONFIG_ESP_CONSOLE_UART_DEFAULT=y
|
CONFIG_ESP_CONSOLE_UART_DEFAULT=y
|
||||||
# CONFIG_ESP_CONSOLE_UART_CUSTOM is not set
|
# CONFIG_ESP_CONSOLE_UART_CUSTOM is not set
|
||||||
# CONFIG_ESP_CONSOLE_UART_NONE is not set
|
# CONFIG_ESP_CONSOLE_NONE is not set
|
||||||
|
CONFIG_ESP_CONSOLE_UART=y
|
||||||
|
CONFIG_ESP_CONSOLE_MULTIPLE_UART=y
|
||||||
CONFIG_ESP_CONSOLE_UART_NUM=0
|
CONFIG_ESP_CONSOLE_UART_NUM=0
|
||||||
CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200
|
CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200
|
||||||
CONFIG_ESP_INT_WDT=y
|
CONFIG_ESP_INT_WDT=y
|
||||||
@@ -393,6 +444,10 @@ CONFIG_ESP_TASK_WDT_TIMEOUT_S=6
|
|||||||
CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y
|
CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y
|
||||||
CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=y
|
CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=y
|
||||||
# CONFIG_ESP_PANIC_HANDLER_IRAM is not set
|
# CONFIG_ESP_PANIC_HANDLER_IRAM is not set
|
||||||
|
CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y
|
||||||
|
CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y
|
||||||
|
CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y
|
||||||
|
CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y
|
||||||
# end of Common ESP-related
|
# end of Common ESP-related
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -410,6 +465,7 @@ CONFIG_ETH_DMA_RX_BUFFER_NUM=10
|
|||||||
CONFIG_ETH_DMA_TX_BUFFER_NUM=10
|
CONFIG_ETH_DMA_TX_BUFFER_NUM=10
|
||||||
CONFIG_ETH_USE_SPI_ETHERNET=y
|
CONFIG_ETH_USE_SPI_ETHERNET=y
|
||||||
CONFIG_ETH_SPI_ETHERNET_DM9051=y
|
CONFIG_ETH_SPI_ETHERNET_DM9051=y
|
||||||
|
# CONFIG_ETH_SPI_ETHERNET_W5500 is not set
|
||||||
# CONFIG_ETH_USE_OPENETH is not set
|
# CONFIG_ETH_USE_OPENETH is not set
|
||||||
# end of Ethernet
|
# end of Ethernet
|
||||||
|
|
||||||
@@ -441,6 +497,7 @@ CONFIG_HTTPD_MAX_URI_LEN=1024
|
|||||||
CONFIG_HTTPD_ERR_RESP_NO_DELAY=y
|
CONFIG_HTTPD_ERR_RESP_NO_DELAY=y
|
||||||
CONFIG_HTTPD_PURGE_BUF_LEN=32
|
CONFIG_HTTPD_PURGE_BUF_LEN=32
|
||||||
# CONFIG_HTTPD_LOG_PURGE_DATA is not set
|
# CONFIG_HTTPD_LOG_PURGE_DATA is not set
|
||||||
|
# CONFIG_HTTPD_WS_SUPPORT is not set
|
||||||
# end of HTTP Server
|
# end of HTTP Server
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -464,28 +521,70 @@ CONFIG_ESP_NETIF_TCPIP_LWIP=y
|
|||||||
CONFIG_ESP_NETIF_TCPIP_ADAPTER_COMPATIBLE_LAYER=y
|
CONFIG_ESP_NETIF_TCPIP_ADAPTER_COMPATIBLE_LAYER=y
|
||||||
# end of ESP NETIF Adapter
|
# end of ESP NETIF Adapter
|
||||||
|
|
||||||
|
#
|
||||||
|
# Power Management
|
||||||
|
#
|
||||||
|
# CONFIG_PM_ENABLE is not set
|
||||||
|
# end of Power Management
|
||||||
|
|
||||||
|
#
|
||||||
|
# ESP System Settings
|
||||||
|
#
|
||||||
|
# CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set
|
||||||
|
CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y
|
||||||
|
# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set
|
||||||
|
# CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set
|
||||||
|
# CONFIG_ESP_SYSTEM_PSRAM_LEAKAGE_WORKAROUND is not set
|
||||||
|
# CONFIG_ESP_SYSTEM_FLASH_LEAKAGE_WORKAROUND is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Memory protection
|
||||||
|
#
|
||||||
|
# end of Memory protection
|
||||||
|
# end of ESP System Settings
|
||||||
|
|
||||||
|
#
|
||||||
|
# High resolution timer (esp_timer)
|
||||||
|
#
|
||||||
|
# CONFIG_ESP_TIMER_PROFILING is not set
|
||||||
|
CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y
|
||||||
|
CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y
|
||||||
|
CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584
|
||||||
|
# CONFIG_ESP_TIMER_IMPL_FRC2 is not set
|
||||||
|
CONFIG_ESP_TIMER_IMPL_TG0_LAC=y
|
||||||
|
# end of High resolution timer (esp_timer)
|
||||||
|
|
||||||
#
|
#
|
||||||
# Wi-Fi
|
# Wi-Fi
|
||||||
#
|
#
|
||||||
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10
|
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10
|
||||||
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32
|
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=16
|
||||||
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER=y
|
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER=y
|
||||||
CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=0
|
CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=0
|
||||||
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER_NUM=16
|
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER_NUM=8
|
||||||
|
CONFIG_ESP32_WIFI_CACHE_TX_BUFFER_NUM=16
|
||||||
# CONFIG_ESP32_WIFI_CSI_ENABLED is not set
|
# CONFIG_ESP32_WIFI_CSI_ENABLED is not set
|
||||||
CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y
|
CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y
|
||||||
CONFIG_ESP32_WIFI_TX_BA_WIN=6
|
CONFIG_ESP32_WIFI_TX_BA_WIN=6
|
||||||
CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y
|
CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y
|
||||||
CONFIG_ESP32_WIFI_RX_BA_WIN=6
|
CONFIG_ESP32_WIFI_RX_BA_WIN=6
|
||||||
|
# CONFIG_ESP32_WIFI_AMSDU_TX_ENABLED is not set
|
||||||
CONFIG_ESP32_WIFI_NVS_ENABLED=y
|
CONFIG_ESP32_WIFI_NVS_ENABLED=y
|
||||||
CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y
|
CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y
|
||||||
# CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set
|
# CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set
|
||||||
CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752
|
CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752
|
||||||
CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32
|
CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32
|
||||||
# CONFIG_ESP32_WIFI_DEBUG_LOG_ENABLE is not set
|
# CONFIG_WIFI_LOG_DEFAULT_LEVEL_NONE is not set
|
||||||
|
# CONFIG_WIFI_LOG_DEFAULT_LEVEL_ERROR is not set
|
||||||
|
# CONFIG_WIFI_LOG_DEFAULT_LEVEL_WARN is not set
|
||||||
|
CONFIG_WIFI_LOG_DEFAULT_LEVEL_INFO=y
|
||||||
|
# CONFIG_WIFI_LOG_DEFAULT_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_WIFI_LOG_DEFAULT_LEVEL_VERBOSE is not set
|
||||||
CONFIG_ESP32_WIFI_IRAM_OPT=y
|
CONFIG_ESP32_WIFI_IRAM_OPT=y
|
||||||
CONFIG_ESP32_WIFI_RX_IRAM_OPT=y
|
CONFIG_ESP32_WIFI_RX_IRAM_OPT=y
|
||||||
CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y
|
CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y
|
||||||
|
# CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set
|
||||||
|
# CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE is not set
|
||||||
# end of Wi-Fi
|
# end of Wi-Fi
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -500,9 +599,9 @@ CONFIG_ESP32_PHY_MAX_TX_POWER=20
|
|||||||
#
|
#
|
||||||
# Core dump
|
# Core dump
|
||||||
#
|
#
|
||||||
# CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set
|
# CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set
|
||||||
# CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set
|
# CONFIG_ESP_COREDUMP_ENABLE_TO_UART is not set
|
||||||
CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y
|
CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y
|
||||||
# end of Core dump
|
# end of Core dump
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -542,21 +641,30 @@ CONFIG_FATFS_FS_LOCK=10
|
|||||||
CONFIG_FATFS_TIMEOUT_MS=5000
|
CONFIG_FATFS_TIMEOUT_MS=5000
|
||||||
CONFIG_FATFS_PER_FILE_CACHE=y
|
CONFIG_FATFS_PER_FILE_CACHE=y
|
||||||
CONFIG_FATFS_ALLOC_PREFER_EXTRAM=y
|
CONFIG_FATFS_ALLOC_PREFER_EXTRAM=y
|
||||||
|
# CONFIG_FATFS_USE_FASTSEEK is not set
|
||||||
# end of FAT Filesystem support
|
# end of FAT Filesystem support
|
||||||
|
|
||||||
#
|
#
|
||||||
# Modbus configuration
|
# Modbus configuration
|
||||||
#
|
#
|
||||||
|
CONFIG_FMB_COMM_MODE_TCP_EN=y
|
||||||
|
CONFIG_FMB_TCP_PORT_DEFAULT=502
|
||||||
|
CONFIG_FMB_TCP_PORT_MAX_CONN=5
|
||||||
|
CONFIG_FMB_TCP_CONNECTION_TOUT_SEC=20
|
||||||
CONFIG_FMB_COMM_MODE_RTU_EN=y
|
CONFIG_FMB_COMM_MODE_RTU_EN=y
|
||||||
CONFIG_FMB_COMM_MODE_ASCII_EN=y
|
CONFIG_FMB_COMM_MODE_ASCII_EN=y
|
||||||
CONFIG_FMB_MASTER_TIMEOUT_MS_RESPOND=150
|
CONFIG_FMB_MASTER_TIMEOUT_MS_RESPOND=150
|
||||||
CONFIG_FMB_MASTER_DELAY_MS_CONVERT=200
|
CONFIG_FMB_MASTER_DELAY_MS_CONVERT=200
|
||||||
CONFIG_FMB_QUEUE_LENGTH=20
|
CONFIG_FMB_QUEUE_LENGTH=20
|
||||||
CONFIG_FMB_SERIAL_TASK_STACK_SIZE=2048
|
CONFIG_FMB_PORT_TASK_STACK_SIZE=4096
|
||||||
CONFIG_FMB_SERIAL_BUF_SIZE=256
|
CONFIG_FMB_SERIAL_BUF_SIZE=256
|
||||||
CONFIG_FMB_SERIAL_ASCII_BITS_PER_SYMB=8
|
CONFIG_FMB_SERIAL_ASCII_BITS_PER_SYMB=8
|
||||||
CONFIG_FMB_SERIAL_ASCII_TIMEOUT_RESPOND_MS=1000
|
CONFIG_FMB_SERIAL_ASCII_TIMEOUT_RESPOND_MS=1000
|
||||||
CONFIG_FMB_SERIAL_TASK_PRIO=10
|
CONFIG_FMB_PORT_TASK_PRIO=10
|
||||||
|
# CONFIG_FMB_PORT_TASK_AFFINITY_NO_AFFINITY is not set
|
||||||
|
CONFIG_FMB_PORT_TASK_AFFINITY_CPU0=y
|
||||||
|
# CONFIG_FMB_PORT_TASK_AFFINITY_CPU1 is not set
|
||||||
|
CONFIG_FMB_PORT_TASK_AFFINITY=0x0
|
||||||
# CONFIG_FMB_CONTROLLER_SLAVE_ID_SUPPORT is not set
|
# CONFIG_FMB_CONTROLLER_SLAVE_ID_SUPPORT is not set
|
||||||
CONFIG_FMB_CONTROLLER_NOTIFY_TIMEOUT=20
|
CONFIG_FMB_CONTROLLER_NOTIFY_TIMEOUT=20
|
||||||
CONFIG_FMB_CONTROLLER_NOTIFY_QUEUE_SIZE=20
|
CONFIG_FMB_CONTROLLER_NOTIFY_QUEUE_SIZE=20
|
||||||
@@ -565,6 +673,8 @@ CONFIG_FMB_EVENT_QUEUE_TIMEOUT=20
|
|||||||
CONFIG_FMB_TIMER_PORT_ENABLED=y
|
CONFIG_FMB_TIMER_PORT_ENABLED=y
|
||||||
CONFIG_FMB_TIMER_GROUP=0
|
CONFIG_FMB_TIMER_GROUP=0
|
||||||
CONFIG_FMB_TIMER_INDEX=0
|
CONFIG_FMB_TIMER_INDEX=0
|
||||||
|
CONFIG_FMB_MASTER_TIMER_GROUP=0
|
||||||
|
CONFIG_FMB_MASTER_TIMER_INDEX=0
|
||||||
# CONFIG_FMB_TIMER_ISR_IN_IRAM is not set
|
# CONFIG_FMB_TIMER_ISR_IN_IRAM is not set
|
||||||
# end of Modbus configuration
|
# end of Modbus configuration
|
||||||
|
|
||||||
@@ -598,10 +708,11 @@ CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
|
|||||||
CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
|
CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
|
||||||
# CONFIG_FREERTOS_USE_TRACE_FACILITY is not set
|
# CONFIG_FREERTOS_USE_TRACE_FACILITY is not set
|
||||||
# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set
|
# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set
|
||||||
# CONFIG_FREERTOS_DEBUG_INTERNALS is not set
|
|
||||||
CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y
|
CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y
|
||||||
# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set
|
# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set
|
||||||
|
# CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set
|
||||||
CONFIG_FREERTOS_DEBUG_OCDAWARE=y
|
CONFIG_FREERTOS_DEBUG_OCDAWARE=y
|
||||||
|
# CONFIG_FREERTOS_FPU_IN_ISR is not set
|
||||||
# end of FreeRTOS
|
# end of FreeRTOS
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -613,6 +724,7 @@ CONFIG_HEAP_POISONING_DISABLED=y
|
|||||||
CONFIG_HEAP_TRACING_OFF=y
|
CONFIG_HEAP_TRACING_OFF=y
|
||||||
# CONFIG_HEAP_TRACING_STANDALONE is not set
|
# CONFIG_HEAP_TRACING_STANDALONE is not set
|
||||||
# CONFIG_HEAP_TRACING_TOHOST is not set
|
# CONFIG_HEAP_TRACING_TOHOST is not set
|
||||||
|
# CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set
|
||||||
# end of Heap memory debugging
|
# end of Heap memory debugging
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -657,24 +769,30 @@ CONFIG_LWIP_SO_REUSE=y
|
|||||||
CONFIG_LWIP_SO_REUSE_RXTOALL=y
|
CONFIG_LWIP_SO_REUSE_RXTOALL=y
|
||||||
# CONFIG_LWIP_SO_RCVBUF is not set
|
# CONFIG_LWIP_SO_RCVBUF is not set
|
||||||
# CONFIG_LWIP_NETBUF_RECVINFO is not set
|
# CONFIG_LWIP_NETBUF_RECVINFO is not set
|
||||||
CONFIG_LWIP_IP_FRAG=y
|
CONFIG_LWIP_IP4_FRAG=y
|
||||||
# CONFIG_LWIP_IP_REASSEMBLY is not set
|
CONFIG_LWIP_IP6_FRAG=y
|
||||||
|
# CONFIG_LWIP_IP4_REASSEMBLY is not set
|
||||||
|
# CONFIG_LWIP_IP6_REASSEMBLY is not set
|
||||||
|
# CONFIG_LWIP_IP_FORWARD is not set
|
||||||
# CONFIG_LWIP_STATS is not set
|
# CONFIG_LWIP_STATS is not set
|
||||||
# CONFIG_LWIP_ETHARP_TRUST_IP_MAC is not set
|
# CONFIG_LWIP_ETHARP_TRUST_IP_MAC is not set
|
||||||
CONFIG_LWIP_ESP_GRATUITOUS_ARP=y
|
CONFIG_LWIP_ESP_GRATUITOUS_ARP=y
|
||||||
CONFIG_LWIP_GARP_TMR_INTERVAL=60
|
CONFIG_LWIP_GARP_TMR_INTERVAL=60
|
||||||
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32
|
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32
|
||||||
CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y
|
CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y
|
||||||
|
# CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set
|
||||||
# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set
|
# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# DHCP server
|
# DHCP server
|
||||||
#
|
#
|
||||||
|
CONFIG_LWIP_DHCPS=y
|
||||||
CONFIG_LWIP_DHCPS_LEASE_UNIT=60
|
CONFIG_LWIP_DHCPS_LEASE_UNIT=60
|
||||||
CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8
|
CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8
|
||||||
# end of DHCP server
|
# end of DHCP server
|
||||||
|
|
||||||
# CONFIG_LWIP_AUTOIP is not set
|
# CONFIG_LWIP_AUTOIP is not set
|
||||||
|
CONFIG_LWIP_IPV6=y
|
||||||
# CONFIG_LWIP_IPV6_AUTOCONFIG is not set
|
# CONFIG_LWIP_IPV6_AUTOCONFIG is not set
|
||||||
CONFIG_LWIP_NETIF_LOOPBACK=y
|
CONFIG_LWIP_NETIF_LOOPBACK=y
|
||||||
CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8
|
CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8
|
||||||
@@ -684,6 +802,7 @@ CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8
|
|||||||
#
|
#
|
||||||
CONFIG_LWIP_MAX_ACTIVE_TCP=16
|
CONFIG_LWIP_MAX_ACTIVE_TCP=16
|
||||||
CONFIG_LWIP_MAX_LISTENING_TCP=16
|
CONFIG_LWIP_MAX_LISTENING_TCP=16
|
||||||
|
CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y
|
||||||
CONFIG_LWIP_TCP_MAXRTX=12
|
CONFIG_LWIP_TCP_MAXRTX=12
|
||||||
CONFIG_LWIP_TCP_SYNMAXRTX=6
|
CONFIG_LWIP_TCP_SYNMAXRTX=6
|
||||||
CONFIG_LWIP_TCP_MSS=1440
|
CONFIG_LWIP_TCP_MSS=1440
|
||||||
@@ -698,6 +817,8 @@ CONFIG_LWIP_TCP_QUEUE_OOSEQ=y
|
|||||||
CONFIG_LWIP_TCP_OVERSIZE_MSS=y
|
CONFIG_LWIP_TCP_OVERSIZE_MSS=y
|
||||||
# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set
|
# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set
|
||||||
# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set
|
# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set
|
||||||
|
# CONFIG_LWIP_WND_SCALE is not set
|
||||||
|
CONFIG_LWIP_TCP_RTO_TIME=1500
|
||||||
# end of TCP
|
# end of TCP
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -707,16 +828,28 @@ CONFIG_LWIP_MAX_UDP_PCBS=16
|
|||||||
CONFIG_LWIP_UDP_RECVMBOX_SIZE=6
|
CONFIG_LWIP_UDP_RECVMBOX_SIZE=6
|
||||||
# end of UDP
|
# end of UDP
|
||||||
|
|
||||||
|
#
|
||||||
|
# Checksums
|
||||||
|
#
|
||||||
|
# CONFIG_LWIP_CHECKSUM_CHECK_IP is not set
|
||||||
|
# CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set
|
||||||
|
CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y
|
||||||
|
# end of Checksums
|
||||||
|
|
||||||
CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072
|
CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072
|
||||||
CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
|
CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
|
||||||
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set
|
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set
|
||||||
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set
|
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set
|
||||||
CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF
|
CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF
|
||||||
# CONFIG_LWIP_PPP_SUPPORT is not set
|
# CONFIG_LWIP_PPP_SUPPORT is not set
|
||||||
|
CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3
|
||||||
|
CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5
|
||||||
|
# CONFIG_LWIP_SLIP_SUPPORT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# ICMP
|
# ICMP
|
||||||
#
|
#
|
||||||
|
CONFIG_LWIP_ICMP=y
|
||||||
# CONFIG_LWIP_MULTICAST_PING is not set
|
# CONFIG_LWIP_MULTICAST_PING is not set
|
||||||
# CONFIG_LWIP_BROADCAST_PING is not set
|
# CONFIG_LWIP_BROADCAST_PING is not set
|
||||||
# end of ICMP
|
# end of ICMP
|
||||||
@@ -733,6 +866,24 @@ CONFIG_LWIP_MAX_RAW_PCBS=16
|
|||||||
CONFIG_LWIP_DHCP_MAX_NTP_SERVERS=1
|
CONFIG_LWIP_DHCP_MAX_NTP_SERVERS=1
|
||||||
CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000
|
CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000
|
||||||
# end of SNTP
|
# end of SNTP
|
||||||
|
|
||||||
|
CONFIG_LWIP_ESP_LWIP_ASSERT=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Hooks
|
||||||
|
#
|
||||||
|
# CONFIG_LWIP_HOOK_TCP_ISN_NONE is not set
|
||||||
|
CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT=y
|
||||||
|
# CONFIG_LWIP_HOOK_TCP_ISN_CUSTOM is not set
|
||||||
|
CONFIG_LWIP_HOOK_IP6_ROUTE_NONE=y
|
||||||
|
# CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT is not set
|
||||||
|
# CONFIG_LWIP_HOOK_IP6_ROUTE_CUSTOM is not set
|
||||||
|
CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y
|
||||||
|
# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set
|
||||||
|
# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set
|
||||||
|
# end of Hooks
|
||||||
|
|
||||||
|
# CONFIG_LWIP_DEBUG is not set
|
||||||
# end of LWIP
|
# end of LWIP
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -745,14 +896,31 @@ CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y
|
|||||||
CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
|
CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
|
||||||
CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384
|
CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384
|
||||||
CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096
|
CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096
|
||||||
|
# CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set
|
||||||
# CONFIG_MBEDTLS_DEBUG is not set
|
# CONFIG_MBEDTLS_DEBUG is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Certificate Bundle
|
||||||
|
#
|
||||||
|
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
|
||||||
|
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y
|
||||||
|
# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set
|
||||||
|
# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set
|
||||||
|
# CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set
|
||||||
|
# end of Certificate Bundle
|
||||||
|
|
||||||
# CONFIG_MBEDTLS_ECP_RESTARTABLE is not set
|
# CONFIG_MBEDTLS_ECP_RESTARTABLE is not set
|
||||||
# CONFIG_MBEDTLS_CMAC_C is not set
|
# CONFIG_MBEDTLS_CMAC_C is not set
|
||||||
CONFIG_MBEDTLS_HARDWARE_AES=y
|
CONFIG_MBEDTLS_HARDWARE_AES=y
|
||||||
# CONFIG_MBEDTLS_HARDWARE_MPI is not set
|
# CONFIG_MBEDTLS_HARDWARE_MPI is not set
|
||||||
CONFIG_MBEDTLS_HARDWARE_SHA=y
|
CONFIG_MBEDTLS_HARDWARE_SHA=y
|
||||||
|
CONFIG_MBEDTLS_ROM_MD5=y
|
||||||
|
# CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set
|
||||||
|
# CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set
|
||||||
CONFIG_MBEDTLS_HAVE_TIME=y
|
CONFIG_MBEDTLS_HAVE_TIME=y
|
||||||
# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set
|
# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set
|
||||||
|
CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y
|
||||||
|
CONFIG_MBEDTLS_SHA512_C=y
|
||||||
CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y
|
CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y
|
||||||
# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set
|
# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set
|
||||||
# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set
|
# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set
|
||||||
@@ -782,6 +950,8 @@ CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y
|
|||||||
# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set
|
# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set
|
||||||
CONFIG_MBEDTLS_SSL_ALPN=y
|
CONFIG_MBEDTLS_SSL_ALPN=y
|
||||||
CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y
|
CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y
|
||||||
|
CONFIG_MBEDTLS_X509_CHECK_KEY_USAGE=y
|
||||||
|
CONFIG_MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE=y
|
||||||
CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y
|
CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -797,6 +967,7 @@ CONFIG_MBEDTLS_RC4_DISABLED=y
|
|||||||
# CONFIG_MBEDTLS_XTEA_C is not set
|
# CONFIG_MBEDTLS_XTEA_C is not set
|
||||||
CONFIG_MBEDTLS_CCM_C=y
|
CONFIG_MBEDTLS_CCM_C=y
|
||||||
CONFIG_MBEDTLS_GCM_C=y
|
CONFIG_MBEDTLS_GCM_C=y
|
||||||
|
# CONFIG_MBEDTLS_NIST_KW_C is not set
|
||||||
# end of Symmetric Ciphers
|
# end of Symmetric Ciphers
|
||||||
|
|
||||||
# CONFIG_MBEDTLS_RIPEMD160_C is not set
|
# CONFIG_MBEDTLS_RIPEMD160_C is not set
|
||||||
@@ -813,6 +984,7 @@ CONFIG_MBEDTLS_X509_CSR_PARSE_C=y
|
|||||||
CONFIG_MBEDTLS_ECP_C=y
|
CONFIG_MBEDTLS_ECP_C=y
|
||||||
CONFIG_MBEDTLS_ECDH_C=y
|
CONFIG_MBEDTLS_ECDH_C=y
|
||||||
CONFIG_MBEDTLS_ECDSA_C=y
|
CONFIG_MBEDTLS_ECDSA_C=y
|
||||||
|
# CONFIG_MBEDTLS_ECJPAKE_C is not set
|
||||||
CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y
|
CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y
|
||||||
CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y
|
CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y
|
||||||
CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y
|
CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y
|
||||||
@@ -826,6 +998,10 @@ CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y
|
|||||||
CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y
|
CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y
|
||||||
CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y
|
CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y
|
||||||
CONFIG_MBEDTLS_ECP_NIST_OPTIM=y
|
CONFIG_MBEDTLS_ECP_NIST_OPTIM=y
|
||||||
|
# CONFIG_MBEDTLS_POLY1305_C is not set
|
||||||
|
# CONFIG_MBEDTLS_CHACHA20_C is not set
|
||||||
|
# CONFIG_MBEDTLS_HKDF_C is not set
|
||||||
|
# CONFIG_MBEDTLS_THREADING_C is not set
|
||||||
# CONFIG_MBEDTLS_SECURITY_RISKS is not set
|
# CONFIG_MBEDTLS_SECURITY_RISKS is not set
|
||||||
# end of mbedTLS
|
# end of mbedTLS
|
||||||
|
|
||||||
@@ -834,11 +1010,13 @@ CONFIG_MBEDTLS_ECP_NIST_OPTIM=y
|
|||||||
#
|
#
|
||||||
CONFIG_MDNS_MAX_SERVICES=10
|
CONFIG_MDNS_MAX_SERVICES=10
|
||||||
CONFIG_MDNS_TASK_PRIORITY=1
|
CONFIG_MDNS_TASK_PRIORITY=1
|
||||||
|
CONFIG_MDNS_TASK_STACK_SIZE=4096
|
||||||
# CONFIG_MDNS_TASK_AFFINITY_NO_AFFINITY is not set
|
# CONFIG_MDNS_TASK_AFFINITY_NO_AFFINITY is not set
|
||||||
CONFIG_MDNS_TASK_AFFINITY_CPU0=y
|
CONFIG_MDNS_TASK_AFFINITY_CPU0=y
|
||||||
# CONFIG_MDNS_TASK_AFFINITY_CPU1 is not set
|
# CONFIG_MDNS_TASK_AFFINITY_CPU1 is not set
|
||||||
CONFIG_MDNS_TASK_AFFINITY=0x0
|
CONFIG_MDNS_TASK_AFFINITY=0x0
|
||||||
CONFIG_MDNS_SERVICE_ADD_TIMEOUT_MS=2000
|
CONFIG_MDNS_SERVICE_ADD_TIMEOUT_MS=2000
|
||||||
|
# CONFIG_MDNS_STRICT_MODE is not set
|
||||||
CONFIG_MDNS_TIMER_PERIOD_MS=100
|
CONFIG_MDNS_TIMER_PERIOD_MS=100
|
||||||
# end of mDNS
|
# end of mDNS
|
||||||
|
|
||||||
@@ -849,6 +1027,9 @@ CONFIG_MQTT_PROTOCOL_311=y
|
|||||||
CONFIG_MQTT_TRANSPORT_SSL=y
|
CONFIG_MQTT_TRANSPORT_SSL=y
|
||||||
CONFIG_MQTT_TRANSPORT_WEBSOCKET=y
|
CONFIG_MQTT_TRANSPORT_WEBSOCKET=y
|
||||||
CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y
|
CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y
|
||||||
|
# CONFIG_MQTT_MSG_ID_INCREMENTAL is not set
|
||||||
|
# CONFIG_MQTT_SKIP_PUBLISH_IF_DISCONNECTED is not set
|
||||||
|
# CONFIG_MQTT_REPORT_DELETED_MESSAGES is not set
|
||||||
# CONFIG_MQTT_USE_CUSTOM_CONFIG is not set
|
# CONFIG_MQTT_USE_CUSTOM_CONFIG is not set
|
||||||
# CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set
|
# CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set
|
||||||
# CONFIG_MQTT_CUSTOM_OUTBOX is not set
|
# CONFIG_MQTT_CUSTOM_OUTBOX is not set
|
||||||
@@ -875,6 +1056,7 @@ CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y
|
|||||||
# OpenSSL
|
# OpenSSL
|
||||||
#
|
#
|
||||||
# CONFIG_OPENSSL_DEBUG is not set
|
# CONFIG_OPENSSL_DEBUG is not set
|
||||||
|
CONFIG_OPENSSL_ERROR_STACK=y
|
||||||
# CONFIG_OPENSSL_ASSERT_DO_NOTHING is not set
|
# CONFIG_OPENSSL_ASSERT_DO_NOTHING is not set
|
||||||
CONFIG_OPENSSL_ASSERT_EXIT=y
|
CONFIG_OPENSSL_ASSERT_EXIT=y
|
||||||
# end of OpenSSL
|
# end of OpenSSL
|
||||||
@@ -902,17 +1084,25 @@ CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y
|
|||||||
# CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set
|
# CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set
|
||||||
# CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set
|
# CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set
|
||||||
# CONFIG_SPI_FLASH_USE_LEGACY_IMPL is not set
|
# CONFIG_SPI_FLASH_USE_LEGACY_IMPL is not set
|
||||||
|
# CONFIG_SPI_FLASH_SHARE_SPI1_BUS is not set
|
||||||
# CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set
|
# CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set
|
||||||
CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y
|
CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y
|
||||||
CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20
|
CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20
|
||||||
CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1
|
CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1
|
||||||
|
CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192
|
||||||
|
# CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set
|
||||||
|
# CONFIG_SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Auto-detect flash chips
|
# Auto-detect flash chips
|
||||||
#
|
#
|
||||||
CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y
|
CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y
|
||||||
|
CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=y
|
||||||
CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y
|
CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y
|
||||||
|
CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=y
|
||||||
# end of Auto-detect flash chips
|
# end of Auto-detect flash chips
|
||||||
|
|
||||||
|
CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y
|
||||||
# end of SPI Flash driver
|
# end of SPI Flash driver
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -951,6 +1141,23 @@ CONFIG_SPIFFS_USE_MTIME=y
|
|||||||
# end of Debug Configuration
|
# end of Debug Configuration
|
||||||
# end of SPIFFS Configuration
|
# end of SPIFFS Configuration
|
||||||
|
|
||||||
|
#
|
||||||
|
# TCP Transport
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Websocket
|
||||||
|
#
|
||||||
|
CONFIG_WS_TRANSPORT=y
|
||||||
|
CONFIG_WS_BUFFER_SIZE=1024
|
||||||
|
# end of Websocket
|
||||||
|
# end of TCP Transport
|
||||||
|
|
||||||
|
#
|
||||||
|
# TinyUSB
|
||||||
|
#
|
||||||
|
# end of TinyUSB
|
||||||
|
|
||||||
#
|
#
|
||||||
# Unity unit testing library
|
# Unity unit testing library
|
||||||
#
|
#
|
||||||
@@ -965,14 +1172,17 @@ CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y
|
|||||||
#
|
#
|
||||||
# Virtual file system
|
# Virtual file system
|
||||||
#
|
#
|
||||||
|
CONFIG_VFS_SUPPORT_IO=y
|
||||||
|
CONFIG_VFS_SUPPORT_DIR=y
|
||||||
|
CONFIG_VFS_SUPPORT_SELECT=y
|
||||||
# CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT is not set
|
# CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT is not set
|
||||||
CONFIG_VFS_SUPPORT_TERMIOS=y
|
CONFIG_VFS_SUPPORT_TERMIOS=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Host File System I/O (Semihosting)
|
# Host File System I/O (Semihosting)
|
||||||
#
|
#
|
||||||
CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1
|
CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1
|
||||||
CONFIG_SEMIHOSTFS_HOST_PATH_MAX_LEN=128
|
CONFIG_VFS_SEMIHOSTFS_HOST_PATH_MAX_LEN=128
|
||||||
# end of Host File System I/O (Semihosting)
|
# end of Host File System I/O (Semihosting)
|
||||||
# end of Virtual file system
|
# end of Virtual file system
|
||||||
|
|
||||||
@@ -995,7 +1205,11 @@ CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30
|
|||||||
# Supplicant
|
# Supplicant
|
||||||
#
|
#
|
||||||
CONFIG_WPA_MBEDTLS_CRYPTO=y
|
CONFIG_WPA_MBEDTLS_CRYPTO=y
|
||||||
# CONFIG_WPA_TLS_V12 is not set
|
# CONFIG_WPA_WAPI_PSK is not set
|
||||||
|
# CONFIG_WPA_DEBUG_PRINT is not set
|
||||||
|
# CONFIG_WPA_TESTING_OPTIONS is not set
|
||||||
|
# CONFIG_WPA_WPS_STRICT is not set
|
||||||
|
# CONFIG_WPA_11KV_SUPPORT is not set
|
||||||
# end of Supplicant
|
# end of Supplicant
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -1067,7 +1281,7 @@ CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN_EFF=0
|
|||||||
CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE=0
|
CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE=0
|
||||||
CONFIG_ADC2_DISABLE_DAC=y
|
CONFIG_ADC2_DISABLE_DAC=y
|
||||||
CONFIG_SPIRAM_SUPPORT=y
|
CONFIG_SPIRAM_SUPPORT=y
|
||||||
# CONFIG_WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST is not set
|
CONFIG_WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST=y
|
||||||
CONFIG_TRACEMEM_RESERVE_DRAM=0x0
|
CONFIG_TRACEMEM_RESERVE_DRAM=0x0
|
||||||
# CONFIG_TWO_UNIVERSAL_MAC_ADDRESS is not set
|
# CONFIG_TWO_UNIVERSAL_MAC_ADDRESS is not set
|
||||||
CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y
|
CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y
|
||||||
@@ -1096,10 +1310,10 @@ CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32
|
|||||||
CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304
|
CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304
|
||||||
CONFIG_MAIN_TASK_STACK_SIZE=3584
|
CONFIG_MAIN_TASK_STACK_SIZE=3584
|
||||||
CONFIG_IPC_TASK_STACK_SIZE=1024
|
CONFIG_IPC_TASK_STACK_SIZE=1024
|
||||||
CONFIG_TIMER_TASK_STACK_SIZE=3584
|
|
||||||
CONFIG_CONSOLE_UART_DEFAULT=y
|
CONFIG_CONSOLE_UART_DEFAULT=y
|
||||||
# CONFIG_CONSOLE_UART_CUSTOM is not set
|
# CONFIG_CONSOLE_UART_CUSTOM is not set
|
||||||
# CONFIG_CONSOLE_UART_NONE is not set
|
# CONFIG_ESP_CONSOLE_UART_NONE is not set
|
||||||
|
CONFIG_CONSOLE_UART=y
|
||||||
CONFIG_CONSOLE_UART_NUM=0
|
CONFIG_CONSOLE_UART_NUM=0
|
||||||
CONFIG_CONSOLE_UART_BAUDRATE=115200
|
CONFIG_CONSOLE_UART_BAUDRATE=115200
|
||||||
CONFIG_INT_WDT=y
|
CONFIG_INT_WDT=y
|
||||||
@@ -1113,10 +1327,18 @@ CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y
|
|||||||
# CONFIG_EVENT_LOOP_PROFILING is not set
|
# CONFIG_EVENT_LOOP_PROFILING is not set
|
||||||
CONFIG_POST_EVENTS_FROM_ISR=y
|
CONFIG_POST_EVENTS_FROM_ISR=y
|
||||||
CONFIG_POST_EVENTS_FROM_IRAM_ISR=y
|
CONFIG_POST_EVENTS_FROM_IRAM_ISR=y
|
||||||
|
# CONFIG_ESP32S2_PANIC_PRINT_HALT is not set
|
||||||
|
CONFIG_ESP32S2_PANIC_PRINT_REBOOT=y
|
||||||
|
# CONFIG_ESP32S2_PANIC_SILENT_REBOOT is not set
|
||||||
|
# CONFIG_ESP32S2_PANIC_GDBSTUB is not set
|
||||||
|
CONFIG_TIMER_TASK_STACK_SIZE=3584
|
||||||
|
# CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set
|
||||||
|
# CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set
|
||||||
|
CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y
|
||||||
CONFIG_MB_MASTER_TIMEOUT_MS_RESPOND=150
|
CONFIG_MB_MASTER_TIMEOUT_MS_RESPOND=150
|
||||||
CONFIG_MB_MASTER_DELAY_MS_CONVERT=200
|
CONFIG_MB_MASTER_DELAY_MS_CONVERT=200
|
||||||
CONFIG_MB_QUEUE_LENGTH=20
|
CONFIG_MB_QUEUE_LENGTH=20
|
||||||
CONFIG_MB_SERIAL_TASK_STACK_SIZE=2048
|
CONFIG_MB_SERIAL_TASK_STACK_SIZE=4096
|
||||||
CONFIG_MB_SERIAL_BUF_SIZE=256
|
CONFIG_MB_SERIAL_BUF_SIZE=256
|
||||||
CONFIG_MB_SERIAL_TASK_PRIO=10
|
CONFIG_MB_SERIAL_TASK_PRIO=10
|
||||||
# CONFIG_MB_CONTROLLER_SLAVE_ID_SUPPORT is not set
|
# CONFIG_MB_CONTROLLER_SLAVE_ID_SUPPORT is not set
|
||||||
@@ -1127,7 +1349,6 @@ CONFIG_MB_EVENT_QUEUE_TIMEOUT=20
|
|||||||
CONFIG_MB_TIMER_PORT_ENABLED=y
|
CONFIG_MB_TIMER_PORT_ENABLED=y
|
||||||
CONFIG_MB_TIMER_GROUP=0
|
CONFIG_MB_TIMER_GROUP=0
|
||||||
CONFIG_MB_TIMER_INDEX=0
|
CONFIG_MB_TIMER_INDEX=0
|
||||||
CONFIG_SUPPORT_STATIC_ALLOCATION=y
|
|
||||||
# CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set
|
# CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set
|
||||||
CONFIG_TIMER_TASK_PRIORITY=1
|
CONFIG_TIMER_TASK_PRIORITY=1
|
||||||
CONFIG_TIMER_TASK_STACK_DEPTH=2048
|
CONFIG_TIMER_TASK_STACK_DEPTH=2048
|
||||||
@@ -1169,4 +1390,6 @@ CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y
|
|||||||
# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED is not set
|
# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED is not set
|
||||||
# CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT is not set
|
# CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT is not set
|
||||||
CONFIG_SUPPORT_TERMIOS=y
|
CONFIG_SUPPORT_TERMIOS=y
|
||||||
|
CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1
|
||||||
|
CONFIG_SEMIHOSTFS_HOST_PATH_MAX_LEN=128
|
||||||
# End of deprecated options
|
# End of deprecated options
|
||||||
|
|||||||
@@ -116,11 +116,11 @@ CONFIG_ESPTOOLPY_MONITOR_BAUD=115200
|
|||||||
#
|
#
|
||||||
# Partition Table
|
# Partition Table
|
||||||
#
|
#
|
||||||
CONFIG_PARTITION_TABLE_SINGLE_APP=y
|
# CONFIG_PARTITION_TABLE_SINGLE_APP is not set
|
||||||
# CONFIG_PARTITION_TABLE_TWO_OTA is not set
|
# CONFIG_PARTITION_TABLE_TWO_OTA is not set
|
||||||
# CONFIG_PARTITION_TABLE_CUSTOM is not set
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
||||||
CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp.csv"
|
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
||||||
CONFIG_PARTITION_TABLE_OFFSET=0x8000
|
CONFIG_PARTITION_TABLE_OFFSET=0x8000
|
||||||
CONFIG_PARTITION_TABLE_MD5=y
|
CONFIG_PARTITION_TABLE_MD5=y
|
||||||
# end of Partition Table
|
# end of Partition Table
|
||||||
@@ -142,8 +142,8 @@ CONFIG_EXAMPLE_CONNECT_IPV6_PREF_LOCAL_LINK=y
|
|||||||
#
|
#
|
||||||
# Compiler options
|
# Compiler options
|
||||||
#
|
#
|
||||||
CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y
|
# CONFIG_COMPILER_OPTIMIZATION_DEFAULT is not set
|
||||||
# CONFIG_COMPILER_OPTIMIZATION_SIZE is not set
|
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
|
||||||
# CONFIG_COMPILER_OPTIMIZATION_PERF is not set
|
# CONFIG_COMPILER_OPTIMIZATION_PERF is not set
|
||||||
# CONFIG_COMPILER_OPTIMIZATION_NONE is not set
|
# CONFIG_COMPILER_OPTIMIZATION_NONE is not set
|
||||||
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y
|
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y
|
||||||
@@ -210,6 +210,7 @@ CONFIG_BT_CTRL_SLEEP_MODE_EFF=0
|
|||||||
CONFIG_BT_CTRL_SLEEP_CLOCK_EFF=0
|
CONFIG_BT_CTRL_SLEEP_CLOCK_EFF=0
|
||||||
CONFIG_BT_CTRL_HCI_TL_EFF=1
|
CONFIG_BT_CTRL_HCI_TL_EFF=1
|
||||||
CONFIG_BT_RESERVE_DRAM=0
|
CONFIG_BT_RESERVE_DRAM=0
|
||||||
|
CONFIG_BT_NIMBLE_USE_ESP_TIMER=y
|
||||||
# end of Bluetooth
|
# end of Bluetooth
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -294,6 +295,7 @@ CONFIG_ESP_TLS_USING_MBEDTLS=y
|
|||||||
#
|
#
|
||||||
# ESP32-specific
|
# ESP32-specific
|
||||||
#
|
#
|
||||||
|
CONFIG_ESP32_ECO3_CACHE_LOCK_FIX=y
|
||||||
CONFIG_ESP32_REV_MIN_0=y
|
CONFIG_ESP32_REV_MIN_0=y
|
||||||
# CONFIG_ESP32_REV_MIN_1 is not set
|
# CONFIG_ESP32_REV_MIN_1 is not set
|
||||||
# CONFIG_ESP32_REV_MIN_2 is not set
|
# CONFIG_ESP32_REV_MIN_2 is not set
|
||||||
@@ -301,10 +303,70 @@ CONFIG_ESP32_REV_MIN_0=y
|
|||||||
CONFIG_ESP32_REV_MIN=0
|
CONFIG_ESP32_REV_MIN=0
|
||||||
CONFIG_ESP32_DPORT_WORKAROUND=y
|
CONFIG_ESP32_DPORT_WORKAROUND=y
|
||||||
# CONFIG_ESP32_DEFAULT_CPU_FREQ_80 is not set
|
# CONFIG_ESP32_DEFAULT_CPU_FREQ_80 is not set
|
||||||
CONFIG_ESP32_DEFAULT_CPU_FREQ_160=y
|
# CONFIG_ESP32_DEFAULT_CPU_FREQ_160 is not set
|
||||||
# CONFIG_ESP32_DEFAULT_CPU_FREQ_240 is not set
|
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
|
||||||
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=160
|
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=240
|
||||||
# CONFIG_ESP32_SPIRAM_SUPPORT is not set
|
CONFIG_ESP32_SPIRAM_SUPPORT=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# SPI RAM config
|
||||||
|
#
|
||||||
|
CONFIG_SPIRAM_TYPE_AUTO=y
|
||||||
|
# CONFIG_SPIRAM_TYPE_ESPPSRAM16 is not set
|
||||||
|
# CONFIG_SPIRAM_TYPE_ESPPSRAM32 is not set
|
||||||
|
# CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set
|
||||||
|
CONFIG_SPIRAM_SIZE=-1
|
||||||
|
CONFIG_SPIRAM_SPEED_40M=y
|
||||||
|
CONFIG_SPIRAM=y
|
||||||
|
CONFIG_SPIRAM_BOOT_INIT=y
|
||||||
|
# CONFIG_SPIRAM_IGNORE_NOTFOUND is not set
|
||||||
|
# CONFIG_SPIRAM_USE_MEMMAP is not set
|
||||||
|
# CONFIG_SPIRAM_USE_CAPS_ALLOC is not set
|
||||||
|
CONFIG_SPIRAM_USE_MALLOC=y
|
||||||
|
CONFIG_SPIRAM_MEMTEST=y
|
||||||
|
CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=16384
|
||||||
|
# CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP is not set
|
||||||
|
CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=32768
|
||||||
|
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
|
||||||
|
CONFIG_SPIRAM_CACHE_WORKAROUND=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# SPIRAM cache workaround debugging
|
||||||
|
#
|
||||||
|
CONFIG_SPIRAM_CACHE_WORKAROUND_STRATEGY_MEMW=y
|
||||||
|
# CONFIG_SPIRAM_CACHE_WORKAROUND_STRATEGY_DUPLDST is not set
|
||||||
|
# CONFIG_SPIRAM_CACHE_WORKAROUND_STRATEGY_NOPS is not set
|
||||||
|
# end of SPIRAM cache workaround debugging
|
||||||
|
|
||||||
|
CONFIG_SPIRAM_BANKSWITCH_ENABLE=y
|
||||||
|
CONFIG_SPIRAM_BANKSWITCH_RESERVE=8
|
||||||
|
# CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# PSRAM clock and cs IO for ESP32-DOWD
|
||||||
|
#
|
||||||
|
CONFIG_D0WD_PSRAM_CLK_IO=17
|
||||||
|
CONFIG_D0WD_PSRAM_CS_IO=16
|
||||||
|
# end of PSRAM clock and cs IO for ESP32-DOWD
|
||||||
|
|
||||||
|
#
|
||||||
|
# PSRAM clock and cs IO for ESP32-D2WD
|
||||||
|
#
|
||||||
|
CONFIG_D2WD_PSRAM_CLK_IO=9
|
||||||
|
CONFIG_D2WD_PSRAM_CS_IO=10
|
||||||
|
# end of PSRAM clock and cs IO for ESP32-D2WD
|
||||||
|
|
||||||
|
#
|
||||||
|
# PSRAM clock and cs IO for ESP32-PICO
|
||||||
|
#
|
||||||
|
CONFIG_PICO_PSRAM_CS_IO=10
|
||||||
|
# end of PSRAM clock and cs IO for ESP32-PICO
|
||||||
|
|
||||||
|
# CONFIG_SPIRAM_CUSTOM_SPIWP_SD3_PIN is not set
|
||||||
|
CONFIG_SPIRAM_SPIWP_SD3_PIN=7
|
||||||
|
# CONFIG_SPIRAM_2T_MODE is not set
|
||||||
|
# end of SPI RAM config
|
||||||
|
|
||||||
# CONFIG_ESP32_TRAX is not set
|
# CONFIG_ESP32_TRAX is not set
|
||||||
CONFIG_ESP32_TRACEMEM_RESERVE_DRAM=0x0
|
CONFIG_ESP32_TRACEMEM_RESERVE_DRAM=0x0
|
||||||
# CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO is not set
|
# CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO is not set
|
||||||
@@ -341,6 +403,7 @@ CONFIG_ESP32_XTAL_FREQ=40
|
|||||||
# CONFIG_ESP32_DISABLE_BASIC_ROM_CONSOLE is not set
|
# CONFIG_ESP32_DISABLE_BASIC_ROM_CONSOLE is not set
|
||||||
# CONFIG_ESP32_NO_BLOBS is not set
|
# CONFIG_ESP32_NO_BLOBS is not set
|
||||||
# CONFIG_ESP32_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set
|
# CONFIG_ESP32_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set
|
||||||
|
# CONFIG_ESP32_COMPATIBLE_PRE_V3_1_BOOTLOADERS is not set
|
||||||
# CONFIG_ESP32_USE_FIXED_STATIC_RAM_SIZE is not set
|
# CONFIG_ESP32_USE_FIXED_STATIC_RAM_SIZE is not set
|
||||||
CONFIG_ESP32_DPORT_DIS_INTERRUPT_LVL=5
|
CONFIG_ESP32_DPORT_DIS_INTERRUPT_LVL=5
|
||||||
# end of ESP32-specific
|
# end of ESP32-specific
|
||||||
@@ -430,7 +493,7 @@ CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y
|
|||||||
CONFIG_HTTPD_MAX_REQ_HDR_LEN=512
|
CONFIG_HTTPD_MAX_REQ_HDR_LEN=512
|
||||||
CONFIG_HTTPD_MAX_URI_LEN=512
|
CONFIG_HTTPD_MAX_URI_LEN=512
|
||||||
CONFIG_HTTPD_ERR_RESP_NO_DELAY=y
|
CONFIG_HTTPD_ERR_RESP_NO_DELAY=y
|
||||||
CONFIG_HTTPD_PURGE_BUF_LEN=32
|
CONFIG_HTTPD_PURGE_BUF_LEN=16
|
||||||
# CONFIG_HTTPD_LOG_PURGE_DATA is not set
|
# CONFIG_HTTPD_LOG_PURGE_DATA is not set
|
||||||
# CONFIG_HTTPD_WS_SUPPORT is not set
|
# CONFIG_HTTPD_WS_SUPPORT is not set
|
||||||
# end of HTTP Server
|
# end of HTTP Server
|
||||||
@@ -469,7 +532,6 @@ CONFIG_ESP_NETIF_TCPIP_ADAPTER_COMPATIBLE_LAYER=y
|
|||||||
CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y
|
CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y
|
||||||
# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set
|
# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set
|
||||||
# CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set
|
# CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set
|
||||||
CONFIG_ESP_SYSTEM_PD_FLASH=y
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Memory protection
|
# Memory protection
|
||||||
@@ -491,23 +553,29 @@ CONFIG_ESP_TIMER_IMPL_TG0_LAC=y
|
|||||||
#
|
#
|
||||||
# Wi-Fi
|
# Wi-Fi
|
||||||
#
|
#
|
||||||
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10
|
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=5
|
||||||
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32
|
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=16
|
||||||
# CONFIG_ESP32_WIFI_STATIC_TX_BUFFER is not set
|
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER=y
|
||||||
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y
|
CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=0
|
||||||
CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1
|
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER_NUM=8
|
||||||
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32
|
CONFIG_ESP32_WIFI_CACHE_TX_BUFFER_NUM=16
|
||||||
# CONFIG_ESP32_WIFI_CSI_ENABLED is not set
|
# CONFIG_ESP32_WIFI_CSI_ENABLED is not set
|
||||||
CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y
|
CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y
|
||||||
CONFIG_ESP32_WIFI_TX_BA_WIN=6
|
CONFIG_ESP32_WIFI_TX_BA_WIN=6
|
||||||
CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y
|
CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y
|
||||||
CONFIG_ESP32_WIFI_RX_BA_WIN=6
|
CONFIG_ESP32_WIFI_RX_BA_WIN=6
|
||||||
|
# CONFIG_ESP32_WIFI_AMSDU_TX_ENABLED is not set
|
||||||
CONFIG_ESP32_WIFI_NVS_ENABLED=y
|
CONFIG_ESP32_WIFI_NVS_ENABLED=y
|
||||||
CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y
|
CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y
|
||||||
# CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set
|
# CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set
|
||||||
CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752
|
CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752
|
||||||
CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32
|
CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32
|
||||||
# CONFIG_ESP32_WIFI_DEBUG_LOG_ENABLE is not set
|
# CONFIG_WIFI_LOG_DEFAULT_LEVEL_NONE is not set
|
||||||
|
# CONFIG_WIFI_LOG_DEFAULT_LEVEL_ERROR is not set
|
||||||
|
# CONFIG_WIFI_LOG_DEFAULT_LEVEL_WARN is not set
|
||||||
|
CONFIG_WIFI_LOG_DEFAULT_LEVEL_INFO=y
|
||||||
|
# CONFIG_WIFI_LOG_DEFAULT_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_WIFI_LOG_DEFAULT_LEVEL_VERBOSE is not set
|
||||||
CONFIG_ESP32_WIFI_IRAM_OPT=y
|
CONFIG_ESP32_WIFI_IRAM_OPT=y
|
||||||
CONFIG_ESP32_WIFI_RX_IRAM_OPT=y
|
CONFIG_ESP32_WIFI_RX_IRAM_OPT=y
|
||||||
CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y
|
CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y
|
||||||
@@ -558,12 +626,17 @@ CONFIG_FATFS_CODEPAGE_437=y
|
|||||||
# CONFIG_FATFS_CODEPAGE_949 is not set
|
# CONFIG_FATFS_CODEPAGE_949 is not set
|
||||||
# CONFIG_FATFS_CODEPAGE_950 is not set
|
# CONFIG_FATFS_CODEPAGE_950 is not set
|
||||||
CONFIG_FATFS_CODEPAGE=437
|
CONFIG_FATFS_CODEPAGE=437
|
||||||
CONFIG_FATFS_LFN_NONE=y
|
# CONFIG_FATFS_LFN_NONE is not set
|
||||||
# CONFIG_FATFS_LFN_HEAP is not set
|
CONFIG_FATFS_LFN_HEAP=y
|
||||||
# CONFIG_FATFS_LFN_STACK is not set
|
# CONFIG_FATFS_LFN_STACK is not set
|
||||||
|
CONFIG_FATFS_MAX_LFN=255
|
||||||
|
CONFIG_FATFS_API_ENCODING_ANSI_OEM=y
|
||||||
|
# CONFIG_FATFS_API_ENCODING_UTF_16 is not set
|
||||||
|
# CONFIG_FATFS_API_ENCODING_UTF_8 is not set
|
||||||
CONFIG_FATFS_FS_LOCK=0
|
CONFIG_FATFS_FS_LOCK=0
|
||||||
CONFIG_FATFS_TIMEOUT_MS=10000
|
CONFIG_FATFS_TIMEOUT_MS=10000
|
||||||
CONFIG_FATFS_PER_FILE_CACHE=y
|
CONFIG_FATFS_PER_FILE_CACHE=y
|
||||||
|
CONFIG_FATFS_ALLOC_PREFER_EXTRAM=y
|
||||||
# CONFIG_FATFS_USE_FASTSEEK is not set
|
# CONFIG_FATFS_USE_FASTSEEK is not set
|
||||||
# end of FAT Filesystem support
|
# end of FAT Filesystem support
|
||||||
|
|
||||||
@@ -626,7 +699,6 @@ CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
|
|||||||
CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
|
CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
|
||||||
# CONFIG_FREERTOS_USE_TRACE_FACILITY is not set
|
# CONFIG_FREERTOS_USE_TRACE_FACILITY is not set
|
||||||
# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set
|
# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set
|
||||||
CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y
|
|
||||||
CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y
|
CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y
|
||||||
# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set
|
# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set
|
||||||
# CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set
|
# CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set
|
||||||
@@ -699,11 +771,13 @@ CONFIG_LWIP_ESP_GRATUITOUS_ARP=y
|
|||||||
CONFIG_LWIP_GARP_TMR_INTERVAL=60
|
CONFIG_LWIP_GARP_TMR_INTERVAL=60
|
||||||
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32
|
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32
|
||||||
CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y
|
CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y
|
||||||
|
# CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set
|
||||||
# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set
|
# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# DHCP server
|
# DHCP server
|
||||||
#
|
#
|
||||||
|
CONFIG_LWIP_DHCPS=y
|
||||||
CONFIG_LWIP_DHCPS_LEASE_UNIT=60
|
CONFIG_LWIP_DHCPS_LEASE_UNIT=60
|
||||||
CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8
|
CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8
|
||||||
# end of DHCP server
|
# end of DHCP server
|
||||||
@@ -765,6 +839,7 @@ CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5
|
|||||||
#
|
#
|
||||||
# ICMP
|
# ICMP
|
||||||
#
|
#
|
||||||
|
CONFIG_LWIP_ICMP=y
|
||||||
# CONFIG_LWIP_MULTICAST_PING is not set
|
# CONFIG_LWIP_MULTICAST_PING is not set
|
||||||
# CONFIG_LWIP_BROADCAST_PING is not set
|
# CONFIG_LWIP_BROADCAST_PING is not set
|
||||||
# end of ICMP
|
# end of ICMP
|
||||||
@@ -805,6 +880,7 @@ CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y
|
|||||||
# mbedTLS
|
# mbedTLS
|
||||||
#
|
#
|
||||||
CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y
|
CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y
|
||||||
|
# CONFIG_MBEDTLS_EXTERNAL_MEM_ALLOC is not set
|
||||||
# CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set
|
# CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set
|
||||||
# CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set
|
# CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set
|
||||||
CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
|
CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
|
||||||
@@ -864,6 +940,8 @@ CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y
|
|||||||
# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set
|
# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set
|
||||||
CONFIG_MBEDTLS_SSL_ALPN=y
|
CONFIG_MBEDTLS_SSL_ALPN=y
|
||||||
CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y
|
CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y
|
||||||
|
CONFIG_MBEDTLS_X509_CHECK_KEY_USAGE=y
|
||||||
|
CONFIG_MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE=y
|
||||||
CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y
|
CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -879,6 +957,7 @@ CONFIG_MBEDTLS_RC4_DISABLED=y
|
|||||||
# CONFIG_MBEDTLS_XTEA_C is not set
|
# CONFIG_MBEDTLS_XTEA_C is not set
|
||||||
CONFIG_MBEDTLS_CCM_C=y
|
CONFIG_MBEDTLS_CCM_C=y
|
||||||
CONFIG_MBEDTLS_GCM_C=y
|
CONFIG_MBEDTLS_GCM_C=y
|
||||||
|
# CONFIG_MBEDTLS_NIST_KW_C is not set
|
||||||
# end of Symmetric Ciphers
|
# end of Symmetric Ciphers
|
||||||
|
|
||||||
# CONFIG_MBEDTLS_RIPEMD160_C is not set
|
# CONFIG_MBEDTLS_RIPEMD160_C is not set
|
||||||
@@ -1056,7 +1135,13 @@ CONFIG_SPIFFS_USE_MTIME=y
|
|||||||
#
|
#
|
||||||
# TCP Transport
|
# TCP Transport
|
||||||
#
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Websocket
|
||||||
|
#
|
||||||
|
CONFIG_WS_TRANSPORT=y
|
||||||
CONFIG_WS_BUFFER_SIZE=1024
|
CONFIG_WS_BUFFER_SIZE=1024
|
||||||
|
# end of Websocket
|
||||||
# end of TCP Transport
|
# end of TCP Transport
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -1114,19 +1199,19 @@ CONFIG_WPA_MBEDTLS_CRYPTO=y
|
|||||||
# CONFIG_WPA_WAPI_PSK is not set
|
# CONFIG_WPA_WAPI_PSK is not set
|
||||||
# CONFIG_WPA_DEBUG_PRINT is not set
|
# CONFIG_WPA_DEBUG_PRINT is not set
|
||||||
# CONFIG_WPA_TESTING_OPTIONS is not set
|
# CONFIG_WPA_TESTING_OPTIONS is not set
|
||||||
# CONFIG_WPA_WPS_WARS is not set
|
# CONFIG_WPA_WPS_STRICT is not set
|
||||||
# CONFIG_WPA_11KV_SUPPORT is not set
|
# CONFIG_WPA_11KV_SUPPORT is not set
|
||||||
# end of Supplicant
|
# end of Supplicant
|
||||||
|
|
||||||
#
|
#
|
||||||
# Camera configuration
|
# Camera configuration
|
||||||
#
|
#
|
||||||
CONFIG_OV7670_SUPPORT=y
|
# CONFIG_OV7670_SUPPORT is not set
|
||||||
# CONFIG_OV7725_SUPPORT is not set
|
# CONFIG_OV7725_SUPPORT is not set
|
||||||
CONFIG_NT99141_SUPPORT=y
|
# CONFIG_NT99141_SUPPORT is not set
|
||||||
CONFIG_OV2640_SUPPORT=y
|
CONFIG_OV2640_SUPPORT=y
|
||||||
CONFIG_OV3660_SUPPORT=y
|
# CONFIG_OV3660_SUPPORT is not set
|
||||||
CONFIG_OV5640_SUPPORT=y
|
# CONFIG_OV5640_SUPPORT is not set
|
||||||
# CONFIG_SCCB_HARDWARE_I2C_PORT0 is not set
|
# CONFIG_SCCB_HARDWARE_I2C_PORT0 is not set
|
||||||
CONFIG_SCCB_HARDWARE_I2C_PORT1=y
|
CONFIG_SCCB_HARDWARE_I2C_PORT1=y
|
||||||
CONFIG_CAMERA_CORE0=y
|
CONFIG_CAMERA_CORE0=y
|
||||||
@@ -1165,8 +1250,8 @@ CONFIG_MONITOR_BAUD_115200B=y
|
|||||||
# CONFIG_MONITOR_BAUD_OTHER is not set
|
# CONFIG_MONITOR_BAUD_OTHER is not set
|
||||||
CONFIG_MONITOR_BAUD_OTHER_VAL=115200
|
CONFIG_MONITOR_BAUD_OTHER_VAL=115200
|
||||||
CONFIG_MONITOR_BAUD=115200
|
CONFIG_MONITOR_BAUD=115200
|
||||||
CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG=y
|
# CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG is not set
|
||||||
# CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set
|
CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE=y
|
||||||
CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y
|
CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y
|
||||||
# CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set
|
# CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set
|
||||||
# CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set
|
# CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set
|
||||||
@@ -1185,7 +1270,8 @@ CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN_EFF=0
|
|||||||
CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN_EFF=0
|
CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN_EFF=0
|
||||||
CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE=0
|
CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE=0
|
||||||
CONFIG_ADC2_DISABLE_DAC=y
|
CONFIG_ADC2_DISABLE_DAC=y
|
||||||
# CONFIG_SPIRAM_SUPPORT is not set
|
CONFIG_SPIRAM_SUPPORT=y
|
||||||
|
# CONFIG_WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST is not set
|
||||||
CONFIG_TRACEMEM_RESERVE_DRAM=0x0
|
CONFIG_TRACEMEM_RESERVE_DRAM=0x0
|
||||||
# CONFIG_TWO_UNIVERSAL_MAC_ADDRESS is not set
|
# CONFIG_TWO_UNIVERSAL_MAC_ADDRESS is not set
|
||||||
CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y
|
CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y
|
||||||
|
|||||||
1227
code/sdkconfig.esp32cam.old
Normal file
@@ -3,6 +3,7 @@
|
|||||||
# Espressif IoT Development Framework (ESP-IDF) Project Configuration
|
# Espressif IoT Development Framework (ESP-IDF) Project Configuration
|
||||||
#
|
#
|
||||||
CONFIG_IDF_CMAKE=y
|
CONFIG_IDF_CMAKE=y
|
||||||
|
CONFIG_IDF_TARGET_ARCH_XTENSA=y
|
||||||
CONFIG_IDF_TARGET="esp32"
|
CONFIG_IDF_TARGET="esp32"
|
||||||
CONFIG_IDF_TARGET_ESP32=y
|
CONFIG_IDF_TARGET_ESP32=y
|
||||||
CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000
|
CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000
|
||||||
@@ -30,12 +31,14 @@ CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y
|
|||||||
CONFIG_APP_COMPILE_TIME_DATE=y
|
CONFIG_APP_COMPILE_TIME_DATE=y
|
||||||
# CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set
|
# CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set
|
||||||
# CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set
|
# CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set
|
||||||
|
# CONFIG_APP_PROJECT_VER_FROM_CONFIG is not set
|
||||||
CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16
|
CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16
|
||||||
# end of Application manager
|
# end of Application manager
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bootloader config
|
# Bootloader config
|
||||||
#
|
#
|
||||||
|
CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x1000
|
||||||
CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y
|
CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y
|
||||||
# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set
|
# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set
|
||||||
# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set
|
# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set
|
||||||
@@ -56,8 +59,11 @@ CONFIG_BOOTLOADER_WDT_ENABLE=y
|
|||||||
CONFIG_BOOTLOADER_WDT_TIME_MS=9000
|
CONFIG_BOOTLOADER_WDT_TIME_MS=9000
|
||||||
# CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set
|
# CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set
|
||||||
# CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set
|
# CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set
|
||||||
|
# CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set
|
||||||
|
# CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set
|
||||||
CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0
|
CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0
|
||||||
# CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set
|
# CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set
|
||||||
|
CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT=y
|
||||||
# end of Bootloader config
|
# end of Bootloader config
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -72,6 +78,7 @@ CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0
|
|||||||
# Serial flasher config
|
# Serial flasher config
|
||||||
#
|
#
|
||||||
CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200
|
CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200
|
||||||
|
# CONFIG_ESPTOOLPY_NO_STUB is not set
|
||||||
# CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set
|
# CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set
|
||||||
# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set
|
# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set
|
||||||
CONFIG_ESPTOOLPY_FLASHMODE_DIO=y
|
CONFIG_ESPTOOLPY_FLASHMODE_DIO=y
|
||||||
@@ -95,6 +102,7 @@ CONFIG_ESPTOOLPY_BEFORE="default_reset"
|
|||||||
CONFIG_ESPTOOLPY_AFTER_RESET=y
|
CONFIG_ESPTOOLPY_AFTER_RESET=y
|
||||||
# CONFIG_ESPTOOLPY_AFTER_NORESET is not set
|
# CONFIG_ESPTOOLPY_AFTER_NORESET is not set
|
||||||
CONFIG_ESPTOOLPY_AFTER="hard_reset"
|
CONFIG_ESPTOOLPY_AFTER="hard_reset"
|
||||||
|
# CONFIG_ESPTOOLPY_MONITOR_BAUD_CONSOLE is not set
|
||||||
# CONFIG_ESPTOOLPY_MONITOR_BAUD_9600B is not set
|
# CONFIG_ESPTOOLPY_MONITOR_BAUD_9600B is not set
|
||||||
# CONFIG_ESPTOOLPY_MONITOR_BAUD_57600B is not set
|
# CONFIG_ESPTOOLPY_MONITOR_BAUD_57600B is not set
|
||||||
CONFIG_ESPTOOLPY_MONITOR_BAUD_115200B=y
|
CONFIG_ESPTOOLPY_MONITOR_BAUD_115200B=y
|
||||||
@@ -122,10 +130,14 @@ CONFIG_PARTITION_TABLE_MD5=y
|
|||||||
# Example Connection Configuration
|
# Example Connection Configuration
|
||||||
#
|
#
|
||||||
CONFIG_EXAMPLE_CONNECT_WIFI=y
|
CONFIG_EXAMPLE_CONNECT_WIFI=y
|
||||||
# CONFIG_EXAMPLE_CONNECT_ETHERNET is not set
|
|
||||||
CONFIG_EXAMPLE_WIFI_SSID="myssid"
|
CONFIG_EXAMPLE_WIFI_SSID="myssid"
|
||||||
CONFIG_EXAMPLE_WIFI_PASSWORD="mypassword"
|
CONFIG_EXAMPLE_WIFI_PASSWORD="mypassword"
|
||||||
|
# CONFIG_EXAMPLE_CONNECT_ETHERNET is not set
|
||||||
CONFIG_EXAMPLE_CONNECT_IPV6=y
|
CONFIG_EXAMPLE_CONNECT_IPV6=y
|
||||||
|
CONFIG_EXAMPLE_CONNECT_IPV6_PREF_LOCAL_LINK=y
|
||||||
|
# CONFIG_EXAMPLE_CONNECT_IPV6_PREF_GLOBAL is not set
|
||||||
|
# CONFIG_EXAMPLE_CONNECT_IPV6_PREF_SITE_LOCAL is not set
|
||||||
|
# CONFIG_EXAMPLE_CONNECT_IPV6_PREF_UNIQUE_LOCAL is not set
|
||||||
# end of Example Connection Configuration
|
# end of Example Connection Configuration
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -147,6 +159,7 @@ CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y
|
|||||||
# CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set
|
# CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set
|
||||||
# CONFIG_COMPILER_WARN_WRITE_STRINGS is not set
|
# CONFIG_COMPILER_WARN_WRITE_STRINGS is not set
|
||||||
# CONFIG_COMPILER_DISABLE_GCC8_WARNINGS is not set
|
# CONFIG_COMPILER_DISABLE_GCC8_WARNINGS is not set
|
||||||
|
# CONFIG_COMPILER_DUMP_RTL_FILES is not set
|
||||||
# end of Compiler options
|
# end of Compiler options
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -161,21 +174,47 @@ CONFIG_APPTRACE_DEST_NONE=y
|
|||||||
CONFIG_APPTRACE_LOCK_ENABLE=y
|
CONFIG_APPTRACE_LOCK_ENABLE=y
|
||||||
# end of Application Level Tracing
|
# end of Application Level Tracing
|
||||||
|
|
||||||
|
#
|
||||||
|
# ESP-ASIO
|
||||||
|
#
|
||||||
|
# CONFIG_ASIO_SSL_SUPPORT is not set
|
||||||
|
# end of ESP-ASIO
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bluetooth
|
# Bluetooth
|
||||||
#
|
#
|
||||||
# CONFIG_BT_ENABLED is not set
|
# CONFIG_BT_ENABLED is not set
|
||||||
CONFIG_BTDM_CTRL_BR_EDR_SCO_DATA_PATH_EFF=0
|
CONFIG_BTDM_CTRL_BR_EDR_SCO_DATA_PATH_EFF=0
|
||||||
|
CONFIG_BTDM_CTRL_PCM_ROLE_EFF=0
|
||||||
|
CONFIG_BTDM_CTRL_PCM_POLAR_EFF=0
|
||||||
CONFIG_BTDM_CTRL_BLE_MAX_CONN_EFF=0
|
CONFIG_BTDM_CTRL_BLE_MAX_CONN_EFF=0
|
||||||
CONFIG_BTDM_CTRL_BR_EDR_MAX_ACL_CONN_EFF=0
|
CONFIG_BTDM_CTRL_BR_EDR_MAX_ACL_CONN_EFF=0
|
||||||
CONFIG_BTDM_CTRL_BR_EDR_MAX_SYNC_CONN_EFF=0
|
CONFIG_BTDM_CTRL_BR_EDR_MAX_SYNC_CONN_EFF=0
|
||||||
CONFIG_BTDM_CTRL_PINNED_TO_CORE=0
|
CONFIG_BTDM_CTRL_PINNED_TO_CORE=0
|
||||||
CONFIG_BTDM_BLE_SLEEP_CLOCK_ACCURACY_INDEX_EFF=1
|
CONFIG_BTDM_BLE_SLEEP_CLOCK_ACCURACY_INDEX_EFF=1
|
||||||
|
CONFIG_BT_CTRL_MODE_EFF=1
|
||||||
|
CONFIG_BT_CTRL_BLE_MAX_ACT=10
|
||||||
|
CONFIG_BT_CTRL_BLE_MAX_ACT_EFF=10
|
||||||
|
CONFIG_BT_CTRL_BLE_STATIC_ACL_TX_BUF_NB=0
|
||||||
|
CONFIG_BT_CTRL_PINNED_TO_CORE=0
|
||||||
|
CONFIG_BT_CTRL_HCI_TL=1
|
||||||
|
CONFIG_BT_CTRL_ADV_DUP_FILT_MAX=30
|
||||||
|
CONFIG_BT_CTRL_HW_CCA_EFF=0
|
||||||
|
CONFIG_BT_CTRL_DFT_TX_POWER_LEVEL_EFF=0
|
||||||
|
CONFIG_BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_SUPP=y
|
||||||
|
CONFIG_BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_NUM=100
|
||||||
|
CONFIG_BT_CTRL_BLE_ADV_REPORT_DISCARD_THRSHOLD=20
|
||||||
|
CONFIG_BT_CTRL_BLE_SCAN_DUPL=y
|
||||||
|
CONFIG_BT_CTRL_SCAN_DUPL_TYPE=0
|
||||||
|
CONFIG_BT_CTRL_SCAN_DUPL_CACHE_SIZE=100
|
||||||
|
CONFIG_BT_CTRL_COEX_PHY_CODED_TX_RX_TLIM_EFF=0
|
||||||
|
CONFIG_BT_CTRL_SLEEP_MODE_EFF=0
|
||||||
|
CONFIG_BT_CTRL_SLEEP_CLOCK_EFF=0
|
||||||
|
CONFIG_BT_CTRL_HCI_TL_EFF=1
|
||||||
CONFIG_BT_RESERVE_DRAM=0
|
CONFIG_BT_RESERVE_DRAM=0
|
||||||
|
CONFIG_BT_NIMBLE_USE_ESP_TIMER=y
|
||||||
# end of Bluetooth
|
# end of Bluetooth
|
||||||
|
|
||||||
# CONFIG_BLE_MESH is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# CoAP Configuration
|
# CoAP Configuration
|
||||||
#
|
#
|
||||||
@@ -205,6 +244,16 @@ CONFIG_SPI_MASTER_ISR_IN_IRAM=y
|
|||||||
CONFIG_SPI_SLAVE_ISR_IN_IRAM=y
|
CONFIG_SPI_SLAVE_ISR_IN_IRAM=y
|
||||||
# end of SPI configuration
|
# end of SPI configuration
|
||||||
|
|
||||||
|
#
|
||||||
|
# TWAI configuration
|
||||||
|
#
|
||||||
|
# CONFIG_TWAI_ISR_IN_IRAM is not set
|
||||||
|
# CONFIG_TWAI_ERRATA_FIX_BUS_OFF_REC is not set
|
||||||
|
# CONFIG_TWAI_ERRATA_FIX_TX_INTR_LOST is not set
|
||||||
|
# CONFIG_TWAI_ERRATA_FIX_RX_FRAME_INVALID is not set
|
||||||
|
# CONFIG_TWAI_ERRATA_FIX_RX_FIFO_CORRUPT is not set
|
||||||
|
# end of TWAI configuration
|
||||||
|
|
||||||
#
|
#
|
||||||
# UART configuration
|
# UART configuration
|
||||||
#
|
#
|
||||||
@@ -216,6 +265,12 @@ CONFIG_SPI_SLAVE_ISR_IN_IRAM=y
|
|||||||
#
|
#
|
||||||
CONFIG_RTCIO_SUPPORT_RTC_GPIO_DESC=y
|
CONFIG_RTCIO_SUPPORT_RTC_GPIO_DESC=y
|
||||||
# end of RTCIO configuration
|
# end of RTCIO configuration
|
||||||
|
|
||||||
|
#
|
||||||
|
# GPIO Configuration
|
||||||
|
#
|
||||||
|
# CONFIG_GPIO_ESP32_SUPPORT_SWITCH_SLP_PULL is not set
|
||||||
|
# end of GPIO Configuration
|
||||||
# end of Driver configurations
|
# end of Driver configurations
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -233,13 +288,16 @@ CONFIG_EFUSE_MAX_BLK_LEN=192
|
|||||||
# ESP-TLS
|
# ESP-TLS
|
||||||
#
|
#
|
||||||
CONFIG_ESP_TLS_USING_MBEDTLS=y
|
CONFIG_ESP_TLS_USING_MBEDTLS=y
|
||||||
|
# CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set
|
||||||
# CONFIG_ESP_TLS_SERVER is not set
|
# CONFIG_ESP_TLS_SERVER is not set
|
||||||
# CONFIG_ESP_TLS_PSK_VERIFICATION is not set
|
# CONFIG_ESP_TLS_PSK_VERIFICATION is not set
|
||||||
|
# CONFIG_ESP_TLS_INSECURE is not set
|
||||||
# end of ESP-TLS
|
# end of ESP-TLS
|
||||||
|
|
||||||
#
|
#
|
||||||
# ESP32-specific
|
# ESP32-specific
|
||||||
#
|
#
|
||||||
|
CONFIG_ESP32_ECO3_CACHE_LOCK_FIX=y
|
||||||
CONFIG_ESP32_REV_MIN_0=y
|
CONFIG_ESP32_REV_MIN_0=y
|
||||||
# CONFIG_ESP32_REV_MIN_1 is not set
|
# CONFIG_ESP32_REV_MIN_1 is not set
|
||||||
# CONFIG_ESP32_REV_MIN_2 is not set
|
# CONFIG_ESP32_REV_MIN_2 is not set
|
||||||
@@ -256,6 +314,7 @@ CONFIG_ESP32_SPIRAM_SUPPORT=y
|
|||||||
# SPI RAM config
|
# SPI RAM config
|
||||||
#
|
#
|
||||||
CONFIG_SPIRAM_TYPE_AUTO=y
|
CONFIG_SPIRAM_TYPE_AUTO=y
|
||||||
|
# CONFIG_SPIRAM_TYPE_ESPPSRAM16 is not set
|
||||||
# CONFIG_SPIRAM_TYPE_ESPPSRAM32 is not set
|
# CONFIG_SPIRAM_TYPE_ESPPSRAM32 is not set
|
||||||
# CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set
|
# CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set
|
||||||
CONFIG_SPIRAM_SIZE=-1
|
CONFIG_SPIRAM_SIZE=-1
|
||||||
@@ -305,6 +364,7 @@ CONFIG_D2WD_PSRAM_CS_IO=10
|
|||||||
CONFIG_PICO_PSRAM_CS_IO=10
|
CONFIG_PICO_PSRAM_CS_IO=10
|
||||||
# end of PSRAM clock and cs IO for ESP32-PICO
|
# end of PSRAM clock and cs IO for ESP32-PICO
|
||||||
|
|
||||||
|
# CONFIG_SPIRAM_CUSTOM_SPIWP_SD3_PIN is not set
|
||||||
CONFIG_SPIRAM_SPIWP_SD3_PIN=7
|
CONFIG_SPIRAM_SPIWP_SD3_PIN=7
|
||||||
# CONFIG_SPIRAM_2T_MODE is not set
|
# CONFIG_SPIRAM_2T_MODE is not set
|
||||||
# end of SPI RAM config
|
# end of SPI RAM config
|
||||||
@@ -316,10 +376,6 @@ CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR=y
|
|||||||
CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES=4
|
CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES=4
|
||||||
# CONFIG_ESP32_ULP_COPROC_ENABLED is not set
|
# CONFIG_ESP32_ULP_COPROC_ENABLED is not set
|
||||||
CONFIG_ESP32_ULP_COPROC_RESERVE_MEM=0
|
CONFIG_ESP32_ULP_COPROC_RESERVE_MEM=0
|
||||||
# CONFIG_ESP32_PANIC_PRINT_HALT is not set
|
|
||||||
CONFIG_ESP32_PANIC_PRINT_REBOOT=y
|
|
||||||
# CONFIG_ESP32_PANIC_SILENT_REBOOT is not set
|
|
||||||
# CONFIG_ESP32_PANIC_GDBSTUB is not set
|
|
||||||
CONFIG_ESP32_DEBUG_OCDAWARE=y
|
CONFIG_ESP32_DEBUG_OCDAWARE=y
|
||||||
CONFIG_ESP32_BROWNOUT_DET=y
|
CONFIG_ESP32_BROWNOUT_DET=y
|
||||||
CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_0=y
|
CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_0=y
|
||||||
@@ -349,16 +405,11 @@ CONFIG_ESP32_XTAL_FREQ=40
|
|||||||
# CONFIG_ESP32_DISABLE_BASIC_ROM_CONSOLE is not set
|
# CONFIG_ESP32_DISABLE_BASIC_ROM_CONSOLE is not set
|
||||||
# CONFIG_ESP32_NO_BLOBS is not set
|
# CONFIG_ESP32_NO_BLOBS is not set
|
||||||
# CONFIG_ESP32_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set
|
# CONFIG_ESP32_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set
|
||||||
|
# CONFIG_ESP32_COMPATIBLE_PRE_V3_1_BOOTLOADERS is not set
|
||||||
# CONFIG_ESP32_USE_FIXED_STATIC_RAM_SIZE is not set
|
# CONFIG_ESP32_USE_FIXED_STATIC_RAM_SIZE is not set
|
||||||
CONFIG_ESP32_DPORT_DIS_INTERRUPT_LVL=5
|
CONFIG_ESP32_DPORT_DIS_INTERRUPT_LVL=5
|
||||||
# end of ESP32-specific
|
# end of ESP32-specific
|
||||||
|
|
||||||
#
|
|
||||||
# Power Management
|
|
||||||
#
|
|
||||||
# CONFIG_PM_ENABLE is not set
|
|
||||||
# end of Power Management
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# ADC-Calibration
|
# ADC-Calibration
|
||||||
#
|
#
|
||||||
@@ -370,18 +421,18 @@ CONFIG_ADC_CAL_LUT_ENABLE=y
|
|||||||
#
|
#
|
||||||
# Common ESP-related
|
# Common ESP-related
|
||||||
#
|
#
|
||||||
# CONFIG_ESP_TIMER_PROFILING is not set
|
|
||||||
CONFIG_ESP_ERR_TO_NAME_LOOKUP=y
|
CONFIG_ESP_ERR_TO_NAME_LOOKUP=y
|
||||||
CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32
|
CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32
|
||||||
CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304
|
CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304
|
||||||
CONFIG_ESP_MAIN_TASK_STACK_SIZE=3584
|
CONFIG_ESP_MAIN_TASK_STACK_SIZE=3584
|
||||||
CONFIG_ESP_IPC_TASK_STACK_SIZE=1024
|
CONFIG_ESP_IPC_TASK_STACK_SIZE=1024
|
||||||
CONFIG_ESP_IPC_USES_CALLERS_PRIORITY=y
|
CONFIG_ESP_IPC_USES_CALLERS_PRIORITY=y
|
||||||
CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584
|
|
||||||
CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048
|
CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048
|
||||||
CONFIG_ESP_CONSOLE_UART_DEFAULT=y
|
CONFIG_ESP_CONSOLE_UART_DEFAULT=y
|
||||||
# CONFIG_ESP_CONSOLE_UART_CUSTOM is not set
|
# CONFIG_ESP_CONSOLE_UART_CUSTOM is not set
|
||||||
# CONFIG_ESP_CONSOLE_UART_NONE is not set
|
# CONFIG_ESP_CONSOLE_NONE is not set
|
||||||
|
CONFIG_ESP_CONSOLE_UART=y
|
||||||
|
CONFIG_ESP_CONSOLE_MULTIPLE_UART=y
|
||||||
CONFIG_ESP_CONSOLE_UART_NUM=0
|
CONFIG_ESP_CONSOLE_UART_NUM=0
|
||||||
CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200
|
CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200
|
||||||
CONFIG_ESP_INT_WDT=y
|
CONFIG_ESP_INT_WDT=y
|
||||||
@@ -389,10 +440,14 @@ CONFIG_ESP_INT_WDT_TIMEOUT_MS=300
|
|||||||
CONFIG_ESP_INT_WDT_CHECK_CPU1=y
|
CONFIG_ESP_INT_WDT_CHECK_CPU1=y
|
||||||
CONFIG_ESP_TASK_WDT=y
|
CONFIG_ESP_TASK_WDT=y
|
||||||
# CONFIG_ESP_TASK_WDT_PANIC is not set
|
# CONFIG_ESP_TASK_WDT_PANIC is not set
|
||||||
CONFIG_ESP_TASK_WDT_TIMEOUT_S=3
|
CONFIG_ESP_TASK_WDT_TIMEOUT_S=6
|
||||||
CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y
|
CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y
|
||||||
CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=y
|
CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=y
|
||||||
# CONFIG_ESP_PANIC_HANDLER_IRAM is not set
|
# CONFIG_ESP_PANIC_HANDLER_IRAM is not set
|
||||||
|
CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y
|
||||||
|
CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y
|
||||||
|
CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y
|
||||||
|
CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y
|
||||||
# end of Common ESP-related
|
# end of Common ESP-related
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -410,6 +465,7 @@ CONFIG_ETH_DMA_RX_BUFFER_NUM=10
|
|||||||
CONFIG_ETH_DMA_TX_BUFFER_NUM=10
|
CONFIG_ETH_DMA_TX_BUFFER_NUM=10
|
||||||
CONFIG_ETH_USE_SPI_ETHERNET=y
|
CONFIG_ETH_USE_SPI_ETHERNET=y
|
||||||
CONFIG_ETH_SPI_ETHERNET_DM9051=y
|
CONFIG_ETH_SPI_ETHERNET_DM9051=y
|
||||||
|
# CONFIG_ETH_SPI_ETHERNET_W5500 is not set
|
||||||
# CONFIG_ETH_USE_OPENETH is not set
|
# CONFIG_ETH_USE_OPENETH is not set
|
||||||
# end of Ethernet
|
# end of Ethernet
|
||||||
|
|
||||||
@@ -441,6 +497,7 @@ CONFIG_HTTPD_MAX_URI_LEN=1024
|
|||||||
CONFIG_HTTPD_ERR_RESP_NO_DELAY=y
|
CONFIG_HTTPD_ERR_RESP_NO_DELAY=y
|
||||||
CONFIG_HTTPD_PURGE_BUF_LEN=32
|
CONFIG_HTTPD_PURGE_BUF_LEN=32
|
||||||
# CONFIG_HTTPD_LOG_PURGE_DATA is not set
|
# CONFIG_HTTPD_LOG_PURGE_DATA is not set
|
||||||
|
# CONFIG_HTTPD_WS_SUPPORT is not set
|
||||||
# end of HTTP Server
|
# end of HTTP Server
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -464,28 +521,70 @@ CONFIG_ESP_NETIF_TCPIP_LWIP=y
|
|||||||
CONFIG_ESP_NETIF_TCPIP_ADAPTER_COMPATIBLE_LAYER=y
|
CONFIG_ESP_NETIF_TCPIP_ADAPTER_COMPATIBLE_LAYER=y
|
||||||
# end of ESP NETIF Adapter
|
# end of ESP NETIF Adapter
|
||||||
|
|
||||||
|
#
|
||||||
|
# Power Management
|
||||||
|
#
|
||||||
|
# CONFIG_PM_ENABLE is not set
|
||||||
|
# end of Power Management
|
||||||
|
|
||||||
|
#
|
||||||
|
# ESP System Settings
|
||||||
|
#
|
||||||
|
# CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set
|
||||||
|
CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y
|
||||||
|
# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set
|
||||||
|
# CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set
|
||||||
|
# CONFIG_ESP_SYSTEM_PSRAM_LEAKAGE_WORKAROUND is not set
|
||||||
|
# CONFIG_ESP_SYSTEM_FLASH_LEAKAGE_WORKAROUND is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Memory protection
|
||||||
|
#
|
||||||
|
# end of Memory protection
|
||||||
|
# end of ESP System Settings
|
||||||
|
|
||||||
|
#
|
||||||
|
# High resolution timer (esp_timer)
|
||||||
|
#
|
||||||
|
# CONFIG_ESP_TIMER_PROFILING is not set
|
||||||
|
CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y
|
||||||
|
CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y
|
||||||
|
CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584
|
||||||
|
# CONFIG_ESP_TIMER_IMPL_FRC2 is not set
|
||||||
|
CONFIG_ESP_TIMER_IMPL_TG0_LAC=y
|
||||||
|
# end of High resolution timer (esp_timer)
|
||||||
|
|
||||||
#
|
#
|
||||||
# Wi-Fi
|
# Wi-Fi
|
||||||
#
|
#
|
||||||
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10
|
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10
|
||||||
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32
|
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=16
|
||||||
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER=y
|
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER=y
|
||||||
CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=0
|
CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=0
|
||||||
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER_NUM=16
|
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER_NUM=8
|
||||||
|
CONFIG_ESP32_WIFI_CACHE_TX_BUFFER_NUM=16
|
||||||
# CONFIG_ESP32_WIFI_CSI_ENABLED is not set
|
# CONFIG_ESP32_WIFI_CSI_ENABLED is not set
|
||||||
CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y
|
CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y
|
||||||
CONFIG_ESP32_WIFI_TX_BA_WIN=6
|
CONFIG_ESP32_WIFI_TX_BA_WIN=6
|
||||||
CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y
|
CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y
|
||||||
CONFIG_ESP32_WIFI_RX_BA_WIN=6
|
CONFIG_ESP32_WIFI_RX_BA_WIN=6
|
||||||
|
# CONFIG_ESP32_WIFI_AMSDU_TX_ENABLED is not set
|
||||||
CONFIG_ESP32_WIFI_NVS_ENABLED=y
|
CONFIG_ESP32_WIFI_NVS_ENABLED=y
|
||||||
CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y
|
CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y
|
||||||
# CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set
|
# CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set
|
||||||
CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752
|
CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752
|
||||||
CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32
|
CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32
|
||||||
# CONFIG_ESP32_WIFI_DEBUG_LOG_ENABLE is not set
|
# CONFIG_WIFI_LOG_DEFAULT_LEVEL_NONE is not set
|
||||||
|
# CONFIG_WIFI_LOG_DEFAULT_LEVEL_ERROR is not set
|
||||||
|
# CONFIG_WIFI_LOG_DEFAULT_LEVEL_WARN is not set
|
||||||
|
CONFIG_WIFI_LOG_DEFAULT_LEVEL_INFO=y
|
||||||
|
# CONFIG_WIFI_LOG_DEFAULT_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_WIFI_LOG_DEFAULT_LEVEL_VERBOSE is not set
|
||||||
CONFIG_ESP32_WIFI_IRAM_OPT=y
|
CONFIG_ESP32_WIFI_IRAM_OPT=y
|
||||||
CONFIG_ESP32_WIFI_RX_IRAM_OPT=y
|
CONFIG_ESP32_WIFI_RX_IRAM_OPT=y
|
||||||
CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y
|
CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y
|
||||||
|
# CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set
|
||||||
|
# CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE is not set
|
||||||
# end of Wi-Fi
|
# end of Wi-Fi
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -500,9 +599,9 @@ CONFIG_ESP32_PHY_MAX_TX_POWER=20
|
|||||||
#
|
#
|
||||||
# Core dump
|
# Core dump
|
||||||
#
|
#
|
||||||
# CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set
|
# CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set
|
||||||
# CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set
|
# CONFIG_ESP_COREDUMP_ENABLE_TO_UART is not set
|
||||||
CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y
|
CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y
|
||||||
# end of Core dump
|
# end of Core dump
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -542,21 +641,30 @@ CONFIG_FATFS_FS_LOCK=10
|
|||||||
CONFIG_FATFS_TIMEOUT_MS=5000
|
CONFIG_FATFS_TIMEOUT_MS=5000
|
||||||
CONFIG_FATFS_PER_FILE_CACHE=y
|
CONFIG_FATFS_PER_FILE_CACHE=y
|
||||||
CONFIG_FATFS_ALLOC_PREFER_EXTRAM=y
|
CONFIG_FATFS_ALLOC_PREFER_EXTRAM=y
|
||||||
|
# CONFIG_FATFS_USE_FASTSEEK is not set
|
||||||
# end of FAT Filesystem support
|
# end of FAT Filesystem support
|
||||||
|
|
||||||
#
|
#
|
||||||
# Modbus configuration
|
# Modbus configuration
|
||||||
#
|
#
|
||||||
|
CONFIG_FMB_COMM_MODE_TCP_EN=y
|
||||||
|
CONFIG_FMB_TCP_PORT_DEFAULT=502
|
||||||
|
CONFIG_FMB_TCP_PORT_MAX_CONN=5
|
||||||
|
CONFIG_FMB_TCP_CONNECTION_TOUT_SEC=20
|
||||||
CONFIG_FMB_COMM_MODE_RTU_EN=y
|
CONFIG_FMB_COMM_MODE_RTU_EN=y
|
||||||
CONFIG_FMB_COMM_MODE_ASCII_EN=y
|
CONFIG_FMB_COMM_MODE_ASCII_EN=y
|
||||||
CONFIG_FMB_MASTER_TIMEOUT_MS_RESPOND=150
|
CONFIG_FMB_MASTER_TIMEOUT_MS_RESPOND=150
|
||||||
CONFIG_FMB_MASTER_DELAY_MS_CONVERT=200
|
CONFIG_FMB_MASTER_DELAY_MS_CONVERT=200
|
||||||
CONFIG_FMB_QUEUE_LENGTH=20
|
CONFIG_FMB_QUEUE_LENGTH=20
|
||||||
CONFIG_FMB_SERIAL_TASK_STACK_SIZE=2048
|
CONFIG_FMB_PORT_TASK_STACK_SIZE=4096
|
||||||
CONFIG_FMB_SERIAL_BUF_SIZE=256
|
CONFIG_FMB_SERIAL_BUF_SIZE=256
|
||||||
CONFIG_FMB_SERIAL_ASCII_BITS_PER_SYMB=8
|
CONFIG_FMB_SERIAL_ASCII_BITS_PER_SYMB=8
|
||||||
CONFIG_FMB_SERIAL_ASCII_TIMEOUT_RESPOND_MS=1000
|
CONFIG_FMB_SERIAL_ASCII_TIMEOUT_RESPOND_MS=1000
|
||||||
CONFIG_FMB_SERIAL_TASK_PRIO=10
|
CONFIG_FMB_PORT_TASK_PRIO=10
|
||||||
|
# CONFIG_FMB_PORT_TASK_AFFINITY_NO_AFFINITY is not set
|
||||||
|
CONFIG_FMB_PORT_TASK_AFFINITY_CPU0=y
|
||||||
|
# CONFIG_FMB_PORT_TASK_AFFINITY_CPU1 is not set
|
||||||
|
CONFIG_FMB_PORT_TASK_AFFINITY=0x0
|
||||||
# CONFIG_FMB_CONTROLLER_SLAVE_ID_SUPPORT is not set
|
# CONFIG_FMB_CONTROLLER_SLAVE_ID_SUPPORT is not set
|
||||||
CONFIG_FMB_CONTROLLER_NOTIFY_TIMEOUT=20
|
CONFIG_FMB_CONTROLLER_NOTIFY_TIMEOUT=20
|
||||||
CONFIG_FMB_CONTROLLER_NOTIFY_QUEUE_SIZE=20
|
CONFIG_FMB_CONTROLLER_NOTIFY_QUEUE_SIZE=20
|
||||||
@@ -565,6 +673,8 @@ CONFIG_FMB_EVENT_QUEUE_TIMEOUT=20
|
|||||||
CONFIG_FMB_TIMER_PORT_ENABLED=y
|
CONFIG_FMB_TIMER_PORT_ENABLED=y
|
||||||
CONFIG_FMB_TIMER_GROUP=0
|
CONFIG_FMB_TIMER_GROUP=0
|
||||||
CONFIG_FMB_TIMER_INDEX=0
|
CONFIG_FMB_TIMER_INDEX=0
|
||||||
|
CONFIG_FMB_MASTER_TIMER_GROUP=0
|
||||||
|
CONFIG_FMB_MASTER_TIMER_INDEX=0
|
||||||
# CONFIG_FMB_TIMER_ISR_IN_IRAM is not set
|
# CONFIG_FMB_TIMER_ISR_IN_IRAM is not set
|
||||||
# end of Modbus configuration
|
# end of Modbus configuration
|
||||||
|
|
||||||
@@ -598,10 +708,11 @@ CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
|
|||||||
CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
|
CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
|
||||||
# CONFIG_FREERTOS_USE_TRACE_FACILITY is not set
|
# CONFIG_FREERTOS_USE_TRACE_FACILITY is not set
|
||||||
# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set
|
# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set
|
||||||
# CONFIG_FREERTOS_DEBUG_INTERNALS is not set
|
|
||||||
CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y
|
CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y
|
||||||
# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set
|
# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set
|
||||||
|
# CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set
|
||||||
CONFIG_FREERTOS_DEBUG_OCDAWARE=y
|
CONFIG_FREERTOS_DEBUG_OCDAWARE=y
|
||||||
|
# CONFIG_FREERTOS_FPU_IN_ISR is not set
|
||||||
# end of FreeRTOS
|
# end of FreeRTOS
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -613,6 +724,7 @@ CONFIG_HEAP_POISONING_DISABLED=y
|
|||||||
CONFIG_HEAP_TRACING_OFF=y
|
CONFIG_HEAP_TRACING_OFF=y
|
||||||
# CONFIG_HEAP_TRACING_STANDALONE is not set
|
# CONFIG_HEAP_TRACING_STANDALONE is not set
|
||||||
# CONFIG_HEAP_TRACING_TOHOST is not set
|
# CONFIG_HEAP_TRACING_TOHOST is not set
|
||||||
|
# CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set
|
||||||
# end of Heap memory debugging
|
# end of Heap memory debugging
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -657,24 +769,30 @@ CONFIG_LWIP_SO_REUSE=y
|
|||||||
CONFIG_LWIP_SO_REUSE_RXTOALL=y
|
CONFIG_LWIP_SO_REUSE_RXTOALL=y
|
||||||
# CONFIG_LWIP_SO_RCVBUF is not set
|
# CONFIG_LWIP_SO_RCVBUF is not set
|
||||||
# CONFIG_LWIP_NETBUF_RECVINFO is not set
|
# CONFIG_LWIP_NETBUF_RECVINFO is not set
|
||||||
CONFIG_LWIP_IP_FRAG=y
|
CONFIG_LWIP_IP4_FRAG=y
|
||||||
# CONFIG_LWIP_IP_REASSEMBLY is not set
|
CONFIG_LWIP_IP6_FRAG=y
|
||||||
|
# CONFIG_LWIP_IP4_REASSEMBLY is not set
|
||||||
|
# CONFIG_LWIP_IP6_REASSEMBLY is not set
|
||||||
|
# CONFIG_LWIP_IP_FORWARD is not set
|
||||||
# CONFIG_LWIP_STATS is not set
|
# CONFIG_LWIP_STATS is not set
|
||||||
# CONFIG_LWIP_ETHARP_TRUST_IP_MAC is not set
|
# CONFIG_LWIP_ETHARP_TRUST_IP_MAC is not set
|
||||||
CONFIG_LWIP_ESP_GRATUITOUS_ARP=y
|
CONFIG_LWIP_ESP_GRATUITOUS_ARP=y
|
||||||
CONFIG_LWIP_GARP_TMR_INTERVAL=60
|
CONFIG_LWIP_GARP_TMR_INTERVAL=60
|
||||||
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32
|
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32
|
||||||
CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y
|
CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y
|
||||||
|
# CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set
|
||||||
# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set
|
# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# DHCP server
|
# DHCP server
|
||||||
#
|
#
|
||||||
|
CONFIG_LWIP_DHCPS=y
|
||||||
CONFIG_LWIP_DHCPS_LEASE_UNIT=60
|
CONFIG_LWIP_DHCPS_LEASE_UNIT=60
|
||||||
CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8
|
CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8
|
||||||
# end of DHCP server
|
# end of DHCP server
|
||||||
|
|
||||||
# CONFIG_LWIP_AUTOIP is not set
|
# CONFIG_LWIP_AUTOIP is not set
|
||||||
|
CONFIG_LWIP_IPV6=y
|
||||||
# CONFIG_LWIP_IPV6_AUTOCONFIG is not set
|
# CONFIG_LWIP_IPV6_AUTOCONFIG is not set
|
||||||
CONFIG_LWIP_NETIF_LOOPBACK=y
|
CONFIG_LWIP_NETIF_LOOPBACK=y
|
||||||
CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8
|
CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8
|
||||||
@@ -684,6 +802,7 @@ CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8
|
|||||||
#
|
#
|
||||||
CONFIG_LWIP_MAX_ACTIVE_TCP=16
|
CONFIG_LWIP_MAX_ACTIVE_TCP=16
|
||||||
CONFIG_LWIP_MAX_LISTENING_TCP=16
|
CONFIG_LWIP_MAX_LISTENING_TCP=16
|
||||||
|
CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y
|
||||||
CONFIG_LWIP_TCP_MAXRTX=12
|
CONFIG_LWIP_TCP_MAXRTX=12
|
||||||
CONFIG_LWIP_TCP_SYNMAXRTX=6
|
CONFIG_LWIP_TCP_SYNMAXRTX=6
|
||||||
CONFIG_LWIP_TCP_MSS=1440
|
CONFIG_LWIP_TCP_MSS=1440
|
||||||
@@ -698,6 +817,7 @@ CONFIG_LWIP_TCP_QUEUE_OOSEQ=y
|
|||||||
CONFIG_LWIP_TCP_OVERSIZE_MSS=y
|
CONFIG_LWIP_TCP_OVERSIZE_MSS=y
|
||||||
# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set
|
# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set
|
||||||
# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set
|
# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set
|
||||||
|
CONFIG_LWIP_TCP_RTO_TIME=1500
|
||||||
# end of TCP
|
# end of TCP
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -707,16 +827,28 @@ CONFIG_LWIP_MAX_UDP_PCBS=16
|
|||||||
CONFIG_LWIP_UDP_RECVMBOX_SIZE=6
|
CONFIG_LWIP_UDP_RECVMBOX_SIZE=6
|
||||||
# end of UDP
|
# end of UDP
|
||||||
|
|
||||||
|
#
|
||||||
|
# Checksums
|
||||||
|
#
|
||||||
|
# CONFIG_LWIP_CHECKSUM_CHECK_IP is not set
|
||||||
|
# CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set
|
||||||
|
CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y
|
||||||
|
# end of Checksums
|
||||||
|
|
||||||
CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072
|
CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072
|
||||||
CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
|
CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
|
||||||
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set
|
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set
|
||||||
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set
|
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set
|
||||||
CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF
|
CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF
|
||||||
# CONFIG_LWIP_PPP_SUPPORT is not set
|
# CONFIG_LWIP_PPP_SUPPORT is not set
|
||||||
|
CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3
|
||||||
|
CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5
|
||||||
|
# CONFIG_LWIP_SLIP_SUPPORT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# ICMP
|
# ICMP
|
||||||
#
|
#
|
||||||
|
CONFIG_LWIP_ICMP=y
|
||||||
# CONFIG_LWIP_MULTICAST_PING is not set
|
# CONFIG_LWIP_MULTICAST_PING is not set
|
||||||
# CONFIG_LWIP_BROADCAST_PING is not set
|
# CONFIG_LWIP_BROADCAST_PING is not set
|
||||||
# end of ICMP
|
# end of ICMP
|
||||||
@@ -733,6 +865,24 @@ CONFIG_LWIP_MAX_RAW_PCBS=16
|
|||||||
CONFIG_LWIP_DHCP_MAX_NTP_SERVERS=1
|
CONFIG_LWIP_DHCP_MAX_NTP_SERVERS=1
|
||||||
CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000
|
CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000
|
||||||
# end of SNTP
|
# end of SNTP
|
||||||
|
|
||||||
|
CONFIG_LWIP_ESP_LWIP_ASSERT=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Hooks
|
||||||
|
#
|
||||||
|
# CONFIG_LWIP_HOOK_TCP_ISN_NONE is not set
|
||||||
|
CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT=y
|
||||||
|
# CONFIG_LWIP_HOOK_TCP_ISN_CUSTOM is not set
|
||||||
|
CONFIG_LWIP_HOOK_IP6_ROUTE_NONE=y
|
||||||
|
# CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT is not set
|
||||||
|
# CONFIG_LWIP_HOOK_IP6_ROUTE_CUSTOM is not set
|
||||||
|
CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y
|
||||||
|
# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set
|
||||||
|
# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set
|
||||||
|
# end of Hooks
|
||||||
|
|
||||||
|
# CONFIG_LWIP_DEBUG is not set
|
||||||
# end of LWIP
|
# end of LWIP
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -745,14 +895,31 @@ CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y
|
|||||||
CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
|
CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
|
||||||
CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384
|
CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384
|
||||||
CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096
|
CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096
|
||||||
|
# CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set
|
||||||
# CONFIG_MBEDTLS_DEBUG is not set
|
# CONFIG_MBEDTLS_DEBUG is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Certificate Bundle
|
||||||
|
#
|
||||||
|
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
|
||||||
|
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y
|
||||||
|
# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set
|
||||||
|
# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set
|
||||||
|
# CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set
|
||||||
|
# end of Certificate Bundle
|
||||||
|
|
||||||
# CONFIG_MBEDTLS_ECP_RESTARTABLE is not set
|
# CONFIG_MBEDTLS_ECP_RESTARTABLE is not set
|
||||||
# CONFIG_MBEDTLS_CMAC_C is not set
|
# CONFIG_MBEDTLS_CMAC_C is not set
|
||||||
CONFIG_MBEDTLS_HARDWARE_AES=y
|
CONFIG_MBEDTLS_HARDWARE_AES=y
|
||||||
# CONFIG_MBEDTLS_HARDWARE_MPI is not set
|
# CONFIG_MBEDTLS_HARDWARE_MPI is not set
|
||||||
CONFIG_MBEDTLS_HARDWARE_SHA=y
|
CONFIG_MBEDTLS_HARDWARE_SHA=y
|
||||||
|
CONFIG_MBEDTLS_ROM_MD5=y
|
||||||
|
# CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set
|
||||||
|
# CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set
|
||||||
CONFIG_MBEDTLS_HAVE_TIME=y
|
CONFIG_MBEDTLS_HAVE_TIME=y
|
||||||
# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set
|
# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set
|
||||||
|
CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y
|
||||||
|
CONFIG_MBEDTLS_SHA512_C=y
|
||||||
CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y
|
CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y
|
||||||
# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set
|
# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set
|
||||||
# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set
|
# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set
|
||||||
@@ -782,6 +949,8 @@ CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y
|
|||||||
# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set
|
# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set
|
||||||
CONFIG_MBEDTLS_SSL_ALPN=y
|
CONFIG_MBEDTLS_SSL_ALPN=y
|
||||||
CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y
|
CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y
|
||||||
|
CONFIG_MBEDTLS_X509_CHECK_KEY_USAGE=y
|
||||||
|
CONFIG_MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE=y
|
||||||
CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y
|
CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -797,6 +966,7 @@ CONFIG_MBEDTLS_RC4_DISABLED=y
|
|||||||
# CONFIG_MBEDTLS_XTEA_C is not set
|
# CONFIG_MBEDTLS_XTEA_C is not set
|
||||||
CONFIG_MBEDTLS_CCM_C=y
|
CONFIG_MBEDTLS_CCM_C=y
|
||||||
CONFIG_MBEDTLS_GCM_C=y
|
CONFIG_MBEDTLS_GCM_C=y
|
||||||
|
# CONFIG_MBEDTLS_NIST_KW_C is not set
|
||||||
# end of Symmetric Ciphers
|
# end of Symmetric Ciphers
|
||||||
|
|
||||||
# CONFIG_MBEDTLS_RIPEMD160_C is not set
|
# CONFIG_MBEDTLS_RIPEMD160_C is not set
|
||||||
@@ -813,6 +983,7 @@ CONFIG_MBEDTLS_X509_CSR_PARSE_C=y
|
|||||||
CONFIG_MBEDTLS_ECP_C=y
|
CONFIG_MBEDTLS_ECP_C=y
|
||||||
CONFIG_MBEDTLS_ECDH_C=y
|
CONFIG_MBEDTLS_ECDH_C=y
|
||||||
CONFIG_MBEDTLS_ECDSA_C=y
|
CONFIG_MBEDTLS_ECDSA_C=y
|
||||||
|
# CONFIG_MBEDTLS_ECJPAKE_C is not set
|
||||||
CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y
|
CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y
|
||||||
CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y
|
CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y
|
||||||
CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y
|
CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y
|
||||||
@@ -826,6 +997,10 @@ CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y
|
|||||||
CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y
|
CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y
|
||||||
CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y
|
CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y
|
||||||
CONFIG_MBEDTLS_ECP_NIST_OPTIM=y
|
CONFIG_MBEDTLS_ECP_NIST_OPTIM=y
|
||||||
|
# CONFIG_MBEDTLS_POLY1305_C is not set
|
||||||
|
# CONFIG_MBEDTLS_CHACHA20_C is not set
|
||||||
|
# CONFIG_MBEDTLS_HKDF_C is not set
|
||||||
|
# CONFIG_MBEDTLS_THREADING_C is not set
|
||||||
# CONFIG_MBEDTLS_SECURITY_RISKS is not set
|
# CONFIG_MBEDTLS_SECURITY_RISKS is not set
|
||||||
# end of mbedTLS
|
# end of mbedTLS
|
||||||
|
|
||||||
@@ -834,11 +1009,13 @@ CONFIG_MBEDTLS_ECP_NIST_OPTIM=y
|
|||||||
#
|
#
|
||||||
CONFIG_MDNS_MAX_SERVICES=10
|
CONFIG_MDNS_MAX_SERVICES=10
|
||||||
CONFIG_MDNS_TASK_PRIORITY=1
|
CONFIG_MDNS_TASK_PRIORITY=1
|
||||||
|
CONFIG_MDNS_TASK_STACK_SIZE=4096
|
||||||
# CONFIG_MDNS_TASK_AFFINITY_NO_AFFINITY is not set
|
# CONFIG_MDNS_TASK_AFFINITY_NO_AFFINITY is not set
|
||||||
CONFIG_MDNS_TASK_AFFINITY_CPU0=y
|
CONFIG_MDNS_TASK_AFFINITY_CPU0=y
|
||||||
# CONFIG_MDNS_TASK_AFFINITY_CPU1 is not set
|
# CONFIG_MDNS_TASK_AFFINITY_CPU1 is not set
|
||||||
CONFIG_MDNS_TASK_AFFINITY=0x0
|
CONFIG_MDNS_TASK_AFFINITY=0x0
|
||||||
CONFIG_MDNS_SERVICE_ADD_TIMEOUT_MS=2000
|
CONFIG_MDNS_SERVICE_ADD_TIMEOUT_MS=2000
|
||||||
|
# CONFIG_MDNS_STRICT_MODE is not set
|
||||||
CONFIG_MDNS_TIMER_PERIOD_MS=100
|
CONFIG_MDNS_TIMER_PERIOD_MS=100
|
||||||
# end of mDNS
|
# end of mDNS
|
||||||
|
|
||||||
@@ -849,6 +1026,9 @@ CONFIG_MQTT_PROTOCOL_311=y
|
|||||||
CONFIG_MQTT_TRANSPORT_SSL=y
|
CONFIG_MQTT_TRANSPORT_SSL=y
|
||||||
CONFIG_MQTT_TRANSPORT_WEBSOCKET=y
|
CONFIG_MQTT_TRANSPORT_WEBSOCKET=y
|
||||||
CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y
|
CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y
|
||||||
|
# CONFIG_MQTT_MSG_ID_INCREMENTAL is not set
|
||||||
|
# CONFIG_MQTT_SKIP_PUBLISH_IF_DISCONNECTED is not set
|
||||||
|
# CONFIG_MQTT_REPORT_DELETED_MESSAGES is not set
|
||||||
# CONFIG_MQTT_USE_CUSTOM_CONFIG is not set
|
# CONFIG_MQTT_USE_CUSTOM_CONFIG is not set
|
||||||
# CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set
|
# CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set
|
||||||
# CONFIG_MQTT_CUSTOM_OUTBOX is not set
|
# CONFIG_MQTT_CUSTOM_OUTBOX is not set
|
||||||
@@ -875,6 +1055,7 @@ CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y
|
|||||||
# OpenSSL
|
# OpenSSL
|
||||||
#
|
#
|
||||||
# CONFIG_OPENSSL_DEBUG is not set
|
# CONFIG_OPENSSL_DEBUG is not set
|
||||||
|
CONFIG_OPENSSL_ERROR_STACK=y
|
||||||
# CONFIG_OPENSSL_ASSERT_DO_NOTHING is not set
|
# CONFIG_OPENSSL_ASSERT_DO_NOTHING is not set
|
||||||
CONFIG_OPENSSL_ASSERT_EXIT=y
|
CONFIG_OPENSSL_ASSERT_EXIT=y
|
||||||
# end of OpenSSL
|
# end of OpenSSL
|
||||||
@@ -902,17 +1083,25 @@ CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y
|
|||||||
# CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set
|
# CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set
|
||||||
# CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set
|
# CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set
|
||||||
# CONFIG_SPI_FLASH_USE_LEGACY_IMPL is not set
|
# CONFIG_SPI_FLASH_USE_LEGACY_IMPL is not set
|
||||||
|
# CONFIG_SPI_FLASH_SHARE_SPI1_BUS is not set
|
||||||
# CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set
|
# CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set
|
||||||
CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y
|
CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y
|
||||||
CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20
|
CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20
|
||||||
CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1
|
CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1
|
||||||
|
CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192
|
||||||
|
# CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set
|
||||||
|
# CONFIG_SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Auto-detect flash chips
|
# Auto-detect flash chips
|
||||||
#
|
#
|
||||||
CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y
|
CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y
|
||||||
|
CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=y
|
||||||
CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y
|
CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y
|
||||||
|
CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=y
|
||||||
# end of Auto-detect flash chips
|
# end of Auto-detect flash chips
|
||||||
|
|
||||||
|
CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y
|
||||||
# end of SPI Flash driver
|
# end of SPI Flash driver
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -951,6 +1140,23 @@ CONFIG_SPIFFS_USE_MTIME=y
|
|||||||
# end of Debug Configuration
|
# end of Debug Configuration
|
||||||
# end of SPIFFS Configuration
|
# end of SPIFFS Configuration
|
||||||
|
|
||||||
|
#
|
||||||
|
# TCP Transport
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Websocket
|
||||||
|
#
|
||||||
|
CONFIG_WS_TRANSPORT=y
|
||||||
|
CONFIG_WS_BUFFER_SIZE=1024
|
||||||
|
# end of Websocket
|
||||||
|
# end of TCP Transport
|
||||||
|
|
||||||
|
#
|
||||||
|
# TinyUSB
|
||||||
|
#
|
||||||
|
# end of TinyUSB
|
||||||
|
|
||||||
#
|
#
|
||||||
# Unity unit testing library
|
# Unity unit testing library
|
||||||
#
|
#
|
||||||
@@ -965,14 +1171,17 @@ CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y
|
|||||||
#
|
#
|
||||||
# Virtual file system
|
# Virtual file system
|
||||||
#
|
#
|
||||||
|
CONFIG_VFS_SUPPORT_IO=y
|
||||||
|
CONFIG_VFS_SUPPORT_DIR=y
|
||||||
|
CONFIG_VFS_SUPPORT_SELECT=y
|
||||||
# CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT is not set
|
# CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT is not set
|
||||||
CONFIG_VFS_SUPPORT_TERMIOS=y
|
CONFIG_VFS_SUPPORT_TERMIOS=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Host File System I/O (Semihosting)
|
# Host File System I/O (Semihosting)
|
||||||
#
|
#
|
||||||
CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1
|
CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1
|
||||||
CONFIG_SEMIHOSTFS_HOST_PATH_MAX_LEN=128
|
CONFIG_VFS_SEMIHOSTFS_HOST_PATH_MAX_LEN=128
|
||||||
# end of Host File System I/O (Semihosting)
|
# end of Host File System I/O (Semihosting)
|
||||||
# end of Virtual file system
|
# end of Virtual file system
|
||||||
|
|
||||||
@@ -995,7 +1204,11 @@ CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30
|
|||||||
# Supplicant
|
# Supplicant
|
||||||
#
|
#
|
||||||
CONFIG_WPA_MBEDTLS_CRYPTO=y
|
CONFIG_WPA_MBEDTLS_CRYPTO=y
|
||||||
# CONFIG_WPA_TLS_V12 is not set
|
# CONFIG_WPA_WAPI_PSK is not set
|
||||||
|
# CONFIG_WPA_DEBUG_PRINT is not set
|
||||||
|
# CONFIG_WPA_TESTING_OPTIONS is not set
|
||||||
|
# CONFIG_WPA_WPS_STRICT is not set
|
||||||
|
# CONFIG_WPA_11KV_SUPPORT is not set
|
||||||
# end of Supplicant
|
# end of Supplicant
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -1007,11 +1220,17 @@ CONFIG_NT99141_SUPPORT=y
|
|||||||
CONFIG_OV2640_SUPPORT=y
|
CONFIG_OV2640_SUPPORT=y
|
||||||
CONFIG_OV3660_SUPPORT=y
|
CONFIG_OV3660_SUPPORT=y
|
||||||
CONFIG_OV5640_SUPPORT=y
|
CONFIG_OV5640_SUPPORT=y
|
||||||
|
CONFIG_GC2145_SUPPORT=y
|
||||||
|
CONFIG_GC032A_SUPPORT=y
|
||||||
|
CONFIG_GC0308_SUPPORT=y
|
||||||
# CONFIG_SCCB_HARDWARE_I2C_PORT0 is not set
|
# CONFIG_SCCB_HARDWARE_I2C_PORT0 is not set
|
||||||
CONFIG_SCCB_HARDWARE_I2C_PORT1=y
|
CONFIG_SCCB_HARDWARE_I2C_PORT1=y
|
||||||
|
# CONFIG_GC_SENSOR_WINDOWING_MODE is not set
|
||||||
|
CONFIG_GC_SENSOR_SUBSAMPLE_MODE=y
|
||||||
CONFIG_CAMERA_CORE0=y
|
CONFIG_CAMERA_CORE0=y
|
||||||
# CONFIG_CAMERA_CORE1 is not set
|
# CONFIG_CAMERA_CORE1 is not set
|
||||||
# CONFIG_CAMERA_NO_AFFINITY is not set
|
# CONFIG_CAMERA_NO_AFFINITY is not set
|
||||||
|
CONFIG_CAMERA_DMA_BUFFER_SIZE_MAX=32768
|
||||||
# end of Camera configuration
|
# end of Camera configuration
|
||||||
# end of Component config
|
# end of Component config
|
||||||
|
|
||||||
@@ -1020,3 +1239,162 @@ CONFIG_CAMERA_CORE0=y
|
|||||||
#
|
#
|
||||||
# CONFIG_LEGACY_INCLUDE_COMMON_HEADERS is not set
|
# CONFIG_LEGACY_INCLUDE_COMMON_HEADERS is not set
|
||||||
# end of Compatibility options
|
# end of Compatibility options
|
||||||
|
|
||||||
|
# Deprecated options for backward compatibility
|
||||||
|
CONFIG_TOOLPREFIX="xtensa-esp32-elf-"
|
||||||
|
# CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set
|
||||||
|
# CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set
|
||||||
|
# CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set
|
||||||
|
CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y
|
||||||
|
# CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set
|
||||||
|
CONFIG_LOG_BOOTLOADER_LEVEL=3
|
||||||
|
# CONFIG_APP_ROLLBACK_ENABLE is not set
|
||||||
|
# CONFIG_FLASH_ENCRYPTION_ENABLED is not set
|
||||||
|
# CONFIG_FLASHMODE_QIO is not set
|
||||||
|
# CONFIG_FLASHMODE_QOUT is not set
|
||||||
|
CONFIG_FLASHMODE_DIO=y
|
||||||
|
# CONFIG_FLASHMODE_DOUT is not set
|
||||||
|
# CONFIG_MONITOR_BAUD_9600B is not set
|
||||||
|
# CONFIG_MONITOR_BAUD_57600B is not set
|
||||||
|
CONFIG_MONITOR_BAUD_115200B=y
|
||||||
|
# CONFIG_MONITOR_BAUD_230400B is not set
|
||||||
|
# CONFIG_MONITOR_BAUD_921600B is not set
|
||||||
|
# CONFIG_MONITOR_BAUD_2MB is not set
|
||||||
|
# CONFIG_MONITOR_BAUD_OTHER is not set
|
||||||
|
CONFIG_MONITOR_BAUD_OTHER_VAL=115200
|
||||||
|
CONFIG_MONITOR_BAUD=115200
|
||||||
|
# CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG is not set
|
||||||
|
CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE=y
|
||||||
|
CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y
|
||||||
|
# CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set
|
||||||
|
# CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set
|
||||||
|
CONFIG_CXX_EXCEPTIONS=y
|
||||||
|
CONFIG_CXX_EXCEPTIONS_EMG_POOL_SIZE=0
|
||||||
|
CONFIG_STACK_CHECK_NONE=y
|
||||||
|
# CONFIG_STACK_CHECK_NORM is not set
|
||||||
|
# CONFIG_STACK_CHECK_STRONG is not set
|
||||||
|
# CONFIG_STACK_CHECK_ALL is not set
|
||||||
|
# CONFIG_WARN_WRITE_STRINGS is not set
|
||||||
|
# CONFIG_DISABLE_GCC8_WARNINGS is not set
|
||||||
|
# CONFIG_ESP32_APPTRACE_DEST_TRAX is not set
|
||||||
|
CONFIG_ESP32_APPTRACE_DEST_NONE=y
|
||||||
|
CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y
|
||||||
|
CONFIG_BTDM_CONTROLLER_BLE_MAX_CONN_EFF=0
|
||||||
|
CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN_EFF=0
|
||||||
|
CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN_EFF=0
|
||||||
|
CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE=0
|
||||||
|
CONFIG_ADC2_DISABLE_DAC=y
|
||||||
|
CONFIG_SPIRAM_SUPPORT=y
|
||||||
|
# CONFIG_WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST is not set
|
||||||
|
CONFIG_TRACEMEM_RESERVE_DRAM=0x0
|
||||||
|
# CONFIG_TWO_UNIVERSAL_MAC_ADDRESS is not set
|
||||||
|
CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y
|
||||||
|
CONFIG_NUMBER_OF_UNIVERSAL_MAC_ADDRESS=4
|
||||||
|
# CONFIG_ULP_COPROC_ENABLED is not set
|
||||||
|
CONFIG_ULP_COPROC_RESERVE_MEM=0
|
||||||
|
CONFIG_BROWNOUT_DET=y
|
||||||
|
CONFIG_BROWNOUT_DET_LVL_SEL_0=y
|
||||||
|
# CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set
|
||||||
|
# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set
|
||||||
|
# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set
|
||||||
|
# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set
|
||||||
|
# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set
|
||||||
|
# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set
|
||||||
|
# CONFIG_BROWNOUT_DET_LVL_SEL_7 is not set
|
||||||
|
CONFIG_BROWNOUT_DET_LVL=0
|
||||||
|
CONFIG_REDUCE_PHY_TX_POWER=y
|
||||||
|
CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC=y
|
||||||
|
# CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL is not set
|
||||||
|
# CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_OSC is not set
|
||||||
|
# CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_8MD256 is not set
|
||||||
|
# CONFIG_DISABLE_BASIC_ROM_CONSOLE is not set
|
||||||
|
# CONFIG_NO_BLOBS is not set
|
||||||
|
# CONFIG_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set
|
||||||
|
CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32
|
||||||
|
CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304
|
||||||
|
CONFIG_MAIN_TASK_STACK_SIZE=3584
|
||||||
|
CONFIG_IPC_TASK_STACK_SIZE=1024
|
||||||
|
CONFIG_CONSOLE_UART_DEFAULT=y
|
||||||
|
# CONFIG_CONSOLE_UART_CUSTOM is not set
|
||||||
|
# CONFIG_ESP_CONSOLE_UART_NONE is not set
|
||||||
|
CONFIG_CONSOLE_UART=y
|
||||||
|
CONFIG_CONSOLE_UART_NUM=0
|
||||||
|
CONFIG_CONSOLE_UART_BAUDRATE=115200
|
||||||
|
CONFIG_INT_WDT=y
|
||||||
|
CONFIG_INT_WDT_TIMEOUT_MS=300
|
||||||
|
CONFIG_INT_WDT_CHECK_CPU1=y
|
||||||
|
CONFIG_TASK_WDT=y
|
||||||
|
# CONFIG_TASK_WDT_PANIC is not set
|
||||||
|
CONFIG_TASK_WDT_TIMEOUT_S=6
|
||||||
|
CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y
|
||||||
|
CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y
|
||||||
|
# CONFIG_EVENT_LOOP_PROFILING is not set
|
||||||
|
CONFIG_POST_EVENTS_FROM_ISR=y
|
||||||
|
CONFIG_POST_EVENTS_FROM_IRAM_ISR=y
|
||||||
|
# CONFIG_ESP32S2_PANIC_PRINT_HALT is not set
|
||||||
|
CONFIG_ESP32S2_PANIC_PRINT_REBOOT=y
|
||||||
|
# CONFIG_ESP32S2_PANIC_SILENT_REBOOT is not set
|
||||||
|
# CONFIG_ESP32S2_PANIC_GDBSTUB is not set
|
||||||
|
CONFIG_TIMER_TASK_STACK_SIZE=3584
|
||||||
|
# CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set
|
||||||
|
# CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set
|
||||||
|
CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y
|
||||||
|
CONFIG_MB_MASTER_TIMEOUT_MS_RESPOND=150
|
||||||
|
CONFIG_MB_MASTER_DELAY_MS_CONVERT=200
|
||||||
|
CONFIG_MB_QUEUE_LENGTH=20
|
||||||
|
CONFIG_MB_SERIAL_TASK_STACK_SIZE=4096
|
||||||
|
CONFIG_MB_SERIAL_BUF_SIZE=256
|
||||||
|
CONFIG_MB_SERIAL_TASK_PRIO=10
|
||||||
|
# CONFIG_MB_CONTROLLER_SLAVE_ID_SUPPORT is not set
|
||||||
|
CONFIG_MB_CONTROLLER_NOTIFY_TIMEOUT=20
|
||||||
|
CONFIG_MB_CONTROLLER_NOTIFY_QUEUE_SIZE=20
|
||||||
|
CONFIG_MB_CONTROLLER_STACK_SIZE=4096
|
||||||
|
CONFIG_MB_EVENT_QUEUE_TIMEOUT=20
|
||||||
|
CONFIG_MB_TIMER_PORT_ENABLED=y
|
||||||
|
CONFIG_MB_TIMER_GROUP=0
|
||||||
|
CONFIG_MB_TIMER_INDEX=0
|
||||||
|
# CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set
|
||||||
|
CONFIG_TIMER_TASK_PRIORITY=1
|
||||||
|
CONFIG_TIMER_TASK_STACK_DEPTH=2048
|
||||||
|
CONFIG_TIMER_QUEUE_LENGTH=10
|
||||||
|
# CONFIG_L2_TO_L3_COPY is not set
|
||||||
|
# CONFIG_USE_ONLY_LWIP_SELECT is not set
|
||||||
|
CONFIG_ESP_GRATUITOUS_ARP=y
|
||||||
|
CONFIG_GARP_TMR_INTERVAL=60
|
||||||
|
CONFIG_TCPIP_RECVMBOX_SIZE=32
|
||||||
|
CONFIG_TCP_MAXRTX=12
|
||||||
|
CONFIG_TCP_SYNMAXRTX=6
|
||||||
|
CONFIG_TCP_MSS=1440
|
||||||
|
CONFIG_TCP_MSL=60000
|
||||||
|
CONFIG_TCP_SND_BUF_DEFAULT=5744
|
||||||
|
CONFIG_TCP_WND_DEFAULT=5744
|
||||||
|
CONFIG_TCP_RECVMBOX_SIZE=6
|
||||||
|
CONFIG_TCP_QUEUE_OOSEQ=y
|
||||||
|
# CONFIG_ESP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES is not set
|
||||||
|
CONFIG_TCP_OVERSIZE_MSS=y
|
||||||
|
# CONFIG_TCP_OVERSIZE_QUARTER_MSS is not set
|
||||||
|
# CONFIG_TCP_OVERSIZE_DISABLE is not set
|
||||||
|
CONFIG_UDP_RECVMBOX_SIZE=6
|
||||||
|
CONFIG_TCPIP_TASK_STACK_SIZE=3072
|
||||||
|
CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
|
||||||
|
# CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set
|
||||||
|
# CONFIG_TCPIP_TASK_AFFINITY_CPU1 is not set
|
||||||
|
CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF
|
||||||
|
# CONFIG_PPP_SUPPORT is not set
|
||||||
|
CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5
|
||||||
|
CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072
|
||||||
|
CONFIG_ESP32_PTHREAD_STACK_MIN=768
|
||||||
|
CONFIG_ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY=y
|
||||||
|
# CONFIG_ESP32_DEFAULT_PTHREAD_CORE_0 is not set
|
||||||
|
# CONFIG_ESP32_DEFAULT_PTHREAD_CORE_1 is not set
|
||||||
|
CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT=-1
|
||||||
|
CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT="pthread"
|
||||||
|
CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y
|
||||||
|
# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS is not set
|
||||||
|
# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED is not set
|
||||||
|
# CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT is not set
|
||||||
|
CONFIG_SUPPORT_TERMIOS=y
|
||||||
|
CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1
|
||||||
|
CONFIG_SEMIHOSTFS_HOST_PATH_MAX_LEN=128
|
||||||
|
# End of deprecated options
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
const char* GIT_REV="d0bf12f";
|
const char* GIT_REV="04c5649";
|
||||||
const char* GIT_TAG="";
|
const char* GIT_TAG="";
|
||||||
const char* GIT_BRANCH="master";
|
const char* GIT_BRANCH="master";
|
||||||
const char* BUILD_TIME="2021-10-07 07:17";
|
const char* BUILD_TIME="2021-12-30 18:32";
|
||||||
BIN
images/Power_Meter_Mounted.jpg
Normal file
|
After Width: | Height: | Size: 438 KiB |
|
Before Width: | Height: | Size: 140 KiB After Width: | Height: | Size: 140 KiB |
BIN
images/config_s5_ROIs_details.jpg
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
images/external_GPIO_settings.jpg
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
images/install_external_led.jpg
Normal file
|
After Width: | Height: | Size: 119 KiB |
BIN
images/intern_vs_external.jpg
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
images/ota-update-details.jpg
Normal file
|
After Width: | Height: | Size: 106 KiB |
BIN
images/ota-update-menue.jpg
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
sd-card/config/ana0910s3_longq.tflite
Normal file
@@ -20,7 +20,7 @@ FlipImageSize = false
|
|||||||
/config/ref1.jpg 442 142
|
/config/ref1.jpg 442 142
|
||||||
|
|
||||||
[Digits]
|
[Digits]
|
||||||
Model = /config/dig1310s3q.tflite
|
Model = /config/dig1330s1q.tflite
|
||||||
;LogImageLocation = /log/digit
|
;LogImageLocation = /log/digit
|
||||||
;LogfileRetentionInDays = 3
|
;LogfileRetentionInDays = 3
|
||||||
ModelInputSize = 20 32
|
ModelInputSize = 20 32
|
||||||
@@ -29,7 +29,7 @@ main.dig2 343 126 30 54
|
|||||||
main.dig3 391 126 30 54
|
main.dig3 391 126 30 54
|
||||||
|
|
||||||
[Analog]
|
[Analog]
|
||||||
Model = /config/ana0700s1lq.tflite
|
Model = /config/ana0910s3_longq.tflite
|
||||||
;LogImageLocation = /log/analog
|
;LogImageLocation = /log/analog
|
||||||
;LogfileRetentionInDays = 3
|
;LogfileRetentionInDays = 3
|
||||||
ModelInputSize = 32 32
|
ModelInputSize = 32 32
|
||||||
@@ -46,7 +46,7 @@ PreValueAgeStartup = 720
|
|||||||
AllowNegativeRates = false
|
AllowNegativeRates = false
|
||||||
main.MaxRateValue = 0.1
|
main.MaxRateValue = 0.1
|
||||||
ErrorMessage = true
|
ErrorMessage = true
|
||||||
CheckDigitIncreaseConsistency = true
|
CheckDigitIncreaseConsistency = false
|
||||||
|
|
||||||
;[MQTT]
|
;[MQTT]
|
||||||
;Uri = mqtt://IP-ADRESS:1883
|
;Uri = mqtt://IP-ADRESS:1883
|
||||||
@@ -62,7 +62,10 @@ CheckDigitIncreaseConsistency = true
|
|||||||
;IO3 = input disabled 10 false false
|
;IO3 = input disabled 10 false false
|
||||||
;IO4 = built-in-led disabled 10 false false
|
;IO4 = built-in-led disabled 10 false false
|
||||||
;IO12 = input-pullup disabled 10 false false
|
;IO12 = input-pullup disabled 10 false false
|
||||||
;IO13 = input-pullup disabled 10 false false
|
;IO13 = input-pullup disabled 10 false false
|
||||||
|
LEDType = WS2812
|
||||||
|
LEDNumbers = 2
|
||||||
|
LEDColor = 50 50 50
|
||||||
|
|
||||||
[AutoTimer]
|
[AutoTimer]
|
||||||
AutoStart = true
|
AutoStart = true
|
||||||
|
|||||||
BIN
sd-card/config/dig1330s1q.tflite
Normal file
@@ -100,7 +100,7 @@ th, td {
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<select id="index" name="index" onchange="ChangeSelection()">
|
<select id="index" name="index" onchange="ChangeSelection()" tabindex=1>
|
||||||
<option value="0" selected>ROI 0</option>
|
<option value="0" selected>ROI 0</option>
|
||||||
<option value="1" >ROI 1</option>
|
<option value="1" >ROI 1</option>
|
||||||
</select>
|
</select>
|
||||||
@@ -114,20 +114,20 @@ th, td {
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>x: <input type="number" name="refx" id="refx" step=1 onchange="valuemanualchanged()"></td>
|
<td>x: <input type="number" name="refx" id="refx" step=1 onchange="valuemanualchanged()" tabindex=2></td>
|
||||||
<td>dx: <input type="number" name="refdx" id="refdx" step=1 onchange="valuemanualchangeddx()"></td>
|
<td>dx: <input type="number" name="refdx" id="refdx" step=1 onchange="valuemanualchangeddx()" tabindex=4></td>
|
||||||
<td rowspan="2"><label for="lockAR"> Lock aspect ratio: </label><input type="checkbox" id="lockAR" name="lockAR" value="1" onclick="changelockAR()" checked></td>
|
<td rowspan="2"><label for="lockAR"> Lock aspect ratio: </label><input type="checkbox" id="lockAR" name="lockAR" value="1" onclick="changelockAR()" checked tabindex=6></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>y: <input type="number" name="refy" id="refy" step=1 onchange="valuemanualchanged()"></td>
|
<td>y: <input type="number" name="refy" id="refy" step=1 onchange="valuemanualchanged()" tabindex=3></td>
|
||||||
<td>dy: <input type="number" name="refdy" id="refdy" step=1 onchange="valuemanualchanged()"></td>
|
<td>dy: <input type="number" name="refdy" id="refdy" step=1 onchange="valuemanualchanged()" tabindex=5></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td><input class="button" type="submit" id="saveroi" name="saveroi" onclick="SaveToConfig()" value="Save all to Config.ini"></td>
|
<td><input class="button" type="submit" id="saveroi" name="saveroi" onclick="SaveToConfig()" value="Save all to Config.ini" tabindex=7></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|||||||
@@ -428,7 +428,7 @@ textarea {
|
|||||||
Do not show error message in return value - in error case, the last valid number will be send out
|
Do not show error message in return value - in error case, the last valid number will be send out
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr class="expert" id="ex1dddd">
|
||||||
<td width="20px" style="padding-left: 40px;">
|
<td width="20px" style="padding-left: 40px;">
|
||||||
<input type="checkbox" id="PostProcessing_CheckDigitIncreaseConsistency_enabled" value="1" onclick = 'InvertEnableItem("PostProcessing", "CheckDigitIncreaseConsistency")' unchecked >
|
<input type="checkbox" id="PostProcessing_CheckDigitIncreaseConsistency_enabled" value="1" onclick = 'InvertEnableItem("PostProcessing", "CheckDigitIncreaseConsistency")' unchecked >
|
||||||
</td>
|
</td>
|
||||||
@@ -482,7 +482,7 @@ textarea {
|
|||||||
<input type="number" id="PostProcessing_MaxRateValue_value1" size="13" min="0" step="any">
|
<input type="number" id="PostProcessing_MaxRateValue_value1" size="13" min="0" step="any">
|
||||||
</td>
|
</td>
|
||||||
<td style="font-size: 80%;">
|
<td style="font-size: 80%;">
|
||||||
Maximum change of reading from one to the next readout
|
Maximum change of reading per minute
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -636,13 +636,13 @@ textarea {
|
|||||||
<td colspan="4" style="padding-left: 20px;">
|
<td colspan="4" style="padding-left: 20px;">
|
||||||
<h4><input type="checkbox" id="Category_GPIO_enabled" value="1" onclick='UpdateAfterCategoryCheck()' unchecked >
|
<h4><input type="checkbox" id="Category_GPIO_enabled" value="1" onclick='UpdateAfterCategoryCheck()' unchecked >
|
||||||
GPIO Settings
|
GPIO Settings
|
||||||
<span class="GPIO_item" style="color: red;"><b>EXPERIMENTAL</b> - Enabling GPIO handler, disable by default integrated flash light. Please enable it with GPIO4 settings.</span>
|
<span class="GPIO_item" > - Enabling GPIO handler, disable by default integrated flash light. Please enable it with GPIO4 (internal flash LED) settings or GPIO12 (external LED).</span>
|
||||||
</h4>
|
</h4>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<!------------- GPIO0 begin ------------------>
|
<!------------- GPIO0 begin ------------------>
|
||||||
<tr class="GPIO_IO0 GPIO_item">
|
<tr class="expert" class="GPIO_IO0 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;">
|
<td width="20px" style="padding-left: 40px;">
|
||||||
<input type="checkbox" id="GPIO_IO0_enabled" value="1" onclick = 'InvertEnableItem("GPIO", "IO0")' unchecked>
|
<input type="checkbox" id="GPIO_IO0_enabled" value="1" onclick = 'InvertEnableItem("GPIO", "IO0")' unchecked>
|
||||||
</td>
|
</td>
|
||||||
@@ -656,9 +656,6 @@ textarea {
|
|||||||
<option value="input-pullup">input pullup</option>
|
<option value="input-pullup">input pullup</option>
|
||||||
<option value="input-pulldown">input pulldown</option>
|
<option value="input-pulldown">input pulldown</option>
|
||||||
<option value="output">output</option>
|
<option value="output">output</option>
|
||||||
<option value="output-pwm" disabled>output pwm (not implemented)</option>
|
|
||||||
<option value="external-flash-pwm" disabled>external flash light pwm controlled (not implemented)</option>
|
|
||||||
<option value="external-flash-ws281x" disabled>external flash light ws281x controlled (not implemented)</option>
|
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
</td>
|
</td>
|
||||||
@@ -668,10 +665,10 @@ textarea {
|
|||||||
<span style="color: red">Pin is used to activate flash mode and must therefore be HIGH when booting.</span>
|
<span style="color: red">Pin is used to activate flash mode and must therefore be HIGH when booting.</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO0 GPIO_item">
|
<tr class="expert" class="GPIO_IO0 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 0 use interrupt</span>
|
<span id="GPIO_IO0_text" class="GPIO_IO0 GPIO_item">GPIO 0 use interrupt</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td">
|
<td">
|
||||||
@@ -689,10 +686,10 @@ textarea {
|
|||||||
GPIO 0 enable interrupt trigger
|
GPIO 0 enable interrupt trigger
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO0 GPIO_item">
|
<tr class="expert" class="GPIO_IO0 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 0 PWM duty resolution</span>
|
<span class="GPIO_IO0 GPIO_item">GPIO 0 PWM duty resolution</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td"><input type="number" id="GPIO_IO0_value3" min="1" max="20"></td>
|
<td"><input type="number" id="GPIO_IO0_value3" min="1" max="20"></td>
|
||||||
@@ -701,10 +698,10 @@ textarea {
|
|||||||
GPIO 0 LEDC PWM duty resolution in bit
|
GPIO 0 LEDC PWM duty resolution in bit
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO0 GPIO_item">
|
<tr class="expert" class="GPIO_IO0 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 0 enable MQTT</span>
|
<span class="GPIO_IO0 GPIO_item">GPIO 0 enable MQTT</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td"><input type="checkbox" id="GPIO_IO0_value4"></td>
|
<td"><input type="checkbox" id="GPIO_IO0_value4"></td>
|
||||||
@@ -713,10 +710,10 @@ textarea {
|
|||||||
GPIO 0 enable MQTT publishing/subscribing
|
GPIO 0 enable MQTT publishing/subscribing
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO0 GPIO_item">
|
<tr class="expert" class="GPIO_IO0 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 0 enable HTTP</span>
|
<span class="GPIO_IO0 GPIO_item">GPIO 0 enable HTTP</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td"><input type="checkbox" id="GPIO_IO0_value5"></td>
|
<td"><input type="checkbox" id="GPIO_IO0_value5"></td>
|
||||||
@@ -725,10 +722,10 @@ textarea {
|
|||||||
GPIO 0 enable HTTP write/read
|
GPIO 0 enable HTTP write/read
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO0 GPIO_item">
|
<tr class="expert" class="GPIO_IO0 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 0 name</span>
|
<span class="GPIO_IO0 GPIO_item">GPIO 0 name</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td"><input type="text" id="GPIO_IO0_value6"></td>
|
<td"><input type="text" id="GPIO_IO0_value6"></td>
|
||||||
@@ -740,12 +737,12 @@ textarea {
|
|||||||
<!------------- GPIO0 end ------------------>
|
<!------------- GPIO0 end ------------------>
|
||||||
|
|
||||||
<!------------- GPIO1 begin ------------------>
|
<!------------- GPIO1 begin ------------------>
|
||||||
<tr class="GPIO_IO1 GPIO_item">
|
<tr class="expert" class="GPIO_IO1 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;">
|
<td width="20px" style="padding-left: 40px;">
|
||||||
<input type="checkbox" id="GPIO_IO1_enabled" value="1" onclick = 'InvertEnableItem("GPIO", "IO1")' unchecked>
|
<input type="checkbox" id="GPIO_IO1_enabled" value="1" onclick = 'InvertEnableItem("GPIO", "IO1")' unchecked>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<span id="GPIO_IO1_text">GPIO 1 state</span>
|
<span id="GPIO_IO1_text" class="GPIO_IO1 GPIO_item">GPIO 1 state</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td">
|
<td">
|
||||||
@@ -754,9 +751,6 @@ textarea {
|
|||||||
<option value="input-pullup">input pullup</option>
|
<option value="input-pullup">input pullup</option>
|
||||||
<option value="input-pulldown">input pulldown</option>
|
<option value="input-pulldown">input pulldown</option>
|
||||||
<option value="output">output</option>
|
<option value="output">output</option>
|
||||||
<option value="output-pwm" disabled>output pwm (not implemented)</option>
|
|
||||||
<option value="external-flash-pwm" disabled>external flash light pwm controlled (not implemented)</option>
|
|
||||||
<option value="external-flash-ws281x" disabled>external flash light ws281x controlled (not implemented)</option>
|
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
</td>
|
</td>
|
||||||
@@ -764,10 +758,10 @@ textarea {
|
|||||||
GPIO 1 <br><span style="color: blue">Used by default for serial communication as TX pin.<br>Required for seriales monitor.</span>
|
GPIO 1 <br><span style="color: blue">Used by default for serial communication as TX pin.<br>Required for seriales monitor.</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO1 GPIO_item">
|
<tr class="expert" class="GPIO_IO1 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 1 use interrupt</span>
|
<span class="GPIO_IO1 GPIO_item" class="expert">GPIO 1 use interrupt</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td">
|
<td">
|
||||||
@@ -785,10 +779,10 @@ textarea {
|
|||||||
GPIO 1 enable interrupt trigger
|
GPIO 1 enable interrupt trigger
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO1 GPIO_item">
|
<tr class="expert" class="GPIO_IO1 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 1 PWM duty resolution</span>
|
<span class="GPIO_IO1 GPIO_item">GPIO 1 PWM duty resolution</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td"><input type="number" id="GPIO_IO1_value3" min="1" max="20"></td>
|
<td"><input type="number" id="GPIO_IO1_value3" min="1" max="20"></td>
|
||||||
@@ -797,10 +791,10 @@ textarea {
|
|||||||
GPIO 1 LEDC PWM duty resolution in bit
|
GPIO 1 LEDC PWM duty resolution in bit
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO1 GPIO_item">
|
<tr class="expert" class="GPIO_IO1 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 1 enable MQTT</span>
|
<span class="GPIO_IO1 GPIO_item">GPIO 1 enable MQTT</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td"><input type="checkbox" id="GPIO_IO1_value4"></td>
|
<td"><input type="checkbox" id="GPIO_IO1_value4"></td>
|
||||||
@@ -809,10 +803,10 @@ textarea {
|
|||||||
GPIO 1 enable MQTT publishing/subscribing
|
GPIO 1 enable MQTT publishing/subscribing
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO1 GPIO_item">
|
<tr class="expert" class="GPIO_IO1 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 1 enable HTTP</span>
|
<span class="GPIO_IO1 GPIO_item">GPIO 1 enable HTTP</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td"><input type="checkbox" id="GPIO_IO1_value5"></td>
|
<td"><input type="checkbox" id="GPIO_IO1_value5"></td>
|
||||||
@@ -821,10 +815,10 @@ textarea {
|
|||||||
GPIO 1 enable HTTP write/read
|
GPIO 1 enable HTTP write/read
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO1 GPIO_item">
|
<tr class="expert" class="GPIO_IO1 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 1 name</span>
|
<span class="GPIO_IO1 GPIO_item" class="expert">GPIO 1 name</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td"><input type="text" id="GPIO_IO1_value6"></td>
|
<td"><input type="text" id="GPIO_IO1_value6"></td>
|
||||||
@@ -836,12 +830,12 @@ textarea {
|
|||||||
<!------------- GPIO1 end ------------------>
|
<!------------- GPIO1 end ------------------>
|
||||||
|
|
||||||
<!------------- GPIO3 begin ------------------>
|
<!------------- GPIO3 begin ------------------>
|
||||||
<tr class="GPIO_IO3 GPIO_item">
|
<tr class="expert" class="GPIO_IO3 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;">
|
<td width="20px" style="padding-left: 40px;">
|
||||||
<input type="checkbox" id="GPIO_IO3_enabled" value="1" onclick = 'InvertEnableItem("GPIO", "IO3")' unchecked>
|
<input type="checkbox" id="GPIO_IO3_enabled" value="1" onclick = 'InvertEnableItem("GPIO", "IO3")' unchecked>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<span id="GPIO_IO3_text">GPIO 3 state</span>
|
<span id="GPIO_IO3_text" class="GPIO_IO3 GPIO_item">GPIO 3 state</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td">
|
<td">
|
||||||
@@ -850,9 +844,6 @@ textarea {
|
|||||||
<option value="input-pullup">input pullup</option>
|
<option value="input-pullup">input pullup</option>
|
||||||
<option value="input-pulldown">input pulldown</option>
|
<option value="input-pulldown">input pulldown</option>
|
||||||
<option value="output">output</option>
|
<option value="output">output</option>
|
||||||
<option value="output-pwm" disabled>output pwm (not implemented)</option>
|
|
||||||
<option value="external-flash-pwm" disabled>external flash light pwm controlled (not implemented)</option>
|
|
||||||
<option value="external-flash-ws281x" disabled>external flash light ws281x controlled (not implemented)</option>
|
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
</td>
|
</td>
|
||||||
@@ -860,10 +851,10 @@ textarea {
|
|||||||
GPIO 3 <span style="color: blue">Used by default for serial communication as RX pin.</span>
|
GPIO 3 <span style="color: blue">Used by default for serial communication as RX pin.</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO3 GPIO_item">
|
<tr class="expert" class="GPIO_IO3 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 3 use interrupt</span>
|
<span class="GPIO_IO3 GPIO_item">GPIO 3 use interrupt</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td">
|
<td">
|
||||||
@@ -881,10 +872,10 @@ textarea {
|
|||||||
GPIO 3 Used by default for serial communication as RX pin.
|
GPIO 3 Used by default for serial communication as RX pin.
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO3 GPIO_item">
|
<tr class="expert" class="GPIO_IO3 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 3 PWM duty resolution</span>
|
<span class="GPIO_IO3 GPIO_item">GPIO 3 PWM duty resolution</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td"><input type="number" id="GPIO_IO3_value3" min="1" max="20"></td>
|
<td"><input type="number" id="GPIO_IO3_value3" min="1" max="20"></td>
|
||||||
@@ -893,10 +884,10 @@ textarea {
|
|||||||
GPIO 3 LEDC PWM duty resolution in bit
|
GPIO 3 LEDC PWM duty resolution in bit
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO3 GPIO_item">
|
<tr class="expert" class="GPIO_IO3 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 3 enable MQTT</span>
|
<span class="GPIO_IO3 GPIO_item">GPIO 3 enable MQTT</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td"><input type="checkbox" id="GPIO_IO3_value4"></td>
|
<td"><input type="checkbox" id="GPIO_IO3_value4"></td>
|
||||||
@@ -905,10 +896,10 @@ textarea {
|
|||||||
GPIO 3 enable MQTT publishing/subscribing
|
GPIO 3 enable MQTT publishing/subscribing
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO3 GPIO_item">
|
<tr class="expert" class="GPIO_IO3 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 3 enable HTTP</span>
|
<span class="GPIO_IO3 GPIO_item">GPIO 3 enable HTTP</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td"><input type="checkbox" id="GPIO_IO3_value5"></td>
|
<td"><input type="checkbox" id="GPIO_IO3_value5"></td>
|
||||||
@@ -917,10 +908,10 @@ textarea {
|
|||||||
GPIO 3 enable HTTP write/read
|
GPIO 3 enable HTTP write/read
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO3 GPIO_item">
|
<tr class="expert" class="GPIO_IO3 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 3 name</span>
|
<span class="GPIO_IO3 GPIO_item">GPIO 3 name</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td"><input type="text" id="GPIO_IO3_value6"></td>
|
<td"><input type="text" id="GPIO_IO3_value6"></td>
|
||||||
@@ -937,7 +928,7 @@ textarea {
|
|||||||
<input type="checkbox" id="GPIO_IO4_enabled" value="1" onclick = 'InvertEnableItem("GPIO", "IO4")' unchecked>
|
<input type="checkbox" id="GPIO_IO4_enabled" value="1" onclick = 'InvertEnableItem("GPIO", "IO4")' unchecked>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<span id="GPIO_IO4_text">GPIO 4 state</span>
|
<span id="GPIO_IO4_text" class="GPIO_IO4 GPIO_item">GPIO 4 state</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td">
|
<td">
|
||||||
@@ -947,9 +938,6 @@ textarea {
|
|||||||
<option value="input-pulldown">input pulldown</option>
|
<option value="input-pulldown">input pulldown</option>
|
||||||
<option value="output">output</option>
|
<option value="output">output</option>
|
||||||
<option value="built-in-led">built-in led flash light</option>
|
<option value="built-in-led">built-in led flash light</option>
|
||||||
<option value="output-pwm" disabled>output pwm (not implemented)</option>
|
|
||||||
<option value="external-flash-pwm" disabled>external flash light pwm controlled (not implemented)</option>
|
|
||||||
<option value="external-flash-ws281x" disabled>external flash light ws281x controlled (not implemented)</option>
|
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
</td>
|
</td>
|
||||||
@@ -958,10 +946,10 @@ textarea {
|
|||||||
<span style="color: red">Pin is used for build-in flash light.</span>
|
<span style="color: red">Pin is used for build-in flash light.</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO4 GPIO_item">
|
<tr class="expert" class="GPIO_IO4 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 4 use interrupt</span>
|
<span class="GPIO_IO4 GPIO_item">GPIO 4 use interrupt</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td">
|
<td">
|
||||||
@@ -979,10 +967,10 @@ textarea {
|
|||||||
GPIO 4 enable interrupt trigger
|
GPIO 4 enable interrupt trigger
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO4 GPIO_item">
|
<tr class="expert" class="GPIO_IO4 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 4 PWM duty resolution</span>
|
<span class="GPIO_IO4 GPIO_item">GPIO 4 PWM duty resolution</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td"><input type="number" id="GPIO_IO4_value3" min="1" max="20"></td>
|
<td"><input type="number" id="GPIO_IO4_value3" min="1" max="20"></td>
|
||||||
@@ -991,10 +979,10 @@ textarea {
|
|||||||
GPIO 4 LEDC PWM duty resolution in bit
|
GPIO 4 LEDC PWM duty resolution in bit
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO4 GPIO_item">
|
<tr class="expert" class="GPIO_IO4 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 4 enable MQTT</span>
|
<span class="GPIO_IO4 GPIO_item">GPIO 4 enable MQTT</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td"><input type="checkbox" id="GPIO_IO4_value4"></td>
|
<td"><input type="checkbox" id="GPIO_IO4_value4"></td>
|
||||||
@@ -1003,10 +991,10 @@ textarea {
|
|||||||
GPIO 4 enable MQTT publishing/subscribing
|
GPIO 4 enable MQTT publishing/subscribing
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO4 GPIO_item">
|
<tr class="expert" class="GPIO_IO4 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 4 enable HTTP</span>
|
<span class="GPIO_IO4 GPIO_item">GPIO 4 enable HTTP</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td"><input type="checkbox" id="GPIO_IO4_value5"></td>
|
<td"><input type="checkbox" id="GPIO_IO4_value5"></td>
|
||||||
@@ -1015,10 +1003,10 @@ textarea {
|
|||||||
GPIO 4 enable HTTP write/read
|
GPIO 4 enable HTTP write/read
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO4 GPIO_item">
|
<tr class="expert" class="GPIO_IO4 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 4 name</span>
|
<span class="GPIO_IO4 GPIO_item">GPIO 4 name</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td"><input type="text" id="GPIO_IO4_value6"></td>
|
<td"><input type="text" id="GPIO_IO4_value6"></td>
|
||||||
@@ -1035,7 +1023,7 @@ textarea {
|
|||||||
<input type="checkbox" id="GPIO_IO12_enabled" value="1" onclick = 'InvertEnableItem("GPIO", "IO12")' unchecked>
|
<input type="checkbox" id="GPIO_IO12_enabled" value="1" onclick = 'InvertEnableItem("GPIO", "IO12")' unchecked>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<span id="GPIO_IO12_text">GPIO 12 state</span>
|
<span class="GPIO_IO12 GPIO_item" id="GPIO_IO12_text">GPIO 12 state</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td">
|
<td">
|
||||||
@@ -1044,9 +1032,7 @@ textarea {
|
|||||||
<option value="input-pullup">input pullup</option>
|
<option value="input-pullup">input pullup</option>
|
||||||
<option value="input-pulldown">input pulldown</option>
|
<option value="input-pulldown">input pulldown</option>
|
||||||
<option value="output">output</option>
|
<option value="output">output</option>
|
||||||
<option value="output-pwm" disabled>output pwm (not implemented)</option>
|
<option value="external-flash-ws281x">external flash light ws281x controlled</option>
|
||||||
<option value="external-flash-pwm" disabled>external flash light pwm controlled (not implemented)</option>
|
|
||||||
<option value="external-flash-ws281x">external flash light ws281x controlled (experimental)</option>
|
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
</td>
|
</td>
|
||||||
@@ -1054,14 +1040,14 @@ textarea {
|
|||||||
GPIO 12 is usable without restrictions
|
GPIO 12 is usable without restrictions
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO12 GPIO_item">
|
<tr class="expert" class="GPIO_IO12 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 12 use interrupt</span>
|
<span class="GPIO_IO12 GPIO_item">GPIO 12 use interrupt</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td">
|
<td>
|
||||||
<select id="GPIO_IO12_value2">
|
<select class="GPIO_IO12 GPIO_item" id="GPIO_IO12_value2">
|
||||||
<option value="disabled">disabled</option>
|
<option value="disabled">disabled</option>
|
||||||
<option value="rising-edge">rising edge</option>
|
<option value="rising-edge">rising edge</option>
|
||||||
<option value="falling-edge">falling edge</option>
|
<option value="falling-edge">falling edge</option>
|
||||||
@@ -1075,10 +1061,10 @@ textarea {
|
|||||||
GPIO 12 enable interrupt trigger
|
GPIO 12 enable interrupt trigger
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO12 GPIO_item">
|
<tr class="expert" class="GPIO_IO12 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 12 PWM duty resolution</span>
|
<span class="GPIO_IO12 GPIO_item">GPIO 12 PWM duty resolution</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td"><input type="number" id="GPIO_IO12_value3" min="1" max="20"></td>
|
<td"><input type="number" id="GPIO_IO12_value3" min="1" max="20"></td>
|
||||||
@@ -1087,10 +1073,10 @@ textarea {
|
|||||||
GPIO 12 LEDC PWM duty resolution in bit
|
GPIO 12 LEDC PWM duty resolution in bit
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO12 GPIO_item">
|
<tr class="expert" class="GPIO_IO12 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 12 enable MQTT</span>
|
<span class="GPIO_IO12 GPIO_item">GPIO 12 enable MQTT</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td"><input type="checkbox" id="GPIO_IO12_value4"></td>
|
<td"><input type="checkbox" id="GPIO_IO12_value4"></td>
|
||||||
@@ -1099,10 +1085,10 @@ textarea {
|
|||||||
GPIO 12 enable MQTT publishing/subscribing
|
GPIO 12 enable MQTT publishing/subscribing
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO12 GPIO_item">
|
<tr class="expert" class="GPIO_IO12 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 12 enable HTTP</span>
|
<span class="GPIO_IO12 GPIO_item">GPIO 12 enable HTTP</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td"><input type="checkbox" id="GPIO_IO12_value5"></td>
|
<td"><input type="checkbox" id="GPIO_IO12_value5"></td>
|
||||||
@@ -1111,10 +1097,10 @@ textarea {
|
|||||||
GPIO 12 enable HTTP write/read
|
GPIO 12 enable HTTP write/read
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO12 GPIO_item">
|
<tr class="expert" class="GPIO_IO12 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 12 name</span>
|
<span class="GPIO_IO12 GPIO_item">GPIO 12 name</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td"><input type="text" id="GPIO_IO12_value6"></td>
|
<td"><input type="text" id="GPIO_IO12_value6"></td>
|
||||||
@@ -1123,10 +1109,60 @@ textarea {
|
|||||||
GPIO 12 MQTT topic name (empty = GPIO12). Allowed characters (a-z, A-Z, 0-9, _, -)
|
GPIO 12 MQTT topic name (empty = GPIO12). Allowed characters (a-z, A-Z, 0-9, _, -)
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
<tr class="GPIO_IO12 GPIO_item" id="wstypeex3">
|
||||||
|
<td width="20px" style="padding-left: 40px;">
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<span class="GPIO_IO12 GPIO_item" id="GPIO_LEDType_text">LED-Type</span>
|
||||||
|
</td>
|
||||||
|
<td class="GPIO_IO12 GPIO_item">
|
||||||
|
<select class="GPIO_IO12 GPIO_item" id="GPIO_LEDType_value1">
|
||||||
|
<option value="WS2812" selected>WS2812</option>
|
||||||
|
<option value="WS2812B">WS2812B</option>
|
||||||
|
<option value="SK6812">SK6812 (not tested)</option>
|
||||||
|
<option value="WS2813">WS2813 (not tested)</option>
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
<td class="description">
|
||||||
|
Type of WS2812x, that is connected to GPIO12
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr class="GPIO_IO12 GPIO_item" id="LEDANZex8" >
|
||||||
|
<td width="20px" style="padding-left: 40px;">
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<span class="GPIO_IO12 GPIO_item" id="GPIO_LEDNumbers_text">Numbers of LEDs</span>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="number" name="name" id="GPIO_LEDNumbers_value1" size="13" min="1">
|
||||||
|
</td>
|
||||||
|
<td style="font-size: 80%;">
|
||||||
|
Number of LEDs on the external LED-stripe
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="GPIO_IO12 GPIO_item" id="LEDRGBex9">
|
||||||
|
<td width="20px" style="padding-left: 40px;">
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<span class="GPIO_IO12 GPIO_item" id="GPIO_LEDColor_text">LED Color</span>
|
||||||
|
</td>
|
||||||
|
<td class="GPIO_IO12 GPIO_item">
|
||||||
|
R <input class="smallSelect" class="GPIO_IO12 GPIO_item" id="GPIO_LEDColor_value1" size="12">
|
||||||
|
G <input class="smallSelect" class="GPIO_IO12 GPIO_item" id="GPIO_LEDColor_value2" size="12">
|
||||||
|
B <input class="smallSelect" class="GPIO_IO12 GPIO_item" id="GPIO_LEDColor_value3" size="12">
|
||||||
|
</td>
|
||||||
|
<td style="font-size: 80%;">
|
||||||
|
Color of LEDs in (R)ed, (G)reen (B)lue from 0...255
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
<!------------- GPIO12 end ------------------>
|
<!------------- GPIO12 end ------------------>
|
||||||
|
|
||||||
<!------------- GPIO13 begin ------------------>
|
<!------------- GPIO13 begin ------------------>
|
||||||
<tr class="GPIO_IO13 GPIO_item">
|
<tr class="expert" class="GPIO_IO13 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;">
|
<td width="20px" style="padding-left: 40px;">
|
||||||
<input type="checkbox" id="GPIO_IO13_enabled" value="1" onclick = 'InvertEnableItem("GPIO", "IO13")' unchecked>
|
<input type="checkbox" id="GPIO_IO13_enabled" value="1" onclick = 'InvertEnableItem("GPIO", "IO13")' unchecked>
|
||||||
</td>
|
</td>
|
||||||
@@ -1140,9 +1176,6 @@ textarea {
|
|||||||
<option value="input-pullup">input pullup</option>
|
<option value="input-pullup">input pullup</option>
|
||||||
<option value="input-pulldown">input pulldown</option>
|
<option value="input-pulldown">input pulldown</option>
|
||||||
<option value="output">output</option>
|
<option value="output">output</option>
|
||||||
<option value="output-pwm" disabled>output pwm (not implemented)</option>
|
|
||||||
<option value="external-flash-pwm" disabled>external flash light pwm controlled (not implemented)</option>
|
|
||||||
<option value="external-flash-ws281x" disabled>external flash light ws281x controlled (not implemented)</option>
|
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
</td>
|
</td>
|
||||||
@@ -1150,10 +1183,10 @@ textarea {
|
|||||||
GPIO 13 is usable without restrictions
|
GPIO 13 is usable without restrictions
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO13 GPIO_item">
|
<tr class="expert" class="GPIO_IO13 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 13 use interrupt</span>
|
<span class="GPIO_IO13 GPIO_item">GPIO 13 use interrupt</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td">
|
<td">
|
||||||
@@ -1171,10 +1204,10 @@ textarea {
|
|||||||
GPIO 13 enable interrupt trigger
|
GPIO 13 enable interrupt trigger
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO13 GPIO_item">
|
<tr class="expert" class="GPIO_IO13 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 13 PWM duty resolution</span>
|
<span class="GPIO_IO13 GPIO_item">GPIO 13 PWM duty resolution</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td"><input type="number" id="GPIO_IO13_value3" min="1" max="20"></td>
|
<td"><input type="number" id="GPIO_IO13_value3" min="1" max="20"></td>
|
||||||
@@ -1183,10 +1216,10 @@ textarea {
|
|||||||
GPIO 13 LEDC PWM duty resolution in bit
|
GPIO 13 LEDC PWM duty resolution in bit
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO13 GPIO_item">
|
<tr class="expert" class="GPIO_IO13 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 13 enable MQTT</span>
|
<span class="GPIO_IO13 GPIO_item">GPIO 13 enable MQTT</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td"><input type="checkbox" id="GPIO_IO13_value4"></td>
|
<td"><input type="checkbox" id="GPIO_IO13_value4"></td>
|
||||||
@@ -1195,10 +1228,10 @@ textarea {
|
|||||||
GPIO 13 enable MQTT publishing/subscribing
|
GPIO 13 enable MQTT publishing/subscribing
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO13 GPIO_item">
|
<tr class="expert" class="GPIO_IO13 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 13 enable HTTP</span>
|
<span class="GPIO_IO13 GPIO_item">GPIO 13 enable HTTP</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td"><input type="checkbox" id="GPIO_IO13_value5"></td>
|
<td"><input type="checkbox" id="GPIO_IO13_value5"></td>
|
||||||
@@ -1207,10 +1240,10 @@ textarea {
|
|||||||
GPIO 13 enable HTTP write/read
|
GPIO 13 enable HTTP write/read
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="GPIO_IO13 GPIO_item">
|
<tr class="expert" class="GPIO_IO13 GPIO_item">
|
||||||
<td width="20px" style="padding-left: 40px;"></td>
|
<td width="20px" style="padding-left: 40px;"></td>
|
||||||
<td>
|
<td>
|
||||||
<span>GPIO 13 name</span>
|
<span class="GPIO_IO13 GPIO_item">GPIO 13 name</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<td"><input type="text" id="GPIO_IO13_value6"></td>
|
<td"><input type="text" id="GPIO_IO13_value6"></td>
|
||||||
@@ -1496,6 +1529,11 @@ function InvertEnableItem(_cat, _param)
|
|||||||
}
|
}
|
||||||
|
|
||||||
function setEnabled(className, enabled) {
|
function setEnabled(className, enabled) {
|
||||||
|
_color = "color:lightgrey;";
|
||||||
|
if (enabled) {
|
||||||
|
_color = "color:black;";
|
||||||
|
}
|
||||||
|
|
||||||
let elements = document.getElementsByClassName(className);
|
let elements = document.getElementsByClassName(className);
|
||||||
for (i = 0; i < elements.length; i++) {
|
for (i = 0; i < elements.length; i++) {
|
||||||
if (enabled) {
|
if (enabled) {
|
||||||
@@ -1509,6 +1547,7 @@ function setEnabled(className, enabled) {
|
|||||||
if (inputs[j].id.endsWith("_enabled"))
|
if (inputs[j].id.endsWith("_enabled"))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
inputs[j].style = _color
|
||||||
if (enabled) {
|
if (enabled) {
|
||||||
inputs[j].removeAttribute("disabled");
|
inputs[j].removeAttribute("disabled");
|
||||||
} else {
|
} else {
|
||||||
@@ -1700,6 +1739,9 @@ function UpdateInput() {
|
|||||||
WriteParameter(param, category, "GPIO", "IO4", true);
|
WriteParameter(param, category, "GPIO", "IO4", true);
|
||||||
WriteParameter(param, category, "GPIO", "IO12", true);
|
WriteParameter(param, category, "GPIO", "IO12", true);
|
||||||
WriteParameter(param, category, "GPIO", "IO13", true);
|
WriteParameter(param, category, "GPIO", "IO13", true);
|
||||||
|
WriteParameter(param, category, "GPIO", "LEDType", false);
|
||||||
|
WriteParameter(param, category, "GPIO", "LEDNumbers", false);
|
||||||
|
WriteParameter(param, category, "GPIO", "LEDColor", false);
|
||||||
|
|
||||||
WriteParameter(param, category, "AutoTimer", "AutoStart", false);
|
WriteParameter(param, category, "AutoTimer", "AutoStart", false);
|
||||||
WriteParameter(param, category, "AutoTimer", "Intervall", false);
|
WriteParameter(param, category, "AutoTimer", "Intervall", false);
|
||||||
@@ -1763,6 +1805,16 @@ function ReadParameterAll()
|
|||||||
ReadParameter(param, "GPIO", "IO4", true);
|
ReadParameter(param, "GPIO", "IO4", true);
|
||||||
ReadParameter(param, "GPIO", "IO12", true);
|
ReadParameter(param, "GPIO", "IO12", true);
|
||||||
ReadParameter(param, "GPIO", "IO13", true);
|
ReadParameter(param, "GPIO", "IO13", true);
|
||||||
|
ReadParameter(param, "GPIO", "LEDType", false);
|
||||||
|
ReadParameter(param, "GPIO", "LEDNumbers", false);
|
||||||
|
ReadParameter(param, "GPIO", "LEDColor", false);
|
||||||
|
// Folgende Zeilen sind für Abwärtskompatibität < v9.0.0 notwendig (manchmal parameter auskommentiert)
|
||||||
|
param["GPIO"]["LEDType"]["enabled"] = true;
|
||||||
|
param["GPIO"]["LEDNumbers"]["enabled"] = true;
|
||||||
|
param["GPIO"]["LEDColor"]["enabled"] = true;
|
||||||
|
param["GPIO"]["LEDType"]["found"] = true;
|
||||||
|
param["GPIO"]["LEDNumbers"]["found"] = true;
|
||||||
|
param["GPIO"]["LEDColor"]["found"] = true;
|
||||||
|
|
||||||
ReadParameter(param, "AutoTimer", "AutoStart", false);
|
ReadParameter(param, "AutoTimer", "AutoStart", false);
|
||||||
ReadParameter(param, "AutoTimer", "Intervall", false);
|
ReadParameter(param, "AutoTimer", "Intervall", false);
|
||||||
@@ -1799,9 +1851,13 @@ function UpdateAfterCategoryCheck() {
|
|||||||
|
|
||||||
function UpdateExpertModus()
|
function UpdateExpertModus()
|
||||||
{
|
{
|
||||||
var _style = 'display:none;';
|
// var _style = 'display:none;';
|
||||||
|
var _style_pur = 'none';
|
||||||
|
var _hidden = true;
|
||||||
if (document.getElementById("ExpertModus_enabled").checked) {
|
if (document.getElementById("ExpertModus_enabled").checked) {
|
||||||
_style = '';
|
// _style = '';
|
||||||
|
_style_pur = '';
|
||||||
|
_hidden = false;
|
||||||
document.getElementById("Edit_Config_Direct").style.display = "";
|
document.getElementById("Edit_Config_Direct").style.display = "";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1811,8 +1867,22 @@ function UpdateExpertModus()
|
|||||||
|
|
||||||
const expert = document.querySelectorAll(".expert");
|
const expert = document.querySelectorAll(".expert");
|
||||||
for (var i = 0; i < expert.length; i++) {
|
for (var i = 0; i < expert.length; i++) {
|
||||||
document.getElementById(expert[i].id).style = _style;
|
expert[i].style.display = _style_pur;
|
||||||
|
// document.getElementById(expert[i].id).style = _style;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Enable / Disable die Optionen in den Menues für die Auswahl. Falls kein Expertenmodus soll nur ein Wert (built-in-led oder externan-flash-ws281x) möglich sein
|
||||||
|
Array.from(document.querySelector("#GPIO_IO4_value1").options).forEach(function(option_element) {
|
||||||
|
if (option_element.value != "built-in-led")
|
||||||
|
option_element.hidden = _hidden;
|
||||||
|
});
|
||||||
|
|
||||||
|
Array.from(document.querySelector("#GPIO_IO12_value1").options).forEach(function(option_element) {
|
||||||
|
if (option_element.value != "external-flash-ws281x")
|
||||||
|
option_element.hidden = _hidden;
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function saveTextAsFile()
|
function saveTextAsFile()
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ th, td {
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<select id="index" name="index" onchange="ChangeSelection()">
|
<select id="index" name="index" onchange="ChangeSelection()" tabindex=1>
|
||||||
<option value="0" selected>ROI 0</option>
|
<option value="0" selected>ROI 0</option>
|
||||||
<option value="1" >ROI 1</option>
|
<option value="1" >ROI 1</option>
|
||||||
</select>
|
</select>
|
||||||
@@ -104,13 +104,13 @@ th, td {
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>x: <input type="number" name="refx" id="refx" step=1 onchange="valuemanualchanged()"></td>
|
<td>x: <input type="number" name="refx" id="refx" step=1 onchange="valuemanualchanged()" tabindex=2></td>
|
||||||
<td>dx: <input type="number" name="refdx" id="refdx" step=1 onchange="valuemanualchangeddx()"></td>
|
<td>dx: <input type="number" name="refdx" id="refdx" step=1 onchange="valuemanualchangeddx()" tabindex=4></td>
|
||||||
<td rowspan="2"><label for="lockAR"> Lock aspect ratio </label><input type="checkbox" id="lockAR" name="lockAR" value="1" onclick="changelockAR()" checked></td>
|
<td rowspan="2"><label for="lockAR"> Lock aspect ratio </label><input type="checkbox" id="lockAR" name="lockAR" value="1" onclick="changelockAR()" checked tabindex=6> </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>y: <input type="number" name="refy" id="refy" step=1 onchange="valuemanualchanged()"></td>
|
<td>y: <input type="number" name="refy" id="refy" step=1 onchange="valuemanualchanged()" tabindex=3></td>
|
||||||
<td>dy: <input type="number" name="refdy" id="refdy" step=1 onchange="valuemanualchanged()"></td>
|
<td>dy: <input type="number" name="refdy" id="refdy" step=1 onchange="valuemanualchanged()" tabindex=5></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -118,7 +118,7 @@ th, td {
|
|||||||
|
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td><input class="button" type="submit" id="saveroi" name="saveroi" onclick="SaveToConfig()" value="Save all to Config.ini"></td>
|
<td><input class="button" type="submit" id="saveroi" name="saveroi" onclick="SaveToConfig()" value="Save all to Config.ini" tabindex=7></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|||||||
@@ -3,13 +3,16 @@ function gethost_Version(){
|
|||||||
return "1.0.0 - 20200910";
|
return "1.0.0 - 20200910";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function getbasepath(){
|
function getbasepath(){
|
||||||
var host = window.location.hostname;
|
var host = window.location.hostname;
|
||||||
if ((host == "127.0.0.1") || (host == "localhost") || (host == ""))
|
if (((host == "127.0.0.1") || (host == "localhost") || (host == ""))
|
||||||
|
&& ((window.location.port == "80") || (window.location.port == "")))
|
||||||
|
|
||||||
{
|
{
|
||||||
// host = "http://192.168.2.219"; // jomjol interner test
|
// host = "http://192.168.2.219"; // jomjol interner test
|
||||||
// host = "http://192.168.178.46"; // jomjol interner test
|
// host = "http://192.168.178.46"; // jomjol interner test
|
||||||
host = "http://192.168.178.22"; // jomjol interner Real
|
host = "http://192.168.178.79"; // jomjol interner Real
|
||||||
// host = "http://192.168.43.191";
|
// host = "http://192.168.43.191";
|
||||||
// host = "."; // jomjol interner localhost
|
// host = "."; // jomjol interner localhost
|
||||||
|
|
||||||
@@ -18,6 +21,10 @@ function getbasepath(){
|
|||||||
{
|
{
|
||||||
host = "http://" + host;
|
host = "http://" + host;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (window.location.port != "") {
|
||||||
|
host = host + ":" + window.location.port;
|
||||||
|
}
|
||||||
return host;
|
return host;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ function readconfig_Version(){
|
|||||||
return "1.0.0 - 20200910";
|
return "1.0.0 - 20200910";
|
||||||
}
|
}
|
||||||
|
|
||||||
var config_gesamt;
|
var config_gesamt = "";
|
||||||
var config_split;
|
var config_split = [];
|
||||||
var param;
|
var param = [];
|
||||||
var category;
|
var category;
|
||||||
var ref = new Array(2);
|
var ref = new Array(2);
|
||||||
var NUMBERS = new Array(0);
|
var NUMBERS = new Array(0);
|
||||||
@@ -85,7 +85,7 @@ function ParseConfig() {
|
|||||||
category[catname]["found"] = false;
|
category[catname]["found"] = false;
|
||||||
param[catname] = new Object();
|
param[catname] = new Object();
|
||||||
ParamAddValue(param, catname, "Uri");
|
ParamAddValue(param, catname, "Uri");
|
||||||
ParamAddValue(param, catname, "MainTopic", 1, false, [/^([a-zA-Z0-9_-]+\/){0,10}[a-zA-Z0-9_-]+$/]);
|
ParamAddValue(param, catname, "MainTopic", 1, false);
|
||||||
ParamAddValue(param, catname, "ClientID");
|
ParamAddValue(param, catname, "ClientID");
|
||||||
ParamAddValue(param, catname, "user");
|
ParamAddValue(param, catname, "user");
|
||||||
ParamAddValue(param, catname, "password");
|
ParamAddValue(param, catname, "password");
|
||||||
@@ -104,6 +104,12 @@ function ParseConfig() {
|
|||||||
ParamAddValue(param, catname, "LEDType");
|
ParamAddValue(param, catname, "LEDType");
|
||||||
ParamAddValue(param, catname, "LEDNumbers");
|
ParamAddValue(param, catname, "LEDNumbers");
|
||||||
ParamAddValue(param, catname, "LEDColor", 3);
|
ParamAddValue(param, catname, "LEDColor", 3);
|
||||||
|
// Default Values, um abwärtskompatiblität zu gewährleisten
|
||||||
|
param[catname]["LEDType"]["value1"] = "WS2812";
|
||||||
|
param[catname]["LEDNumbers"]["value1"] = "2";
|
||||||
|
param[catname]["LEDColor"]["value1"] = "50";
|
||||||
|
param[catname]["LEDColor"]["value2"] = "50";
|
||||||
|
param[catname]["LEDColor"]["value3"] = "50";
|
||||||
|
|
||||||
|
|
||||||
var catname = "AutoTimer";
|
var catname = "AutoTimer";
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
10.2.0
|
11.4.0
|
||||||