Skip to content

Commit a1b3f16

Browse files
authored
Merge branch 'master' into feature/ipv6_support
2 parents 701d35f + c1a4055 commit a1b3f16

File tree

29 files changed

+175
-66
lines changed

29 files changed

+175
-66
lines changed

.github/workflows/build_py_tools.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
fetch-depth: 2
2323
ref: ${{ github.event.pull_request.head.ref }}
2424
- name: Verify Python Tools Changed
25-
uses: tj-actions/changed-files@v36
25+
uses: tj-actions/changed-files@v41
2626
id: verify-changed-files
2727
with:
2828
fetch_depth: '2'

boards.txt

Lines changed: 14 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -29364,7 +29364,7 @@ esp32s3_powerfeather.build.variant=esp32s3_powerfeather
2936429364
esp32s3_powerfeather.build.board=ESP32S3_POWERFEATHER
2936529365

2936629366
esp32s3_powerfeather.build.usb_mode=1
29367-
esp32s3_powerfeather.build.cdc_on_boot=0
29367+
esp32s3_powerfeather.build.cdc_on_boot=1
2936829368
esp32s3_powerfeather.build.msc_on_boot=0
2936929369
esp32s3_powerfeather.build.dfu_on_boot=0
2937029370
esp32s3_powerfeather.build.f_cpu=240000000L
@@ -29377,8 +29377,9 @@ esp32s3_powerfeather.build.partitions=default_8MB
2937729377
esp32s3_powerfeather.build.defines=
2937829378
esp32s3_powerfeather.build.loop_core=
2937929379
esp32s3_powerfeather.build.event_core=
29380+
esp32s3_powerfeather.build.flash_type=qio
2938029381
esp32s3_powerfeather.build.psram_type=qspi
29381-
esp32s3_powerfeather.build.memory_type={build.boot}_{build.psram_type}
29382+
esp32s3_powerfeather.build.memory_type={build.flash_type}_{build.psram_type}
2938229383

2938329384
esp32s3_powerfeather.menu.PSRAM.disabled=Disabled
2938429385
esp32s3_powerfeather.menu.PSRAM.disabled.build.defines=
@@ -29418,10 +29419,10 @@ esp32s3_powerfeather.menu.USBMode.hwcdc.build.usb_mode=1
2941829419
esp32s3_powerfeather.menu.USBMode.default=USB-OTG (TinyUSB)
2941929420
esp32s3_powerfeather.menu.USBMode.default.build.usb_mode=0
2942029421

29421-
esp32s3_powerfeather.menu.CDCOnBoot.default=Disabled
29422-
esp32s3_powerfeather.menu.CDCOnBoot.default.build.cdc_on_boot=0
2942329422
esp32s3_powerfeather.menu.CDCOnBoot.cdc=Enabled
2942429423
esp32s3_powerfeather.menu.CDCOnBoot.cdc.build.cdc_on_boot=1
29424+
esp32s3_powerfeather.menu.CDCOnBoot.default=Disabled
29425+
esp32s3_powerfeather.menu.CDCOnBoot.default.build.cdc_on_boot=0
2942529426

2942629427
esp32s3_powerfeather.menu.MSCOnBoot.default=Disabled
2942729428
esp32s3_powerfeather.menu.MSCOnBoot.default.build.msc_on_boot=0
@@ -29440,39 +29441,21 @@ esp32s3_powerfeather.menu.UploadMode.cdc=USB-OTG CDC (TinyUSB)
2944029441
esp32s3_powerfeather.menu.UploadMode.cdc.upload.use_1200bps_touch=true
2944129442
esp32s3_powerfeather.menu.UploadMode.cdc.upload.wait_for_upload_port=true
2944229443

