Skip to content

[FEATURE] Basic implementation of Arduino's I2S library #5304

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 107 commits into from
Feb 4, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
107 commits
Select commit Hold shift + click to select a range
185b7ef
[FEATURE] Basic implementation of Arduino's I2S library
PilnyTomas Jun 18, 2021
2aabfb7
[MAINTENANCE] Added I2S to CMakeLists
PilnyTomas Jun 18, 2021
ca6f456
[MAINTENANCE] Joined task blocking (i2s event queue + kill command)
PilnyTomas Jun 18, 2021
32043fc
Merge branch 'espressif:master' into arduino_i2s
PilnyTomas Jun 18, 2021
a3309d4
[FEATURE] Added functions to set pins for both Input and Output
PilnyTomas Jun 21, 2021
3ad6d36
[FEATURE] Added new example demonstrating usage of callbacks
PilnyTomas Jun 24, 2021
12d926f
[MAINTENANCE] Minor changes
PilnyTomas Jun 28, 2021
d7eb3f3
[BACKUP] Work in progress on overlaying buffer (crashing)
PilnyTomas Jul 7, 2021
ad2c540
[BUGFIX] Fixed data type which was causing crashes
PilnyTomas Jul 7, 2021
baff65d
[BUGFIX] Fixed usage of new buffer in read function
PilnyTomas Jul 8, 2021
f366160
[BACKUP] Latest experiments with internal buffer
PilnyTomas Jul 23, 2021
370dd9f
Merge branch 'master' into arduino_i2s
PilnyTomas Jul 28, 2021
7a64d97
[BUGFIX] Fixed merging error in CMakeLists
PilnyTomas Jul 28, 2021
ee969b8
Improved quality of playback
PilnyTomas Jul 30, 2021
5b65b5d
Reimplemented input buffer as ring buffer
PilnyTomas Aug 3, 2021
f0ebf2b
Fixed kill semaphore error; added pin getters/setters
PilnyTomas Aug 5, 2021
a86a32b
Returning accidentally removed mutex give
PilnyTomas Aug 5, 2021
97102fe
Increased DMA buffer size for better performance
PilnyTomas Aug 5, 2021
83bb448
Split begin; changed pin setups and duplex/simplex setup
PilnyTomas Aug 13, 2021
5bb5090
Initial implementation of PDM support (untested)
PilnyTomas Aug 18, 2021
1073b60
Merge branch 'master' into arduino_i2s
PilnyTomas Aug 18, 2021
fbfe7c7
Added esp-dsp in CMakeLists.txt to compile in IDF
PilnyTomas Aug 20, 2021
9cb2d3d
Pre-release changes
PilnyTomas Sep 1, 2021
3bdb4e5
Extended SimpleTone example with DAC settings
PilnyTomas Sep 2, 2021
8c8d357
Removed ArduinoSound from CMakeLists
PilnyTomas Sep 2, 2021
adb66dc
[FEATURE] Basic implementation of Arduino's I2S library
PilnyTomas Jun 18, 2021
4577331
[MAINTENANCE] Added I2S to CMakeLists
PilnyTomas Jun 18, 2021
13a988c
[MAINTENANCE] Joined task blocking (i2s event queue + kill command)
PilnyTomas Jun 18, 2021
019490c
[FEATURE] Added functions to set pins for both Input and Output
PilnyTomas Jun 21, 2021
b18cb31
[FEATURE] Added new example demonstrating usage of callbacks
PilnyTomas Jun 24, 2021
d5a66dd
[MAINTENANCE] Minor changes
PilnyTomas Jun 28, 2021
64a3bb2
[BACKUP] Work in progress on overlaying buffer (crashing)
PilnyTomas Jul 7, 2021
992c80a
[BUGFIX] Fixed data type which was causing crashes
PilnyTomas Jul 7, 2021
64bd076
[BUGFIX] Fixed usage of new buffer in read function
PilnyTomas Jul 8, 2021
635dc5a
[BACKUP] Latest experiments with internal buffer
PilnyTomas Jul 23, 2021
d84057b
Improved quality of playback
PilnyTomas Jul 30, 2021
7da54b8
Reimplemented input buffer as ring buffer
PilnyTomas Aug 3, 2021
d5a3a05
Fixed kill semaphore error; added pin getters/setters
PilnyTomas Aug 5, 2021
f95fdb6
Returning accidentally removed mutex give
PilnyTomas Aug 5, 2021
8d99a4d
Increased DMA buffer size for better performance
PilnyTomas Aug 5, 2021
8519d67
Split begin; changed pin setups and duplex/simplex setup
PilnyTomas Aug 13, 2021
b0d45ce
Initial implementation of PDM support (untested)
PilnyTomas Aug 18, 2021
f45e5ba
Added esp-dsp in CMakeLists.txt to compile in IDF
PilnyTomas Aug 20, 2021
cb6da04
Pre-release changes
PilnyTomas Sep 1, 2021
cdf3a7c
Extended SimpleTone example with DAC settings
PilnyTomas Sep 2, 2021
991f54c
Removed ArduinoSound from CMakeLists
PilnyTomas Sep 2, 2021
2270f4c
Merging CMakeLists
PilnyTomas Sep 2, 2021
9fd0042
ESP32-S2 support
PilnyTomas Sep 2, 2021
7b77310
Removed excessive I2S from CMakeLists
PilnyTomas Sep 3, 2021
b3fdeec
Variable pin for ADC
PilnyTomas Sep 20, 2021
cde002f
Fixed data types for sample_rate inconsistent with IDF i2s driver
PilnyTomas Sep 21, 2021
14e2c7f
Fixed #ifdef to #if
PilnyTomas Sep 21, 2021
2645cf4
Fixed forgotten #ifdef to #if
PilnyTomas Sep 21, 2021
545d916
Merge branch 'master' into arduino_i2s
SuGlider Sep 21, 2021
80f49da
Updated Keywords
PilnyTomas Sep 22, 2021
139aef3
GPIO to ADC conversion methods wrapped in ADC support #if
PilnyTomas Sep 22, 2021
1d481e9
Added .skip.esp32c3 files untill C3 is supported
PilnyTomas Sep 22, 2021
ca0887b
All private functions have now underscore preceeding their name
PilnyTomas Sep 22, 2021
2dfab5f
Proposed wrapping functions for thread safety
PilnyTomas Sep 22, 2021
83d5094
Small fix: Added new function as class member
PilnyTomas Sep 23, 2021
28e6947
Applied nesting locks to all public functions
PilnyTomas Sep 23, 2021
a8727ad
Added aditional checks
PilnyTomas Sep 29, 2021
b1e1387
Added thread safety example
PilnyTomas Sep 30, 2021
39372eb
Thread safety example: Added 2 tasks to use more public functions
PilnyTomas Sep 30, 2021
23e65bd
Mono channel support
PilnyTomas Oct 8, 2021
7914492
FullDuplex changed + added example
PilnyTomas Oct 11, 2021
a65dad7
Merge branch 'master' into arduino_i2s
PilnyTomas Oct 13, 2021
f61e30d
Minor changes to FullDuplex example
PilnyTomas Oct 13, 2021
ba155a5
Added support for 8 bps
PilnyTomas Oct 13, 2021
4bc2633
Moved driver install before ringbuffer init
PilnyTomas Oct 13, 2021
ea037b1
BugFix - return was called before mutex release in read
PilnyTomas Oct 13, 2021
0b66402
Changed #if constants for PDM and ADC/DAC
PilnyTomas Oct 14, 2021
660656f
BugFix: forgotten init flag rise for PDM mode during init + #if const…
PilnyTomas Oct 14, 2021
9da5942
bugfix: Changes on the i2s_set_clk and DMA size
pedrominatel Oct 21, 2021
ef1a825
bugfix: Reverted the DMA buffer and fix on the i2s_set_clk for Philli…
pedrominatel Oct 22, 2021
a56be41
Split PDM modes to mono and stereo + renamed ADC mode
PilnyTomas Oct 25, 2021
3f9458c
Modified internal initialization flags and checks
PilnyTomas Oct 25, 2021
d7f6f6e
Merge branch 'master' into arduino_i2s
PilnyTomas Oct 26, 2021
5e4c7a4
Merge branch 'master' into arduino_i2s
PilnyTomas Nov 16, 2021
0e9d34e
Single-sample writes are now blocking (same as Arduino)
PilnyTomas Nov 19, 2021
0e478b9
removed kill sempahore for callback task deletion
PilnyTomas Nov 19, 2021
4cc4e26
added few more checks
PilnyTomas Nov 19, 2021
3dfa490
Removed Callback locks
PilnyTomas Nov 22, 2021
35ec3e4
Implemented peek
PilnyTomas Nov 22, 2021
90232a9
Merge branch 'master' into arduino_i2s
PilnyTomas Nov 22, 2021
5d786e7
Bugfix - check if task exists before deleteing
PilnyTomas Nov 23, 2021
39bfd11
Added draft for unit tests
PilnyTomas Nov 25, 2021
8af5b2a
Merge branch 'arduino_i2s' of github.com:PilnyTomas/arduino-esp32 int…
PilnyTomas Nov 25, 2021
262b18e
Basic UART comm for unit tests
PilnyTomas Nov 26, 2021
0afe17c
Work In Progress on I2S data transfer
PilnyTomas Dec 2, 2021
cd2c8c8
Work In Progress on data fix function
PilnyTomas Dec 8, 2021
395fb08
Fixed WDT
PilnyTomas Jan 4, 2022
6420fad
Removed unsupported examples and unit tests
PilnyTomas Jan 6, 2022
cedff7d
Initial code polish
PilnyTomas Jan 6, 2022
a73a1a6
fixes buffer size - no noise now
SuGlider Jan 6, 2022
29b05a3
Fix free bug for 24 and 32 bps; add warning to unsupported modes
PilnyTomas Jan 6, 2022
5b98d71
Merge branch 'master' into arduino_i2s
PilnyTomas Jan 6, 2022
e1dc00e
Initial documentation of I2S lib
PilnyTomas Jan 18, 2022
e883358
Modifications to I2S doc
PilnyTomas Jan 19, 2022
d02f392
Updates and small fixes - slave mode, pins,...
PilnyTomas Jan 19, 2022
459ed79
Structure review and syntax fixes
pedrominatel Feb 1, 2022
28d6871
Merge branch 'master' into arduino_i2s
pedrominatel Feb 1, 2022
6591f5b
Fix replace() failing (#6224)
s-hadinger Feb 3, 2022
1046f59
Upload to the component registry (#6203)
magicarm22 Feb 3, 2022
bb4d902
add feather esp32 v2 and qtpy c3 board def (#6223)
ladyada Feb 3, 2022
9b066ea
Added dual antenna for WiFi (based on the ESP32-WROOM-DA module) (#6226)
pedrominatel Feb 3, 2022
5a13725
Merge branch 'espressif:master' into arduino_i2s
PilnyTomas Feb 4, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .github/workflows/upload-idf-component.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Push components to https://components.espressif.com
on:
push:
tags:
- v*
jobs:
upload_components:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: "recursive"

- name: Upload components to the component registry
uses: espressif/github-actions/upload_components@master
with:
name: arduino-esp32
namespace: espressif
api_token: ${{ secrets.IDF_COMPONENT_API_TOKEN }}
5 changes: 4 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ set(LIBRARY_SRCS
libraries/HTTPClient/src/HTTPClient.cpp
libraries/HTTPUpdate/src/HTTPUpdate.cpp
libraries/LittleFS/src/LittleFS.cpp
libraries/I2S/src/I2S.cpp
libraries/NetBIOS/src/NetBIOS.cpp
libraries/Preferences/src/Preferences.cpp
libraries/RainMaker/src/RMaker.cpp
Expand Down Expand Up @@ -162,7 +163,6 @@ set(BLE_SRCS
libraries/BLE/src/GeneralUtils.cpp
)


set(includedirs
variants/${IDF_TARGET}/
cores/esp32/
Expand All @@ -179,6 +179,7 @@ set(includedirs
libraries/HTTPClient/src
libraries/HTTPUpdate/src
libraries/LittleFS/src
libraries/I2S/src
libraries/NetBIOS/src
libraries/Preferences/src
libraries/RainMaker/src
Expand Down Expand Up @@ -234,6 +235,8 @@ function(maybe_add_component component_name)
endif()
endfunction()

maybe_add_component(esp-dsp)

if(IDF_TARGET MATCHES "esp32" AND CONFIG_ESP_RMAKER_TASK_STACK)
maybe_add_component(esp_rainmaker)
maybe_add_component(qrcode)
Expand Down
278 changes: 278 additions & 0 deletions boards.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5088,6 +5088,284 @@ adafruit_qtpy_esp32s2.menu.DebugLevel.debug.build.code_debug=4
adafruit_qtpy_esp32s2.menu.DebugLevel.verbose=Verbose
adafruit_qtpy_esp32s2.menu.DebugLevel.verbose.build.code_debug=5

##############################################################

adafruit_qtpy_esp32c3.name=Adafruit QT Py ESP32-C3
adafruit_qtpy_esp32c3.vid.0=0x303a
adafruit_qtpy_esp32c3.pid.0=0x1001

adafruit_qtpy_esp32c3.upload.tool=esptool_py
adafruit_qtpy_esp32c3.upload.maximum_size=1310720
adafruit_qtpy_esp32c3.upload.maximum_data_size=327680
adafruit_qtpy_esp32c3.upload.flags=
adafruit_qtpy_esp32c3.upload.extra_flags=
adafruit_qtpy_esp32c3.upload.use_1200bps_touch=false
adafruit_qtpy_esp32c3.upload.wait_for_upload_port=false

adafruit_qtpy_esp32c3.serial.disableDTR=false
adafruit_qtpy_esp32c3.serial.disableRTS=false

adafruit_qtpy_esp32c3.build.tarch=riscv32
adafruit_qtpy_esp32c3.build.target=esp
adafruit_qtpy_esp32c3.build.mcu=esp32c3
adafruit_qtpy_esp32c3.build.core=esp32
adafruit_qtpy_esp32c3.build.variant=adafruit_qtpy_esp32c3
adafruit_qtpy_esp32c3.build.board=ADAFRUIT_QTPY_ESP32C3
adafruit_qtpy_esp32c3.build.bootloader_addr=0x0

adafruit_qtpy_esp32c3.build.cdc_on_boot=0
adafruit_qtpy_esp32c3.build.f_cpu=160000000L
adafruit_qtpy_esp32c3.build.flash_size=4MB
adafruit_qtpy_esp32c3.build.flash_freq=80m
adafruit_qtpy_esp32c3.build.flash_mode=dout
adafruit_qtpy_esp32c3.build.boot=dout
adafruit_qtpy_esp32c3.build.partitions=default
adafruit_qtpy_esp32c3.build.defines=

adafruit_qtpy_esp32c3.menu.CDCOnBoot.cdc=Enabled
adafruit_qtpy_esp32c3.menu.CDCOnBoot.cdc.build.cdc_on_boot=1
adafruit_qtpy_esp32c3.menu.CDCOnBoot.default=Disabled
adafruit_qtpy_esp32c3.menu.CDCOnBoot.default.build.cdc_on_boot=0

adafruit_qtpy_esp32c3.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
adafruit_qtpy_esp32c3.menu.PartitionScheme.default.build.partitions=default
adafruit_qtpy_esp32c3.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
adafruit_qtpy_esp32c3.menu.PartitionScheme.defaultffat.build.partitions=default_ffat
adafruit_qtpy_esp32c3.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS)
adafruit_qtpy_esp32c3.menu.PartitionScheme.minimal.build.partitions=minimal
adafruit_qtpy_esp32c3.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS)
adafruit_qtpy_esp32c3.menu.PartitionScheme.no_ota.build.partitions=no_ota
adafruit_qtpy_esp32c3.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
adafruit_qtpy_esp32c3.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS)
adafruit_qtpy_esp32c3.menu.PartitionScheme.noota_3g.build.partitions=noota_3g
adafruit_qtpy_esp32c3.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576
adafruit_qtpy_esp32c3.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS)
adafruit_qtpy_esp32c3.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat
adafruit_qtpy_esp32c3.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152
adafruit_qtpy_esp32c3.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS)
adafruit_qtpy_esp32c3.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat
adafruit_qtpy_esp32c3.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576
adafruit_qtpy_esp32c3.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
adafruit_qtpy_esp32c3.menu.PartitionScheme.huge_app.build.partitions=huge_app
adafruit_qtpy_esp32c3.menu.PartitionScheme.huge_app.upload.maximum_size=3145728
adafruit_qtpy_esp32c3.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
adafruit_qtpy_esp32c3.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
adafruit_qtpy_esp32c3.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080

adafruit_qtpy_esp32c3.menu.CPUFreq.160=160MHz (WiFi)
adafruit_qtpy_esp32c3.menu.CPUFreq.160.build.f_cpu=160000000L
adafruit_qtpy_esp32c3.menu.CPUFreq.80=80MHz (WiFi)
adafruit_qtpy_esp32c3.menu.CPUFreq.80.build.f_cpu=80000000L
adafruit_qtpy_esp32c3.menu.CPUFreq.40=40MHz
adafruit_qtpy_esp32c3.menu.CPUFreq.40.build.f_cpu=40000000L
adafruit_qtpy_esp32c3.menu.CPUFreq.20=20MHz
adafruit_qtpy_esp32c3.menu.CPUFreq.20.build.f_cpu=20000000L
adafruit_qtpy_esp32c3.menu.CPUFreq.10=10MHz
adafruit_qtpy_esp32c3.menu.CPUFreq.10.build.f_cpu=10000000L

adafruit_qtpy_esp32c3.menu.FlashMode.dout=DOUT
adafruit_qtpy_esp32c3.menu.FlashMode.dout.build.flash_mode=dout
adafruit_qtpy_esp32c3.menu.FlashMode.dout.build.boot=dout
adafruit_qtpy_esp32c3.menu.FlashMode.qio=QIO
adafruit_qtpy_esp32c3.menu.FlashMode.qio.build.flash_mode=dio
adafruit_qtpy_esp32c3.menu.FlashMode.qio.build.boot=qio
adafruit_qtpy_esp32c3.menu.FlashMode.dio=DIO
adafruit_qtpy_esp32c3.menu.FlashMode.dio.build.flash_mode=dio
adafruit_qtpy_esp32c3.menu.FlashMode.dio.build.boot=dio
adafruit_qtpy_esp32c3.menu.FlashMode.qout=QOUT
adafruit_qtpy_esp32c3.menu.FlashMode.qout.build.flash_mode=dout
adafruit_qtpy_esp32c3.menu.FlashMode.qout.build.boot=qout

adafruit_qtpy_esp32c3.menu.FlashFreq.80=80MHz
adafruit_qtpy_esp32c3.menu.FlashFreq.80.build.flash_freq=80m
adafruit_qtpy_esp32c3.menu.FlashFreq.40=40MHz
adafruit_qtpy_esp32c3.menu.FlashFreq.40.build.flash_freq=40m

adafruit_qtpy_esp32c3.menu.FlashSize.4M=4MB (32Mb)
adafruit_qtpy_esp32c3.menu.FlashSize.4M.build.flash_size=4MB
adafruit_qtpy_esp32c3.menu.FlashSize.2M=2MB (16Mb)
adafruit_qtpy_esp32c3.menu.FlashSize.2M.build.flash_size=2MB
adafruit_qtpy_esp32c3.menu.FlashSize.2M.build.partitions=minimal

adafruit_qtpy_esp32c3.menu.UploadSpeed.115200=115200
adafruit_qtpy_esp32c3.menu.UploadSpeed.115200.upload.speed=115200
adafruit_qtpy_esp32c3.menu.UploadSpeed.921600=921600
adafruit_qtpy_esp32c3.menu.UploadSpeed.921600.upload.speed=921600
adafruit_qtpy_esp32c3.menu.UploadSpeed.921600=921600
adafruit_qtpy_esp32c3.menu.UploadSpeed.921600.upload.speed=921600
adafruit_qtpy_esp32c3.menu.UploadSpeed.115200=115200
adafruit_qtpy_esp32c3.menu.UploadSpeed.115200.upload.speed=115200
adafruit_qtpy_esp32c3.menu.UploadSpeed.256000.windows=256000
adafruit_qtpy_esp32c3.menu.UploadSpeed.256000.upload.speed=256000
adafruit_qtpy_esp32c3.menu.UploadSpeed.230400.windows.upload.speed=256000
adafruit_qtpy_esp32c3.menu.UploadSpeed.230400=230400
adafruit_qtpy_esp32c3.menu.UploadSpeed.230400.upload.speed=230400
adafruit_qtpy_esp32c3.menu.UploadSpeed.460800.linux=460800
adafruit_qtpy_esp32c3.menu.UploadSpeed.460800.macosx=460800
adafruit_qtpy_esp32c3.menu.UploadSpeed.460800.upload.speed=460800
adafruit_qtpy_esp32c3.menu.UploadSpeed.512000.windows=512000
adafruit_qtpy_esp32c3.menu.UploadSpeed.512000.upload.speed=512000

adafruit_qtpy_esp32c3.menu.DebugLevel.none=None
adafruit_qtpy_esp32c3.menu.DebugLevel.none.build.code_debug=0
adafruit_qtpy_esp32c3.menu.DebugLevel.error=Error
adafruit_qtpy_esp32c3.menu.DebugLevel.error.build.code_debug=1
adafruit_qtpy_esp32c3.menu.DebugLevel.warn=Warn
adafruit_qtpy_esp32c3.menu.DebugLevel.warn.build.code_debug=2
adafruit_qtpy_esp32c3.menu.DebugLevel.info=Info
adafruit_qtpy_esp32c3.menu.DebugLevel.info.build.code_debug=3
adafruit_qtpy_esp32c3.menu.DebugLevel.debug=Debug
adafruit_qtpy_esp32c3.menu.DebugLevel.debug.build.code_debug=4
adafruit_qtpy_esp32c3.menu.DebugLevel.verbose=Verbose
adafruit_qtpy_esp32c3.menu.DebugLevel.verbose.build.code_debug=5


adafruit_qtpy_esp32_pico.name=Adafruit QT Py ESP32 Pico

adafruit_qtpy_esp32_pico.upload.tool=esptool_py
adafruit_qtpy_esp32_pico.upload.maximum_size=1310720
adafruit_qtpy_esp32_pico.upload.maximum_data_size=327680
adafruit_qtpy_esp32_pico.upload.flags=
adafruit_qtpy_esp32_pico.upload.extra_flags=

adafruit_qtpy_esp32_pico.serial.disableDTR=true
adafruit_qtpy_esp32_pico.serial.disableRTS=true

adafruit_qtpy_esp32_pico.build.tarch=xtensa
adafruit_qtpy_esp32_pico.build.bootloader_addr=0x1000
adafruit_qtpy_esp32_pico.build.target=esp32
adafruit_qtpy_esp32_pico.build.mcu=esp32
adafruit_qtpy_esp32_pico.build.core=esp32
adafruit_qtpy_esp32_pico.build.variant=adafruit_qtpy_esp32
adafruit_qtpy_esp32_pico.build.board=ADAFRUIT_QTPY_ESP32_PICO

adafruit_qtpy_esp32_pico.build.f_cpu=240000000L
adafruit_qtpy_esp32_pico.build.flash_size=8MB
adafruit_qtpy_esp32_pico.build.flash_freq=80m
adafruit_qtpy_esp32_pico.build.flash_mode=dio
adafruit_qtpy_esp32_pico.build.boot=dio
adafruit_qtpy_esp32_pico.build.partitions=default
adafruit_qtpy_esp32_pico.build.defines=

adafruit_qtpy_esp32_pico.menu.PartitionScheme.default=Default
adafruit_qtpy_esp32_pico.menu.PartitionScheme.default.build.partitions=default
adafruit_qtpy_esp32_pico.menu.PartitionScheme.no_ota=No OTA (Large APP)
adafruit_qtpy_esp32_pico.menu.PartitionScheme.no_ota.build.partitions=no_ota
adafruit_qtpy_esp32_pico.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
adafruit_qtpy_esp32_pico.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (Large APPS with OTA)
adafruit_qtpy_esp32_pico.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
adafruit_qtpy_esp32_pico.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080

adafruit_qtpy_esp32_pico.menu.UploadSpeed.921600=921600
adafruit_qtpy_esp32_pico.menu.UploadSpeed.921600.upload.speed=921600
adafruit_qtpy_esp32_pico.menu.UploadSpeed.115200=115200
adafruit_qtpy_esp32_pico.menu.UploadSpeed.115200.upload.speed=115200
adafruit_qtpy_esp32_pico.menu.UploadSpeed.256000.windows=256000
adafruit_qtpy_esp32_pico.menu.UploadSpeed.256000.upload.speed=256000
adafruit_qtpy_esp32_pico.menu.UploadSpeed.230400.windows.upload.speed=256000
adafruit_qtpy_esp32_pico.menu.UploadSpeed.230400=230400
adafruit_qtpy_esp32_pico.menu.UploadSpeed.230400.upload.speed=230400
adafruit_qtpy_esp32_pico.menu.UploadSpeed.460800.linux=460800
adafruit_qtpy_esp32_pico.menu.UploadSpeed.460800.macosx=460800
adafruit_qtpy_esp32_pico.menu.UploadSpeed.460800.upload.speed=460800
adafruit_qtpy_esp32_pico.menu.UploadSpeed.512000.windows=512000
adafruit_qtpy_esp32_pico.menu.UploadSpeed.512000.upload.speed=512000

adafruit_qtpy_esp32_pico.menu.PSRAM.enabled=Enabled
adafruit_qtpy_esp32_pico.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue -mfix-esp32-psram-cache-strategy=memw
adafruit_qtpy_esp32_pico.menu.PSRAM.enabled.build.extra_libs=
adafruit_qtpy_esp32_pico.menu.PSRAM.disabled=Disabled
adafruit_qtpy_esp32_pico.menu.PSRAM.disabled.build.defines=
adafruit_qtpy_esp32_pico.menu.PSRAM.disabled.build.extra_libs=

adafruit_qtpy_esp32_pico.menu.DebugLevel.none=None
adafruit_qtpy_esp32_pico.menu.DebugLevel.none.build.code_debug=0
adafruit_qtpy_esp32_pico.menu.DebugLevel.error=Error
adafruit_qtpy_esp32_pico.menu.DebugLevel.error.build.code_debug=1
adafruit_qtpy_esp32_pico.menu.DebugLevel.warn=Warn
adafruit_qtpy_esp32_pico.menu.DebugLevel.warn.build.code_debug=2
adafruit_qtpy_esp32_pico.menu.DebugLevel.info=Info
adafruit_qtpy_esp32_pico.menu.DebugLevel.info.build.code_debug=3
adafruit_qtpy_esp32_pico.menu.DebugLevel.debug=Debug
adafruit_qtpy_esp32_pico.menu.DebugLevel.debug.build.code_debug=4
adafruit_qtpy_esp32_pico.menu.DebugLevel.verbose=Verbose
adafruit_qtpy_esp32_pico.menu.DebugLevel.verbose.build.code_debug=5



adafruit_feather_esp32_v2.name=Adafruit Feather ESP32 V2

adafruit_feather_esp32_v2.upload.tool=esptool_py
adafruit_feather_esp32_v2.upload.maximum_size=1310720
adafruit_feather_esp32_v2.upload.maximum_data_size=327680
adafruit_feather_esp32_v2.upload.flags=
adafruit_feather_esp32_v2.upload.extra_flags=

adafruit_feather_esp32_v2.serial.disableDTR=true
adafruit_feather_esp32_v2.serial.disableRTS=true

adafruit_feather_esp32_v2.build.tarch=xtensa
adafruit_feather_esp32_v2.build.bootloader_addr=0x1000
adafruit_feather_esp32_v2.build.target=esp32
adafruit_feather_esp32_v2.build.mcu=esp32
adafruit_feather_esp32_v2.build.core=esp32
adafruit_feather_esp32_v2.build.variant=adafruit_feather_esp32_v2
adafruit_feather_esp32_v2.build.board=ADAFRUIT_FEATHER_ESP32_V2

adafruit_feather_esp32_v2.build.f_cpu=240000000L
adafruit_feather_esp32_v2.build.flash_size=8MB
adafruit_feather_esp32_v2.build.flash_freq=80m
adafruit_feather_esp32_v2.build.flash_mode=dio
adafruit_feather_esp32_v2.build.boot=dio
adafruit_feather_esp32_v2.build.partitions=default
adafruit_feather_esp32_v2.build.defines=

adafruit_feather_esp32_v2.menu.PartitionScheme.default=Default
adafruit_feather_esp32_v2.menu.PartitionScheme.default.build.partitions=default
adafruit_feather_esp32_v2.menu.PartitionScheme.no_ota=No OTA (Large APP)
adafruit_feather_esp32_v2.menu.PartitionScheme.no_ota.build.partitions=no_ota
adafruit_feather_esp32_v2.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
adafruit_feather_esp32_v2.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (Large APPS with OTA)
adafruit_feather_esp32_v2.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
adafruit_feather_esp32_v2.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080

adafruit_feather_esp32_v2.menu.UploadSpeed.921600=921600
adafruit_feather_esp32_v2.menu.UploadSpeed.921600.upload.speed=921600
adafruit_feather_esp32_v2.menu.UploadSpeed.115200=115200
adafruit_feather_esp32_v2.menu.UploadSpeed.115200.upload.speed=115200
adafruit_feather_esp32_v2.menu.UploadSpeed.256000.windows=256000
adafruit_feather_esp32_v2.menu.UploadSpeed.256000.upload.speed=256000
adafruit_feather_esp32_v2.menu.UploadSpeed.230400.windows.upload.speed=256000
adafruit_feather_esp32_v2.menu.UploadSpeed.230400=230400
adafruit_feather_esp32_v2.menu.UploadSpeed.230400.upload.speed=230400
adafruit_feather_esp32_v2.menu.UploadSpeed.460800.linux=460800
adafruit_feather_esp32_v2.menu.UploadSpeed.460800.macosx=460800
adafruit_feather_esp32_v2.menu.UploadSpeed.460800.upload.speed=460800
adafruit_feather_esp32_v2.menu.UploadSpeed.512000.windows=512000
adafruit_feather_esp32_v2.menu.UploadSpeed.512000.upload.speed=512000

adafruit_feather_esp32_v2.menu.PSRAM.enabled=Enabled
adafruit_feather_esp32_v2.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue -mfix-esp32-psram-cache-strategy=memw
adafruit_feather_esp32_v2.menu.PSRAM.enabled.build.extra_libs=
adafruit_feather_esp32_v2.menu.PSRAM.disabled=Disabled
adafruit_feather_esp32_v2.menu.PSRAM.disabled.build.defines=
adafruit_feather_esp32_v2.menu.PSRAM.disabled.build.extra_libs=

adafruit_feather_esp32_v2.menu.DebugLevel.none=None
adafruit_feather_esp32_v2.menu.DebugLevel.none.build.code_debug=0
adafruit_feather_esp32_v2.menu.DebugLevel.error=Error
adafruit_feather_esp32_v2.menu.DebugLevel.error.build.code_debug=1
adafruit_feather_esp32_v2.menu.DebugLevel.warn=Warn
adafruit_feather_esp32_v2.menu.DebugLevel.warn.build.code_debug=2
adafruit_feather_esp32_v2.menu.DebugLevel.info=Info
adafruit_feather_esp32_v2.menu.DebugLevel.info.build.code_debug=3
adafruit_feather_esp32_v2.menu.DebugLevel.debug=Debug
adafruit_feather_esp32_v2.menu.DebugLevel.debug.build.code_debug=4
adafruit_feather_esp32_v2.menu.DebugLevel.verbose=Verbose
adafruit_feather_esp32_v2.menu.DebugLevel.verbose.build.code_debug=5



##############################################################

nodemcu-32s.name=NodeMCU-32S
Expand Down
3 changes: 2 additions & 1 deletion cores/esp32/WString.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -774,9 +774,10 @@ void String::replace(const String& find, const String& replace) {
}
if(size == len())
return;
if(size > capacity() && !changeBuffer(size))
if(size > capacity() && !changeBuffer(size)) {
log_w("String.Replace() Insufficient space to replace string");
return;
}
int index = len() - 1;
while(index >= 0 && (index = lastIndexOf(find, index)) >= 0) {
readFrom = wbuffer() + index + find.len();
Expand Down
Loading