Git Product home page Git Product logo

esp32-arduino-lib-builder's Introduction

ESP32 Arduino Lib Builder ESP32 Arduino Libs CI

This repository contains the scripts that produce the libraries included with esp32-arduino.

Tested on Ubuntu (32 and 64 bit), Raspberry Pi and MacOS.

Build on Ubuntu and Raspberry Pi

sudo apt-get install git wget curl libssl-dev libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache jq
sudo pip install --upgrade pip
git clone https://github.com/espressif/esp32-arduino-lib-builder
cd esp32-arduino-lib-builder
./build.sh

Using the User Interface

You can more easily build the libraries using the user interface found in the tools/config_editor/ folder. It is a Python script that allows you to select and edit the options for the libraries you want to build. The script has mouse support and can also be pre-configured using the same command line arguments as the build.sh script. For more information and troubleshooting, please refer to the UI README.

To use it, follow these steps:

  1. Make sure you have the required dependencies installed:
  • Python 3.9 or later
  • The Textual library
  • All the dependencies listed in the previous section
  1. Execute the script tools/config_editor/app.py from any folder. It will automatically detect the path to the root of the repository.

  2. Configure the compilation and ESP-IDF options as desired.

  3. Click on the "Compile Static Libraries" button to start the compilation process.

  4. The script will show the compilation output in a new screen. Note that the compilation process can take many hours, depending on the number of libraries selected and the options chosen.

  5. If the compilation is successful and the option to copy the libraries to the Arduino Core folder is enabled, it will already be available for use in the Arduino IDE. Otherwise, you can find the compiled libraries in the esp32-arduino-libs folder alongside this repository.

  • Note that the copy operation doesn't currently support the core downloaded from the Arduino IDE Boards Manager, only the manual installation from the arduino-esp32 repository.

Documentation

For more information about how to use the Library builder, please refer to this Documentation page

esp32-arduino-lib-builder's People

Contributors

atanisoft avatar celliesprojects avatar dabolus avatar jakeler avatar jason2866 avatar lbernstone avatar leres avatar lucasssvaz avatar me-no-dev avatar nomis avatar nuclearcat avatar p-r-o-c-h-y avatar paclema avatar rtrbt avatar sabado avatar sanketwadekar avatar sgryphon avatar suglider avatar vojtechbartoska avatar vortigont avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

esp32-arduino-lib-builder's Issues

Compilation error

I try to compiling esp32-arduino library following this guide:
https://github.com/espressif/arduino-esp32/blob/master/docs/lib_builder.md

I get this error:

/home/gianluca/esp32-arduino-lib-builder/components/arduino/libraries/WiFi/src/WiFiSTA.cpp: In member function 'IPAddress WiFiSTAClass::dnsIP(uint8_t)':
/home/gianluca/esp32-arduino-lib-builder/components/arduino/libraries/WiFi/src/WiFiSTA.cpp:491:37: error: conversion from 'const ip_addr_t {aka const ip_addr}' to non-scalar type 'ip_addr_t {aka ip_addr}' requested **
ip_addr_t dns_ip = dns_getserver(dns_no);
^
/home/gianluca/esp32-arduino-lib-builder/components/arduino/libraries/WiFi/src/ETH.cpp: In member function 'IPAddress ETHClass::dnsIP(uint8_t)':
/home/gianluca/esp32-arduino-lib-builder/components/arduino/libraries/WiFi/src/ETH.cpp:196:37: error: conversion from 'const ip_addr_t {aka const ip_addr}' to non-scalar type 'ip_addr_t {aka ip_addr}' requested**
ip_addr_t dns_ip = dns_getserver(dns_no);

Where is the problem?

Failing to building on Raspberry Pi due to missing ffi

I got the error below when running ./build.sh on Raspberry Pi. I was able to get around it by running sudo apt-get install libffi6 libffi-dev. Further, building the cryptography lib requires root access, so will need to run sudo ./build.sh.

I was able to build at the end. It would be nice to update the README so other people don't hit the same issue.

Downloading https://files.pythonhosted.org/packages/be/60/da377e1bed002716fb2d5d1d1cab720f298cb33ecff7bf7adea72788e4e4/cryptography-2.8.tar.gz (504kB)
|████████████████████████████████| 512kB 2.0MB/s
Installing build dependencies ... error
ERROR: Command errored out with exit status 1:
command: /usr/bin/python /usr/local/lib/python2.7/dist-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-UqPw9S/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple --extra-index-url https://www.piwheels.org/simple -- 'setuptools>=40.6.0' wheel 'cffi>=1.8,!=1.11.3; platform_python_implementation != '"'"'PyPy'"'"''
cwd: None
Complete output (142 lines):
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple, https://www.piwheels.org/simple
Collecting setuptools>=40.6.0
Downloading https://www.piwheels.org/simple/setuptools/setuptools-43.0.0-py2.py3-none-any.whl (583kB)
Collecting wheel
Downloading https://www.piwheels.org/simple/wheel/wheel-0.33.6-py2.py3-none-any.whl
Collecting cffi!=1.11.3,>=1.8
Downloading https://files.pythonhosted.org/packages/2d/bf/960e5a422db3ac1a5e612cb35ca436c3fc985ed4b7ed13a1b4879006f450/cffi-1.13.2.tar.gz (460kB)
Collecting pycparser
Downloading https://www.piwheels.org/simple/pycparser/pycparser-2.19-py2.py3-none-any.whl (111kB)
Building wheels for collected packages: cffi
Building wheel for cffi (setup.py): started
Building wheel for cffi (setup.py): finished with status 'error'
ERROR: Command errored out with exit status 1:
command: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-umc2wH/cffi/setup.py'"'"'; file='"'"'/tmp/pip-install-umc2wH/cffi/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-t0RVnb --python-tag cp27
cwd: /tmp/pip-install-umc2wH/cffi/
Complete output (56 lines):
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing libffi.pc' to the PKG_CONFIG_PATH environment variable No package 'libffi' found Package libffi was not found in the pkg-config search path. Perhaps you should add the directory containing libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing libffi.pc' to the PKG_CONFIG_PATH environment variable No package 'libffi' found Package libffi was not found in the pkg-config search path. Perhaps you should add the directory containing libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing libffi.pc' to the PKG_CONFIG_PATH environment variable No package 'libffi' found running bdist_wheel running build running build_py creating build creating build/lib.linux-armv7l-2.7 creating build/lib.linux-armv7l-2.7/cffi copying cffi/recompiler.py -> build/lib.linux-armv7l-2.7/cffi copying cffi/__init__.py -> build/lib.linux-armv7l-2.7/cffi copying cffi/lock.py -> build/lib.linux-armv7l-2.7/cffi copying cffi/error.py -> build/lib.linux-armv7l-2.7/cffi copying cffi/pkgconfig.py -> build/lib.linux-armv7l-2.7/cffi copying cffi/ffiplatform.py -> build/lib.linux-armv7l-2.7/cffi copying cffi/commontypes.py -> build/lib.linux-armv7l-2.7/cffi copying cffi/backend_ctypes.py -> build/lib.linux-armv7l-2.7/cffi copying cffi/vengine_cpy.py -> build/lib.linux-armv7l-2.7/cffi copying cffi/cffi_opcode.py -> build/lib.linux-armv7l-2.7/cffi copying cffi/model.py -> build/lib.linux-armv7l-2.7/cffi copying cffi/verifier.py -> build/lib.linux-armv7l-2.7/cffi copying cffi/vengine_gen.py -> build/lib.linux-armv7l-2.7/cffi copying cffi/api.py -> build/lib.linux-armv7l-2.7/cffi copying cffi/setuptools_ext.py -> build/lib.linux-armv7l-2.7/cffi copying cffi/cparser.py -> build/lib.linux-armv7l-2.7/cffi copying cffi/_cffi_include.h -> build/lib.linux-armv7l-2.7/cffi copying cffi/parse_c_type.h -> build/lib.linux-armv7l-2.7/cffi copying cffi/_embedding.h -> build/lib.linux-armv7l-2.7/cffi copying cffi/_cffi_errors.h -> build/lib.linux-armv7l-2.7/cffi running build_ext building '_cffi_backend' extension creating build/temp.linux-armv7l-2.7 creating build/temp.linux-armv7l-2.7/c arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-kKRR4y/python2.7-2.7.13=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DUSE__THREAD -DHAVE_SYNC_SYNCHRONIZE -I/usr/include/ffi -I/usr/include/libffi -I/usr/include/python2.7 -c c/_cffi_backend.c -o build/temp.linux-armv7l-2.7/c/_cffi_backend.o c/_cffi_backend.c:15:17: fatal error: ffi.h: No such file or directory #include <ffi.h> ^ compilation terminated. error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1 ---------------------------------------- ERROR: Failed building wheel for cffi Running setup.py clean for cffi Failed to build cffi Installing collected packages: setuptools, wheel, pycparser, cffi Running setup.py install for cffi: started Running setup.py install for cffi: finished with status 'error' ERROR: Command errored out with exit status 1: command: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-umc2wH/cffi/setup.py'"'"'; __file__='"'"'/tmp/pip-install-umc2wH/cffi/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-ENZgtD/install-record.txt --single-version-externally-managed --prefix /tmp/pip-build-env-UqPw9S/overlay --compile cwd: /tmp/pip-install-umc2wH/cffi/ Complete output (56 lines): Package libffi was not found in the pkg-config search path. Perhaps you should add the directory containing libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing libffi.pc' to the PKG_CONFIG_PATH environment variable No package 'libffi' found Package libffi was not found in the pkg-config search path. Perhaps you should add the directory containing libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing libffi.pc' to the PKG_CONFIG_PATH environment variable No package 'libffi' found Package libffi was not found in the pkg-config search path. Perhaps you should add the directory containing libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
running install
running build
running build_py
creating build
creating build/lib.linux-armv7l-2.7
creating build/lib.linux-armv7l-2.7/cffi
copying cffi/recompiler.py -> build/lib.linux-armv7l-2.7/cffi
copying cffi/init.py -> build/lib.linux-armv7l-2.7/cffi
copying cffi/lock.py -> build/lib.linux-armv7l-2.7/cffi
copying cffi/error.py -> build/lib.linux-armv7l-2.7/cffi
copying cffi/pkgconfig.py -> build/lib.linux-armv7l-2.7/cffi
copying cffi/ffiplatform.py -> build/lib.linux-armv7l-2.7/cffi
copying cffi/commontypes.py -> build/lib.linux-armv7l-2.7/cffi
copying cffi/backend_ctypes.py -> build/lib.linux-armv7l-2.7/cffi
copying cffi/vengine_cpy.py -> build/lib.linux-armv7l-2.7/cffi
copying cffi/cffi_opcode.py -> build/lib.linux-armv7l-2.7/cffi
copying cffi/model.py -> build/lib.linux-armv7l-2.7/cffi
copying cffi/verifier.py -> build/lib.linux-armv7l-2.7/cffi
copying cffi/vengine_gen.py -> build/lib.linux-armv7l-2.7/cffi
copying cffi/api.py -> build/lib.linux-armv7l-2.7/cffi
copying cffi/setuptools_ext.py -> build/lib.linux-armv7l-2.7/cffi
copying cffi/cparser.py -> build/lib.linux-armv7l-2.7/cffi
copying cffi/_cffi_include.h -> build/lib.linux-armv7l-2.7/cffi
copying cffi/parse_c_type.h -> build/lib.linux-armv7l-2.7/cffi
copying cffi/_embedding.h -> build/lib.linux-armv7l-2.7/cffi
copying cffi/_cffi_errors.h -> build/lib.linux-armv7l-2.7/cffi
running build_ext
building '_cffi_backend' extension
creating build/temp.linux-armv7l-2.7
creating build/temp.linux-armv7l-2.7/c
arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-kKRR4y/python2.7-2.7.13=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DUSE__THREAD -DHAVE_SYNC_SYNCHRONIZE -I/usr/include/ffi -I/usr/include/libffi -I/usr/include/python2.7 -c c/_cffi_backend.c -o build/temp.linux-armv7l-2.7/c/_cffi_backend.o
c/_cffi_backend.c:15:17: fatal error: ffi.h: No such file or directory
#include <ffi.h>
^
compilation terminated.
error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1
----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-umc2wH/cffi/setup.py'"'"'; file='"'"'/tmp/pip-install-umc2wH/cffi/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-ENZgtD/install-record.txt --single-version-externally-managed --prefix /tmp/pip-build-env-UqPw9S/overlay --compile Check the logs for full command output.


ERROR: Command errored out with exit status 1: /usr/bin/python /usr/local/lib/python2.7/dist-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-UqPw9S/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple --extra-index-url https://www.piwheels.org/simple -- 'setuptools>=40.6.0' wheel 'cffi>=1.8,!=1.11.3; platform_python_implementation != '"'"'PyPy'"'"'' Check the logs for full command output.

Build for current esp-idf is broken

Could someone shed a light on which knobs/flags/defines/branches should I use to make the same build that is used for latest esp32-arduino release?
A simple

cd esp32-arduino-lib-builder
./build.sh

fails on libraries/WiFi/src/ETH.cpp with esp_eth_phy_new_ksz8081. I've seen this error for quite some time ago, still not fixed.
I'm trying to propose a change and create a PR but not sure how to do a proper build/test compatible with to-be-next-release.
Tnx!

Unable to complete build on master branch

Hello! I am trying to compile Arduino libraries for my ESP32-C3-based board with some menuconfig tweaks, but I am running into various issues. I decided to wipe my installations of ESP-IDF and this library and start over. I am running this on a 64-bit Debian virtual machine in VirtualBox on Windows 10.

I followed the following installation instructions:

  1. ESP-IDF v4.4.1 (latest stable version that satisfies the IDF version requirement of the library builder) - though I ran ./install.sh all
  2. Library builder

I must also add that the above instructions for the library builder are more up-to-date than the readme provided in the root of this Github repository. The latter suggests to install some packages that no longer exist.

But now that I run ./build.sh, I get this error:

-- Building ESP-IDF components for target esp32s3

CMake Error at /home/mike/esp/esp-idf/tools/cmake/build.cmake:455 (message):

  Traceback (most recent call last):

    File "/usr/lib/python3.9/runpy.py", line 197, in _run_module_as_main
      return _run_code(code, main_globals, None,

    File "/usr/lib/python3.9/runpy.py", line 87, in _run_code
      exec(code, run_globals)

    File "/home/mike/.espressif/python_env/idf4.4_py3.9_env/lib/python3.9/site-packages/idf_component_manager/prepare_components/__main__.py", line 3, in <module>
      main()

    File "/home/mike/.espressif/python_env/idf4.4_py3.9_env/lib/python3.9/site-packages/idf_component_manager/prepare_components/prepare.py", line 126, in main
      args.func(args)

    File "/home/mike/.espressif/python_env/idf4.4_py3.9_env/lib/python3.9/site-packages/idf_component_manager/prepare_components/prepare.py", line 39, in prepare_dep_dirs
      ComponentManager(args.project_dir).prepare_dep_dirs(

    File "/home/mike/.espressif/python_env/idf4.4_py3.9_env/lib/python3.9/site-packages/idf_component_manager/core.py", line 401, in prepare_dep_dirs
      manifests.append(ManifestManager(component['path'], component['name']).load())

    File "/home/mike/.espressif/python_env/idf4.4_py3.9_env/lib/python3.9/site-packages/idf_component_tools/manifest/manager.py", line 129, in load
      self.check_filename().validate()

    File "/home/mike/.espressif/python_env/idf4.4_py3.9_env/lib/python3.9/site-packages/idf_component_tools/manifest/manager.py", line 68, in validate
      self.manifest_tree, check_required_fields=self.check_required_fields, version=self.version)

    File "/home/mike/.espressif/python_env/idf4.4_py3.9_env/lib/python3.9/site-packages/idf_component_tools/manifest/manager.py", line 92, in manifest_tree
      self._manifest_tree = self.parse_manifest_file()

    File "/home/mike/.espressif/python_env/idf4.4_py3.9_env/lib/python3.9/site-packages/idf_component_tools/manifest/manager.py", line 122, in parse_manifest_file
      return _convert_env_vars_in_yaml_dict(manifest_data)

    File "/home/mike/.espressif/python_env/idf4.4_py3.9_env/lib/python3.9/site-packages/idf_component_tools/manifest/manager.py", line 35, in _convert_env_vars_in_yaml_dict
      d[k] = _convert_env_vars_in_yaml_dict(v)

    File "/home/mike/.espressif/python_env/idf4.4_py3.9_env/lib/python3.9/site-packages/idf_component_tools/manifest/manager.py", line 35, in _convert_env_vars_in_yaml_dict
      d[k] = _convert_env_vars_in_yaml_dict(v)

    File "/home/mike/.espressif/python_env/idf4.4_py3.9_env/lib/python3.9/site-packages/idf_component_tools/manifest/manager.py", line 39, in _convert_env_vars_in_yaml_dict
      d[k] = [_convert_env_vars_in_str(i) for i in v]

    File "/home/mike/.espressif/python_env/idf4.4_py3.9_env/lib/python3.9/site-packages/idf_component_tools/manifest/manager.py", line 39, in <listcomp>
      d[k] = [_convert_env_vars_in_str(i) for i in v]

    File "/home/mike/.espressif/python_env/idf4.4_py3.9_env/lib/python3.9/site-packages/idf_component_tools/manifest/manager.py", line 22, in _convert_env_vars_in_str
      return Template(s).substitute(os.environ)

    File "/usr/lib/python3.9/string.py", line 121, in substitute
      return self.pattern.sub(convert, self.template)

  TypeError: expected string or bytes-like object

Call Stack (most recent call first):
  /home/mike/esp/esp-idf/tools/cmake/project.cmake:378 (idf_build_process)
  CMakeLists.txt:8 (project)

-- Configuring incomplete, errors occurred!
See also "/home/mike/esp/esp32-arduino-lib-builder/build/CMakeFiles/CMakeOutput.log".
cmake failed with exit code 1

Does someone know how to solve this issue?

I am not super familiar with building on Linux-based operating systems, but I am having better luck here than when I tried to compile the libraries directly in Windows.

Many thanks in advance!

how to recompile libesp32.a ?

hello,
i have done all the "rebuild" of esp32-arduino, everything is ok ... except the libesp32.a that is not recompiled ...

any way what i am looking for is :
in which lib the "SPI RAM config" from menuconfig is hard coded ?
i need a new config with :
CONFIG_SPIRAM_USE_MEMMAP =y

but as default it is on
CONFIG_SPIRAM_USE_MALLOC=y

maybe it is not hard coded in libesp32.a, but if not, where ? in what lib ?

many thanx in advance

Unable to resolve esp32c3

Hi, when following the instructions in README.md on Ubuntu 20.04 latest esp-idf I'm getting:

Executing "cmake -G Ninja -DPYTHON_DEPS_CHECKED=1 -DESP_PLATFORM=1 -DIDF_TARGET=esp32c3 -DCCACHE_ENABLE=0 /home/libor/esp/esp32-arduino-lib-builder"...
-- Found Git: /usr/bin/git (found version "2.25.1") 
-- Component directory /home/libor/esp/esp-idf/components/cmock does not contain a CMakeLists.txt file. No component will be added
-- Component directory /home/libor/esp/esp-idf/components/openthread does not contain a CMakeLists.txt file. No component will be added
CMake Error at /home/libor/esp/esp-idf/tools/cmake/targets.cmake:57 (message):
  Unable to resolve 'esp32c3' for setting toolchain file.
Call Stack (most recent call first):
  /home/libor/esp/esp-idf/tools/cmake/project.cmake:294 (__target_set_toolchain)
  CMakeLists.txt:10 (project)


-- Configuring incomplete, errors occurred!
cmake failed with exit code 1

Any ideas?

esptool: no such file or directory

I've followed the instructions to build the files on Ubuntu machine. That machine is headless, so I used tools/copy-to-arduino.sh file as an example to copy over the files to my OSX machine to dist/tools using scp.

cd /Users/diegoaguilera/Library/Arduino15/packages/esp32/hardware/esp32/2.0.2
scp [email protected]:arduinoLibBuilder/esp32-arduino-lib-builder/dist/platform.txt .

cd tools
scp -r [email protected]:arduinoLibBuilder/esp32-arduino-lib-builder/dist/tools/sdk .
scp [email protected]:arduinoLibBuilder/esp32-arduino-lib-builder/dist/tools/esptool.py .
scp [email protected]:arduinoLibBuilder/esp32-arduino-lib-builder/dist/tools/gen_esp32part.py .
scp [email protected]:arduinoLibBuilder/esp32-arduino-lib-builder/dist/tools/platformio-build-*.py .

Error:

fork/exec /Users/diegoaguilera/Library/Arduino15/packages/esp32/hardware/esp32/2.0.2/tools/esptool/esptool: no such file or directory
Error compiling for board ESP32C3 Dev Module.

Full error:

Linking everything together...
/Users/diegoaguilera/Library/Arduino15/packages/esp32/tools/riscv32-esp-elf-gcc/gcc8_4_0-esp-2021r2/bin/riscv32-esp-elf-g++ -Wl,--Map=/var/folders/b7/hr7ns03s3sg2h95_grpsh5cw0000gn/T/arduino_build_599461/TimerWakeUp.ino.map -L/Users/diegoaguilera/Library/Arduino15/packages/esp32/hardware/esp32/2.0.2/tools/sdk/esp32c3/lib -L/Users/diegoaguilera/Library/Arduino15/packages/esp32/hardware/esp32/2.0.2/tools/sdk/esp32c3/ld -T memory.ld -T sections.ld -T esp32c3.rom.ld -T esp32c3.rom.api.ld -T esp32c3.rom.libgcc.ld -T esp32c3.rom.newlib.ld -T esp32c3.rom.version.ld -T esp32c3.rom.eco3.ld -T esp32c3.peripherals.ld -nostartfiles -march=rv32imc --specs=nosys.specs -Wl,--cref -Wl,--gc-sections -fno-rtti -fno-lto -u _Z5setupv -u _Z4loopv -u esp_app_desc -u pthread_include_pthread_impl -u pthread_include_pthread_cond_impl -u pthread_include_pthread_local_storage_impl -u pthread_include_pthread_rwlock_impl -u start_app -u __ubsan_include -u __assert_func -u vfs_include_syscalls_impl -Wl,--undefined=uxTopUsedPriority -u app_main -u newlib_include_heap_impl -u newlib_include_syscalls_impl -u newlib_include_pthread_impl -u newlib_include_assert_impl -Wl,--wrap=_Unwind_SetEnableExceptionFdeSorting -Wl,--wrap=__register_frame_info_bases -Wl,--wrap=__register_frame_info -Wl,--wrap=__register_frame -Wl,--wrap=__register_frame_info_table_bases -Wl,--wrap=__register_frame_info_table -Wl,--wrap=__register_frame_table -Wl,--wrap=__deregister_frame_info_bases -Wl,--wrap=__deregister_frame_info -Wl,--wrap=_Unwind_Find_FDE -Wl,--wrap=_Unwind_GetGR -Wl,--wrap=_Unwind_GetCFA -Wl,--wrap=_Unwind_GetIP -Wl,--wrap=_Unwind_GetIPInfo -Wl,--wrap=_Unwind_GetRegionStart -Wl,--wrap=_Unwind_GetDataRelBase -Wl,--wrap=_Unwind_GetTextRelBase -Wl,--wrap=_Unwind_SetIP -Wl,--wrap=_Unwind_SetGR -Wl,--wrap=_Unwind_GetLanguageSpecificData -Wl,--wrap=_Unwind_FindEnclosingFunction -Wl,--wrap=_Unwind_Resume -Wl,--wrap=_Unwind_RaiseException -Wl,--wrap=_Unwind_DeleteException -Wl,--wrap=_Unwind_ForcedUnwind -Wl,--wrap=_Unwind_Resume_or_Rethrow -Wl,--wrap=_Unwind_Backtrace -Wl,--wrap=__cxa_call_unexpected -Wl,--wrap=__gxx_personality_v0 -u __cxa_guard_dummy -u __cxx_fatal_exception -DESP32 -DCORE_DEBUG_LEVEL=0 -DARDUINO_HW_CDC_ON_BOOT=0 -Wl,--start-group /var/folders/b7/hr7ns03s3sg2h95_grpsh5cw0000gn/T/arduino_build_599461/sketch/TimerWakeUp.ino.cpp.o /var/folders/b7/hr7ns03s3sg2h95_grpsh5cw0000gn/T/arduino_build_599461/core/core.a -lesp_ringbuf -lefuse -lesp_ipc -ldriver -lesp_pm -lmbedtls -lapp_update -lbootloader_support -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -lconsole -llwip -llog -lheap -lsoc -lesp_hw_support -lriscv -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lasio -lbt -lcbor -lunity -lcmock -lcoap -lnghttp -lesp-tls -lesp_adc_cal -lesp_hid -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lesp_https_server -lesp_lcd -lprotobuf-c -lprotocomm -lmdns -lesp_local_ctrl -lsdmmc -lesp_serial_slave_link -lesp_websocket_client -lexpat -lwear_levelling -lfatfs -lfreemodbus -ljsmn -ljson -llibsodium -lmqtt -lopenssl -lspiffs -lwifi_provisioning -lesp_littlefs -lfb_gfx -lasio -lcbor -lcmock -lunity -lcoap -lesp_lcd -lesp_local_ctrl -lesp_https_server -lesp_websocket_client -lexpat -lfreemodbus -ljsmn -llibsodium -lmqtt -lesp_adc_cal -lesp_hid -lfatfs -lwear_levelling -lopenssl -lspiffs -lwifi_provisioning -lprotocomm -lbt -lbtdm_app -lprotobuf-c -lmdns -ljson -lcat_face_detect -lhuman_face_detect -lcolor_detect -lmfn -ldl -lesp_ringbuf -lefuse -lesp_ipc -ldriver -lesp_pm -lmbedtls -lapp_update -lbootloader_support -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -lconsole -llwip -llog -lheap -lsoc -lesp_hw_support -lriscv -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lesp_ringbuf -lefuse -lesp_ipc -ldriver -lesp_pm -lmbedtls -lapp_update -lbootloader_support -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -lconsole -llwip -llog -lheap -lsoc -lesp_hw_support -lriscv -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lesp_ringbuf -lefuse -lesp_ipc -ldriver -lesp_pm -lmbedtls -lapp_update -lbootloader_support -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -lconsole -llwip -llog -lheap -lsoc -lesp_hw_support -lriscv -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lesp_ringbuf -lefuse -lesp_ipc -ldriver -lesp_pm -lmbedtls -lapp_update -lbootloader_support -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -lconsole -llwip -llog -lheap -lsoc -lesp_hw_support -lriscv -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lesp_ringbuf -lefuse -lesp_ipc -ldriver -lesp_pm -lmbedtls -lapp_update -lbootloader_support -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -lconsole -llwip -llog -lheap -lsoc -lesp_hw_support -lriscv -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lesp_ringbuf -lefuse -lesp_ipc -ldriver -lesp_pm -lmbedtls -lapp_update -lbootloader_support -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -lconsole -llwip -llog -lheap -lsoc -lesp_hw_support -lriscv -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lphy -lbtbb -lesp_phy -lphy -lbtbb -lesp_phy -lphy -lbtbb -lm -lnewlib -lstdc++ -lpthread -lgcc -lcxx -lapp_trace -lgcov -lapp_trace -lgcov -lc -Wl,--end-group -Wl,-EL -o /var/folders/b7/hr7ns03s3sg2h95_grpsh5cw0000gn/T/arduino_build_599461/TimerWakeUp.ino.elf
/Users/diegoaguilera/Library/Arduino15/packages/esp32/hardware/esp32/2.0.2/tools/esptool/esptool --chip esp32c3 elf2image --flash_mode dio --flash_freq 80m --flash_size 4MB -o /var/folders/b7/hr7ns03s3sg2h95_grpsh5cw0000gn/T/arduino_build_599461/TimerWakeUp.ino.bin /var/folders/b7/hr7ns03s3sg2h95_grpsh5cw0000gn/T/arduino_build_599461/TimerWakeUp.ino.elf
fork/exec /Users/diegoaguilera/Library/Arduino15/packages/esp32/hardware/esp32/2.0.2/tools/esptool/esptool: no such file or directory
Error compiling for board ESP32C3 Dev Module.

Docker image

I am trying to build a docker image to be able to recompile libraries with changed sdkconfig. My Dockerfile so far:

FROM ubuntu:20.04
ENV TZ=Europe/Vienna
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get update
RUN apt-get install -y git wget curl libssl-dev libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache
RUN pip install --upgrade pip
RUN git clone https://github.com/espressif/esp32-arduino-lib-builder

Error:

Step 1/7 : FROM ubuntu:20.04
 ---> 3bc6e9f30f51
Step 2/7 : ENV TZ=Europe/Vienna
 ---> Using cache
 ---> 9b789ae46cf0
Step 3/7 : RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
 ---> Using cache
 ---> 29f72e344dd8
Step 4/7 : RUN apt-get update
 ---> Using cache
 ---> 8c3addb28a00
Step 5/7 : RUN apt-get install -y git wget curl libssl-dev libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache
 ---> Running in 6d9539873edc
Reading package lists...
Building dependency tree...
Reading state information...
Package python-pip is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
  python3-pip

E: Package 'python-pip' has no installation candidate
E: Unable to locate package python-serial
E: Unable to locate package python-click
E: Unable to locate package python-future
The command '/bin/sh -c apt-get install -y git wget curl libssl-dev libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache' returned a non-zero code: 100

When I use Python3 it also doesn't work. Is there an example on how to create a Dockerfile?

Error on building with latest idf

Hi,
I cloned the latest idf and cloned your repository,
And then run the command ./build.sh

The build is fail with errors:

In file included from /Users/roysabah/esp/esp32-arduino-lib-builder/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_claim.c:38:
/Users/roysabah/esp/esp32-arduino-lib-builder/components/esp-rainmaker/components/json_generator/json_generator.h:308:57: note: expected 'char *' but argument is of type 'const char *'
int json_gen_obj_set_string(json_gen_str_t *jstr, char *name, char *val);
~~~~~~^~~~
[1373/1601] Building C object es...ores/esp32/esp32-hal-timer.c.obj
FAILED: esp-idf/arduino/CMakeFiles/__idf_arduino.dir/cores/esp32/esp32-hal-timer.c.obj
/Users/roysabah/.espressif/tools/xtensa-esp32-elf/esp-2021r2-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc -DHAVE_CONFIG_H -DMBEDTLS_CONFIG_FILE="mbedtls/esp_config.h" -I/Users/roysabah/esp/esp32-arduino-lib-builder/build/config -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/variants/esp32 -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/cores/esp32 -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/ArduinoOTA/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/AsyncUDP/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/BLE/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/BluetoothSerial/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/DNSServer/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/EEPROM/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/ESP32/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/ESPmDNS/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/FFat/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/FS/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/HTTPClient/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/HTTPUpdate/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/LittleFS/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/NetBIOS/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/Preferences/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/RainMaker/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/SD_MMC/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/SD/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/SimpleBLE/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/SPIFFS/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/SPI/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/Ticker/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/Update/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/USB/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/WebServer/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/WiFiClientSecure/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/WiFi/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/WiFiProv/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/libraries/Wire/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/cores/esp32/libb64 -I/Users/roysabah/esp/esp-idf/components/newlib/platform_include -I/Users/roysabah/esp/esp-idf/components/freertos/include -I/Users/roysabah/esp/esp-idf/components/freertos/include/esp_additions/freertos -I/Users/roysabah/esp/esp-idf/components/freertos/port/xtensa/include -I/Users/roysabah/esp/esp-idf/components/freertos/include/esp_additions -I/Users/roysabah/esp/esp-idf/components/esp_hw_support/include -I/Users/roysabah/esp/esp-idf/components/esp_hw_support/include/soc -I/Users/roysabah/esp/esp-idf/components/esp_hw_support/include/soc/esp32 -I/Users/roysabah/esp/esp-idf/components/esp_hw_support/port/esp32/. -I/Users/roysabah/esp/esp-idf/components/heap/include -I/Users/roysabah/esp/esp-idf/components/log/include -I/Users/roysabah/esp/esp-idf/components/lwip/include/apps -I/Users/roysabah/esp/esp-idf/components/lwip/include/apps/sntp -I/Users/roysabah/esp/esp-idf/components/lwip/lwip/src/include -I/Users/roysabah/esp/esp-idf/components/lwip/port/esp32/include -I/Users/roysabah/esp/esp-idf/components/lwip/port/esp32/include/arch -I/Users/roysabah/esp/esp-idf/components/soc/include -I/Users/roysabah/esp/esp-idf/components/soc/esp32/. -I/Users/roysabah/esp/esp-idf/components/soc/esp32/include -I/Users/roysabah/esp/esp-idf/components/hal/esp32/include -I/Users/roysabah/esp/esp-idf/components/hal/include -I/Users/roysabah/esp/esp-idf/components/hal/platform_port/include -I/Users/roysabah/esp/esp-idf/components/esp_rom/include -I/Users/roysabah/esp/esp-idf/components/esp_rom/include/esp32 -I/Users/roysabah/esp/esp-idf/components/esp_rom/esp32 -I/Users/roysabah/esp/esp-idf/components/esp_common/include -I/Users/roysabah/esp/esp-idf/components/esp_system/include -I/Users/roysabah/esp/esp-idf/components/esp_system/port/soc -I/Users/roysabah/esp/esp-idf/components/esp_system/port/public_compat -I/Users/roysabah/esp/esp-idf/components/esp32/include -I/Users/roysabah/esp/esp-idf/components/xtensa/include -I/Users/roysabah/esp/esp-idf/components/xtensa/esp32/include -I/Users/roysabah/esp/esp-idf/components/driver/include -I/Users/roysabah/esp/esp-idf/components/driver/esp32/include -I/Users/roysabah/esp/esp-idf/components/esp_pm/include -I/Users/roysabah/esp/esp-idf/components/esp_ringbuf/include -I/Users/roysabah/esp/esp-idf/components/efuse/include -I/Users/roysabah/esp/esp-idf/components/efuse/esp32/include -I/Users/roysabah/esp/esp-idf/components/vfs/include -I/Users/roysabah/esp/esp-idf/components/esp_wifi/include -I/Users/roysabah/esp/esp-idf/components/esp_event/include -I/Users/roysabah/esp/esp-idf/components/esp_netif/include -I/Users/roysabah/esp/esp-idf/components/esp_eth/include -I/Users/roysabah/esp/esp-idf/components/tcpip_adapter/include -I/Users/roysabah/esp/esp-idf/components/esp_phy/include -I/Users/roysabah/esp/esp-idf/components/esp_phy/esp32/include -I/Users/roysabah/esp/esp-idf/components/esp_ipc/include -I/Users/roysabah/esp/esp-idf/components/app_trace/include -I/Users/roysabah/esp/esp-idf/components/esp_timer/include -I/Users/roysabah/esp/esp-idf/components/spi_flash/include -I/Users/roysabah/esp/esp-idf/components/mbedtls/port/include -I/Users/roysabah/esp/esp-idf/components/mbedtls/mbedtls/include -I/Users/roysabah/esp/esp-idf/components/mbedtls/esp_crt_bundle/include -I/Users/roysabah/esp/esp-idf/components/mdns/include -I/Users/roysabah/esp/esp-idf/components/console -I/Users/roysabah/esp/esp-idf/components/esp_adc_cal/include -I/Users/roysabah/esp/esp-idf/components/wifi_provisioning/include -I/Users/roysabah/esp/esp-idf/components/protocomm/include/common -I/Users/roysabah/esp/esp-idf/components/protocomm/include/security -I/Users/roysabah/esp/esp-idf/components/protocomm/include/transports -I/Users/roysabah/esp/esp-idf/components/bt/common/osi/include -I/Users/roysabah/esp/esp-idf/components/bt/include/esp32/include -I/Users/roysabah/esp/esp-idf/components/bt/common/api/include/api -I/Users/roysabah/esp/esp-idf/components/bt/common/btc/profile/esp/blufi/include -I/Users/roysabah/esp/esp-idf/components/bt/common/btc/profile/esp/include -I/Users/roysabah/esp/esp-idf/components/bt/host/bluedroid/api/include/api -I/Users/roysabah/esp/esp-idf/components/nvs_flash/include -I/Users/roysabah/esp/esp-idf/components/nghttp/port/include -I/Users/roysabah/esp/esp-idf/components/nghttp/nghttp2/lib/includes -I/Users/roysabah/esp/esp-idf/components/fatfs/diskio -I/Users/roysabah/esp/esp-idf/components/fatfs/vfs -I/Users/roysabah/esp/esp-idf/components/fatfs/src -I/Users/roysabah/esp/esp-idf/components/wear_levelling/include -I/Users/roysabah/esp/esp-idf/components/sdmmc/include -I/Users/roysabah/esp/esp-idf/components/app_update/include -I/Users/roysabah/esp/esp-idf/components/bootloader_support/include -I/Users/roysabah/esp/esp-idf/components/spiffs/include -I/Users/roysabah/esp/esp-idf/components/openssl/include -I/Users/roysabah/esp/esp-idf/components/esp_hid/include -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/esp-rainmaker/components/esp_rainmaker/include -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/esp-rainmaker/components/qrcode/include -I/Users/roysabah/esp/esp-idf/components/esp_https_ota/include -I/Users/roysabah/esp/esp-idf/components/esp_http_client/include -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/esp_littlefs/src -I/Users/roysabah/esp/esp32-arduino-lib-builder/components/esp_littlefs/include -mlongcalls -Wno-frame-address -ffunction-sections -fdata-sections -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wextra -Wno-unused-parameter -Wno-sign-compare -ggdb -mfix-esp32-psram-cache-issue -mfix-esp32-psram-cache-strategy=memw -Os -freorder-blocks -Wwrite-strings -fstack-protector -fmacro-prefix-map=/Users/roysabah/esp/esp32-arduino-lib-builder=. -fmacro-prefix-map=/Users/roysabah/esp/esp-idf=IDF -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -std=gnu99 -Wno-old-style-declaration -D_GNU_SOURCE -DIDF_VER="v4.4-dev-3573-gfb24a2941c" -DESP_PLATFORM -DARDUINO=10812 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 -DARDUINO_BOARD="ESP32_DEV" -DARDUINO_VARIANT="esp32" -DESP32 -MD -MT esp-idf/arduino/CMakeFiles/__idf_arduino.dir/cores/esp32/esp32-hal-timer.c.obj -MF esp-idf/arduino/CMakeFiles/__idf_arduino.dir/cores/esp32/esp32-hal-timer.c.obj.d -o esp-idf/arduino/CMakeFiles/__idf_arduino.dir/cores/esp32/esp32-hal-timer.c.obj -c /Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/cores/esp32/esp32-hal-timer.c
/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/cores/esp32/esp32-hal-timer.c: In function 'timerBegin':
/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/cores/esp32/esp32-hal-timer.c:236:16: error: 'timg_dev_t' {aka 'struct timg_dev_t'} has no member named 'int_ena'
TIMERG1.int_ena.val &= ~BIT(timer->timer);
^
/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/cores/esp32/esp32-hal-timer.c:243:16: error: 'timg_dev_t' {aka 'struct timg_dev_t'} has no member named 'int_ena'
TIMERG0.int_ena.val &= ~BIT(timer->timer);
^
/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/cores/esp32/esp32-hal-timer.c: In function 'timerAttachInterrupt':
/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/cores/esp32/esp32-hal-timer.c:286:20: error: 'timg_dev_t' {aka 'struct timg_dev_t'} has no member named 'int_ena'
TIMERG1.int_ena.val &= ~BIT(timer->timer);
^
/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/cores/esp32/esp32-hal-timer.c:293:20: error: 'timg_dev_t' {aka 'struct timg_dev_t'} has no member named 'int_ena'
TIMERG0.int_ena.val &= ~BIT(timer->timer);
^
/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/cores/esp32/esp32-hal-timer.c:330:20: error: 'timg_dev_t' {aka 'struct timg_dev_t'} has no member named 'int_ena'
TIMERG1.int_ena.val |= BIT(timer->timer);
^
/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/cores/esp32/esp32-hal-timer.c:336:20: error: 'timg_dev_t' {aka 'struct timg_dev_t'} has no member named 'int_ena'
TIMERG0.int_ena.val |= BIT(timer->timer);
^
[1375/1601] Building C object es.../esp32/esp32-hal-i2c-slave.c.obj
/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/cores/esp32/esp32-hal-i2c-slave.c: In function 'i2c_slave_isr_handler':
/Users/roysabah/esp/esp32-arduino-lib-builder/components/arduino/cores/esp32/esp32-hal-i2c-slave.c:694:13: warning: unused variable 'tx_fifo_len' [-Wunused-variable]
uint8_t tx_fifo_len = SOC_I2C_FIFO_LEN - i2c_ll_get_txfifo_len(i2c->dev);
^~~~~~~~~~~
[1382/1601] Building CXX object ...uino.dir/cores/esp32/Esp.cpp.obj
ninja: build stopped: subcommand failed.

actual build master fails

here:

[611/1395] Generating x509_crt_bundle
FAILED: esp-idf/mbedtls/x509_crt_bundle /Users/hans/Git/esp32-arduino-lib-builder/build/esp-idf/mbedtls/x509_crt_bundle 
cd /Users/hans/Git/esp32-arduino-lib-builder/build/esp-idf/mbedtls && /Users/hans/.espressif/python_env/idf4.4_py3.9_env/bin/python /Users/hans/Git/esp32-arduino-lib-builder/esp-idf/components/mbedtls/esp_crt_bundle/gen_crt_bundle.py --input /Users/hans/Git/esp32-arduino-lib-builder/esp-idf/components/mbedtls/esp_crt_bundle/cacrt_all.pem -q
gen_crt_bundle.py: Invalid certificate in /Users/hans/Git/esp32-arduino-lib-builder/esp-idf/components/mbedtls/esp_crt_bundle/cacrt_all.pem
Invalid certificate
ninja: build stopped: subcommand failed.
ninja failed with exit code 1

btw. build release/v3.3 fails here too.
@me-no-dev can you have a look? THX!

3 Compilation Errors

I am trying to build the Arduino library with RTC source changed from 150Khz RC Oscillator to external crystal (all the other settings are default). Os is Ubuntu 18.04.

Here follows my compilation errors:

1)