29443-
esp32s3_powerfeather.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
29444-
esp32s3_powerfeather.menu.PartitionScheme.default.build.partitions=default
29445-
esp32s3_powerfeather.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
29446-
esp32s3_powerfeather.menu.PartitionScheme.defaultffat.build.partitions=default_ffat
2944729444
esp32s3_powerfeather.menu.PartitionScheme.default_8MB=8M with spiffs (3MB APP/1.5MB SPIFFS)
2944829445
esp32s3_powerfeather.menu.PartitionScheme.default_8MB.build.partitions=default_8MB
2944929446
esp32s3_powerfeather.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336
29450-
esp32s3_powerfeather.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS)
29451-
esp32s3_powerfeather.menu.PartitionScheme.minimal.build.partitions=minimal
29452-
esp32s3_powerfeather.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS)
29453-
esp32s3_powerfeather.menu.PartitionScheme.no_ota.build.partitions=no_ota
29454-
esp32s3_powerfeather.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
29455-
esp32s3_powerfeather.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS)
29456-
esp32s3_powerfeather.menu.PartitionScheme.noota_3g.build.partitions=noota_3g
29457-
esp32s3_powerfeather.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576
29458-
esp32s3_powerfeather.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS)
29459-
esp32s3_powerfeather.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat
29460-
esp32s3_powerfeather.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152
29461-
esp32s3_powerfeather.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS)
29462-
esp32s3_powerfeather.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat
29463-
esp32s3_powerfeather.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576
29464-
esp32s3_powerfeather.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
29465-
esp32s3_powerfeather.menu.PartitionScheme.huge_app.build.partitions=huge_app
29466-
esp32s3_powerfeather.menu.PartitionScheme.huge_app.upload.maximum_size=3145728
29467-
esp32s3_powerfeather.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
29468-
esp32s3_powerfeather.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
29469-
esp32s3_powerfeather.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
29447+
esp32s3_powerfeather.menu.PartitionScheme.default_ffat_8MB=8M with ffat (3MB APP/1.5MB FATFS)
29448+
esp32s3_powerfeather.menu.PartitionScheme.default_ffat_8MB.build.partitions=default_ffat_8MB
29449+
esp32s3_powerfeather.menu.PartitionScheme.default_ffat_8MB.upload.maximum_size=3342336
29450+
esp32s3_powerfeather.menu.PartitionScheme.large_spiffs_8MB=Large SPIFFS (1.2MB APP/5.3MB SPIFFS)
29451+
esp32s3_powerfeather.menu.PartitionScheme.large_spiffs_8MB.build.partitions=large_spiffs_8MB
29452+
esp32s3_powerfeather.menu.PartitionScheme.large_spiffs_8MB.upload.maximum_size=1310720
29453+
esp32s3_powerfeather.menu.PartitionScheme.large_ffat_8MB=Large FFAT (1.2MB APP/5.3MB FATFS)
29454+
esp32s3_powerfeather.menu.PartitionScheme.large_ffat_8MB.build.partitions=large_ffat_8MB
29455+
esp32s3_powerfeather.menu.PartitionScheme.large_ffat_8MB.upload.maximum_size=1310720
2947029456
esp32s3_powerfeather.menu.PartitionScheme.max_app_8MB=Maximum APP (7.9MB APP No OTA/No FS)
2947129457
esp32s3_powerfeather.menu.PartitionScheme.max_app_8MB.build.partitions=max_app_8MB
2947229458
esp32s3_powerfeather.menu.PartitionScheme.max_app_8MB.upload.maximum_size=8257536
29473-
esp32s3_powerfeather.menu.PartitionScheme.rainmaker=RainMaker
29474-
esp32s3_powerfeather.menu.PartitionScheme.rainmaker.build.partitions=rainmaker
29475-
esp32s3_powerfeather.menu.PartitionScheme.rainmaker.upload.maximum_size=3145728
2947629459

2947729460
esp32s3_powerfeather.menu.CPUFreq.240=240MHz (WiFi)
2947829461
esp32s3_powerfeather.menu.CPUFreq.240.build.f_cpu=240000000L

cores/esp32/Esp.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ unsigned long long operator"" _GB(unsigned long long x)
131131

132132
EspClass ESP;
133133

134-
void EspClass::deepSleep(uint32_t time_us)
134+
void EspClass::deepSleep(uint64_t time_us)
135135
{
136136
esp_deep_sleep(time_us);
137137
}

cores/esp32/Esp.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ class EspClass
8686
const char * getSdkVersion(); //version of ESP-IDF
8787
const char * getCoreVersion();//version of this core
8888

89-
void deepSleep(uint32_t time_us);
89+
void deepSleep(uint64_t time_us);
9090

9191
uint32_t getFlashChipSize();
9292
uint32_t getFlashChipSpeed();

cores/esp32/Tone.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ void noTone(uint8_t pin){
9595
.frequency = 0, // Ignored
9696
.duration = 0, // Ignored
9797
};
98+
xQueueReset(_tone_queue); // clear queue
9899
xQueueSend(_tone_queue, &tone_msg, portMAX_DELAY);
99100
}
100101
}

cores/esp32/USBCDC.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ void tud_cdc_tx_complete_cb(uint8_t itf){
7979

8080
static void ARDUINO_ISR_ATTR cdc0_write_char(char c){
8181
if(devices[0] != NULL){
82-
devices[0]->write(c);
82+
tud_cdc_n_write_char(0, c);
8383
}
8484
}
8585

cores/esp32/WString.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -677,7 +677,10 @@ int String::lastIndexOf(char ch, unsigned int fromIndex) const {
677677
wbuffer()[fromIndex + 1] = tempchar;
678678
if(temp == NULL)
679679
return -1;
680-
return temp - buffer();
680+
const int rv = temp - buffer();
681+
if(rv >= len())
682+
return -1;
683+
return rv;
681684
}
682685

683686
int String::lastIndexOf(const String &s2) const {

cores/esp32/esp32-hal-gpio.c

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,14 +104,14 @@ extern void ARDUINO_ISR_ATTR __pinMode(uint8_t pin, uint8_t mode)
104104
#endif
105105

106106
if (pin >= SOC_GPIO_PIN_COUNT) {
107-
log_e("Invalid pin selected");
107+
log_e("Invalid IO %i selected", pin);
108108
return;
109109
}
110110

111111
if(perimanGetPinBus(pin, ESP32_BUS_TYPE_GPIO) == NULL){
112112
perimanSetBusDeinit(ESP32_BUS_TYPE_GPIO, gpioDetachBus);
113113
if(!perimanClearPinBus(pin)){
114-
log_e("Deinit of previous bus failed");
114+
log_e("Deinit of previous bus from IO %i failed", pin);
115115
return;
116116
}
117117
}
@@ -140,7 +140,7 @@ extern void ARDUINO_ISR_ATTR __pinMode(uint8_t pin, uint8_t mode)
140140
}
141141
if(gpio_config(&conf) != ESP_OK)
142142
{
143-
log_e("GPIO config failed");
143+
log_e("IO %i config failed", pin);
144144
return;
145145
}
146146
if(perimanGetPinBus(pin, ESP32_BUS_TYPE_GPIO) == NULL){
@@ -164,7 +164,7 @@ extern void ARDUINO_ISR_ATTR __digitalWrite(uint8_t pin, uint8_t val)
164164
if(perimanGetPinBus(pin, ESP32_BUS_TYPE_GPIO) != NULL){
165165
gpio_set_level((gpio_num_t)pin, val);
166166
} else {
167-
log_e("Pin is not set as GPIO.");
167+
log_e("IO %i is not set as GPIO.", pin);
168168
}
169169
}
170170

@@ -174,7 +174,7 @@ extern int ARDUINO_ISR_ATTR __digitalRead(uint8_t pin)
174174
return gpio_get_level((gpio_num_t)pin);
175175
}
176176
else {
177-
log_e("Pin is not set as GPIO.");
177+
log_e("IO %i is not set as GPIO.", pin);
178178
return 0;
179179
}
180180
}
@@ -204,7 +204,7 @@ extern void __attachInterruptFunctionalArg(uint8_t pin, voidFuncPtrArg userFunc,
204204
interrupt_initialized = (err == ESP_OK) || (err == ESP_ERR_INVALID_STATE);
205205
}
206206
if(!interrupt_initialized) {
207-
log_e("GPIO ISR Service Failed To Start");
207+
log_e("IO %i ISR Service Failed To Start", pin);
208208
return;
209209
}
210210

@@ -256,6 +256,14 @@ extern void __detachInterrupt(uint8_t pin)
256256
gpio_set_intr_type((gpio_num_t)pin, GPIO_INTR_DISABLE);
257257
}
258258

259+
extern void enableInterrupt(uint8_t pin) {
260+
gpio_intr_enable((gpio_num_t)pin);
261+
}
262+
263+
extern void disableInterrupt(uint8_t pin) {
264+
gpio_intr_disable((gpio_num_t)pin);
265+
}
266+
259267

260268
extern void pinMode(uint8_t pin, uint8_t mode) __attribute__ ((weak, alias("__pinMode")));
261269
extern void digitalWrite(uint8_t pin, uint8_t val) __attribute__ ((weak, alias("__digitalWrite")));

cores/esp32/esp32-hal-gpio.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ int digitalRead(uint8_t pin);
7878
void attachInterrupt(uint8_t pin, void (*)(void), int mode);
7979
void attachInterruptArg(uint8_t pin, void (*)(void*), void * arg, int mode);
8080
void detachInterrupt(uint8_t pin);
81+
void enableInterrupt(uint8_t pin);
82+
void disableInterrupt(uint8_t pin);
8183

8284
int8_t digitalPinToTouchChannel(uint8_t pin);
8385
int8_t digitalPinToAnalogChannel(uint8_t pin);

cores/esp32/esp32-hal-ledc.c

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,11 @@ static bool ledcDetachBus(void * bus){
5656
return true;
5757
}
5858