/home/compile/esp32-arduino-lib-builder/components/esp32-camera/driver/camera.c: In function 'esp_camera_save_to_nvs':
/home/compile/esp32-arduino-lib-builder/components/esp32-camera/driver/camera.c:1429:5: error: unknown type name 'nvs_handle_t'
     nvs_handle_t handle;
     ^
/home/compile/esp32-arduino-lib-builder/components/esp32-camera/driver/camera.c:1433:48: error: pointer targets in passing argument 3 of 'nvs_open' differ in signedness [-Werror=pointer-sign]
     esp_err_t ret = nvs_open(key,NVS_READWRITE,&handle);
                                                ^
In file included from /home/compile/esp32-arduino-lib-builder/esp-idf/components/nvs_flash/include/nvs_flash.h:21:0,
                 from /home/compile/esp32-arduino-lib-builder/components/esp32-camera/driver/camera.c:32:
/home/compile/esp32-arduino-lib-builder/esp-idf/components/nvs_flash/include/nvs.h:109:11: note: expected 'nvs_handle * {aka unsigned int *}' but argument is of type 'int *'
 esp_err_t nvs_open(const char* name, nvs_open_mode open_mode, nvs_handle *out_handle);
           ^
/home/compile/esp32-arduino-lib-builder/components/esp32-camera/driver/camera.c: In function 'esp_camera_load_from_nvs':
/home/compile/esp32-arduino-lib-builder/components/esp32-camera/driver/camera.c:1457:5: error: unknown type name 'nvs_handle_t'
     nvs_handle_t handle;
     ^