59-
bool ledcAttach(uint8_t pin, uint32_t freq, uint8_t resolution)
59+
bool ledcAttachChannel(uint8_t pin, uint32_t freq, uint8_t resolution, uint8_t channel)
6060
{
61-
int free_channel = ~ledc_handle.used_channels & (ledc_handle.used_channels+1);
62-
if (free_channel == 0 || resolution > LEDC_MAX_BIT_WIDTH)
61+
if (channel >= LEDC_CHANNELS || resolution > LEDC_MAX_BIT_WIDTH)
6362
{
64-
log_e("No more LEDC channels available! (maximum %u) or bit width too big (maximum %u)", LEDC_CHANNELS, LEDC_MAX_BIT_WIDTH);
63+
log_e("Channel %u is not available! (maximum %u) or bit width too big (maximum %u)", channel, LEDC_CHANNELS, LEDC_MAX_BIT_WIDTH);
6564
return false;
6665
}
6766

@@ -71,7 +70,6 @@ bool ledcAttach(uint8_t pin, uint32_t freq, uint8_t resolution)
7170
return false;
7271
}
7372

74-
int channel = log2(free_channel & -free_channel);
7573
uint8_t group=(channel/8), timer=((channel/2)%4);
7674

7775
ledc_timer_config_t ledc_timer = {
@@ -115,8 +113,22 @@ bool ledcAttach(uint8_t pin, uint32_t freq, uint8_t resolution)
115113
return false;
116114
}
117115