/home/compile/esp32-arduino-lib-builder/components/esp32-camera/driver/camera.c:1463:46: error: pointer targets in passing argument 3 of 'nvs_open' differ in signedness [-Werror=pointer-sign]
   esp_err_t ret = nvs_open(key,NVS_READWRITE,&handle);
                                              ^
In file included from /home/compile/esp32-arduino-lib-builder/esp-idf/components/nvs_flash/include/nvs_flash.h:21:0,
                 from /home/compile/esp32-arduino-lib-builder/components/esp32-camera/driver/camera.c:32:
/home/compile/esp32-arduino-lib-builder/esp-idf/components/nvs_flash/include/nvs.h:109:11: note: expected 'nvs_handle * {aka unsigned int *}' but argument is of type 'int *'
 esp_err_t nvs_open(const char* name, nvs_open_mode open_mode, nvs_handle *out_handle);
           ^
cc1: some warnings being treated as errors
/home/compile/esp32-arduino-lib-builder/esp-idf/make/component_wrapper.mk:289: recipe for target 'driver/camera.o' failed
make[1]: *** [driver/camera.o] Error 1
/home/compile/esp32-arduino-lib-builder/esp-idf/make/project.mk:552: recipe for target 'component-esp32-camera-build' failed

2)

/home/compile/esp32-arduino-lib-builder/components/arduino/libraries/WiFi/src/ETH.cpp: In member function 'IPAddress ETHClass::dnsIP(uint8_t)':
/home/compile/esp32-arduino-lib-builder/components/arduino/libraries/WiFi/src/ETH.cpp:196:37: error: conversion from 'const ip_addr_t* {aka const ip_addr*}' to non-scalar type 'ip_addr_t {aka ip_addr}' requested
     ip_addr_t dns_ip = dns_getserver(dns_no);
                                     ^
/home/compile/esp32-arduino-lib-builder/esp-idf/make/component_wrapper.mk:289: recipe for target 'libraries/WiFi/src//ETH.o' failed
make[1]: *** [libraries/WiFi/src//ETH.o] Error 1

3)

/home/compile/esp32-arduino-lib-builder/components/arduino/libraries/WiFi/src/WiFiSTA.cpp: In member function 'IPAddress WiFiSTAClass::dnsIP(uint8_t)':
/home/compile/esp32-arduino-lib-builder/components/arduino/libraries/WiFi/src/WiFiSTA.cpp:491:37: error: conversion from 'const ip_addr_t* {aka const ip_addr*}' to non-scalar type 'ip_addr_t {aka ip_addr}' requested
     ip_addr_t dns_ip = dns_getserver(dns_no);
                                     ^

when build, should use only esp-idf cmd?

hi. i'm tring build to change menuconfig.

i use ubuntu of VM and follow this video.
https://www.youtube.com/watch?v=aPXvIInTi4s

at 37:10. "idf.py menuconfig" input to command prompt, but my terminal of ubuntu appear error.

Screenshot from 2022-11-22 11-54-55


hk@hk-VirtualBox:~/components/arduino_demo$ idf.py menuconfig
Executing action: menuconfig
Running cmake in directory /home/hk/components/arduino_demo/build
Executing "cmake -G Ninja -DPYTHON_DEPS_CHECKED=1 -DPYTHON=/home/hk/.espressif/python_env/idf5.1_py3.8_env/bin/python -DESP_PLATFORM=1 -DIDF_TARGET=esp32s3 -DCCACHE_ENABLE=0 /home/hk/components/arduino_demo"...
-- Found Git: /usr/bin/git (found version "2.25.1")
-- The C compiler identification is GNU 11.2.0
-- The CXX compiler identification is GNU 11.2.0
-- The ASM compiler identification is GNU
-- Found assembler: /home/hk/.espressif/tools/xtensa-esp32s3-elf/esp-2022r1-11.2.0/xtensa-esp32s3-elf/bin/xtensa-esp32s3-elf-gcc
-- Check for working C compiler: /home/hk/.espressif/tools/xtensa-esp32s3-elf/esp-2022r1-11.2.0/xtensa-esp32s3-elf/bin/xtensa-esp32s3-elf-gcc
-- Check for working C compiler: /home/hk/.espressif/tools/xtensa-esp32s3-elf/esp-2022r1-11.2.0/xtensa-esp32s3-elf/bin/xtensa-esp32s3-elf-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /home/hk/.espressif/tools/xtensa-esp32s3-elf/esp-2022r1-11.2.0/xtensa-esp32s3-elf/bin/xtensa-esp32s3-elf-g++
-- Check for working CXX compiler: /home/hk/.espressif/tools/xtensa-esp32s3-elf/esp-2022r1-11.2.0/xtensa-esp32s3-elf/bin/xtensa-esp32s3-elf-g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Project is not inside a git repository, or git repository has no commits; will not use 'git describe' to determine PROJECT_VER.
-- Building ESP-IDF components for target esp32s3
CMake Error at /home/hk/esp/esp-idf/tools/cmake/component.cmake:224 (message):
CMake Warning (dev) at build_properties.temp.cmake:8:

Syntax Warning in cmake code at column 47



Argument not separated from preceding token by whitespace.

Call Stack (most recent call first):

/home/hk/esp/esp-idf/tools/cmake/scripts/component_get_requirements.cmake:3 (include)

This warning is for project developers. Use -Wno-dev to suppress it.

fatal: not a git repository (or any of the parent directories): .git

CMake Warning (dev) at
/home/hk/components/arduino_demo/components/arduino/CMakeLists.txt:12 (if):

if given arguments:



  "5.1.0" "AND" "NOT" ""



An argument named "5.1.0" appears in a conditional statement.  Policy
CMP0012 is not set: if() recognizes numbers and boolean constants.  Run
"cmake --help-policy CMP0012" for policy details.  Use the cmake_policy
command to set the policy and suppress this warning.

Call Stack (most recent call first):

/home/hk/esp/esp-idf/tools/cmake/scripts/component_get_requirements.cmake:106 (include)
/home/hk/esp/esp-idf/tools/cmake/scripts/component_get_requirements.cmake:124 (__component_get_requirements)

This warning is for project developers. Use -Wno-dev to suppress it.

CMake Error at
/home/hk/components/arduino_demo/components/arduino/CMakeLists.txt:19
(message):

Arduino-esp32 can be used with ESP-IDF versions between 4.4.0 and 4.4.99,
but a newer version is detected: 5.1.0.

Call Stack (most recent call first):

/home/hk/esp/esp-idf/tools/cmake/scripts/component_get_requirements.cmake:106 (include)
/home/hk/esp/esp-idf/tools/cmake/scripts/component_get_requirements.cmake:124 (__component_get_requirements)

Call Stack (most recent call first):
/home/hk/esp/esp-idf/tools/cmake/build.cmake:572 (__component_get_requirements)
/home/hk/esp/esp-idf/tools/cmake/project.cmake:447 (idf_build_process)
CMakeLists.txt:6 (project)

-- Configuring incomplete, errors occurred!
See also "/home/hk/components/arduino_demo/build/CMakeFiles/CMakeOutput.log".
cmake failed with exit code 1


CMakeOutput.log

different between video and me is terminal. esp-idf command prompt(video) and ubuntu default terminal(me)

must use only esp-idf cmd?

thank you in advance

Master branch. Compilation failed. The `esp-sr` component for esp32s2 is missing.

Master branch. The command ./build.sh -t esp32s2 causes an error:

[1352/1398] Building C object esp-idf/esp-sr/CMakeFiles/__idf_esp-sr.dir/src/esp_process_sdkconfig.c.obj
FAILED: esp-idf/esp-sr/CMakeFiles/__idf_esp-sr.dir/src/esp_process_sdkconfig.c.obj 
/home/alex/.espressif/tools/xtensa-esp32s2-elf/esp-2021r2-patch5-8.4.0/xtensa-esp32s2-elf/bin/xtensa-esp32s2-elf-gcc  -I/home/alex/esp/esp32-arduino-lib-builder/build/config -I/home/alex/esp/esp32-arduino-lib-builder/components/esp-sr/esp-tts/esp_tts_chinese/include -I/home/alex/esp/esp32-arduino-lib-builder/components/esp-sr/include/esp32 -I/home/alex/esp/esp32-arduino-lib-builder/components/esp-sr/src/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/newlib/platform_include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/freertos/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/freertos/include/esp_additions/freertos -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/freertos/port/xtensa/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/freertos/include/esp_additions -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/esp_hw_support/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/esp_hw_support/include/soc -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/esp_hw_support/include/soc/esp32s2 -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/esp_hw_support/port/esp32s2/. -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/esp_hw_support/port/esp32s2/private_include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/heap/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/log/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/lwip/include/apps -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/lwip/include/apps/sntp -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/lwip/lwip/src/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/lwip/port/esp32/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/lwip/port/esp32/include/arch -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/soc/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/soc/esp32s2/. -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/soc/esp32s2/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/hal/esp32s2/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/hal/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/hal/platform_port/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/esp_rom/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/esp_rom/include/esp32s2 -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/esp_rom/esp32s2 -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/esp_common/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/esp_system/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/esp_system/port/soc -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/esp_system/port/public_compat -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/xtensa/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/xtensa/esp32s2/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/driver/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/driver/esp32s2/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/esp_pm/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/esp_ringbuf/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/efuse/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/efuse/esp32s2/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/vfs/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/esp_wifi/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/esp_event/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/esp_netif/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/esp_eth/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/tcpip_adapter/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/esp_phy/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/esp_phy/esp32s2/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/esp_ipc/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/app_trace/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/esp_timer/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/json/cJSON -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/spiffs/include -I/home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/spi_flash/include -mlongcalls  -ffunction-sections -fdata-sections -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wextra -Wno-unused-parameter -Wno-sign-compare -ggdb -Os -freorder-blocks -Wwrite-strings -fstack-protector -fmacro-prefix-map=/home/alex/esp/esp32-arduino-lib-builder=. -fmacro-prefix-map=/home/alex/esp/esp32-arduino-lib-builder/esp-idf=IDF -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -std=gnu99 -Wno-old-style-declaration -D_GNU_SOURCE -DIDF_VER=\"v4.4.2-312-g08fa67fe92\" -DESP_PLATFORM -D_POSIX_READER_WRITER_LOCKS -MD -MT esp-idf/esp-sr/CMakeFiles/__idf_esp-sr.dir/src/esp_process_sdkconfig.c.obj -MF esp-idf/esp-sr/CMakeFiles/__idf_esp-sr.dir/src/esp_process_sdkconfig.c.obj.d -o esp-idf/esp-sr/CMakeFiles/__idf_esp-sr.dir/src/esp_process_sdkconfig.c.obj -c /home/alex/esp/esp32-arduino-lib-builder/components/esp-sr/src/esp_process_sdkconfig.c
/home/alex/esp/esp32-arduino-lib-builder/components/esp-sr/src/esp_process_sdkconfig.c:9:20: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
 static char *TAG = "SR_SYS";
                    ^~~~~~~~