116+
log_i("LEDC attached to pin %u (channel %u, resolution %u)", pin, channel, resolution);
118117
return true;
119118
}
119+
120+
bool ledcAttach(uint8_t pin, uint32_t freq, uint8_t resolution)
121+
{
122+
uint8_t free_channel = ~ledc_handle.used_channels & (ledc_handle.used_channels+1);
123+
if (free_channel == 0 || resolution > LEDC_MAX_BIT_WIDTH){
124+
log_e("No more LEDC channels available! (maximum %u) or bit width too big (maximum %u)", LEDC_CHANNELS, LEDC_MAX_BIT_WIDTH);
125+
return false;
126+
}
127+
int channel = log2(free_channel & -free_channel);
128+
129+
return ledcAttachChannel(pin, freq, resolution, channel);
130+
}
131+
120132
bool ledcWrite(uint8_t pin, uint32_t duty)
121133
{
122134
ledc_channel_handle_t *bus = (ledc_channel_handle_t*)perimanGetPinBus(pin, ESP32_BUS_TYPE_LEDC);

cores/esp32/esp32-hal-ledc.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ typedef struct {
4545

4646
//channel 0-15 resolution 1-16bits freq limits depend on resolution
4747
bool ledcAttach(uint8_t pin, uint32_t freq, uint8_t resolution);
48+
bool ledcAttachChannel(uint8_t pin, uint32_t freq, uint8_t resolution, uint8_t channel);
4849
bool ledcWrite(uint8_t pin, uint32_t duty);
4950
uint32_t ledcWriteTone(uint8_t pin, uint32_t freq);
5051
uint32_t ledcWriteNote(uint8_t pin, note_t note, uint8_t octave);

docs/source/api/ledc.rst

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ ledcAttach
2727
**********
2828

2929
This function is used to setup LEDC pin with given frequency and resolution.
30+
LEDC channel will be selected automatically.
3031

3132
.. code-block:: arduino
3233
@@ -41,6 +42,25 @@ This function is used to setup LEDC pin with given frequency and resolution.
4142
This function will return ``true`` if configuration is successful.
4243
If ``false`` is returned, error occurs and LEDC channel was not configured.
4344

45+
ledcAttachChannel
46+
*****************
47+
48+
This function is used to setup LEDC pin with given frequency, resolution and channel.
49+
50+
.. code-block:: arduino
51+
52+
bool ledcAttachChannel(uint8_t pin, uint32_t freq, uint8_t resolution, uint8_t channel);
53+
54+
* ``pin`` select LEDC pin.
55+
* ``freq`` select frequency of pwm.
56+
* ``resolution`` select resolution for LEDC channel.
57+
* ``channel`` select LEDC channel.
58+
59+
* range is 1-14 bits (1-20 bits for ESP32).
60+
61+
This function will return ``true`` if configuration is successful.
62+
If ``false`` is returned, error occurs and LEDC channel was not configured.
63+
4464
ledcWrite
4565
*********
4666

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/*
2+
This Sketch demonstrates how to use the Hardware Serial peripheral to communicate over an RS485 bus.
3+
4+
Data received on the primary serial port is relayed to the bus acting as an RS485 interface and vice versa.
5+
6+
UART to RS485 translation hardware (e.g., MAX485, MAX33046E, ADM483) is assumed to be configured in half-duplex
7+
mode with collision detection as described in
8+
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/uart.html#circuit-a-collision-detection-circuit
9+
10+
To use the script open the Arduino serial monitor (or alternative serial monitor on the Arduino port). Then,
11+
using an RS485 tranciver, connect another serial monitor to the RS485 port. Entering data on one terminal
12+
should be displayed on the other terminal.
13+
*/
14+
#include "hal/uart_types.h"
15+
16+
#define RS485_RX_PIN 16
17+
#define RS485_TX_PIN 5
18+
#define RS485_RTS_PIN 4
19+
20+
#define RS485 Serial1
21+
22+
void setup() {
23+
Serial.begin(115200);
24+
while(!Serial) { delay(10); }
25+
26+
RS485.begin(9600, SERIAL_8N1, RS485_RX_PIN, RS485_TX_PIN);
27+
while(!RS485) { delay(10); }
28+
if(!RS485.setPins(-1, -1, -1, RS485_RTS_PIN)){
29+
Serial.print("Failed to set RS485 pins");
30+
}
31+
32+
// Certain versions of Arduino core don't define MODE_RS485_HALF_DUPLEX and so fail to compile.
33+
// By using UART_MODE_RS485_HALF_DUPLEX defined in hal/uart_types.h we work around this problem.
34+
// If using a newer IDF and Arduino core you can ommit including hal/uart_types.h and use MODE_RS485_HALF_DUPLEX
35+
// defined in esp32-hal-uart.h (included during other build steps) instead.
36+
if(!RS485.setMode(UART_MODE_RS485_HALF_DUPLEX)) {
37+
Serial.print("Failed to set RS485 mode");
38+
}
39+
}
40+
41+
void loop() {
42+
if (RS485.available()) {
43+
Serial.write(RS485.read());
44+
}
45+
if (Serial.available()) {
46+
RS485.write(Serial.read());
47+
}
48+
}

libraries/LittleFS/src/LittleFS.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,9 @@ bool LittleFSFS::begin(bool formatOnFail, const char * basePath, uint8_t maxOpen
8181
esp_vfs_littlefs_conf_t conf = {
8282
.base_path = basePath,
8383
.partition_label = partitionLabel_,
84+
.partition = NULL,
8485
.format_if_mount_failed = false,
86+
.read_only = false,
8587
.dont_mount = false,
8688
.grow_on_mount = true
8789
};

libraries/SD/src/sd_diskio.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ char sdWriteBytes(uint8_t pdrv, const char* buffer, char token)
233233
ardu_sdcard_t * card = s_cards[pdrv];
234234
unsigned short crc = (card->supports_crc)?CRC16(buffer, 512):0xFFFF;
235235
if (!sdWait(pdrv, 500)) {
236-
return false;
236+
return 0;
237237
}
238238

239239
card->spi->write(token);
@@ -424,7 +424,7 @@ unsigned long sdGetSectorsCount(uint8_t pdrv)
424424
{
425425
for (int f = 0; f < 3; f++) {
426426
if(!sdSelectCard(pdrv)) {
427-
return false;
427+
return 0;
428428
}
429429

430430
if (!sdCommand(pdrv, SEND_CSD, 0, NULL)) {
@@ -818,7 +818,7 @@ bool sdcard_mount(uint8_t pdrv, const char* path, uint8_t max_files, bool format
818818
}
819819
//FRESULT f_mkfs (const TCHAR* path, const MKFS_PARM* opt, void* work, UINT len);
820820
const MKFS_PARM opt = {(BYTE)FM_ANY, 0, 0, 0, 0};
821-
res = f_mkfs(drv, &opt, work, sizeof(work));
821+
res = f_mkfs(drv, &opt, work, sizeof(BYTE) * FF_MAX_SS);
822822
free(work);
823823
if (res != FR_OK) {
824824
log_e("f_mkfs failed: %s", fferr2str[res]);

libraries/WiFi/src/WiFiSTA.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,6 @@ bool WiFiSTAClass::disconnect(bool wifioff, bool eraseap)
373373
wifi_sta_config(&conf);
374374

375375
if(WiFi.getMode() & WIFI_MODE_STA){
376-
_useStaticIp = false;
377376
if(eraseap){
378377
if(esp_wifi_set_config((wifi_interface_t)ESP_IF_WIFI_STA, &conf)){
379378
log_e("clear config failed!");

0 commit comments

Comments
 (0)