/home/alex/esp/esp32-arduino-lib-builder/components/esp-sr/src/esp_process_sdkconfig.c: In function 'esp_mn_commands_update_from_sdkconfig':
/home/alex/esp/esp32-arduino-lib-builder/components/esp-sr/src/esp_process_sdkconfig.c:884:42: error: 'esp_mn_iface_t' {aka 'const struct <anonymous>'} has no member named 'get_language'; did you mean 'get_samp_rate'?
     if (strcmp(ESP_MN_CHINESE, multinet->get_language(model_data)) == 0) {
                                          ^~~~~~~~~~~~
                                          get_samp_rate
/home/alex/esp/esp32-arduino-lib-builder/components/esp-sr/src/esp_process_sdkconfig.c:886:49: error: 'esp_mn_iface_t' {aka 'const struct <anonymous>'} has no member named 'get_language'; did you mean 'get_samp_rate'?
     } else if (strcmp(ESP_MN_ENGLISH, multinet->get_language(model_data)) == 0) {
                                                 ^~~~~~~~~~~~
                                                 get_samp_rate
[1354/1398] Building C object esp-idf/esp-sr/CMakeFiles/__idf_esp-sr.dir/src/esp_mn_speech_commands.c.obj
/home/alex/esp/esp32-arduino-lib-builder/components/esp-sr/src/esp_mn_speech_commands.c:8:20: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
 static char *TAG = "MN_COMMAND";
                    ^~~~~~~~~~~~
[1355/1398] Building C object esp-idf/esp-sr/CMakeFiles/__idf_esp-sr.dir/src/model_path.c.obj
/home/alex/esp/esp32-arduino-lib-builder/components/esp-sr/src/model_path.c:16:20: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
 static char *TAG = "MODEL_LOADER";
                    ^~~~~~~~~~~~~~
/home/alex/esp/esp32-arduino-lib-builder/components/esp-sr/src/model_path.c:17:33: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
 static char *SRMODE_BASE_PATH = "/srmodel";
                                 ^~~~~~~~~~
[1357/1398] Building CXX object esp-idf/esp-dsp/CMakeFiles/__idf_esp-dsp.dir/modules/kalman/ekf/common/ekf.cpp.obj
ninja: build stopped: subcommand failed.
ninja failed with exit code 1

Reduce Bluetooth heap size by building custom version

Hi to all,
I need to use BT A2DP while sending some data on Wi-Fi. When used alone, A2DP works fine.
But with Wi-Fi enabled I was getting some crashes.
I was on 2.0.4, I upgraded to 2.0.6 but still getting crashes.
Upon a bit of investigation, my code with Wi-Fi only have 230KB free heap, but when BT is enabled drops to 40KB and when playing music it drops further to 21KB, which is not stable anymore.
I read somewhere it is possible to recompile BT library binary blob to discard unnecessary functions for a specific project.
For instance, I don't need BLE.
Can you give me a hint on how to do it?

Many thanks,
Nick

Save to build with IDF_BRANCH release/v4.x?

I am on esp-idf 3.3 and arduino-esp32 master branch right now.
Before II was on esp-idf 3.2.

I am getting mad finding an "out of memory" inside LWIP which happens at a random point when using DTLS UDP Streaming (MBEDTLS). See my other issues:
espressif/esp-idf#6241
Mbed-TLS/mbedtls#3954

I have debugged so much into this and I am not able to find the reason why malloc() inside LWIP fails at a random point.

My question is, is it save or possible to build against esp-idf 4.x or even the master branch, as there are already new heap api calls like heap_caps_register_failed_alloc_callback which I want to utlitize.

Build an example project faild, which just add components directory .

:/mnt/d/Develop/Git_Project/esp32-arduino-lib-builder$ git log
commit 1a838f3b0c06ef34c023ecade1f428eacdd696d1 (HEAD -> master, origin/master, origin/HEAD)
Author: me-no-dev <[email protected]>
Date:   Mon Apr 5 14:41:59 2021 +0300

Step 1:

        ./build.sh 
        success

Step 2:

        esp-idf/install.sh 
        . esp-idf/export.sh
        success

Step 3: select an example "esp-idf/examples/cxx/pthread$"

       idf.py build
       success

Step 4: modify project file "CMakeLists.txt", add components directory

# The following lines of boilerplate have to be in your project's CMakeLists
# in this exact order for cmake to work correctly
cmake_minimum_required(VERSION 3.5)
list(APPEND EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/../components/)

include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(cpp_pthread)

idf.py build
faild with these message:

In file included from /mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/RainMaker/src/RMakerParam.h:4,
                 from /mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/RainMaker/src/RMakerDevice.h:4,
                 from /mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/RainMaker/src/RMakerNode.h:4,
                 from /mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/RainMaker/src/RMakerNode.cpp:1:
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/RainMaker/src/RMakerType.h:4:10: fatal error: esp_rmaker_core.h: No such file or directory
 #include <esp_rmaker_core.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [esp-idf/arduino/CMakeFiles/__idf_arduino.dir/build.make:778: esp-idf/arduino/CMakeFiles/__idf_arduino.dir/libraries/RainMaker/src/RMakerNode.cpp.obj] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/RainMaker/src/RMakerType.cpp:1:
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/RainMaker/src/RMakerType.h:4:10: fatal error: esp_rmaker_core.h: No such file or directory
 #include <esp_rmaker_core.h>
          ^~~~~~~~~~~~~~~~~~~
In file included from /mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/RainMaker/src/RMakerParam.h:4,
                 from /mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/RainMaker/src/RMakerDevice.h:4,
                 from /mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/RainMaker/src/RMakerDevice.cpp:1:
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/RainMaker/src/RMakerType.h:4:10: fatal error: esp_rmaker_core.h: No such file or directory
 #include <esp_rmaker_core.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
compilation terminated.
make[2]: *** [esp-idf/arduino/CMakeFiles/__idf_arduino.dir/build.make:817: esp-idf/arduino/CMakeFiles/__idf_arduino.dir/libraries/RainMaker/src/RMakerType.cpp.obj] Error 1
make[2]: *** [esp-idf/arduino/CMakeFiles/__idf_arduino.dir/build.make:804: esp-idf/arduino/CMakeFiles/__idf_arduino.dir/libraries/RainMaker/src/RMakerDevice.cpp.obj] Error 1
In file included from /mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/RainMaker/src/RMakerParam.h:4,
                 from /mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/RainMaker/src/RMakerParam.cpp:1:
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/RainMaker/src/RMakerType.h:4:10: fatal error: esp_rmaker_core.h: No such file or directory
 #include <esp_rmaker_core.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [esp-idf/arduino/CMakeFiles/__idf_arduino.dir/build.make:791: esp-idf/arduino/CMakeFiles/__idf_arduino.dir/libraries/RainMaker/src/RMakerParam.cpp.obj] Error 1
In file included from /mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/RainMaker/src/RMakerParam.h:4,
                 from /mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/RainMaker/src/RMakerDevice.h:4,
                 from /mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/RainMaker/src/RMakerNode.h:4,
                 from /mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/RainMaker/src/RMaker.h:5,
                 from /mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/RainMaker/src/RMaker.cpp:1:
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/RainMaker/src/RMakerType.h:4:10: fatal error: esp_rmaker_core.h: No such file or directory
 #include <esp_rmaker_core.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [esp-idf/arduino/CMakeFiles/__idf_arduino.dir/build.make:765: esp-idf/arduino/CMakeFiles/__idf_arduino.dir/libraries/RainMaker/src/RMaker.cpp.obj] Error 1
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/WiFi/src/WiFiGeneric.cpp: In function 'void _arduino_event_cb(void*, esp_event_base_t, int32_t, void*)':
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/WiFi/src/WiFiGeneric.cpp:279:41: warning: unused variable 'event' [-Wunused-variable]
      wifi_event_sta_authmode_change_t * event = (wifi_event_sta_authmode_change_t*)event_data;
                                         ^~~~~
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/WiFi/src/WiFiGeneric.cpp:284:35: warning: unused variable 'event' [-Wunused-variable]
      wifi_event_sta_connected_t * event = (wifi_event_sta_connected_t*)event_data;
                                   ^~~~~
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/WiFi/src/WiFiGeneric.cpp:289:38: warning: unused variable 'event' [-Wunused-variable]
      wifi_event_sta_disconnected_t * event = (wifi_event_sta_disconnected_t*)event_data;
                                      ^~~~~
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/WiFi/src/WiFiGeneric.cpp:294:28: warning: unused variable 'event' [-Wunused-variable]
         ip_event_got_ip_t* event = (ip_event_got_ip_t*) event_data;
                            ^~~~~
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/WiFi/src/WiFiGeneric.cpp:306:35: warning: unused variable 'event' [-Wunused-variable]
      wifi_event_sta_scan_done_t * event = (wifi_event_sta_scan_done_t*)event_data;
                                   ^~~~~
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/WiFi/src/WiFiGeneric.cpp:321:34: warning: unused variable 'event' [-Wunused-variable]
   wifi_event_ap_probe_req_rx_t * event = (wifi_event_ap_probe_req_rx_t*)event_data;
                                  ^~~~~
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/WiFi/src/WiFiGeneric.cpp:326:33: warning: unused variable 'event' [-Wunused-variable]
   wifi_event_ap_staconnected_t* event = (wifi_event_ap_staconnected_t*) event_data;
                                 ^~~~~
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/WiFi/src/WiFiGeneric.cpp:331:36: warning: unused variable 'event' [-Wunused-variable]
   wifi_event_ap_stadisconnected_t* event = (wifi_event_ap_stadisconnected_t*) event_data;
                                    ^~~~~
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/WiFi/src/WiFiGeneric.cpp:336:36: warning: unused variable 'event' [-Wunused-variable]
      ip_event_ap_staipassigned_t * event = (ip_event_ap_staipassigned_t*)event_data;
                                    ^~~~~
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/WiFi/src/WiFiGeneric.cpp:346:23: warning: unused variable 'eth_handle' [-Wunused-variable]
      esp_eth_handle_t eth_handle = *(esp_eth_handle_t *)event_data;
                       ^~~~~~~~~~
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/WiFi/src/WiFiGeneric.cpp:359:28: warning: unused variable 'event' [-Wunused-variable]
         ip_event_got_ip_t* event = (ip_event_got_ip_t*) event_data;
                            ^~~~~
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/WiFi/src/WiFiGeneric.cpp:386:41: warning: unused variable 'event' [-Wunused-variable]
      wifi_event_sta_wps_fail_reason_t * event = (wifi_event_sta_wps_fail_reason_t*)event_data;
                                         ^~~~~
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/WiFi/src/WiFiGeneric.cpp:392:36: warning: unused variable 'event' [-Wunused-variable]
      wifi_event_sta_wps_er_pin_t * event = (wifi_event_sta_wps_er_pin_t*)event_data;
                                    ^~~~~
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/WiFi/src/WiFiGeneric.cpp:409:44: warning: unused variable 'event' [-Wunused-variable]
         smartconfig_event_got_ssid_pswd_t *event = (smartconfig_event_got_ssid_pswd_t *)event_data;
                                            ^~~~~
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/WiFi/src/WiFiGeneric.cpp:435:28: warning: unused variable 'event' [-Wunused-variable]
         wifi_sta_config_t *event = (wifi_sta_config_t *)event_data;
                            ^~~~~
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/WiFi/src/WiFiGeneric.cpp: At global scope:
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/WiFi/src/WiFiGeneric.cpp:188:21: warning: 'const char* auth_mode_str(int)' defined but not used [-Wunused-function]
 static const char * auth_mode_str(int authmode)
                     ^~~~~~~~~~~~~
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/WiFi/src/WiFiScan.cpp:45:21: warning: 'const char* cipher_str(int)' defined but not used [-Wunused-function]
 static const char * cipher_str(int cipher)
                     ^~~~~~~~~~
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/WiFiClientSecure/src/ssl_client.cpp:23:4: error: #error "Please configure IDF framework to include mbedTLS -> Enable pre-shared-key ciphersuites and activate at least one cipher"
 #  error "Please configure IDF framework to include mbedTLS -> Enable pre-shared-key ciphersuites and activate at least one cipher"
    ^~~~~
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/WiFiClientSecure/src/ssl_client.cpp
 In function 'int start_ssl_client(sslclient_context*, const char*, uint32_t, int, const char*, const char*, const char*, const char*, const char*, bool)':
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/WiFiClientSecure/src/ssl_client.cpp:164:15: error: 'mbedtls_ssl_conf_psk' was not declared in this scope
         ret = mbedtls_ssl_conf_psk(&ssl_client->ssl_conf, psk, psk_len,
               ^~~~~~~~~~~~~~~~~~~~
/mnt/d/Develop/espressif/Project/pdm_mic_WiFiUDPClient/components/arduino/libraries/WiFiClientSecure/src/ssl_client.cpp:164:15: note: suggested alternative: 'mbedtls_ssl_conf_sni'
         ret = mbedtls_ssl_conf_psk(&ssl_client->ssl_conf, psk, psk_len,
               ^~~~~~~~~~~~~~~~~~~~
               mbedtls_ssl_conf_sni
make[2]: *** [esp-idf/arduino/CMakeFiles/__idf_arduino.dir/build.make:999: esp-idf/arduino/CMakeFiles/__idf_arduino.dir/libraries/WiFiClientSecure/src/ssl_client.cpp.obj] Error 1
make[1]: *** [CMakeFiles/Makefile2:5095: esp-idf/arduino/CMakeFiles/__idf_arduino.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
make failed with exit code 2

How to change some parameters of the TCP?

How to change some parameters of the TCP, for example: "CONFIG_LWIP_TCP_TMR_INTERVAL" or "CONFIG_LWIP_TCP_SND_BUF_DEFAULT"? In the old version of the build.sh script, I changed them in the file "sdkconfig.esp32" and everything compiled perfectly. Now If I use this for configuration: "./build.sh -t esp32 -b menuconfig" then the file "sdkconfig" is replaced with the default file after compilation.

Trying to recompile esp32 lib with RTC crystal ext

Hi,
I am trying to build the arduino library in order to change the default RTC source from 150Khz RC Oscillator to external crystal.
For that, I setup esp-idf and the lib builder on a Linux Virtual Machine. I then run idy.py menuconfig and configure the ESP32_RTC_CLK_SRC to an external crystal then build it with ./build.sh.
I copied the lib in /out/tools/sdk/esp32/lib/ to .arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/ and tried to compile the file : blink.ino.

Here are my compilation errors :

Arduino : 1.8.14 Hourly Build 2021/04/08 03:25 (Linux), Carte : "TTGO LoRa32-OLED V1, 80MHz, 115200, None"

/home/balico/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld: warning: cannot find entry symbol call_start_cpu0; not setting start address
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(xtensa_vectors.S.obj):(.iram1.literal+0x8): undefined reference to `_xt_exception_table'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(xtensa_vectors.S.obj):(.iram1.literal+0x28): undefined reference to `_xt_interrupt_table'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(xtensa_vectors.S.obj): In function `_DoubleExceptionVector':
/home/balico/esp/esp-idf/components/freertos/port/xtensa/xtensa_vectors.S:459: undefined reference to `_xt_panic'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(xtensa_vectors.S.obj): In function `_xt_kernel_exc':
/home/balico/esp/esp-idf/components/freertos/port/xtensa/xtensa_vectors.S:494: undefined reference to `_xt_panic'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(xtensa_vectors.S.obj): In function `_xt_coproc_exc':
/home/balico/esp/esp-idf/components/freertos/port/xtensa/xtensa_vectors.S:1050: undefined reference to `_xt_panic'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(port.c.obj):(.literal.vPortYieldOtherCore+0x0): undefined reference to `esp_crosscore_int_send_yield'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(port.c.obj):(.literal.vPortSetStackWatchpoint+0x4): undefined reference to `esp_cpu_set_watchpoint'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(port.c.obj):(.literal.vPortEnterCritical+0x34): undefined reference to `compare_and_set_extram'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(port.c.obj):(.literal.vApplicationStackOverflowHook+0x0): undefined reference to `__stack_chk_guard'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(port.c.obj):(.literal.vApplicationStackOverflowHook+0x18): undefined reference to `esp_system_abort'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(port.c.obj): In function `vPortYieldOtherCore':
/home/balico/esp/esp-idf/components/freertos/port/xtensa/port.c:437: undefined reference to `esp_crosscore_int_send_yield'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(port.c.obj): In function `vPortSetStackWatchpoint':
/home/balico/esp/esp-idf/components/freertos/port/xtensa/port.c:437: undefined reference to `esp_cpu_set_watchpoint'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(port.c.obj): In function `spinlock_acquire':
/home/balico/esp/esp-idf/components/esp_hw_support/include/soc/spinlock.h:96: undefined reference to `compare_and_set_extram'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(port.c.obj): In function `vApplicationStackOverflowHook':
/home/balico/esp/esp-idf/components/freertos/port/xtensa/port.c:490: undefined reference to `esp_system_abort'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(portasm.S.obj):(.literal+0x10): undefined reference to `xt_ints_on'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(portasm.S.obj): In function `vPortYield':
/home/balico/esp/esp-idf/components/freertos/port/xtensa/portasm.S:549: undefined reference to `xthal_window_spill_nw'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(xtensa_context.S.obj): In function `_xt_context_save':
/home/balico/esp/esp-idf/components/freertos/port/xtensa/xtensa_context.S:159: undefined reference to `xthal_save_extra_nw'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(xtensa_context.S.obj): In function `_xt_context_restore':
/home/balico/esp/esp-idf/components/freertos/port/xtensa/xtensa_context.S:262: undefined reference to `xthal_restore_extra_nw'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(queue.c.obj): In function `xQueueGenericReset':
/home/balico/esp/esp-idf/components/freertos/queue.c:1984: undefined reference to `esp_crosscore_int_send_yield'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(queue.c.obj): In function `xQueueGenericSend':
/home/balico/esp/esp-idf/components/freertos/queue.c:1984: undefined reference to `esp_crosscore_int_send_yield'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(queue.c.obj): In function `prvIsQueueFull':
/home/balico/esp/esp-idf/components/freertos/queue.c:1984: undefined reference to `esp_crosscore_int_send_yield'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(queue.c.obj): In function `xQueueSemaphoreTake':
/home/balico/esp/esp-idf/components/freertos/queue.c:1984: undefined reference to `esp_crosscore_int_send_yield'
/home/balico/esp/esp-idf/components/freertos/queue.c:1984: undefined reference to `esp_crosscore_int_send_yield'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(tasks.c.obj):(.literal.xTaskIncrementTick+0x28): undefined reference to `esp_vApplicationTickHook'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(tasks.c.obj): In function `xTaskIncrementTick':
/home/balico/esp/esp-idf/components/freertos/tasks.c:5127: undefined reference to `esp_vApplicationTickHook'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(tasks.c.obj): In function `spinlock_acquire':
/home/balico/esp/esp-idf/components/freertos/tasks.c:5127: undefined reference to `compare_and_set_extram'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libheap.a(multi_heap.c.obj):(.literal.assert_valid_block$isra$2+0x4): undefined reference to `esp_rom_printf'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libheap.a(multi_heap.c.obj): In function `multi_heap_assert':
/home/balico/esp/esp-idf/components/heap/multi_heap.c:187: undefined reference to `esp_rom_printf'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libheap.a(multi_heap_poisoning.c.obj): In function `verify_allocated_region':
/home/balico/esp/esp-idf/components/heap/multi_heap_poisoning.c:344: undefined reference to `esp_rom_printf'
/home/balico/esp/esp-idf/components/heap/multi_heap_poisoning.c:344: undefined reference to `esp_rom_printf'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libfreertos.a(xtensa_vector_defaults.S.obj): In function `_xt_debugexception':
/home/balico/esp/esp-idf/components/freertos/port/xtensa/xtensa_vector_defaults.S:44: undefined reference to `_xt_panic'
core/core.a(WString.cpp.o): In function `String::setSSO(bool)':
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/cores/esp32/WString.cpp:859: undefined reference to `__stack_chk_fail'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libnewlib.a(abort.c.obj):(.literal.unlikely.abort+0x14): undefined reference to `esp_system_abort'
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/lib/libnewlib.a(abort.c.obj): In function `abort':
/home/balico/esp/esp-idf/components/newlib/abort.c:46: undefined reference to `esp_system_abort'
core/core.a(Print.cpp.o):(.literal._ZN5Print11printNumberEmh+0x0): undefined reference to `__stack_chk_guard'
core/core.a(Print.cpp.o):(.literal._ZN5Print11printNumberEmh+0x4): undefined reference to `__stack_chk_fail'
core/core.a(Print.cpp.o): In function `Print::printNumber(unsigned long, unsigned char)':
/home/balico/.arduino15/packages/esp32/hardware/esp32/1.0.6/cores/esp32/Print.cpp:90: undefined reference to `__stack_chk_fail'
collect2: error: ld returned 1 exit status
exit status 1

libesp32.a does not update for APPTRACE

Hardware

Board: ESP32-WROOM
Core Installation version:
IDE name: VSCode/PlatformIO
Flash Frequency: 80 MHZ
PSRAM enabled: no
Upload Speed: 15200
Computer OS: Mac OSX

Description

I have run the builder script to try and enable app trace with the following config settings

CONFIG_ESP32_APPTRACE_DEST_TRAX=y
CONFIG_ESP32_APPTRACE_ENABLE=y
CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y
CONFIG_ESP32_APPTRACE_ONPANIC_HOST_FLUSH_TMO=-1
CONFIG_ESP32_APPTRACE_POSTMORTEM_FLUSH_THRESH=0
CONFIG_ESP32_APPTRACE_PENDING_DATA_SIZE_MAX=0

However, copying the resulting libesp32.a to PlatformIO's arduinoespressif32 framework still results in an undefined reference error when referencing esp_apptrace_vprintf(). I have also tried copying all generated libraries, but that just results in further error. Looking through the readable parts of libesp32.a, I cannot see any reference to apptrace being enabled.

Code

#include <Arduino.h>
#include "esp_app_trace.h"
#include "esp_log.h"

void setup() {
  // put your setup code here, to run once:
  esp_log_set_vprintf(esp_apptrace_vprintf);
}

void loop() {
  // put your main code here, to run repeatedly:
  ESP_LOGV("TEST","Test log message");
  esp_apptrace_flush(ESP_APPTRACE_DEST_TRAX, 100000);
  vTaskDelay(1000/portTICK_PERIOD_MS);
}

Compiler Messages

Processing esp32doit-devkit-v1 (platform: espressif32; board: esp32dev; framework: arduino)
----------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32dev.html
PLATFORM: Espressif 32 1.9.0 > Espressif ESP32 Dev Module
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (jlink) External (esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES: toolchain-xtensa32 2.50200.80 (5.2.0), tool-openocd-esp32 1.1000.20190708 (10.0), framework-arduinoespressif32 2.10002.190628 (1.0.2), tool-esptoolpy 1.20600.0 (2.6.0)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 26 compatible libraries
Scanning dependencies...
No dependencies
Compiling .pio/build/esp32doit-devkit-v1/src/main.cpp.o
Generating partitions .pio/build/esp32doit-devkit-v1/partitions.bin
Archiving .pio/build/esp32doit-devkit-v1/libFrameworkArduinoVariant.a
Indexing .pio/build/esp32doit-devkit-v1/libFrameworkArduinoVariant.a
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/Esp.cpp.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/FunctionalInterrupt.cpp.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/HardwareSerial.cpp.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/IPAddress.cpp.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/IPv6Address.cpp.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/MD5Builder.cpp.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/Print.cpp.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/Stream.cpp.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/StreamString.cpp.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/WMath.cpp.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/WString.cpp.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/base64.cpp.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/cbuf.cpp.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/esp32-hal-adc.c.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/esp32-hal-bt.c.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/esp32-hal-cpu.c.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/esp32-hal-dac.c.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/esp32-hal-gpio.c.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/esp32-hal-i2c.c.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/esp32-hal-ledc.c.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/esp32-hal-matrix.c.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/esp32-hal-misc.c.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/esp32-hal-psram.c.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/esp32-hal-rmt.c.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/esp32-hal-sigmadelta.c.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/esp32-hal-spi.c.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/esp32-hal-time.c.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/esp32-hal-timer.c.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/esp32-hal-touch.c.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/esp32-hal-uart.c.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/libb64/cdecode.c.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/libb64/cencode.c.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/main.cpp.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/stdlib_noniso.c.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/wiring_pulse.c.o
Compiling .pio/build/esp32doit-devkit-v1/FrameworkArduino/wiring_shift.c.o
Archiving .pio/build/esp32doit-devkit-v1/libFrameworkArduino.a
Indexing .pio/build/esp32doit-devkit-v1/libFrameworkArduino.a
Linking .pio/build/esp32doit-devkit-v1/firmware.elf
.pio/build/esp32doit-devkit-v1/src/main.cpp.o:(.literal._Z5setupv+0x0): undefined reference to `esp_apptrace_vprintf(char const*, __va_list_tag)'
.pio/build/esp32doit-devkit-v1/src/main.cpp.o:(.literal._Z4loopv+0x4): undefined reference to `esp_apptrace_flush(esp_apptrace_dest_t, unsigned int)'
.pio/build/esp32doit-devkit-v1/src/main.cpp.o: In function `loop()':
main.cpp:(.text._Z4loopv+0x8): undefined reference to `esp_apptrace_flush(esp_apptrace_dest_t, unsigned int)'
collect2: error: ld returned 1 exit status
*** [.pio/build/esp32doit-devkit-v1/firmware.elf] Error 1

BTU_TASK_STACK_SIZE too small for Polar H10 heart rate monitor

Default value set in sdkconfig.esp32 is:
CONFIG_BT_BTU_TASK_STACK_SIZE=4096

When trying to get services of Polar H10 heart rate monitor, it causes a stack overflow. I detailed the issue here espressif/arduino-esp32#6063.

After setting it to 8192 the library works fine.

As H10 is one of the more popular hr monitors, and other people had the same problem (nkolban/esp32-snippets#837, stackoverflow) I think it's okay to increase it in the official lib.

Master branch. The `-s` and `-t` keys do wrong

Executing the command: ./build.sh -s. Result:

/build.sh: line 162: idf.py: command not found

Executing the command: ./build.sh -c /home/alex/.platformio/packages/framework-arduinoespressif32/ -t esp32 esp32s2. As a result, only SoC esp32 is compiled!
And is deleted in the directory /home/alex/.platformio/packages/framework-arduinoespressif32/tools/ everything except SoC esp32!
I tried to execute the command as indicated in the manual ./build.sh -c /home/alex/.platformio/packages/framework-arduinoespressif32/ -t esp32 esp32-s2. The result is the same.

Build successfull but image is not working

I finally got a the environment build successfully and working within Arduino CC by changing the arduino-esp32 branch to "idf-release/v3.3" (See #12 as well)

I made these changes in my sdkconfig_:

#
# Bluetooth controller
#

CONFIG_BTDM_CONTROLLER_MODE_BLE_ONLY=y

#
# Wi-Fi
#

CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=64
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=64
CONFIG_ESP32_WIFI_TX_BA_WIN=32
CONFIG_ESP32_WIFI_RX_BA_WIN=32

#
# TLS Key Exchange Methods
#

CONFIG_MBEDTLS_SSL_PROTO_DTLS=y

Finally after I build an image, the build is not working as expected :(.
DHCP is not working Serial Input also does not work.

%debug: 0:1726: esp32debug: I (3149) wifi: new:<13,0>, old:<1,0>, ap:<255,255>, sta:<13,0>, prof:1
%debug: 0:1726: esp32debug: I (3150) wifi: state: init -> auth (b0)
%debug: 0:1732: esp32debug: I (3156) wifi: state: auth -> init (8a0)
%debug: 0:1736: esp32debug: I (3159) wifi: new:<13,0>, old:<13,0>, ap:<255,255>, sta:<13,0>, prof:1
%debug: 1:1745: wpsWiFiEvent:Disconnected: Disconnected from station reason: 202 (auth fail), call esp_wifi_connect
%debug: 1:1754: wpsWiFiEvent:Disconnected: WiFi.reconnect
%debug: 1:3811: wpsWiFiEvent:Disconnected: Disconnected from station reason: 205 (other reason), call esp_wifi_connect
%debug: 1:3811: wpsWiFiEvent:Disconnected: WiFi.reconnect
%debug: 0:4177: esp32debug: I (5600) wifi: new:<13,0>, old:<13,0>, ap:<255,255>, sta:<13,0>, prof:1
%debug: 0:4177: esp32debug: I (5601) wifi: state: init -> auth (b0)
%debug: 0:4184: esp32debug: I (5608) wifi: state: auth -> assoc (0)
%debug: 0:4193: esp32debug: I (5616) wifi: state: assoc -> run (10)
%debug: 0:4223: esp32debug: I (5646) wifi: connected with delta Buero, aid = 12, channel 13, BW20, bssid = f4:06:8d:56:6f:30
%debug: 0:4223: esp32debug: I (5647) wifi: security type: 3, phy: bgn, rssi: -66
%debug: 0:4236: esp32debug: I (5660) wifi: pm start, type: 1
%debug: 0:4239: esp32debug: I (5663) wifi: AP's beacon interval = 102400 us, DTIM period = 1
%debug: 1:4248: wpsWiFiEvent: Got IP: 255.255.255.255
%debug: 1:4248: wpsWiFiEvent: Got IP: 255.255.255.255

With the working SDK Version of arduino-lib, it looks like this:

%debug: 0:1700: esp32debug: I (3100) wifi: n:13 0, o:1 0, ap:255 255, sta:13 0, prof:1
%debug: 0:1701: esp32debug: I (3101) wifi: state: init -> auth (b0)
%debug: 0:1706: esp32debug: I (3107) wifi: state: auth -> assoc (0)
%debug: 0:1717: esp32debug: I (3117) wifi: state: assoc -> run (10)
%debug: 0:1747: esp32debug: I (3147) wifi: connected with delta Buero, channel 13, BW20
%debug: 0:1752: esp32debug: I (3153) wifi: pm start, type: 1
%debug: 1:1757: wpsWiFiEvent: STA Connected to: delta Buero
%debug: 1:1780: wpsWiFiEvent: Got IP: 172.21.0.182

Is there any chance to make a working build of the libs with these changed sdkconfig defined?

build on master, not able to LINK

Hello,

I am trying to build arduino libs for my sketch as I cannot work with the official version 1.0.6, it is still MISSING DTLS support in mbedtls which I donm't understand, such a useful feature! Anyway I am trying to build arduino core / libs based on these scripts like I did half year ago, but I had to upgrade to newer versions as arduino-esp32 is not compatible with esp-idf 3.3 anymore.

So I got everything to build successfully (finally) and copied all the necessary files to my local arduino folders (Replaced 1.0.6) but I finally have hit a wall again where I need help.

So I updated my sketch code to support the new esp-idf / arduino code and finally when I got everything compiled, the LINKER fails with this error:

Output: "...\\1.0.6/tools/esptool/esptool.exe" --chip esp32 elf2image --flash_mode dio --flash_freq 80m --flash_size 4MB -o ".../AmbiBack.Controller.ino.bin" ".../AmbiBack.Controller.ino.elf"
Output: esptool.py v3.0-dev
**Output: A fatal error occurred: Invalid segment count 30 (max 16). Usually this indicates a linker script problem.**

I had these problems before and got arround them by enabling some IRAM optimizations. Any help would be appreceated.

Broken build system (idf v4.2)

I just want to use serial GDB stub and himem, so I tried to rebuild the arduino lib, but seems the build system is broken

  1. .`/build.sh prints:
make[4]: *** No targets specified and no makefile found.  Stop. 
make[3]: *** [CMakeFiles/bootloader.dir/build.make:112: bootloader-prefix/src/bootloader-stamp/bootloader-build] Error 2        make[2]: *** [CMakeFiles/Makefile2:2315: CMakeFiles/bootloader.dir/all] Error 2                                                
make[1]: *** [CMakeFiles/Makefile2:2185: CMakeFiles/idf-libs.dir/rule] Error 2                                                  
make: *** [Makefile:164: idf-libs] Error 2                      
command "idf-libs" is not known to idf.py and is not a Unix Makefiles target
  1. After changing the "idf.py idf-libs" to "idf.py build", it can compile successfully, but then stuck in a infinite loop.

bash -x ./tools/prepare-libs.sh


+ for item in "$@"                                             
+ [[ /mnt/dev/home/user/esparduino/esp32-arduino-lib-builder/main != /mnt/dev/home/user/esparduino/esp32-arduino-lib-builder ]]
+ ipath=/mnt/dev/home/user/esparduino/esp32-arduino-lib-builder/main                                                           
++ basename /mnt/dev/home/user/esparduino/esp32-arduino-lib-builder/main                                                       
+ fname=main                                                   
+++ dirname /mnt/dev/home/user/esparduino/esp32-arduino-lib-builder/main                                                       
++ basename /mnt/dev/home/user/esparduino/esp32-arduino-lib-builder                                                            
+ dname=esp32-arduino-lib-builder                              
+ [[ esp32-arduino-lib-builder != \c\o\m\p\o\n\e\n\t\s ]]      
+ [[ esp32-arduino-lib-builder != \b\u\i\l\d ]]                
++ dirname /mnt/dev/home/user/esparduino/esp32-arduino-lib-builder/main                                                        
+ ipath=/mnt/dev/home/user/esparduino/esp32-arduino-lib-builder
++ basename /mnt/dev/home/user/esparduino/esp32-arduino-lib-builder                                                            
+ fname=esp32-arduino-lib-builder                              
+++ dirname /mnt/dev/home/user/esparduino/esp32-arduino-lib-builder                                                            
++ basename /mnt/dev/home/user/esparduino                      
+ dname=esparduino                                             
+ [[ esparduino != \c\o\m\p\o\n\e\n\t\s ]]                     
+ [[ esparduino != \b\u\i\l\d ]]                               
++ dirname /mnt/dev/home/user/esparduino/esp32-arduino-lib-builder                                                             
+ ipath=/mnt/dev/home/user/esparduino                          
++ basename /mnt/dev/home/user/esparduino                      
+ fname=esparduino                                             
+++ dirname /mnt/dev/home/user/esparduino                      
++ basename /mnt/dev/home/user                                 
+ dname=user                                                   
+ [[ user != \c\o\m\p\o\n\e\n\t\s ]]                           
+ [[ user != \b\u\i\l\d ]]                                     
++ dirname /mnt/dev/home/user/esparduino                       
+ ipath=/mnt/dev/home/user                                     
++ basename /mnt/dev/home/user                                 
+ fname=user                                                   
+++ dirname /mnt/dev/home/user                                 
++ basename /mnt/dev/home                                      
+ dname=home                                                   
+ [[ home != \c\o\m\p\o\n\e\n\t\s ]]                           
+ [[ home != \b\u\i\l\d ]]                                     
++ dirname /mnt/dev/home/user                                  
+ ipath=/mnt/dev/home                                          
++ basename /mnt/dev/home                                      
+ fname=home                                                   
+++ dirname /mnt/dev/home                                      
++ basename /mnt/dev                                           
+ dname=dev                                                    
+ [[ dev != \c\o\m\p\o\n\e\n\t\s ]]                            
+ [[ dev != \b\u\i\l\d ]]                                      
++ dirname /mnt/dev/home                                       
+ ipath=/mnt/dev                                               
++ basename /mnt/dev                                           
+ fname=dev                                                    
+++ dirname /mnt/dev                                           
++ basename /mnt                                               
+ dname=mnt                                                    
+ [[ mnt != \c\o\m\p\o\n\e\n\t\s ]]                            
+ [[ mnt != \b\u\i\l\d ]]                                      
++ dirname /mnt/dev                                            
+ ipath=/mnt                                                   
++ basename /mnt                                               
+ fname=mnt                                                    
+++ dirname /mnt                                               
++ basename /                                                  
+ dname=/           
+ [[ / != \c\o\m\p\o\n\e\n\t\s ]]                            
+ [[ / != \b\u\i\l\d ]]                                      
++ dirname /                                            
+ ipath=/                                                   
++ basename /                                              
+ fname=/                                                  
+++ dirname /                                               
++ basename /                                                  
+ dname=/           

"IRAM0 segment data does not fit"

Not sure if this is the right location for this issue.
I am able to build based on esp-idf 3.2 and arduino-esp32 tag 1.0.4.

I incremented some WIFI buffers to this:
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32
CONFIG_ESP32_WIFI_TX_BA_WIN=12
CONFIG_ESP32_WIFI_RX_BA_WIN=16

Now when I build for a PSRAM enabled device (With Camera Support), I get this error:
Controller.ino.elf section .iram0.text' will not fit in region iram0_0_seg'
xtensa-esp32-elf/bin/ld.exe: IRAM0 segment data does not fit.
xtensa-esp32-elf/bin/ld.exe: region `iram0_0_seg' overflowed by 2188 bytes

Is there anything I can to avoid this problem?
CONFIG_ESP32_WIFI_IRAM_OPT and CONFIG_ESP32_WIFI_RX_IRAM_OPT are already disabled.

Menuconfig is not saved

Settings in menuconfig are not saved and will not take effect when built.
Steps to reproduce:
./build.sh -t esp32 -b menuconfig
Change any config and save.
./build.sh -t esp32 -b menuconfig
Observe that the previous setting is on the default value.
Optionally - build and observe that the setting did not take any effect, and is not mentioned in the built sdkconfig.

I have modified a section in sdkconfig and tried to build libs without menuconfig but it was built with the default log level set to error.

#
# Debug Log Configuration
#
# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_NONE is not set
# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_ERROR is not set
# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_WARN is not set
# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_INFO is not set
# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_DEBUG is not set
# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_VERBOSE=y
CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL=5
# CONFIG_ARDUHAL_LOG_COLORS is not set
CONFIG_ARDUHAL_ESP_LOG=y
# end of Debug Log Configuration

The next thing I tried (with the manual changes in sdkconfig) was that I have placed some debug outputs sed -n "218 p" sdkconfig around line 118 of the build.sh and before the rm -rf build sdkconfig

The simplified code looks like this:

sed -n "218 p" sdkconfig
rm -rf build sdkconfig
sed -n "218 p" sdkconfig
idf.py -DIDF_TARGET="$TARGET" -DSDKCONFIG_DEFAULTS="$configs" $BUILD_TYPE
sed -n "218 p" sdkconfig

And the output from the sed+menuconfig:

CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL=5 #manual override
sed: can't read sdkconfig: No such file or directory
Loaded configuration '/home/username/esp32-arduino-lib-builder/sdkconfig'
No changes to save (for '/home/username/esp32-arduino-lib-builder/sdkconfig')
CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL=1

What is strange is that even though the sdkconfig is deleted before calling idf.py menuconfig, I can see the manual change in the menuconfig, but after saving it without change, the settings goes back to defaults.

Error building release/v4.2

I'm trying to compile the release/v4.2 branch and am getting the following error:

Executing action: idf-libs
Running cmake in directory /home/shaun/git/esp32-arduino-lib-builder/build
Executing "cmake -G Ninja -DPYTHON_DEPS_CHECKED=1 -DESP_PLATFORM=1 -DIDF_TARGET=esp32s2 -DCCACHE_ENABLE=0 /home/shaun/git/esp32-arduino-lib-builder"...
-- Found Git: /usr/bin/git (found version "2.25.1") 
-- The C compiler identification is GNU 8.4.0
-- The CXX compiler identification is GNU 8.4.0
-- The ASM compiler identification is GNU
-- Found assembler: /home/shaun/.espressif/tools/xtensa-esp32s2-elf/esp-2020r3-8.4.0/xtensa-esp32s2-elf/bin/xtensa-esp32s2-elf-gcc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/shaun/.espressif/tools/xtensa-esp32s2-elf/esp-2020r3-8.4.0/xtensa-esp32s2-elf/bin/xtensa-esp32s2-elf-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /home/shaun/.espressif/tools/xtensa-esp32s2-elf/esp-2020r3-8.4.0/xtensa-esp32s2-elf/bin/xtensa-esp32s2-elf-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Building ESP-IDF components for target esp32s2
CMake Error at esp-idf/tools/cmake/build.cmake:186 (message):
  Failed to resolve component 'ethernet'.
Call Stack (most recent call first):
  esp-idf/tools/cmake/build.cmake:212 (__build_resolve_and_add_req)
  esp-idf/tools/cmake/build.cmake:426 (__build_expand_requirements)
  esp-idf/tools/cmake/project.cmake:395 (idf_build_process)
  CMakeLists.txt:10 (project)


-- Configuring incomplete, errors occurred!
See also "/home/shaun/git/esp32-arduino-lib-builder/build/CMakeFiles/CMakeOutput.log".
cmake failed with exit code 1

All I've done is checkout this repo, switch branch and run the ./build/sh script. I'm on: ubuntu 20.04

Is there anything else which needs to be done to build?

`SoC esp32s2` Guru Meditation Error...

Master branch. Arluino component branch 2.0.4. IDE VsCode+PlatformIO.
My project lacks internal RAM. Before configuring esp32-arduino-lib-builder to suit my needs, I compiled the default libraries. The result is as follows:

Guru Meditation Error: Core  0 panic'ed (StoreProhibited). Exception was unhandled.

Core  0 register dump:
PC      : 0x40031d41  PS      : 0x00060833  A0      : 0x8003227b  A1      : 0x3fff7900  
A2      : 0x3f780014  A3      : 0x3f780aa8  A4      : 0xffffffff  A5      : 0xffffffff  
A6      : 0x00000006  A7      : 0x3f780a90  A8      : 0x3f780a80  A9      : 0x0000001f  
A10     : 0x00000000  A11     : 0x0000033f  A12     : 0x00000025  A13     : 0x3f780a88  
A14     : 0xfffffffc  A15     : 0x00000019  SAR     : 0x0000001a  EXCCAUSE: 0x0000001d  
EXCVADDR: 0x0000000b  LBEG    : 0x00000025  LEND    : 0x3f780a88  LCOUNT  : 0x40028db8  


Backtrace: 0x40031d3e:0x3fff7900 0x40032278:0x3fff7920 0x4003248e:0x3fff7940 0x40027dc1:0x3fff7960 0x40032855:0x3fff7980 0x40156038:0x3fff79a0 0x4014c143:0x3fff79c0 0x400d9c76:0x3fff79e0 0x400888f6:0x3fff7a60 0x40086e14:0x3fff7a80 0x4008a007:0x3fff7ab0

  #0  0x40031d3e:0x3fff7900 in remove_free_block at /home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/heap/heap_tlsf.c:213
      (inlined by) block_remove at /home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/heap/heap_tlsf.c:261
      (inlined by) block_merge_next at /home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/heap/heap_tlsf.c:367
      (inlined by) tlsf_free at /home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/heap/heap_tlsf.c:897
  #1  0x40032278:0x3fff7920 in multi_heap_free_impl at /home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/heap/multi_heap.c:222
  #2  0x4003248e:0x3fff7940 in multi_heap_free at /home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/heap/multi_heap_poisoning.c:260
  #3  0x40027dc1:0x3fff7960 in heap_caps_free at /home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/heap/heap_caps.c:361
  #4  0x40032855:0x3fff7980 in free at /home/alex/esp/esp32-arduino-lib-builder/esp-idf/components/newlib/heap.c:39
  #5  0x40156038:0x3fff79a0 in ieee80211_ioctl at ??:?
  #6  0x4014c143:0x3fff79c0 in esp_wifi_sta_get_ap_info at ??:?
  #7  0x400d9c76:0x3fff79e0 in WiFiSTAClass::RSSI() at /home/alex/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiSTA.cpp:717
  #8  0x400888f6:0x3fff7a60 in update_rssi() at main/network.cpp:138
  #9  0x40086e14:0x3fff7a80 in lvgl_core::setup_screen(unsigned char) at main/lvgl_core.cpp:1120
  #10 0x4008a007:0x3fff7ab0 in Services::task_lcd(void*) at main/services.cpp:462 (discriminator 5)

When using framework-arduinoespressif32 without compiling libraries using esp32-arduino-lib-builder, this problem did not exist.

build failed with: xtensa/config/core-isa.h: No such file or directory

commit d491d3a565f016d86aa474098a5abf2e88dd0df8 (HEAD -> master, origin/master, origin/HEAD)
Author: Me No Dev <[email protected]>
Date:   Thu Apr 22 12:52:25 2021 +0300

    Update sdkconfig.esp32s2


[ 57%] Built target __idf_spiffs
In file included from /home/mqy/esp32-arduino-lib-builder/components/esp-dsp/modules/dotprod/float/dsps_dotprod_f32_ae32.S:15:
/home/mqy/esp32-arduino-lib-builder/components/esp-dsp/modules/dotprod/include/dsps_dotprod_platform.h:4:10: fatal error: xtensa/config/core-isa.h: No such file or directory
 #include <xtensa/config/core-isa.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [esp-idf/esp-dsp/CMakeFiles/__idf_esp-dsp.dir/build.make:76: esp-idf/esp-dsp/CMakeFiles/__idf_esp-dsp.dir/modules/dotprod/float/dsps_dotprod_f32_ae32.S.obj] Error 1
[ 57%] Building C object esp-idf/libsodium/CMakeFiles/__idf_libsodium.dir/libsodium/src/libsodium/crypto_generichash/blake2b/generichash_blake2.c.obj
[ 57%] Building C object esp-idf/freemodbus/CMakeFiles/__idf_freemodbus.dir/modbus/functions/mbfuncinput_m.c.obj
make[1]: *** [CMakeFiles/Makefile2:5098: esp-idf/esp-dsp/CMakeFiles/__idf_esp-dsp.dir/all] Error 2

can't build environement

jast trying to reinstall. removed all. next oing like it escribe here an got:./build.sh

.....many lines CC etc....

CXX build/arduino/libraries/WiFi/src//WiFiScan.o
/PATHTO/esp/esp32-arduino-lib-builder/components/arduino/libraries/WiFi/src/ETH.cpp: In member function 'IPAddress ETHClass::dnsIP(uint8_t)':
/PATHTO/esp/esp32-arduino-lib-builder/components/arduino/libraries/WiFi/src/ETH.cpp:196:37: error: conversion from 'const ip_addr_t* {aka const ip_addr*}' to non-scalar type 'ip_addr_t {aka ip_addr}' requested
     ip_addr_t dns_ip = dns_getserver(dns_no);
                                     ^
...many lines...
/PATHTO/esp/esp32-arduino-lib-builder/esp-idf/components/app_update/Makefile.projbuild:19: предупреждение: неопределённая переменная «quote»
make: *** [/PATHTO/esp/esp32-arduino-lib-builder/esp-idf/make/project.mk:552: component-arduino-build] Ошибка 2
Toolchain path: /PATHTO/esp/esp32-arduino-lib-builder/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
WARNING: Toolchain version is not supported: crosstool-ng-1.22.0-80-g6c4433a
Expected to see version: crosstool-ng-1.22.0-96-g2852398
Please check ESP-IDF setup instructions and update the toolchain, or proceed at your own risk.
Compiler version: 5.2.0
Arduino libraries in build: ArduinoOTA AsyncUDP AzureIoT BLE BluetoothSerial DNSServer EEPROM ESP32 ESPmDNS FFat FS HTTPClient HTTPUpdate NetBIOS Preferences README.md SD SD_MMC SPI SPIFFS SimpleBLE Ticker Update WebServer WiFi WiFiClientSecure Wire
App "esp32-arduino-lib-builder" version: dca3e75-dirty
WARNING: Toolchain version is not supported: crosstool-ng-1.22.0-80-g6c4433a
Expected to see version: crosstool-ng-1.22.0-96-g2852398
Please check ESP-IDF setup instructions and update the toolchain, or proceed at your own risk.
Python requirements from /PATHTO/esp/esp32-arduino-lib-builder/esp-idf/requirements.txt are satisfied.

...some more lines...

/PATHTO/esp/esp32-arduino-lib-builder/esp-idf/components/app_update/Makefile.projbuild:19: предупреждение: неопределённая переменная «quote»
/PATHTO/esp/esp32-arduino-lib-builder/components/arduino/libraries/WiFi/src/WiFiSTA.cpp: In member function 'IPAddress WiFiSTAClass::dnsIP(uint8_t)':
/PATHTO/esp/esp32-arduino-lib-builder/components/arduino/libraries/WiFi/src/WiFiSTA.cpp:491:37: error: conversion from 'const ip_addr_t* {aka const ip_addr*}' to non-scalar type 'ip_addr_t {aka ip_addr}' requested
     ip_addr_t dns_ip = dns_getserver(dns_no);
                                     ^
make[1]: *** [/PATHTO/esp/esp32-arduino-lib-builder/esp-idf/make/component_wrapper.mk:290: libraries/WiFi/src//WiFiSTA.o] Ошибка 1
make[1]: *** Ожидание завершения заданий…
/PATHTO/esp/esp32-arduino-lib-builder/components/arduino/libraries/WiFi/src/ETH.cpp: In member function 'IPAddress ETHClass::dnsIP(uint8_t)':
/PATHTO/esp/esp32-arduino-lib-builder/components/arduino/libraries/WiFi/src/ETH.cpp:196:37: error: conversion from 'const ip_addr_t* {aka const ip_addr*}' to non-scalar type 'ip_addr_t {aka ip_addr}' requested
     ip_addr_t dns_ip = dns_getserver(dns_no);
                                     ^
make[1]: *** [/PATHTO/esp/esp32-arduino-lib-builder/esp-idf/make/component_wrapper.mk:290: libraries/WiFi/src//ETH.o] Ошибка 1
make: *** [/PATHTO/esp/esp32-arduino-lib-builder/esp-idf/make/project.mk:552: component-arduino-build] Ошибка 2

does i nee to clone older buil?

How do I build with a customized sdkconfig

I've run idf.py menuconfig and changed the settings but after running "./build.sh" it's reverted back and built with stock config.

I then tried "./build.sh -t esp32 -b menuconfig qio 40m" but it just terminates after it runs menuconfig and I save/exit the config.
Running "./build.sh -s" after results in sdkconfig getting reset to defaults.

My goal is to enable the RTC clock to use an external crystal within the Arduino IDE v2.0.3 environment.

optional: I will figure out why it's requiring tools/esptool/* and tools/openocd-esp32/* be installed when the default arduino-esp32 does not. (https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json )

ESP32 header fields too long for server to interpret

Hi,
This issue has been on GIthub before for a long time, but I still see no solution.
I was using Firefox, so could get around it.
But now I am using Webview in Android Studio, and have again the problem of headers too long.
Changing the HTTPD_MAX value in sdkconfig does not solve the issue.
Is there a "real" solution in the mean time ?
thanks in advance
best regards
Ludo

WiP branch ESP IDF 5.1 issues

@me-no-dev Knowing that the IDF 5.1 build branch is a non stable WiP one i have two questions / issues.

  1. Wrong Config
lib-builder/esp-idf/components/soc/esp32/ld/esp32.peripherals.ld
[493](https://github.com/Jason2866/esp32-arduino-lib-builder/actions/runs/4184112210/jobs/7249335397#step:5:494)
CMake Error at components/arduino/CMakeLists.txt:207 (message):
[494](https://github.com/Jason2866/esp32-arduino-lib-builder/actions/runs/4184112210/jobs/7249335397#step:5:495)
  esp32-arduino requires CONFIG_FREERTOS_HZ=1000 (currently 100)
[495](https://github.com/Jason2866/esp32-arduino-lib-builder/actions/runs/4184112210/jobs/7249335397#step:5:496)

[496](https://github.com/Jason2866/esp32-arduino-lib-builder/actions/runs/4184112210/jobs/7249335397#step:5:497)

[497](https://github.com/Jason2866/esp32-arduino-lib-builder/actions/runs/4184112210/jobs/7249335397#step:5:498)
-- Configuring incomplete, errors occurred!
  1. later it fails with
-- Adding linker script /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/soc/esp32s3/ld/esp32s3.peripherals.ld
[560](https://github.com/Jason2866/esp32-arduino-lib-builder/actions/runs/4184112210/jobs/7249335397#step:5:561)
CMake Error at esp-idf/tools/cmake/component.cmake:381 (__component_get_property):
[561](https://github.com/Jason2866/esp32-arduino-lib-builder/actions/runs/4184112210/jobs/7249335397#step:5:562)
  __component_get_property Function invoked with incorrect arguments for
[562](https://github.com/Jason2866/esp32-arduino-lib-builder/actions/runs/4184112210/jobs/7249335397#step:5:563)
  function named: __component_get_property
[563](https://github.com/Jason2866/esp32-arduino-lib-builder/actions/runs/4184112210/jobs/7249335397#step:5:564)
Call Stack (most recent call first):
[564](https://github.com/Jason2866/esp32-arduino-lib-builder/actions/runs/4184112210/jobs/7249335397#step:5:565)
  components/esp-sr/CMakeLists.txt:68 (idf_component_get_property)

The failing GH Actions build run https://github.com/Jason2866/esp32-arduino-lib-builder/actions/runs/4184112210/jobs/7249335397

Can you help? Thx!

ESP32 Arduino 1.0.5 RC6 issue with lib-builder

I have upgraded my Arduino IDE by adding this URL "https://github.com/espressif/arduino-esp32/releases/download/1.0.5-rc6/package_esp32_dev_index.json" to Additional Board Managers, so that Arduino version in lib-builder and the one in Arduino IDE match. After generating new libraries with the lib-builder tool, I replaced the "lib" folder in Arduino IDE with the one generated in lib-builder (inside "out" folder). Then I compiled my project and received following error:

libraries\WiFi\WiFiGeneric.cpp.o:(.literal._ZN16WiFiGenericClass4modeE11wifi_mode_t+0x10): undefined reference to `g_wifi_feature_caps'
.

Then, instead of replacing just the "lib" folder, I replaced the whole "sdk" folder, and now everything compiles well. Is it normal behavior? Shouldn't updating just the lib folder be sufficient?

How to flash the sketch file?

The build was finish successfully.
What are the steps to run some example?

I saw i have example code in path: main/sketch.cpp
I enter this folder and run command:

idf.py -p /dev/tty.usbserial-0001 flash

But i got errors:

Executing action: flash
Running cmake in directory /Users/roysabah/esp/esp32-arduino-lib-builder/main/build
Executing "cmake -G Ninja -DPYTHON_DEPS_CHECKED=1 -DESP_PLATFORM=1 -DCCACHE_ENABLE=0 /Users/roysabah/esp/esp32-arduino-lib-builder/main"...
CMake Warning (dev) in CMakeLists.txt:
No project() command is present. The top-level CMakeLists.txt file must
contain a literal, direct call to the project() command. Add a line of
code such as

project(ProjectName)

near the top of the file, but after cmake_minimum_required().

CMake is pretending there is a "project(Project)" command on the first
line.
This warning is for project developers. Use -Wno-dev to suppress it.

-- The C compiler identification is AppleClang 11.0.3.11030032
-- The CXX compiler identification is AppleClang 11.0.3.11030032
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at CMakeLists.txt:1 (idf_component_register):
Unknown CMake command "idf_component_register".

CMake Warning (dev) in CMakeLists.txt:
No cmake_minimum_required command is present. A line of code such as

cmake_minimum_required(VERSION 3.21)

should be added at the top of the file. The version specified may be lower
if you wish to support older CMake versions for this project. For more
information run "cmake --help-policy CMP0000".
This warning is for project developers. Use -Wno-dev to suppress it.

-- Configuring incomplete, errors occurred!
See also "/Users/roysabah/esp/esp32-arduino-lib-builder/main/build/CMakeFiles/CMakeOutput.log".
cmake failed with exit code 1

Do i miss something?

Option to disable Bluetooth support

Related area

Make an option to use a version of IDF built without BT support to free up xt_highint4

Hardware specification

Support for all ESP32 versions

Is your feature request related to a problem?

My "legacy" application has a need for a high level interrupt, which was connected to xt_highint5. Now that's used by IDF, so I have to migrate.
I realised that xt_highint4 is also taken by the stack, please make it available.

Describe the solution you'd like

Have a setting in the menu.

Describe alternatives you've considered

No response

Additional context

No response

I have checked existing list of Feature requests and the Contribution Guide

  • I confirm I have checked existing list of Feature requests and Contribution Guide.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.