diff --git a/.claude/settings.local.json b/.claude/settings.local.json
index cdd5577..eae2782 100644
--- a/.claude/settings.local.json
+++ b/.claude/settings.local.json
@@ -6,8 +6,23 @@
"Bash(git add:*)",
"Bash(git commit:*)",
"Bash(pip install:*)",
- "Bash(build_from_spec.bat)"
+ "Bash(build_from_spec.bat)",
+ "mcp__ide__getDiagnostics",
+ "Bash(source:*)",
+ "Bash(chmod:*)",
+ "Bash(python3:*)",
+ "Bash(pyinstaller:*)",
+ "Bash(open:*)",
+ "Bash(dos2unix:*)",
+ "Bash(./build_macos.sh:*)",
+ "Bash(brew install:*)",
+ "Bash(python:*)",
+ "Bash(./dist/ESP32_Flasher:*)",
+ "Bash(pkill:*)",
+ "Bash(curl -s http://127.0.0.1:5000/)",
+ "Bash(./build_web_macos.sh:*)",
+ "Bash(./dist/ESP32_Flasher.app/Contents/MacOS/ESP32_Flasher:*)"
],
"deny": []
}
-}
\ No newline at end of file
+}
diff --git a/.gitignore b/.gitignore
index 03cfb2b..4e997ba 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,22 @@
.pytest_cache/
__pycache__/
+# macOS
+.DS_Store
+
+# Python virtual environments
+venv/
+env/
+ENV/
+.venv/
+
+# PyInstaller build artifacts
+dist/
+build/
+*.spec
+*.pyc
+*.pyo
+
# esp-idf built binaries
build/
build_*_*/
diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json
index 4039bef..090c786 100644
--- a/.vscode/c_cpp_properties.json
+++ b/.vscode/c_cpp_properties.json
@@ -1,15 +1,21 @@
{
"configurations": [
{
- "name": "Linux",
+ "name": "Mac",
"includePath": [
- "${workspaceFolder}/**"
+ "${workspaceFolder}/**",
+ "/Users/brent/esp/v5.5.1/esp-idf/components/**",
+ "/Users/brent/.espressif/tools/xtensa-esp-elf/**",
+ "${workspaceFolder}/build/config",
+ "${workspaceFolder}/managed_components/**"
],
- "defines": [],
- "compilerPath": "/usr/bin/gcc",
- "cStandard": "c17",
- "cppStandard": "gnu++17",
- "intelliSenseMode": "linux-gcc-x64"
+ "defines": [
+ "ESP_PLATFORM"
+ ],
+ "compilerPath": "/Users/brent/.espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/xtensa-esp32-elf-gcc",
+ "cStandard": "c11",
+ "cppStandard": "c++20",
+ "intelliSenseMode": "gcc-x64"
}
],
"version": 4
diff --git a/.vscode/settings.json b/.vscode/settings.json
index bbeffe4..7b64351 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -40,5 +40,7 @@
"random": "c"
},
"git.ignoreLimitWarning": true,
- "idf.pythonInstallPath": "/usr/bin/python"
+ "idf.pythonInstallPath": "/opt/homebrew/bin/python3",
+ "idf.espIdfPath": "/Users/brent/esp/v5.5.1/esp-idf",
+ "idf.toolsPath": "/Users/brent/.espressif"
}
diff --git a/flash_tool/BUILD_NOTES.md b/flash_tool/BUILD_NOTES.md
new file mode 100644
index 0000000..cb8a8f2
--- /dev/null
+++ b/flash_tool/BUILD_NOTES.md
@@ -0,0 +1,110 @@
+# Build Notes
+
+## Build Status
+
+✅ **macOS Build: SUCCESS**
+- Built on: macOS 15.6 (arm64)
+- Python Version: 3.9.6 (Xcode system Python with tkinter support)
+- Output: `dist/ESP32_Flasher.app`
+- Size: ~7.0 MB
+- Tested: ✅ Application launches and runs successfully
+
+## Prerequisites
+
+### macOS
+**Important:** Homebrew's Python 3.13 does NOT include tkinter support by default.
+
+**Solution:** Install python-tk package:
+```bash
+brew install python-tk@3.13
+```
+
+However, the build system will automatically use the system Python (3.9.6 from Xcode) which has tkinter built-in. This is the recommended approach.
+
+## Known Issues
+
+### ~~macOS tkinter Warning~~ - RESOLVED
+**Previous Issue:** Homebrew Python 3.13 doesn't include tkinter
+**Solution:** Build system now uses Xcode's Python 3.9.6 which has native tkinter support
+**Status:** ✅ Fixed - no warnings, app works perfectly
+
+### Virtual Environment Required (macOS)
+Due to PEP 668 (externally-managed environments), macOS requires using a virtual environment for pip installations. The build scripts automatically handle this.
+
+## Build Commands
+
+### Quick Build (Any Platform)
+```bash
+python3 build.py
+```
+
+### macOS Specific
+```bash
+./build_macos.sh
+```
+or
+```bash
+source venv/bin/activate
+pyinstaller ESP32_Flasher_macOS.spec
+```
+
+### Windows Specific
+```batch
+build_from_spec.bat
+```
+
+## Distribution
+
+### macOS
+- Distribute the entire `ESP32_Flasher.app` folder (it's a bundle)
+- Users may need to run: `xattr -cr ESP32_Flasher.app` if macOS blocks it
+- Consider creating a DMG for easier distribution
+
+### Windows
+- Distribute the single `ESP32_Flasher.exe` file
+- No installation required
+- May trigger Windows SmartScreen (normal for unsigned apps)
+
+## File Structure
+
+```
+flash_tool/
+├── dist/ # Build output
+│ ├── ESP32_Flasher.app # macOS bundle
+│ └── ESP32_Flasher # Standalone binary
+├── build/ # Build artifacts
+├── venv/ # Python virtual environment (macOS)
+├── gui_flasher.py # Source code
+├── ESP32_Flasher_macOS.spec # macOS build config
+├── ESP32_Flasher_Windows.spec # Windows build config
+├── build.py # Universal build script
+├── build_macos.sh # macOS build script
+└── build_from_spec.bat # Windows build script
+```
+
+## Next Steps
+
+1. **Testing**: Test the app with actual ESP32 hardware and firmware
+2. **Icons**: Add custom icons (.icns for macOS, .ico for Windows)
+3. **Code Signing**: Sign the executables for production distribution
+4. **DMG Creation**: Package macOS app in a DMG for easier distribution
+5. **Windows Installer**: Consider creating an NSIS or WiX installer
+
+## Troubleshooting
+
+### "App is damaged" on macOS
+```bash
+xattr -cr dist/ESP32_Flasher.app
+```
+
+### Port permission issues on Linux
+```bash
+sudo usermod -a -G dialout $USER
+```
+(Logout/login required)
+
+### Build fails on macOS
+Make sure virtual environment is active:
+```bash
+source venv/bin/activate
+```
diff --git a/flash_tool/ESP32_Flasher_Windows.spec b/flash_tool/ESP32_Flasher_Windows.spec
new file mode 100644
index 0000000..adf654a
--- /dev/null
+++ b/flash_tool/ESP32_Flasher_Windows.spec
@@ -0,0 +1,45 @@
+# -*- mode: python ; coding: utf-8 -*-
+# PyInstaller spec file for Windows executable
+
+block_cipher = None
+
+a = Analysis(
+ ['gui_flasher.py'],
+ pathex=[],
+ binaries=[],
+ datas=[('requirements.txt', '.')],
+ hiddenimports=['serial.tools.list_ports'],
+ hookspath=[],
+ hooksconfig={},
+ runtime_hooks=[],
+ excludes=[],
+ win_no_prefer_redirects=False,
+ win_private_assemblies=False,
+ cipher=block_cipher,
+ noarchive=False,
+)
+
+pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
+
+exe = EXE(
+ pyz,
+ a.scripts,
+ a.binaries,
+ a.zipfiles,
+ a.datas,
+ [],
+ name='ESP32_Flasher',
+ debug=False,
+ bootloader_ignore_signals=False,
+ strip=False,
+ upx=True,
+ upx_exclude=[],
+ runtime_tmpdir=None,
+ console=False, # Set to False for windowed mode (no console)
+ disable_windowed_traceback=False,
+ argv_emulation=False,
+ target_arch=None,
+ codesign_identity=None,
+ entitlements_file=None,
+ icon=None, # Add path to .ico file if you have one
+)
diff --git a/flash_tool/ESP32_Flasher_macOS.spec b/flash_tool/ESP32_Flasher_macOS.spec
new file mode 100644
index 0000000..f3b5084
--- /dev/null
+++ b/flash_tool/ESP32_Flasher_macOS.spec
@@ -0,0 +1,56 @@
+# -*- mode: python ; coding: utf-8 -*-
+# PyInstaller spec file for macOS executable
+
+block_cipher = None
+
+a = Analysis(
+ ['gui_flasher.py'],
+ pathex=[],
+ binaries=[],
+ datas=[('requirements.txt', '.')],
+ hiddenimports=['serial.tools.list_ports'],
+ hookspath=[],
+ hooksconfig={},
+ runtime_hooks=[],
+ excludes=[],
+ win_no_prefer_redirects=False,
+ win_private_assemblies=False,
+ cipher=block_cipher,
+ noarchive=False,
+)
+
+pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
+
+exe = EXE(
+ pyz,
+ a.scripts,
+ a.binaries,
+ a.zipfiles,
+ a.datas,
+ [],
+ name='ESP32_Flasher',
+ debug=False,
+ bootloader_ignore_signals=False,
+ strip=False,
+ upx=True,
+ upx_exclude=[],
+ runtime_tmpdir=None,
+ console=False, # macOS app bundle (no console window)
+ disable_windowed_traceback=False,
+ argv_emulation=False,
+ target_arch=None,
+ codesign_identity=None,
+ entitlements_file=None,
+)
+
+# Create macOS app bundle
+app = BUNDLE(
+ exe,
+ name='ESP32_Flasher.app',
+ icon=None, # Add path to .icns file if you have one
+ bundle_identifier='com.soundshot.esp32flasher',
+ info_plist={
+ 'NSPrincipalClass': 'NSApplication',
+ 'NSHighResolutionCapable': 'True',
+ },
+)
diff --git a/flash_tool/ESP32_WebFlasher_Windows.spec b/flash_tool/ESP32_WebFlasher_Windows.spec
new file mode 100644
index 0000000..00ce816
--- /dev/null
+++ b/flash_tool/ESP32_WebFlasher_Windows.spec
@@ -0,0 +1,55 @@
+# -*- mode: python ; coding: utf-8 -*-
+# PyInstaller spec file for Windows executable (Web-based UI)
+
+block_cipher = None
+
+a = Analysis(
+ ['web_flasher.py'],
+ pathex=[],
+ binaries=[],
+ datas=[
+ ('templates', 'templates'),
+ ],
+ hiddenimports=[
+ 'serial.tools.list_ports',
+ 'flask',
+ 'jinja2',
+ 'werkzeug',
+ 'flask_socketio',
+ 'socketio',
+ 'engineio.async_drivers.threading',
+ ],
+ hookspath=[],
+ hooksconfig={},
+ runtime_hooks=[],
+ excludes=[],
+ win_no_prefer_redirects=False,
+ win_private_assemblies=False,
+ cipher=block_cipher,
+ noarchive=False,
+)
+
+pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
+
+exe = EXE(
+ pyz,
+ a.scripts,
+ a.binaries,
+ a.zipfiles,
+ a.datas,
+ [],
+ name='ESP32_Flasher',
+ debug=False,
+ bootloader_ignore_signals=False,
+ strip=False,
+ upx=True,
+ upx_exclude=[],
+ runtime_tmpdir=None,
+ console=False, # No console window
+ disable_windowed_traceback=False,
+ argv_emulation=False,
+ target_arch=None,
+ codesign_identity=None,
+ entitlements_file=None,
+ icon=None, # Add path to .ico file if you have one
+)
diff --git a/flash_tool/ESP32_WebFlasher_macOS.spec b/flash_tool/ESP32_WebFlasher_macOS.spec
new file mode 100644
index 0000000..77a43ee
--- /dev/null
+++ b/flash_tool/ESP32_WebFlasher_macOS.spec
@@ -0,0 +1,68 @@
+# -*- mode: python ; coding: utf-8 -*-
+# PyInstaller spec file for macOS executable (Web-based UI)
+
+block_cipher = None
+
+a = Analysis(
+ ['web_flasher.py'],
+ pathex=[],
+ binaries=[],
+ datas=[
+ ('templates', 'templates'),
+ ],
+ hiddenimports=[
+ 'serial.tools.list_ports',
+ 'flask',
+ 'jinja2',
+ 'werkzeug',
+ 'flask_socketio',
+ 'socketio',
+ 'engineio.async_drivers.threading',
+ ],
+ hookspath=[],
+ hooksconfig={},
+ runtime_hooks=[],
+ excludes=[],
+ win_no_prefer_redirects=False,
+ win_private_assemblies=False,
+ cipher=block_cipher,
+ noarchive=False,
+)
+
+pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
+
+exe = EXE(
+ pyz,
+ a.scripts,
+ a.binaries,
+ a.zipfiles,
+ a.datas,
+ [],
+ name='ESP32_Flasher',
+ debug=False,
+ bootloader_ignore_signals=False,
+ strip=False,
+ upx=True,
+ upx_exclude=[],
+ runtime_tmpdir=None,
+ console=False, # macOS app bundle (no console window)
+ disable_windowed_traceback=False,
+ argv_emulation=False,
+ target_arch=None,
+ codesign_identity=None,
+ entitlements_file=None,
+)
+
+# Create macOS app bundle
+app = BUNDLE(
+ exe,
+ name='ESP32_Flasher.app',
+ icon=None, # Add path to .icns file if you have one
+ bundle_identifier='com.soundshot.esp32flasher',
+ info_plist={
+ 'NSPrincipalClass': 'NSApplication',
+ 'NSHighResolutionCapable': 'True',
+ 'CFBundleShortVersionString': '1.0.0',
+ 'CFBundleDisplayName': 'ESP32 Flasher',
+ },
+)
diff --git a/flash_tool/README.md b/flash_tool/README.md
new file mode 100644
index 0000000..72e54ba
--- /dev/null
+++ b/flash_tool/README.md
@@ -0,0 +1,148 @@
+# ESP32 Firmware Flasher GUI
+
+A cross-platform GUI tool for flashing ESP32 firmware packages.
+
+## Features
+
+- Simple, user-friendly graphical interface
+- Cross-platform support (Windows, macOS, Linux)
+- Automatic serial port detection
+- Firmware package validation (.zip files)
+- Real-time flashing progress output
+- Configurable flash parameters
+
+## Building Executables
+
+### Universal Build (Recommended)
+
+The easiest way to build for your current platform:
+
+```bash
+python build.py
+```
+
+This script will:
+1. Detect your platform automatically
+2. Install required dependencies
+3. Build the appropriate executable
+
+### Platform-Specific Builds
+
+#### macOS
+
+```bash
+./build_macos.sh
+```
+
+This creates an application bundle at `dist/ESP32_Flasher.app`
+
+To run:
+```bash
+open dist/ESP32_Flasher.app
+```
+
+#### Windows
+
+```batch
+build_from_spec.bat
+```
+
+This creates an executable at `dist\ESP32_Flasher.exe`
+
+#### Linux
+
+```bash
+python build.py
+```
+
+Creates an executable at `dist/ESP32_Flasher`
+
+## Running Without Building
+
+You can run the GUI directly with Python:
+
+```bash
+python gui_flasher.py
+```
+
+### Requirements
+
+```bash
+pip install -r requirements.txt
+```
+
+## Firmware Package Format
+
+The flasher expects a `.zip` file containing these files:
+- `bootloader.bin` - ESP32 bootloader
+- `partition-table.bin` - Partition table
+- `ota_data_initial.bin` - OTA data
+- `soundshot.bin` - Main application firmware
+
+## Usage
+
+1. Launch the ESP32_Flasher application
+2. Select your ESP32's serial port (or click Refresh)
+3. Browse and select your firmware `.zip` package
+4. (Optional) Adjust flash settings if needed
+5. Click "Flash Firmware"
+6. Wait for the process to complete
+
+## Flash Settings
+
+Default settings work for most ESP32 boards:
+- **Chip**: esp32
+- **Baud Rate**: 460800 (faster) or 115200 (more reliable)
+- **Flash Mode**: dio
+- **Flash Freq**: 40m
+- **Flash Size**: 2MB (adjust based on your board)
+
+## Troubleshooting
+
+### Port Not Detected
+- Ensure ESP32 is connected via USB
+- Install CH340/CP2102 drivers if needed (Windows/macOS)
+- On Linux, add user to `dialout` group: `sudo usermod -a -G dialout $USER`
+
+### Flash Failed
+- Try lower baud rate (115200)
+- Press and hold BOOT button during flash
+- Check USB cable quality
+- Verify firmware package integrity
+
+### macOS: "App is damaged"
+Run this command to allow the app:
+```bash
+xattr -cr dist/ESP32_Flasher.app
+```
+
+## Development
+
+### Project Structure
+
+```
+flash_tool/
+├── gui_flasher.py # Main GUI application
+├── ESP32_Flasher_macOS.spec # PyInstaller spec for macOS
+├── ESP32_Flasher_Windows.spec # PyInstaller spec for Windows
+├── build.py # Universal build script
+├── build_macos.sh # macOS build script
+├── build_from_spec.bat # Windows build script
+├── requirements.txt # Python dependencies
+└── README.md # This file
+```
+
+### Dependencies
+
+- **tkinter**: GUI framework (included with Python)
+- **pyserial**: Serial port communication
+- **esptool**: ESP32 flashing utility
+- **pyinstaller**: Executable builder
+
+## License
+
+[Your license here]
+
+## Support
+
+For issues and questions, please contact [your contact info].
diff --git a/flash_tool/build.py b/flash_tool/build.py
new file mode 100755
index 0000000..781eadd
--- /dev/null
+++ b/flash_tool/build.py
@@ -0,0 +1,171 @@
+#!/usr/bin/env python3
+"""
+Universal build script for ESP32 Flasher GUI
+Automatically detects platform and builds the appropriate executable
+"""
+
+import sys
+import subprocess
+import platform
+import os
+
+def get_platform():
+ """Detect the current platform"""
+ system = platform.system()
+ if system == "Darwin":
+ return "macos"
+ elif system == "Windows":
+ return "windows"
+ elif system == "Linux":
+ return "linux"
+ else:
+ return "unknown"
+
+def setup_venv():
+ """Create and setup virtual environment if on macOS"""
+ if platform.system() == "Darwin":
+ if not os.path.exists("venv"):
+ print("Creating virtual environment (required on macOS)...")
+ try:
+ subprocess.run([sys.executable, "-m", "venv", "venv"], check=True)
+ print("✓ Virtual environment created")
+ except subprocess.CalledProcessError as e:
+ print(f"✗ Failed to create virtual environment: {e}")
+ return False
+
+ # Use venv Python for the rest of the script
+ venv_python = os.path.join("venv", "bin", "python3")
+ if os.path.exists(venv_python):
+ return venv_python
+
+ return sys.executable
+
+def install_dependencies(python_exe=None):
+ """Install required Python packages"""
+ if python_exe is None:
+ python_exe = sys.executable
+
+ print("Installing dependencies...")
+ packages = ["pyinstaller", "esptool", "pyserial"]
+
+ try:
+ subprocess.run([python_exe, "-m", "pip", "install"] + packages, check=True)
+ print("✓ Dependencies installed successfully")
+ return True
+ except subprocess.CalledProcessError as e:
+ print(f"✗ Failed to install dependencies: {e}")
+ return False
+
+def build_macos():
+ """Build macOS application bundle"""
+ print("\n=== Building for macOS ===")
+ spec_file = "ESP32_Flasher_macOS.spec"
+
+ if not os.path.exists(spec_file):
+ print(f"✗ Error: {spec_file} not found")
+ return False
+
+ try:
+ subprocess.run(["pyinstaller", spec_file], check=True)
+
+ if os.path.exists("dist/ESP32_Flasher.app"):
+ print("\n✓ Build complete!")
+ print(f"\nApplication created at: dist/ESP32_Flasher.app")
+ print("\nTo run the application:")
+ print(" open dist/ESP32_Flasher.app")
+ return True
+ else:
+ print("\n✗ Build failed - application not found in dist folder")
+ return False
+
+ except subprocess.CalledProcessError as e:
+ print(f"\n✗ Build failed: {e}")
+ return False
+
+def build_windows():
+ """Build Windows executable"""
+ print("\n=== Building for Windows ===")
+ spec_file = "ESP32_Flasher_Windows.spec"
+
+ if not os.path.exists(spec_file):
+ print(f"✗ Error: {spec_file} not found")
+ return False
+
+ try:
+ subprocess.run(["pyinstaller", spec_file], check=True)
+
+ if os.path.exists("dist/ESP32_Flasher.exe"):
+ print("\n✓ Build complete!")
+ print(f"\nExecutable created at: dist\\ESP32_Flasher.exe")
+ print("\nYou can now distribute ESP32_Flasher.exe to users.")
+ return True
+ else:
+ print("\n✗ Build failed - executable not found in dist folder")
+ return False
+
+ except subprocess.CalledProcessError as e:
+ print(f"\n✗ Build failed: {e}")
+ return False
+
+def build_linux():
+ """Build Linux executable"""
+ print("\n=== Building for Linux ===")
+ print("Note: Linux users typically prefer to run Python scripts directly.")
+ print("Creating standalone executable anyway...")
+
+ # Use macOS spec as template for Linux (both use ELF format)
+ spec_file = "ESP32_Flasher_macOS.spec"
+
+ if not os.path.exists(spec_file):
+ print(f"✗ Error: {spec_file} not found")
+ return False
+
+ try:
+ subprocess.run(["pyinstaller", spec_file], check=True)
+
+ if os.path.exists("dist/ESP32_Flasher"):
+ print("\n✓ Build complete!")
+ print(f"\nExecutable created at: dist/ESP32_Flasher")
+ print("\nTo run:")
+ print(" ./dist/ESP32_Flasher")
+ return True
+ else:
+ print("\n✗ Build failed - executable not found in dist folder")
+ return False
+
+ except subprocess.CalledProcessError as e:
+ print(f"\n✗ Build failed: {e}")
+ return False
+
+def main():
+ """Main build function"""
+ print("=== ESP32 Flasher - Universal Build Script ===\n")
+
+ # Detect platform
+ current_platform = get_platform()
+ print(f"Detected platform: {current_platform}")
+
+ if current_platform == "unknown":
+ print("✗ Unsupported platform")
+ return 1
+
+ # Setup virtual environment if needed (macOS)
+ python_exe = setup_venv()
+
+ # Install dependencies
+ if not install_dependencies(python_exe):
+ return 1
+
+ # Build for detected platform
+ success = False
+ if current_platform == "macos":
+ success = build_macos()
+ elif current_platform == "windows":
+ success = build_windows()
+ elif current_platform == "linux":
+ success = build_linux()
+
+ return 0 if success else 1
+
+if __name__ == "__main__":
+ sys.exit(main())
diff --git a/flash_tool/build_from_spec.bat b/flash_tool/build_from_spec.bat
index 49cf1c1..9d95357 100644
--- a/flash_tool/build_from_spec.bat
+++ b/flash_tool/build_from_spec.bat
@@ -1,11 +1,24 @@
@echo off
+echo === ESP32 Flasher - Windows Build Script ===
+echo.
+
echo Installing dependencies...
pip install pyinstaller esptool pyserial
echo.
-echo Building executable from spec file...
-pyinstaller ESP32_Flasher.spec
+echo Building Windows executable...
+pyinstaller ESP32_Flasher_Windows.spec
echo.
-echo Build complete! Find ESP32_Flasher.exe in the dist folder.
+if exist "dist\ESP32_Flasher.exe" (
+ echo Build complete!
+ echo.
+ echo Executable created at: dist\ESP32_Flasher.exe
+ echo.
+ echo You can now distribute ESP32_Flasher.exe to users.
+) else (
+ echo Build failed - executable not found in dist folder
+ exit /b 1
+)
+
pause
\ No newline at end of file
diff --git a/flash_tool/build_macos.sh b/flash_tool/build_macos.sh
new file mode 100755
index 0000000..8e481a6
--- /dev/null
+++ b/flash_tool/build_macos.sh
@@ -0,0 +1,45 @@
+#!/bin/bash
+# Build script for macOS executable
+
+echo "=== ESP32 Flasher - macOS Build Script ==="
+echo ""
+
+# Check if running on macOS
+if [[ "$OSTYPE" != "darwin"* ]]; then
+ echo "❌ Error: This script is for macOS only."
+ echo " Use build_from_spec.bat on Windows."
+ exit 1
+fi
+
+# Create virtual environment if it doesn't exist
+if [ ! -d "venv" ]; then
+ echo "Creating virtual environment..."
+ python3 -m venv venv
+fi
+
+echo "Activating virtual environment..."
+source venv/bin/activate
+
+echo "Installing dependencies..."
+pip install pyinstaller esptool pyserial
+
+echo ""
+echo "Building macOS application bundle..."
+pyinstaller ESP32_Flasher_macOS.spec
+
+echo ""
+if [ -d "dist/ESP32_Flasher.app" ]; then
+ echo "✓ Build complete!"
+ echo ""
+ echo "Application created at: dist/ESP32_Flasher.app"
+ echo ""
+ echo "To run the application:"
+ echo " open dist/ESP32_Flasher.app"
+ echo ""
+ echo "To distribute, you can:"
+ echo " 1. Zip the .app bundle"
+ echo " 2. Create a DMG installer (requires additional tools)"
+else
+ echo "❌ Build failed - application not found in dist folder"
+ exit 1
+fi
diff --git a/flash_tool/build_web_macos.sh b/flash_tool/build_web_macos.sh
new file mode 100755
index 0000000..2fe9f8a
--- /dev/null
+++ b/flash_tool/build_web_macos.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+# Build script for macOS executable (Web-based UI)
+
+echo "=== ESP32 Flasher (Web UI) - macOS Build Script ==="
+echo ""
+
+# Check if running on macOS
+if [[ "$OSTYPE" != "darwin"* ]]; then
+ echo "❌ Error: This script is for macOS only."
+ echo " Use build_web_windows.bat on Windows."
+ exit 1
+fi
+
+# Create virtual environment if it doesn't exist
+if [ ! -d "venv" ]; then
+ echo "Creating virtual environment..."
+ python3 -m venv venv
+fi
+
+echo "Activating virtual environment..."
+source venv/bin/activate
+
+echo "Installing dependencies..."
+pip install -r requirements.txt
+
+echo ""
+echo "Building macOS application bundle..."
+pyinstaller ESP32_WebFlasher_macOS.spec
+
+echo ""
+if [ -d "dist/ESP32_Flasher.app" ]; then
+ echo "✓ Build complete!"
+ echo ""
+ echo "Application created at: dist/ESP32_Flasher.app"
+ echo ""
+ echo "To run the application:"
+ echo " open dist/ESP32_Flasher.app"
+ echo ""
+ echo "The app will open in your default web browser!"
+else
+ echo "❌ Build failed - application not found in dist folder"
+ exit 1
+fi
diff --git a/flash_tool/gui_flasher.py b/flash_tool/gui_flasher.py
index 0d79e7c..a5c5b35 100644
--- a/flash_tool/gui_flasher.py
+++ b/flash_tool/gui_flasher.py
@@ -20,84 +20,150 @@ class ESP32FlasherGUI:
self.root = root
self.root.title("ESP32 Firmware Flasher")
self.root.geometry("600x500")
-
+
+ # Configure colors for dark mode compatibility
+ self.setup_colors()
+
# Variables
self.port_var = tk.StringVar()
self.firmware_path_var = tk.StringVar()
self.temp_dir = None
-
+
self.setup_ui()
self.refresh_ports()
+
+ def setup_colors(self):
+ """Configure colors that work in both light and dark mode"""
+ # Try to detect dark mode on macOS
+ try:
+ import subprocess
+ result = subprocess.run(
+ ['defaults', 'read', '-g', 'AppleInterfaceStyle'],
+ capture_output=True,
+ text=True
+ )
+ is_dark_mode = (result.returncode == 0 and 'Dark' in result.stdout)
+ except:
+ is_dark_mode = False
+
+ if is_dark_mode:
+ # Dark mode colors
+ self.bg_color = '#2b2b2b'
+ self.fg_color = '#ffffff'
+ self.text_bg = '#1e1e1e'
+ self.text_fg = '#d4d4d4'
+ self.button_bg = '#3c3c3c'
+ else:
+ # Light mode colors
+ self.bg_color = '#f0f0f0'
+ self.fg_color = '#000000'
+ self.text_bg = '#ffffff'
+ self.text_fg = '#000000'
+ self.button_bg = '#e0e0e0'
+
+ # Configure root window
+ self.root.configure(bg=self.bg_color)
def setup_ui(self):
# Main frame
- main_frame = ttk.Frame(self.root, padding="10")
+ main_frame = tk.Frame(self.root, bg=self.bg_color, padx=10, pady=10)
main_frame.grid(row=0, column=0, sticky=(tk.W, tk.E, tk.N, tk.S))
-
+
# Configure grid weights
self.root.columnconfigure(0, weight=1)
self.root.rowconfigure(0, weight=1)
main_frame.columnconfigure(1, weight=1)
-
+
# Port selection
- ttk.Label(main_frame, text="Serial Port:").grid(row=0, column=0, sticky=tk.W, pady=5)
- port_frame = ttk.Frame(main_frame)
+ tk.Label(main_frame, text="Serial Port:", bg=self.bg_color, fg=self.fg_color).grid(
+ row=0, column=0, sticky=tk.W, pady=5)
+ port_frame = tk.Frame(main_frame, bg=self.bg_color)
port_frame.grid(row=0, column=1, sticky=(tk.W, tk.E), pady=5)
port_frame.columnconfigure(0, weight=1)
-
+
self.port_combo = ttk.Combobox(port_frame, textvariable=self.port_var, state="readonly")
self.port_combo.grid(row=0, column=0, sticky=(tk.W, tk.E), padx=(0, 5))
-
- ttk.Button(port_frame, text="Refresh", command=self.refresh_ports).grid(row=0, column=1)
+
+ tk.Button(port_frame, text="Refresh", command=self.refresh_ports,
+ bg=self.button_bg, fg=self.fg_color, relief=tk.RAISED).grid(row=0, column=1)
# Firmware package selection
- ttk.Label(main_frame, text="Firmware Package:").grid(row=1, column=0, sticky=tk.W, pady=5)
- firmware_frame = ttk.Frame(main_frame)
+ tk.Label(main_frame, text="Firmware Package:", bg=self.bg_color, fg=self.fg_color).grid(
+ row=1, column=0, sticky=tk.W, pady=5)
+ firmware_frame = tk.Frame(main_frame, bg=self.bg_color)
firmware_frame.grid(row=1, column=1, sticky=(tk.W, tk.E), pady=5)
firmware_frame.columnconfigure(0, weight=1)
-
- self.firmware_entry = ttk.Entry(firmware_frame, textvariable=self.firmware_path_var, state="readonly")
+
+ self.firmware_entry = tk.Entry(firmware_frame, textvariable=self.firmware_path_var,
+ state="readonly", bg=self.text_bg, fg=self.text_fg,
+ relief=tk.SUNKEN, borderwidth=2)
self.firmware_entry.grid(row=0, column=0, sticky=(tk.W, tk.E), padx=(0, 5))
-
- ttk.Button(firmware_frame, text="Browse", command=self.browse_firmware).grid(row=0, column=1)
+
+ tk.Button(firmware_frame, text="Browse", command=self.browse_firmware,
+ bg=self.button_bg, fg=self.fg_color, relief=tk.RAISED).grid(row=0, column=1)
# Flash settings frame
- settings_frame = ttk.LabelFrame(main_frame, text="Flash Settings", padding="5")
+ settings_frame = tk.LabelFrame(main_frame, text="Flash Settings",
+ bg=self.bg_color, fg=self.fg_color,
+ relief=tk.GROOVE, borderwidth=2, padx=5, pady=5)
settings_frame.grid(row=2, column=0, columnspan=2, sticky=(tk.W, tk.E), pady=10)
settings_frame.columnconfigure(1, weight=1)
-
+
# Flash settings
- ttk.Label(settings_frame, text="Chip:").grid(row=0, column=0, sticky=tk.W, pady=2)
+ tk.Label(settings_frame, text="Chip:", bg=self.bg_color, fg=self.fg_color).grid(
+ row=0, column=0, sticky=tk.W, pady=2, padx=(0, 10))
self.chip_var = tk.StringVar(value="esp32")
- ttk.Entry(settings_frame, textvariable=self.chip_var, width=15).grid(row=0, column=1, sticky=tk.W, pady=2)
-
- ttk.Label(settings_frame, text="Baud Rate:").grid(row=1, column=0, sticky=tk.W, pady=2)
+ tk.Entry(settings_frame, textvariable=self.chip_var, width=15,
+ bg=self.text_bg, fg=self.text_fg, relief=tk.SUNKEN).grid(row=0, column=1, sticky=tk.W, pady=2)
+
+ tk.Label(settings_frame, text="Baud Rate:", bg=self.bg_color, fg=self.fg_color).grid(
+ row=1, column=0, sticky=tk.W, pady=2, padx=(0, 10))
self.baud_var = tk.StringVar(value="460800")
- ttk.Entry(settings_frame, textvariable=self.baud_var, width=15).grid(row=1, column=1, sticky=tk.W, pady=2)
-
- ttk.Label(settings_frame, text="Flash Mode:").grid(row=2, column=0, sticky=tk.W, pady=2)
+ tk.Entry(settings_frame, textvariable=self.baud_var, width=15,
+ bg=self.text_bg, fg=self.text_fg, relief=tk.SUNKEN).grid(row=1, column=1, sticky=tk.W, pady=2)
+
+ tk.Label(settings_frame, text="Flash Mode:", bg=self.bg_color, fg=self.fg_color).grid(
+ row=2, column=0, sticky=tk.W, pady=2, padx=(0, 10))
self.flash_mode_var = tk.StringVar(value="dio")
- ttk.Entry(settings_frame, textvariable=self.flash_mode_var, width=15).grid(row=2, column=1, sticky=tk.W, pady=2)
-
- ttk.Label(settings_frame, text="Flash Freq:").grid(row=3, column=0, sticky=tk.W, pady=2)
+ tk.Entry(settings_frame, textvariable=self.flash_mode_var, width=15,
+ bg=self.text_bg, fg=self.text_fg, relief=tk.SUNKEN).grid(row=2, column=1, sticky=tk.W, pady=2)
+
+ tk.Label(settings_frame, text="Flash Freq:", bg=self.bg_color, fg=self.fg_color).grid(
+ row=3, column=0, sticky=tk.W, pady=2, padx=(0, 10))
self.flash_freq_var = tk.StringVar(value="40m")
- ttk.Entry(settings_frame, textvariable=self.flash_freq_var, width=15).grid(row=3, column=1, sticky=tk.W, pady=2)
-
- ttk.Label(settings_frame, text="Flash Size:").grid(row=4, column=0, sticky=tk.W, pady=2)
+ tk.Entry(settings_frame, textvariable=self.flash_freq_var, width=15,
+ bg=self.text_bg, fg=self.text_fg, relief=tk.SUNKEN).grid(row=3, column=1, sticky=tk.W, pady=2)
+
+ tk.Label(settings_frame, text="Flash Size:", bg=self.bg_color, fg=self.fg_color).grid(
+ row=4, column=0, sticky=tk.W, pady=2, padx=(0, 10))
self.flash_size_var = tk.StringVar(value="2MB")
- ttk.Entry(settings_frame, textvariable=self.flash_size_var, width=15).grid(row=4, column=1, sticky=tk.W, pady=2)
+ tk.Entry(settings_frame, textvariable=self.flash_size_var, width=15,
+ bg=self.text_bg, fg=self.text_fg, relief=tk.SUNKEN).grid(row=4, column=1, sticky=tk.W, pady=2)
# Flash button
- self.flash_button = ttk.Button(main_frame, text="Flash Firmware", command=self.flash_firmware)
+ self.flash_button = tk.Button(main_frame, text="Flash Firmware", command=self.flash_firmware,
+ bg=self.button_bg, fg=self.fg_color,
+ relief=tk.RAISED, padx=20, pady=5,
+ font=('TkDefaultFont', 10, 'bold'))
self.flash_button.grid(row=3, column=0, columnspan=2, pady=10)
-
+
# Progress bar
self.progress = ttk.Progressbar(main_frame, mode='indeterminate')
self.progress.grid(row=4, column=0, columnspan=2, sticky=(tk.W, tk.E), pady=5)
-
+
# Log output
- ttk.Label(main_frame, text="Output:").grid(row=5, column=0, sticky=tk.W, pady=(10, 0))
- self.log_text = scrolledtext.ScrolledText(main_frame, height=15, width=70)
+ tk.Label(main_frame, text="Output:", bg=self.bg_color, fg=self.fg_color).grid(
+ row=5, column=0, sticky=tk.W, pady=(10, 0))
+ self.log_text = scrolledtext.ScrolledText(
+ main_frame,
+ height=15,
+ width=70,
+ bg=self.text_bg,
+ fg=self.text_fg,
+ insertbackground=self.text_fg, # Cursor color
+ relief=tk.SUNKEN,
+ borderwidth=2
+ )
self.log_text.grid(row=6, column=0, columnspan=2, sticky=(tk.W, tk.E, tk.N, tk.S), pady=5)
main_frame.rowconfigure(6, weight=1)
diff --git a/flash_tool/requirements.txt b/flash_tool/requirements.txt
index d77ef91..8ede024 100644
--- a/flash_tool/requirements.txt
+++ b/flash_tool/requirements.txt
@@ -1,3 +1,6 @@
esptool>=4.0
pyserial>=3.5
-pyinstaller>=5.0
\ No newline at end of file
+pyinstaller>=5.0
+flask>=2.3.0
+flask-socketio>=5.3.0
+python-socketio>=5.11.0
\ No newline at end of file
diff --git a/flash_tool/templates/index.html b/flash_tool/templates/index.html
new file mode 100644
index 0000000..652ec3f
--- /dev/null
+++ b/flash_tool/templates/index.html
@@ -0,0 +1,456 @@
+
+
+
+
+
+ ESP32 Firmware Flasher
+
+
+
+
+
+
ESP32 Firmware Flasher
+
Flash firmware packages to ESP32 devices
+
+
+
+
+
+
+
+
+
diff --git a/flash_tool/web_flasher.py b/flash_tool/web_flasher.py
new file mode 100644
index 0000000..acbca9c
--- /dev/null
+++ b/flash_tool/web_flasher.py
@@ -0,0 +1,272 @@
+#!/usr/bin/env python3
+"""
+ESP32 Firmware Flash Web Server
+Web-based GUI interface for flashing firmware packages to ESP32 devices
+"""
+
+from flask import Flask, render_template, request, jsonify, send_from_directory
+from flask_socketio import SocketIO, emit
+import subprocess
+import sys
+import threading
+import zipfile
+import tempfile
+import os
+import shutil
+from pathlib import Path
+import serial.tools.list_ports
+import webbrowser
+import socket
+import time
+import signal
+
+app = Flask(__name__)
+app.config['MAX_CONTENT_LENGTH'] = 100 * 1024 * 1024 # 100MB max file size
+app.config['SECRET_KEY'] = 'esp32-flasher-secret-key'
+socketio = SocketIO(app, cors_allowed_origins="*")
+
+# Global state
+flash_status = {
+ 'running': False,
+ 'output': [],
+ 'success': None
+}
+
+# Client connection tracking
+client_connected = False
+last_heartbeat = time.time()
+shutdown_timer = None
+
+def get_free_port():
+ """Find a free port to run the server on"""
+ with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
+ s.bind(('', 0))
+ s.listen(1)
+ port = s.getsockname()[1]
+ return port
+
+@app.route('/')
+def index():
+ """Serve the main page"""
+ return render_template('index.html')
+
+@app.route('/api/ports')
+def get_ports():
+ """Get list of available serial ports"""
+ try:
+ ports = [{'device': port.device, 'description': port.description}
+ for port in serial.tools.list_ports.comports()]
+ return jsonify({'success': True, 'ports': ports})
+ except Exception as e:
+ return jsonify({'success': False, 'error': str(e)})
+
+@app.route('/api/flash', methods=['POST'])
+def flash_firmware():
+ """Flash firmware to ESP32"""
+ global flash_status
+
+ if flash_status['running']:
+ return jsonify({'success': False, 'error': 'Flash operation already in progress'})
+
+ # Get form data
+ port = request.form.get('port')
+ chip = request.form.get('chip', 'esp32')
+ baud = request.form.get('baud', '460800')
+ flash_mode = request.form.get('flash_mode', 'dio')
+ flash_freq = request.form.get('flash_freq', '40m')
+ flash_size = request.form.get('flash_size', '2MB')
+
+ # Get uploaded file
+ if 'firmware' not in request.files:
+ return jsonify({'success': False, 'error': 'No firmware file uploaded'})
+
+ firmware_file = request.files['firmware']
+ if firmware_file.filename == '':
+ return jsonify({'success': False, 'error': 'No firmware file selected'})
+
+ # Save and extract firmware
+ try:
+ # Create temp directory
+ temp_dir = tempfile.mkdtemp(prefix="esp32_flash_")
+ zip_path = os.path.join(temp_dir, 'firmware.zip')
+ firmware_file.save(zip_path)
+
+ # Extract firmware
+ with zipfile.ZipFile(zip_path, 'r') as zip_file:
+ zip_file.extractall(temp_dir)
+
+ # Start flash in background thread
+ flash_status = {'running': True, 'output': [], 'success': None}
+ thread = threading.Thread(
+ target=flash_worker,
+ args=(temp_dir, port, chip, baud, flash_mode, flash_freq, flash_size)
+ )
+ thread.daemon = True
+ thread.start()
+
+ return jsonify({'success': True, 'message': 'Flash started'})
+
+ except Exception as e:
+ return jsonify({'success': False, 'error': str(e)})
+
+@app.route('/api/status')
+def get_status():
+ """Get current flash status"""
+ return jsonify(flash_status)
+
+@socketio.on('connect')
+def handle_connect():
+ """Handle client connection"""
+ global client_connected, last_heartbeat, shutdown_timer
+ client_connected = True
+ last_heartbeat = time.time()
+
+ # Cancel any pending shutdown
+ if shutdown_timer:
+ shutdown_timer.cancel()
+ shutdown_timer = None
+
+ print('Client connected')
+
+@socketio.on('disconnect')
+def handle_disconnect():
+ """Handle client disconnection"""
+ global client_connected, shutdown_timer
+ client_connected = False
+ print('Client disconnected - scheduling shutdown in 5 seconds...')
+
+ # Schedule shutdown after 5 seconds
+ shutdown_timer = threading.Timer(5.0, shutdown_server)
+ shutdown_timer.daemon = True
+ shutdown_timer.start()
+
+@socketio.on('heartbeat')
+def handle_heartbeat():
+ """Handle heartbeat from client"""
+ global last_heartbeat
+ last_heartbeat = time.time()
+ emit('heartbeat_ack', {'timestamp': last_heartbeat})
+
+def shutdown_server():
+ """Gracefully shutdown the server"""
+ print('\nNo clients connected. Shutting down server...')
+
+ # Give a moment for any pending operations
+ time.sleep(1)
+
+ # Shutdown Flask
+ try:
+ func = request.environ.get('werkzeug.server.shutdown')
+ if func is None:
+ # Alternative shutdown method
+ os.kill(os.getpid(), signal.SIGTERM)
+ else:
+ func()
+ except:
+ # Force exit as last resort
+ os._exit(0)
+
+def flash_worker(temp_dir, port, chip, baud, flash_mode, flash_freq, flash_size):
+ """Background worker for flashing firmware"""
+ global flash_status
+
+ try:
+ # Define file paths
+ bootloader = os.path.join(temp_dir, "bootloader.bin")
+ firmware = os.path.join(temp_dir, "soundshot.bin")
+ ota_initial = os.path.join(temp_dir, "ota_data_initial.bin")
+ partition = os.path.join(temp_dir, "partition-table.bin")
+
+ # Verify files exist
+ required_files = [bootloader, firmware, ota_initial, partition]
+ for file_path in required_files:
+ if not os.path.exists(file_path):
+ flash_status['output'].append(f"ERROR: Missing file {os.path.basename(file_path)}")
+ flash_status['success'] = False
+ flash_status['running'] = False
+ return
+
+ # Build esptool command
+ cmd = [
+ sys.executable, "-m", "esptool",
+ "--chip", chip,
+ "--port", port,
+ "--baud", baud,
+ "--before", "default_reset",
+ "--after", "hard_reset",
+ "write-flash",
+ "--flash-mode", flash_mode,
+ "--flash-freq", flash_freq,
+ "--flash-size", flash_size,
+ "0x1000", bootloader,
+ "0x20000", firmware,
+ "0x11000", ota_initial,
+ "0x8000", partition
+ ]
+
+ flash_status['output'].append(f"Running: {' '.join(cmd)}")
+ flash_status['output'].append("")
+
+ # Run esptool
+ process = subprocess.Popen(
+ cmd,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ text=True,
+ bufsize=1,
+ universal_newlines=True
+ )
+
+ # Stream output
+ for line in process.stdout:
+ flash_status['output'].append(line.rstrip())
+
+ process.wait()
+
+ if process.returncode == 0:
+ flash_status['output'].append("")
+ flash_status['output'].append("✓ Flash completed successfully!")
+ flash_status['success'] = True
+ else:
+ flash_status['output'].append("")
+ flash_status['output'].append(f"✗ Flash failed with return code {process.returncode}")
+ flash_status['success'] = False
+
+ except Exception as e:
+ flash_status['output'].append(f"✗ Error: {str(e)}")
+ flash_status['success'] = False
+ finally:
+ flash_status['running'] = False
+ # Clean up temp directory
+ try:
+ shutil.rmtree(temp_dir, ignore_errors=True)
+ except:
+ pass
+
+def open_browser(port):
+ """Open browser to the application"""
+ url = f'http://127.0.0.1:{port}'
+ webbrowser.open(url)
+
+def main():
+ """Run the web server"""
+ port = get_free_port()
+ print(f"Starting ESP32 Flasher on port {port}...")
+ print(f"Open your browser to: http://127.0.0.1:{port}")
+ print(f"Server will automatically shut down when browser is closed.\n")
+
+ # Open browser after short delay
+ timer = threading.Timer(1.5, open_browser, args=[port])
+ timer.daemon = True
+ timer.start()
+
+ # Run Flask server with SocketIO
+ try:
+ socketio.run(app, host='127.0.0.1', port=port, debug=False, allow_unsafe_werkzeug=True)
+ except KeyboardInterrupt:
+ print('\nShutting down...')
+ except SystemExit:
+ print('Server stopped.')
+
+if __name__ == "__main__":
+ main()
diff --git a/main/bt_app.c b/main/bt_app.c
index 251fc44..e1fa979 100644
--- a/main/bt_app.c
+++ b/main/bt_app.c
@@ -107,7 +107,7 @@ static void bt_app_a2d_heart_beat(TimerHandle_t arg);
static void bt_app_av_sm_hdlr(uint16_t event, void *param);
/* utils for transfer BLuetooth Deveice Address into string form */
-static char *bda2str(esp_bd_addr_t bda, char *str, size_t size);
+static char *bda2str(const uint8_t *bda, char *str, size_t size);
static esp_err_t bt_try_connect_known_devices(void);
static void bt_debug_print_known_devices(void);
@@ -485,7 +485,7 @@ static esp_err_t bt_try_next_known_device(void)
/*********************************
* STATIC FUNCTION DEFINITIONS
********************************/
-static char *bda2str(esp_bd_addr_t bda, char *str, size_t size)
+static char *bda2str(const uint8_t *bda, char *str, size_t size)
{
if (bda == NULL || str == NULL || size < 18) {
return NULL;
@@ -1848,8 +1848,11 @@ void bt_volume_down(void) {
}
if (s_volume_level > 0) {
- s_volume_level -= 10; // Decrease by ~8%
- if (s_volume_level < 0) s_volume_level = 0;
+ if (s_volume_level < 10) {
+ s_volume_level = 0;
+ } else {
+ s_volume_level -= 10; // Decrease by ~8%
+ }
ESP_LOGI(BT_AV_TAG, "Setting volume to %d", s_volume_level);
esp_avrc_ct_send_set_absolute_volume_cmd(APP_RC_CT_TL_RN_VOLUME_CHANGE, s_volume_level);
diff --git a/main/main.c b/main/main.c
index 89fbfec..e138225 100644
--- a/main/main.c
+++ b/main/main.c
@@ -275,11 +275,12 @@ void app_main(void)
print_heap_info("POST_SYSTEM");
// Initialize IMU
- ESP_ERROR_CHECK(lsm6dsv_init(22, 21)); // SCL = IO14, SDA = IO15
+ ESP_ERROR_CHECK(lsm6dsv_init(22, 21)); // SCL = IO14, SDA = IO15`
print_heap_info("POST_IMU");
// Create IMU task
- TaskHandle_t h = xTaskCreate(imu_task, "imu_task", 2048, NULL, 5, NULL);
+ TaskHandle_t h = NULL;
+ xTaskCreate(imu_task, "imu_task", 2048, NULL, 5, &h);
print_heap_info("POST_IMU_TASK");
bt_app_init();
diff --git a/sdkconfig b/sdkconfig
index 568831a..1a4f15c 100644
--- a/sdkconfig
+++ b/sdkconfig
@@ -1,10 +1,7 @@
#
# Automatically generated file. DO NOT EDIT.
-# Espressif IoT Development Framework (ESP-IDF) 5.3.1 Project Configuration
+# Espressif IoT Development Framework (ESP-IDF) 5.5.1 Project Configuration
#
-CONFIG_SOC_BROWNOUT_RESET_SUPPORTED="Not determined"
-CONFIG_SOC_TWAI_BRP_DIV_SUPPORTED="Not determined"
-CONFIG_SOC_DPORT_WORKAROUND="Not determined"
CONFIG_SOC_CAPS_ECO_VER_MAX=301
CONFIG_SOC_ADC_SUPPORTED=y
CONFIG_SOC_DAC_SUPPORTED=y
@@ -71,6 +68,7 @@ CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=20
CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=9
CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12
CONFIG_SOC_ADC_SHARED_POWER=y
+CONFIG_SOC_BROWNOUT_RESET_SUPPORTED=y
CONFIG_SOC_SHARED_IDCACHE_SUPPORTED=y
CONFIG_SOC_IDCACHE_PER_CORE=y
CONFIG_SOC_CPU_CORES_NUM=2
@@ -79,7 +77,7 @@ CONFIG_SOC_CPU_HAS_FPU=y
CONFIG_SOC_HP_CPU_HAS_MULTIPLE_CORES=y
CONFIG_SOC_CPU_BREAKPOINTS_NUM=2
CONFIG_SOC_CPU_WATCHPOINTS_NUM=2
-CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=64
+CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=0x40
CONFIG_SOC_DAC_CHAN_NUM=2
CONFIG_SOC_DAC_RESOLUTION=8
CONFIG_SOC_DAC_DMA_16BIT_ALIGN=y
@@ -91,12 +89,14 @@ CONFIG_SOC_GPIO_OUT_RANGE_MAX=33
CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0xEF0FEA
CONFIG_SOC_GPIO_CLOCKOUT_BY_IO_MUX=y
CONFIG_SOC_GPIO_CLOCKOUT_CHANNEL_NUM=3
+CONFIG_SOC_GPIO_SUPPORT_HOLD_IO_IN_DSLP=y
CONFIG_SOC_I2C_NUM=2
CONFIG_SOC_HP_I2C_NUM=2
CONFIG_SOC_I2C_FIFO_LEN=32
CONFIG_SOC_I2C_CMD_REG_NUM=16
CONFIG_SOC_I2C_SUPPORT_SLAVE=y
CONFIG_SOC_I2C_SUPPORT_APB=y
+CONFIG_SOC_I2C_SUPPORT_10BIT_ADDR=y
CONFIG_SOC_I2C_STOP_INDEPENDENT=y
CONFIG_SOC_I2S_NUM=2
CONFIG_SOC_I2S_HW_VERSION_1=y
@@ -104,13 +104,16 @@ CONFIG_SOC_I2S_SUPPORTS_APLL=y
CONFIG_SOC_I2S_SUPPORTS_PLL_F160M=y
CONFIG_SOC_I2S_SUPPORTS_PDM=y
CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y
-CONFIG_SOC_I2S_PDM_MAX_TX_LINES=1
+CONFIG_SOC_I2S_SUPPORTS_PCM2PDM=y
CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y
+CONFIG_SOC_I2S_SUPPORTS_PDM2PCM=y
+CONFIG_SOC_I2S_PDM_MAX_TX_LINES=1
CONFIG_SOC_I2S_PDM_MAX_RX_LINES=1
CONFIG_SOC_I2S_SUPPORTS_ADC_DAC=y
CONFIG_SOC_I2S_SUPPORTS_ADC=y
CONFIG_SOC_I2S_SUPPORTS_DAC=y
CONFIG_SOC_I2S_SUPPORTS_LCD_CAMERA=y
+CONFIG_SOC_I2S_MAX_DATA_WIDTH=24
CONFIG_SOC_I2S_TRANS_SIZE_ALIGN_WORD=y
CONFIG_SOC_I2S_LCD_I80_VARIANT=y
CONFIG_SOC_LCD_I80_SUPPORTED=y
@@ -120,6 +123,7 @@ CONFIG_SOC_LEDC_HAS_TIMER_SPECIFIC_MUX=y
CONFIG_SOC_LEDC_SUPPORT_APB_CLOCK=y
CONFIG_SOC_LEDC_SUPPORT_REF_TICK=y
CONFIG_SOC_LEDC_SUPPORT_HS_MODE=y
+CONFIG_SOC_LEDC_TIMER_NUM=4
CONFIG_SOC_LEDC_CHANNEL_NUM=8
CONFIG_SOC_LEDC_TIMER_BIT_WIDTH=20
CONFIG_SOC_MCPWM_GROUPS=2
@@ -172,10 +176,16 @@ CONFIG_SOC_TIMER_GROUP_TIMERS_PER_GROUP=2
CONFIG_SOC_TIMER_GROUP_COUNTER_BIT_WIDTH=64
CONFIG_SOC_TIMER_GROUP_TOTAL_TIMERS=4
CONFIG_SOC_TIMER_GROUP_SUPPORT_APB=y
+CONFIG_SOC_LP_TIMER_BIT_WIDTH_LO=32
+CONFIG_SOC_LP_TIMER_BIT_WIDTH_HI=16
CONFIG_SOC_TOUCH_SENSOR_VERSION=1
CONFIG_SOC_TOUCH_SENSOR_NUM=10
+CONFIG_SOC_TOUCH_MIN_CHAN_ID=0
+CONFIG_SOC_TOUCH_MAX_CHAN_ID=9
+CONFIG_SOC_TOUCH_SUPPORT_SLEEP_WAKEUP=y
CONFIG_SOC_TOUCH_SAMPLE_CFG_NUM=1
CONFIG_SOC_TWAI_CONTROLLER_NUM=1
+CONFIG_SOC_TWAI_MASK_FILTER_NUM=1
CONFIG_SOC_TWAI_BRP_MIN=2
CONFIG_SOC_TWAI_CLK_SUPPORT_APB=y
CONFIG_SOC_TWAI_SUPPORT_MULTI_ADDRESS_LAYOUT=y
@@ -185,6 +195,7 @@ CONFIG_SOC_UART_SUPPORT_APB_CLK=y
CONFIG_SOC_UART_SUPPORT_REF_TICK=y
CONFIG_SOC_UART_FIFO_LEN=128
CONFIG_SOC_UART_BITRATE_MAX=5000000
+CONFIG_SOC_UART_WAKEUP_SUPPORT_ACTIVE_THRESH_MODE=y
CONFIG_SOC_SPIRAM_SUPPORTED=y
CONFIG_SOC_SPI_MEM_SUPPORT_CONFIG_GPIO_BY_EFUSE=y
CONFIG_SOC_SHA_SUPPORT_PARALLEL_ENG=y
@@ -194,13 +205,13 @@ CONFIG_SOC_SHA_SUPPORT_SHA256=y
CONFIG_SOC_SHA_SUPPORT_SHA384=y
CONFIG_SOC_SHA_SUPPORT_SHA512=y
CONFIG_SOC_MPI_MEM_BLOCKS_NUM=4
-CONFIG_SOC_MPI_OPERATIONS_NUM=y
+CONFIG_SOC_MPI_OPERATIONS_NUM=1
CONFIG_SOC_RSA_MAX_BIT_LEN=4096
CONFIG_SOC_AES_SUPPORT_AES_128=y
CONFIG_SOC_AES_SUPPORT_AES_192=y
CONFIG_SOC_AES_SUPPORT_AES_256=y
CONFIG_SOC_SECURE_BOOT_V1=y
-CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=y
+CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=1
CONFIG_SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX=32
CONFIG_SOC_PHY_DIG_REGS_MEM_SIZE=21
CONFIG_SOC_PM_SUPPORT_EXT0_WAKEUP=y
@@ -214,11 +225,13 @@ CONFIG_SOC_PM_SUPPORT_RC_FAST_PD=y
CONFIG_SOC_PM_SUPPORT_VDDSDIO_PD=y
CONFIG_SOC_PM_SUPPORT_MODEM_PD=y
CONFIG_SOC_CONFIGURABLE_VDDSDIO_SUPPORTED=y
+CONFIG_SOC_PM_MODEM_PD_BY_SW=y
CONFIG_SOC_CLK_APLL_SUPPORTED=y
CONFIG_SOC_CLK_RC_FAST_D256_SUPPORTED=y
CONFIG_SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256=y
CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y
CONFIG_SOC_CLK_XTAL32K_SUPPORTED=y
+CONFIG_SOC_CLK_LP_FAST_SUPPORT_XTAL_D4=y
CONFIG_SOC_SDMMC_USE_IOMUX=y
CONFIG_SOC_SDMMC_NUM_SLOTS=2
CONFIG_SOC_WIFI_WAPI_SUPPORT=y
@@ -231,15 +244,17 @@ CONFIG_SOC_BLE_MESH_SUPPORTED=y
CONFIG_SOC_BT_CLASSIC_SUPPORTED=y
CONFIG_SOC_BLUFI_SUPPORTED=y
CONFIG_SOC_BT_H2C_ENC_KEY_CTRL_ENH_VSC_SUPPORTED=y
+CONFIG_SOC_BLE_MULTI_CONN_OPTIMIZATION=y
CONFIG_SOC_ULP_HAS_ADC=y
CONFIG_SOC_PHY_COMBO_MODULE=y
CONFIG_SOC_EMAC_RMII_CLK_OUT_INTERNAL_LOOPBACK=y
CONFIG_IDF_CMAKE=y
CONFIG_IDF_TOOLCHAIN="gcc"
+CONFIG_IDF_TOOLCHAIN_GCC=y
CONFIG_IDF_TARGET_ARCH_XTENSA=y
CONFIG_IDF_TARGET_ARCH="xtensa"
CONFIG_IDF_TARGET="esp32"
-CONFIG_IDF_INIT_VERSION="5.3.1"
+CONFIG_IDF_INIT_VERSION="5.5.1"
CONFIG_IDF_TARGET_ESP32=y
CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000
@@ -268,11 +283,28 @@ CONFIG_BOOTLOADER_COMPILE_TIME_DATE=y
CONFIG_BOOTLOADER_PROJECT_VER=1
# end of Bootloader manager
+#
+# Application Rollback
+#
+# CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set
+# end of Application Rollback
+
+#
+# Recovery Bootloader and Rollback
+#
+# end of Recovery Bootloader and Rollback
+
CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x1000
CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y
# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set
# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set
# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE is not set
+
+#
+# Log
+#
+CONFIG_BOOTLOADER_LOG_VERSION_1=y
+CONFIG_BOOTLOADER_LOG_VERSION=1
# CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set
# CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set
# CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set
@@ -281,6 +313,21 @@ CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y
# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set
CONFIG_BOOTLOADER_LOG_LEVEL=3
+#
+# Format
+#
+# CONFIG_BOOTLOADER_LOG_COLORS is not set
+CONFIG_BOOTLOADER_LOG_TIMESTAMP_SOURCE_CPU_TICKS=y
+# end of Format
+
+#
+# Settings
+#
+CONFIG_BOOTLOADER_LOG_MODE_TEXT_EN=y
+CONFIG_BOOTLOADER_LOG_MODE_TEXT=y
+# end of Settings
+# end of Log
+
#
# Serial Flash Configurations
#
@@ -296,7 +343,6 @@ CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE=y
CONFIG_BOOTLOADER_WDT_ENABLE=y
# CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set
CONFIG_BOOTLOADER_WDT_TIME_MS=9000
-# CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set
# CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set
# CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set
# CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set
@@ -336,6 +382,7 @@ CONFIG_ESP_ROM_HAS_SW_FLOAT=y
CONFIG_ESP_ROM_USB_OTG_NUM=-1
CONFIG_ESP_ROM_USB_SERIAL_DEVICE_NUM=-1
CONFIG_ESP_ROM_SUPPORT_DEEP_SLEEP_WAKEUP_STUB=y
+CONFIG_ESP_ROM_HAS_OUTPUT_PUTC_FUNC=y
#
# Serial flasher config
@@ -377,6 +424,7 @@ CONFIG_ESPTOOLPY_MONITOR_BAUD=115200
# CONFIG_PARTITION_TABLE_SINGLE_APP is not set
# CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set
# CONFIG_PARTITION_TABLE_TWO_OTA is not set
+# CONFIG_PARTITION_TABLE_TWO_OTA_LARGE is not set
CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
@@ -400,6 +448,7 @@ CONFIG_COMPILER_OPTIMIZATION_SIZE=y
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y
# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set
# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set
+# CONFIG_COMPILER_ASSERT_NDEBUG_EVALUATE is not set
CONFIG_COMPILER_FLOAT_LIB_FROM_GCCLIB=y
CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2
# CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set
@@ -410,14 +459,18 @@ CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y
# CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set
# CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set
# CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set
+# CONFIG_COMPILER_NO_MERGE_CONSTANTS is not set
# CONFIG_COMPILER_WARN_WRITE_STRINGS is not set
+# CONFIG_COMPILER_DISABLE_DEFAULT_ERRORS is not set
# CONFIG_COMPILER_DISABLE_GCC12_WARNINGS is not set
# CONFIG_COMPILER_DISABLE_GCC13_WARNINGS is not set
+# CONFIG_COMPILER_DISABLE_GCC14_WARNINGS is not set
# CONFIG_COMPILER_DUMP_RTL_FILES is not set
CONFIG_COMPILER_RT_LIB_GCCLIB=y
CONFIG_COMPILER_RT_LIB_NAME="gcc"
# CONFIG_COMPILER_ORPHAN_SECTIONS_WARNING is not set
CONFIG_COMPILER_ORPHAN_SECTIONS_PLACE=y
+# CONFIG_COMPILER_STATIC_ANALYZER is not set
# end of Compiler options
#
@@ -461,10 +514,24 @@ CONFIG_BT_ENC_KEY_SIZE_CTRL_VSC=y
# CONFIG_BT_ENC_KEY_SIZE_CTRL_NONE is not set
# CONFIG_BT_CLASSIC_BQB_ENABLED is not set
CONFIG_BT_A2DP_ENABLE=y
+# CONFIG_BT_A2DP_USE_EXTERNAL_CODEC is not set
+CONFIG_BT_AVRCP_ENABLED=y
+
+#
+# AVRCP Features
+#
+CONFIG_BT_AVRCP_CT_COVER_ART_ENABLED=y
+# end of AVRCP Features
+
# CONFIG_BT_SPP_ENABLED is not set
# CONFIG_BT_L2CAP_ENABLED is not set
+# CONFIG_BT_SDP_COMMON_ENABLED is not set
+CONFIG_BT_SDP_PAD_LEN=300
+CONFIG_BT_SDP_ATTR_LEN=300
# CONFIG_BT_HFP_ENABLE is not set
# CONFIG_BT_HID_ENABLED is not set
+# CONFIG_BT_PBAC_ENABLED is not set
+CONFIG_BT_GOEPC_ENABLED=y
CONFIG_BT_BLE_ENABLED=y
CONFIG_BT_GATTS_ENABLE=y
# CONFIG_BT_GATTS_PPCP_CHAR_GAP is not set
@@ -482,9 +549,12 @@ CONFIG_BT_GATTC_MAX_CACHE_CHAR=40
CONFIG_BT_GATTC_NOTIF_REG_MAX=5
# CONFIG_BT_GATTC_CACHE_NVS_FLASH is not set
CONFIG_BT_GATTC_CONNECT_RETRY_COUNT=3
+CONFIG_BT_BLE_ESTAB_LINK_CONN_TOUT=30
CONFIG_BT_BLE_SMP_ENABLE=y
# CONFIG_BT_SMP_SLAVE_CON_PARAMS_UPD_ENABLE is not set
# CONFIG_BT_BLE_SMP_ID_RESET_ENABLE is not set
+CONFIG_BT_BLE_SMP_BOND_NVS_FLASH=y
+# CONFIG_BT_BLE_RPA_SUPPORTED is not set
# CONFIG_BT_STACK_NO_LOG is not set
#
@@ -664,16 +734,15 @@ CONFIG_BT_ACL_CONNECTIONS=4
CONFIG_BT_MULTI_CONNECTION_ENBALE=y
# CONFIG_BT_ALLOCATION_FROM_SPIRAM_FIRST is not set
# CONFIG_BT_BLE_DYNAMIC_ENV_MEMORY is not set
-# CONFIG_BT_BLE_HOST_QUEUE_CONG_CHECK is not set
CONFIG_BT_SMP_ENABLE=y
CONFIG_BT_SMP_MAX_BONDS=15
# CONFIG_BT_BLE_ACT_SCAN_REP_ADV_SCAN is not set
-CONFIG_BT_BLE_ESTAB_LINK_CONN_TOUT=30
CONFIG_BT_MAX_DEVICE_NAME_LEN=32
-# CONFIG_BT_BLE_RPA_SUPPORTED is not set
CONFIG_BT_BLE_RPA_TIMEOUT=900
# CONFIG_BT_BLE_42_FEATURES_SUPPORTED is not set
+CONFIG_BT_BLE_VENDOR_HCI_EN=y
# CONFIG_BT_BLE_HIGH_DUTY_ADV_INTERVAL is not set
+# CONFIG_BT_ABORT_WHEN_ALLOCATION_FAILS is not set
# end of Bluedroid Options
#
@@ -682,6 +751,7 @@ CONFIG_BT_BLE_RPA_TIMEOUT=900
# CONFIG_BTDM_CTRL_MODE_BLE_ONLY is not set
CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=y
# CONFIG_BTDM_CTRL_MODE_BTDM is not set
+CONFIG_BTDM_CTRL_BR_EDR_MIN_ENC_KEY_SZ_DFT=7
CONFIG_BTDM_CTRL_BR_EDR_MAX_ACL_CONN=2
CONFIG_BTDM_CTRL_BR_EDR_MAX_SYNC_CONN=0
# CONFIG_BTDM_CTRL_BR_EDR_SCO_DATA_PATH_HCI is not set
@@ -692,11 +762,16 @@ CONFIG_BTDM_CTRL_PCM_ROLE_MASTER=y
# CONFIG_BTDM_CTRL_PCM_ROLE_SLAVE is not set
CONFIG_BTDM_CTRL_PCM_POLAR_FALLING_EDGE=y
# CONFIG_BTDM_CTRL_PCM_POLAR_RISING_EDGE is not set
+CONFIG_BTDM_CTRL_PCM_FSYNCSHP_STEREO_MODE=y
+# CONFIG_BTDM_CTRL_PCM_FSYNCSHP_MONO_MODE_LF is not set
+# CONFIG_BTDM_CTRL_PCM_FSYNCSHP_MONO_MODE_FF is not set
CONFIG_BTDM_CTRL_PCM_ROLE_EFF=0
CONFIG_BTDM_CTRL_PCM_POLAR_EFF=0
+CONFIG_BTDM_CTRL_PCM_FSYNCSHP_EFF=0
CONFIG_BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT=y
CONFIG_BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT_EFF=y
CONFIG_BTDM_CTRL_BLE_MAX_CONN_EFF=0
+CONFIG_BTDM_CTRL_BR_EDR_MIN_ENC_KEY_SZ_DFT_EFF=7
CONFIG_BTDM_CTRL_BR_EDR_MAX_ACL_CONN_EFF=2
CONFIG_BTDM_CTRL_BR_EDR_MAX_SYNC_CONN_EFF=0
CONFIG_BTDM_CTRL_PINNED_TO_CORE_0=y
@@ -716,6 +791,13 @@ CONFIG_BTDM_CTRL_LPCLK_SEL_MAIN_XTAL=y
CONFIG_BTDM_BLE_SLEEP_CLOCK_ACCURACY_INDEX_EFF=1
# CONFIG_BTDM_CTRL_SCAN_BACKOFF_UPPERLIMITMAX is not set
+
+#
+# BLE disconnects when Instant Passed (0x28) occurs
+#
+# end of BLE disconnects when Instant Passed (0x28) occurs
+
+# CONFIG_BTDM_CTRL_CONTROLLER_DEBUG_MODE_1 is not set
CONFIG_BTDM_RESERVE_DRAM=0xdb5c
CONFIG_BTDM_CTRL_HLI=y
# end of Controller Options
@@ -724,6 +806,8 @@ CONFIG_BTDM_CTRL_HLI=y
# Common Options
#
CONFIG_BT_ALARM_MAX_NUM=50
+# CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED is not set
+# CONFIG_BT_BLE_LOG_UHCI_OUT_ENABLED is not set
# end of Common Options
# CONFIG_BT_HCI_LOG_DEBUG_EN is not set
@@ -742,21 +826,22 @@ CONFIG_BT_ALARM_MAX_NUM=50
#
#
-# TWAI Configuration
+# Legacy TWAI Driver Configurations
#
-# CONFIG_TWAI_ISR_IN_IRAM is not set
+# CONFIG_TWAI_SKIP_LEGACY_CONFLICT_CHECK is not set
CONFIG_TWAI_ERRATA_FIX_BUS_OFF_REC=y
CONFIG_TWAI_ERRATA_FIX_TX_INTR_LOST=y
CONFIG_TWAI_ERRATA_FIX_RX_FRAME_INVALID=y
CONFIG_TWAI_ERRATA_FIX_RX_FIFO_CORRUPT=y
CONFIG_TWAI_ERRATA_FIX_LISTEN_ONLY_DOM=y
-# end of TWAI Configuration
+# end of Legacy TWAI Driver Configurations
#
# Legacy ADC Driver Configuration
#
CONFIG_ADC_DISABLE_DAC=y
# CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set
+# CONFIG_ADC_SKIP_LEGACY_CONFLICT_CHECK is not set
#
# Legacy ADC Calibration Configuration
@@ -772,43 +857,63 @@ CONFIG_ADC_CAL_LUT_ENABLE=y
# Legacy DAC Driver Configurations
#
# CONFIG_DAC_SUPPRESS_DEPRECATE_WARN is not set
+# CONFIG_DAC_SKIP_LEGACY_CONFLICT_CHECK is not set
# end of Legacy DAC Driver Configurations
#
# Legacy MCPWM Driver Configurations
#
# CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set
+# CONFIG_MCPWM_SKIP_LEGACY_CONFLICT_CHECK is not set
# end of Legacy MCPWM Driver Configurations
#
# Legacy Timer Group Driver Configurations
#
# CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set
+# CONFIG_GPTIMER_SKIP_LEGACY_CONFLICT_CHECK is not set
# end of Legacy Timer Group Driver Configurations
#
# Legacy RMT Driver Configurations
#
# CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set
+# CONFIG_RMT_SKIP_LEGACY_CONFLICT_CHECK is not set
# end of Legacy RMT Driver Configurations
#
# Legacy I2S Driver Configurations
#
# CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set
+# CONFIG_I2S_SKIP_LEGACY_CONFLICT_CHECK is not set
# end of Legacy I2S Driver Configurations
+#
+# Legacy I2C Driver Configurations
+#
+# CONFIG_I2C_SKIP_LEGACY_CONFLICT_CHECK is not set
+# end of Legacy I2C Driver Configurations
+
#
# Legacy PCNT Driver Configurations
#
# CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set
+# CONFIG_PCNT_SKIP_LEGACY_CONFLICT_CHECK is not set
# end of Legacy PCNT Driver Configurations
#
# Legacy SDM Driver Configurations
#
# CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set
+# CONFIG_SDM_SKIP_LEGACY_CONFLICT_CHECK is not set
# end of Legacy SDM Driver Configurations
+
+#
+# Legacy Touch Sensor Driver Configurations
+#
+# CONFIG_TOUCH_SUPPRESS_DEPRECATE_WARN is not set
+# CONFIG_TOUCH_SKIP_LEGACY_CONFLICT_CHECK is not set
+# end of Legacy Touch Sensor Driver Configurations
# end of Driver Configurations
#
@@ -833,6 +938,7 @@ CONFIG_ESP_TLS_USING_MBEDTLS=y
# CONFIG_ESP_TLS_SERVER_MIN_AUTH_MODE_OPTIONAL is not set
# CONFIG_ESP_TLS_PSK_VERIFICATION is not set
# CONFIG_ESP_TLS_INSECURE is not set
+CONFIG_ESP_TLS_DYN_BUF_STRATEGY_SUPPORTED=y
# end of ESP-TLS
#
@@ -859,6 +965,7 @@ CONFIG_ADC_DISABLE_DAC_OUTPUT=y
CONFIG_ESP_COEX_ENABLED=y
CONFIG_ESP_COEX_SW_COEXIST_ENABLE=y
# CONFIG_ESP_COEX_POWER_MANAGEMENT is not set
+# CONFIG_ESP_COEX_GPIO_DEBUG is not set
# end of Wireless Coexistence
#
@@ -888,7 +995,8 @@ CONFIG_DAC_DMA_AUTO_16BIT_ALIGN=y
#
CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y
# CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set
-# CONFIG_GPTIMER_ISR_IRAM_SAFE is not set
+# CONFIG_GPTIMER_ISR_CACHE_SAFE is not set
+CONFIG_GPTIMER_OBJ_CACHE_SAFE=y
# CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set
# end of ESP-Driver:GPTimer Configurations
@@ -897,6 +1005,8 @@ CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y
#
# CONFIG_I2C_ISR_IRAM_SAFE is not set
# CONFIG_I2C_ENABLE_DEBUG_LOG is not set
+# CONFIG_I2C_ENABLE_SLAVE_DRIVER_VERSION_2 is not set
+CONFIG_I2C_MASTER_ISR_HANDLER_IN_IRAM=y
# end of ESP-Driver:I2C Configurations
#
@@ -915,8 +1025,10 @@ CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y
#
# ESP-Driver:MCPWM Configurations
#
-# CONFIG_MCPWM_ISR_IRAM_SAFE is not set
+CONFIG_MCPWM_ISR_HANDLER_IN_IRAM=y
+# CONFIG_MCPWM_ISR_CACHE_SAFE is not set
# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set
+CONFIG_MCPWM_OBJ_CACHE_SAFE=y
# CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set
# end of ESP-Driver:MCPWM Configurations
@@ -931,9 +1043,15 @@ CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y
#
# ESP-Driver:RMT Configurations
#
-# CONFIG_RMT_ISR_IRAM_SAFE is not set
+CONFIG_RMT_ENCODER_FUNC_IN_IRAM=y
+CONFIG_RMT_TX_ISR_HANDLER_IN_IRAM=y
+CONFIG_RMT_RX_ISR_HANDLER_IN_IRAM=y
# CONFIG_RMT_RECV_FUNC_IN_IRAM is not set
+# CONFIG_RMT_TX_ISR_CACHE_SAFE is not set
+# CONFIG_RMT_RX_ISR_CACHE_SAFE is not set
+CONFIG_RMT_OBJ_CACHE_SAFE=y
# CONFIG_RMT_ENABLE_DEBUG_LOG is not set
+# CONFIG_RMT_ISR_IRAM_SAFE is not set
# end of ESP-Driver:RMT Configurations
#
@@ -958,14 +1076,31 @@ CONFIG_SPI_SLAVE_ISR_IN_IRAM=y
# CONFIG_TOUCH_CTRL_FUNC_IN_IRAM is not set
# CONFIG_TOUCH_ISR_IRAM_SAFE is not set
# CONFIG_TOUCH_ENABLE_DEBUG_LOG is not set
+# CONFIG_TOUCH_SKIP_FSM_CHECK is not set
# end of ESP-Driver:Touch Sensor Configurations
+#
+# ESP-Driver:TWAI Configurations
+#
+# CONFIG_TWAI_ISR_IN_IRAM is not set
+# CONFIG_TWAI_ISR_CACHE_SAFE is not set
+# CONFIG_TWAI_ENABLE_DEBUG_LOG is not set
+# end of ESP-Driver:TWAI Configurations
+
#
# ESP-Driver:UART Configurations
#
# CONFIG_UART_ISR_IN_IRAM is not set
# end of ESP-Driver:UART Configurations
+#
+# ESP-Driver:UHCI Configurations
+#
+# CONFIG_UHCI_ISR_HANDLER_IN_IRAM is not set
+# CONFIG_UHCI_ISR_CACHE_SAFE is not set
+# CONFIG_UHCI_ENABLE_DEBUG_LOG is not set
+# end of ESP-Driver:UHCI Configurations
+
#
# Ethernet
#
@@ -1004,6 +1139,13 @@ CONFIG_ESP_GDBSTUB_SUPPORT_TASKS=y
CONFIG_ESP_GDBSTUB_MAX_TASKS=32
# end of GDB Stub
+#
+# ESP HID
+#
+CONFIG_ESPHID_TASK_SIZE_BT=2048
+CONFIG_ESPHID_TASK_SIZE_BLE=4096
+# end of ESP HID
+
#
# ESP HTTP client
#
@@ -1011,6 +1153,7 @@ CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y
# CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set
# CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH is not set
# CONFIG_ESP_HTTP_CLIENT_ENABLE_CUSTOM_TRANSPORT is not set
+CONFIG_ESP_HTTP_CLIENT_EVENT_POST_TIMEOUT=2000
# end of ESP HTTP client
#
@@ -1023,6 +1166,7 @@ CONFIG_HTTPD_PURGE_BUF_LEN=32
# CONFIG_HTTPD_LOG_PURGE_DATA is not set
# CONFIG_HTTPD_WS_SUPPORT is not set
# CONFIG_HTTPD_QUEUE_WORK_BLOCKING is not set
+CONFIG_HTTPD_SERVER_EVENT_POST_TIMEOUT=2000
# end of HTTP Server
#
@@ -1030,12 +1174,15 @@ CONFIG_HTTPD_PURGE_BUF_LEN=32
#
# CONFIG_ESP_HTTPS_OTA_DECRYPT_CB is not set
# CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP is not set
+CONFIG_ESP_HTTPS_OTA_EVENT_POST_TIMEOUT=2000
# end of ESP HTTPS OTA
#
# ESP HTTPS server
#
# CONFIG_ESP_HTTPS_SERVER_ENABLE is not set
+CONFIG_ESP_HTTPS_SERVER_EVENT_POST_TIMEOUT=2000
+# CONFIG_ESP_HTTPS_SERVER_CERT_SELECT_HOOK is not set
# end of ESP HTTPS server
#
@@ -1060,6 +1207,12 @@ CONFIG_ESP_REV_MIN_FULL=0
#
CONFIG_ESP32_REV_MAX_FULL=399
CONFIG_ESP_REV_MAX_FULL=399
+CONFIG_ESP_EFUSE_BLOCK_REV_MIN_FULL=0
+CONFIG_ESP_EFUSE_BLOCK_REV_MAX_FULL=99
+
+#
+# Maximum Supported ESP32 eFuse Block Revision (eFuse Block Rev v0.99)
+#
# end of Chip revision
#
@@ -1105,47 +1258,69 @@ CONFIG_RTC_CLK_CAL_CYCLES=1024
#
# Peripheral Control
#
-CONFIG_PERIPH_CTRL_FUNC_IN_IRAM=y
+CONFIG_ESP_PERIPH_CTRL_FUNC_IN_IRAM=y
+CONFIG_ESP_REGI2C_CTRL_FUNC_IN_IRAM=y
# end of Peripheral Control
#
# Main XTAL Config
#
# CONFIG_XTAL_FREQ_26 is not set
+# CONFIG_XTAL_FREQ_32 is not set
CONFIG_XTAL_FREQ_40=y
# CONFIG_XTAL_FREQ_AUTO is not set
CONFIG_XTAL_FREQ=40
# end of Main XTAL Config
+#
+# Power Supplier
+#
+
+#
+# Brownout Detector
+#
+CONFIG_ESP_BROWNOUT_DET=y
+CONFIG_ESP_BROWNOUT_DET_LVL_SEL_0=y
+# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_1 is not set
+# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2 is not set
+# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3 is not set
+# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4 is not set
+# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 is not set
+# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6 is not set
+# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7 is not set
+CONFIG_ESP_BROWNOUT_DET_LVL=0
+CONFIG_ESP_BROWNOUT_USE_INTR=y
+# end of Brownout Detector
+# end of Power Supplier
+
CONFIG_ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM=y
+CONFIG_ESP_INTR_IN_IRAM=y
# end of Hardware Settings
#
-# LCD and Touch Panel
+# ESP-Driver:LCD Controller Configurations
#
-
-#
-# LCD Touch Drivers are maintained in the IDF Component Registry
-#
-
-#
-# LCD Peripheral Configuration
-#
-CONFIG_LCD_PANEL_IO_FORMAT_BUF_SIZE=32
# CONFIG_LCD_ENABLE_DEBUG_LOG is not set
-# end of LCD Peripheral Configuration
-# end of LCD and Touch Panel
+# end of ESP-Driver:LCD Controller Configurations
+
+#
+# ESP-MM: Memory Management Configurations
+#
+# end of ESP-MM: Memory Management Configurations
#
# ESP NETIF Adapter
#
CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120
+# CONFIG_ESP_NETIF_PROVIDE_CUSTOM_IMPLEMENTATION is not set
CONFIG_ESP_NETIF_TCPIP_LWIP=y
# CONFIG_ESP_NETIF_LOOPBACK is not set
CONFIG_ESP_NETIF_USES_TCPIP_WITH_BSD_API=y
+CONFIG_ESP_NETIF_REPORT_DATA_TRAFFIC=y
# CONFIG_ESP_NETIF_RECEIVE_REPORT_ERRORS is not set
# CONFIG_ESP_NETIF_L2_TAP is not set
# CONFIG_ESP_NETIF_BRIDGE_EN is not set
+# CONFIG_ESP_NETIF_SET_DNS_PER_DEFAULT_NETIF is not set
# end of ESP NETIF Adapter
#
@@ -1162,17 +1337,24 @@ CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y
CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20
CONFIG_ESP_PHY_MAX_TX_POWER=20
# CONFIG_ESP_PHY_REDUCE_TX_POWER is not set
+# CONFIG_ESP_PHY_ENABLE_CERT_TEST is not set
CONFIG_ESP_PHY_RF_CAL_PARTIAL=y
# CONFIG_ESP_PHY_RF_CAL_NONE is not set
# CONFIG_ESP_PHY_RF_CAL_FULL is not set
CONFIG_ESP_PHY_CALIBRATION_MODE=0
+CONFIG_ESP_PHY_PLL_TRACK_PERIOD_MS=1000
# CONFIG_ESP_PHY_PLL_TRACK_DEBUG is not set
+# CONFIG_ESP_PHY_RECORD_USED_TIME is not set
+CONFIG_ESP_PHY_IRAM_OPT=y
+# CONFIG_ESP_PHY_DEBUG is not set
# end of PHY
#
# Power Management
#
+CONFIG_PM_SLEEP_FUNC_IN_IRAM=y
# CONFIG_PM_ENABLE is not set
+CONFIG_PM_SLP_IRAM_OPT=y
# end of Power Management
#
@@ -1187,6 +1369,17 @@ CONFIG_ESP_PHY_CALIBRATION_MODE=0
# CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH is not set
# end of ESP Ringbuf
+#
+# ESP-ROM
+#
+CONFIG_ESP_ROM_PRINT_IN_IRAM=y
+# end of ESP-ROM
+
+#
+# ESP Security Specific
+#
+# end of ESP Security Specific
+
#
# ESP System Settings
#
@@ -1214,6 +1407,7 @@ CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=160
CONFIG_ESP32_TRACEMEM_RESERVE_DRAM=0x0
# end of Trace memory
+CONFIG_ESP_SYSTEM_IN_IRAM=y
# CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set
CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y
# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set
@@ -1253,29 +1447,13 @@ CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=y
# CONFIG_ESP_DEBUG_STUBS_ENABLE is not set
CONFIG_ESP_DEBUG_OCDAWARE=y
CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_5=y
-
-#
-# Brownout Detector
-#
-CONFIG_ESP_BROWNOUT_DET=y
-CONFIG_ESP_BROWNOUT_DET_LVL_SEL_0=y
-# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_1 is not set
-# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2 is not set
-# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3 is not set
-# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4 is not set
-# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 is not set
-# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6 is not set
-# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7 is not set
-CONFIG_ESP_BROWNOUT_DET_LVL=0
-# end of Brownout Detector
-
# CONFIG_ESP32_DISABLE_BASIC_ROM_CONSOLE is not set
-CONFIG_ESP_SYSTEM_BROWNOUT_INTR=y
# end of ESP System Settings
#
# IPC (Inter-Processor Call)
#
+CONFIG_ESP_IPC_ENABLE=y
CONFIG_ESP_IPC_TASK_STACK_SIZE=1024
CONFIG_ESP_IPC_USES_CALLERS_PRIORITY=y
CONFIG_ESP_IPC_ISR_ENABLE=y
@@ -1284,6 +1462,7 @@ CONFIG_ESP_IPC_ISR_ENABLE=y
#
# ESP Timer (High Resolution Timer)
#
+CONFIG_ESP_TIMER_IN_IRAM=y
# CONFIG_ESP_TIMER_PROFILING is not set
CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y
CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y
@@ -1326,10 +1505,12 @@ CONFIG_ESP_WIFI_IRAM_OPT=y
CONFIG_ESP_WIFI_RX_IRAM_OPT=y
CONFIG_ESP_WIFI_ENABLE_WPA3_SAE=y
CONFIG_ESP_WIFI_ENABLE_SAE_PK=y
+CONFIG_ESP_WIFI_ENABLE_SAE_H2E=y
CONFIG_ESP_WIFI_SOFTAP_SAE_SUPPORT=y
CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA=y
# CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set
CONFIG_ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME=50
+# CONFIG_ESP_WIFI_BSS_MAX_IDLE_SUPPORT is not set
CONFIG_ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME=10
CONFIG_ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME=15
CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y
@@ -1404,10 +1585,21 @@ CONFIG_FATFS_FS_LOCK=0
CONFIG_FATFS_TIMEOUT_MS=10000
CONFIG_FATFS_PER_FILE_CACHE=y
# CONFIG_FATFS_USE_FASTSEEK is not set
+CONFIG_FATFS_USE_STRFUNC_NONE=y
+# CONFIG_FATFS_USE_STRFUNC_WITHOUT_CRLF_CONV is not set
+# CONFIG_FATFS_USE_STRFUNC_WITH_CRLF_CONV is not set
CONFIG_FATFS_VFS_FSTAT_BLKSIZE=0
# CONFIG_FATFS_IMMEDIATE_FSYNC is not set
# CONFIG_FATFS_USE_LABEL is not set
CONFIG_FATFS_LINK_LOCK=y
+# CONFIG_FATFS_USE_DYN_BUFFERS is not set
+
+#
+# File system free space calculation behavior
+#
+CONFIG_FATFS_DONT_TRUST_FREE_CLUSTER_CNT=0
+CONFIG_FATFS_DONT_TRUST_LAST_ALLOC=0
+# end of File system free space calculation behavior
# end of FAT Filesystem support
#
@@ -1429,6 +1621,7 @@ CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536
# CONFIG_FREERTOS_USE_TICK_HOOK is not set
CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16
# CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY is not set
+CONFIG_FREERTOS_USE_TIMERS=y
CONFIG_FREERTOS_TIMER_SERVICE_TASK_NAME="Tmr Svc"
# CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU0 is not set
# CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU1 is not set
@@ -1464,6 +1657,11 @@ CONFIG_FREERTOS_SYSTICK_USES_CCOUNT=y
# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set
# end of Port
+#
+# Extra
+#
+# end of Extra
+
CONFIG_FREERTOS_PORT=y
CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF
CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y
@@ -1471,6 +1669,7 @@ CONFIG_FREERTOS_DEBUG_OCDAWARE=y
CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y
CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y
CONFIG_FREERTOS_NUMBER_OF_CORES=2
+CONFIG_FREERTOS_IN_IRAM=y
# end of FreeRTOS
#
@@ -1481,8 +1680,6 @@ CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y
# CONFIG_HAL_ASSERTION_SILENT is not set
# CONFIG_HAL_ASSERTION_ENABLE is not set
CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2
-CONFIG_HAL_SPI_MASTER_FUNC_IN_IRAM=y
-CONFIG_HAL_SPI_SLAVE_FUNC_IN_IRAM=y
# end of Hardware Abstraction Layer (HAL) and Low Level (LL)
#
@@ -1501,7 +1698,14 @@ CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS=y
# end of Heap memory debugging
#
-# Log output
+# Log
+#
+CONFIG_LOG_VERSION_1=y
+# CONFIG_LOG_VERSION_2 is not set
+CONFIG_LOG_VERSION=1
+
+#
+# Log Level
#
# CONFIG_LOG_DEFAULT_LEVEL_NONE is not set
# CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set
@@ -1514,18 +1718,44 @@ CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y
# CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set
# CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set
CONFIG_LOG_MAXIMUM_LEVEL=3
+
+#
+# Level Settings
+#
# CONFIG_LOG_MASTER_LEVEL is not set
+CONFIG_LOG_DYNAMIC_LEVEL_CONTROL=y
+# CONFIG_LOG_TAG_LEVEL_IMPL_NONE is not set
+# CONFIG_LOG_TAG_LEVEL_IMPL_LINKED_LIST is not set
+CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_AND_LINKED_LIST=y
+# CONFIG_LOG_TAG_LEVEL_CACHE_ARRAY is not set
+CONFIG_LOG_TAG_LEVEL_CACHE_BINARY_MIN_HEAP=y
+CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_SIZE=31
+# end of Level Settings
+# end of Log Level
+
+#
+# Format
+#
CONFIG_LOG_COLORS=y
CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y
# CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set
-# end of Log output
+# end of Format
+
+#
+# Settings
+#
+CONFIG_LOG_MODE_TEXT_EN=y
+CONFIG_LOG_MODE_TEXT=y
+# end of Settings
+
+CONFIG_LOG_IN_IRAM=y
+# end of Log
#
# LWIP
#
CONFIG_LWIP_ENABLE=y
CONFIG_LWIP_LOCAL_HOSTNAME="espressif"
-# CONFIG_LWIP_NETIF_API is not set
CONFIG_LWIP_TCPIP_TASK_PRIO=18
# CONFIG_LWIP_TCPIP_CORE_LOCKING is not set
# CONFIG_LWIP_CHECK_THREAD_SAFETY is not set
@@ -1557,6 +1787,8 @@ CONFIG_LWIP_ESP_MLDV6_REPORT=y
CONFIG_LWIP_MLDV6_TMR_INTERVAL=40
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32
CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y
+# CONFIG_LWIP_DHCP_DOES_ACD_CHECK is not set
+# CONFIG_LWIP_DHCP_DOES_NOT_CHECK_OFFERED_IP is not set
# CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set
CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y
# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set
@@ -1571,6 +1803,7 @@ CONFIG_LWIP_DHCPS=y
CONFIG_LWIP_DHCPS_LEASE_UNIT=60
CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8
CONFIG_LWIP_DHCPS_STATIC_ENTRIES=y
+CONFIG_LWIP_DHCPS_ADD_DNS=y
# end of DHCP server
# CONFIG_LWIP_AUTOIP is not set
@@ -1629,9 +1862,12 @@ CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set
CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF
-# CONFIG_LWIP_PPP_SUPPORT is not set
CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3
CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5
+CONFIG_LWIP_IPV6_ND6_NUM_PREFIXES=5
+CONFIG_LWIP_IPV6_ND6_NUM_ROUTERS=3
+CONFIG_LWIP_IPV6_ND6_NUM_DESTINATIONS=10
+# CONFIG_LWIP_PPP_SUPPORT is not set
# CONFIG_LWIP_SLIP_SUPPORT is not set
#
@@ -1661,8 +1897,11 @@ CONFIG_LWIP_SNTP_MAXIMUM_STARTUP_DELAY=5000
#
# DNS
#
+CONFIG_LWIP_DNS_MAX_HOST_IP=1
CONFIG_LWIP_DNS_MAX_SERVERS=3
# CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT is not set
+# CONFIG_LWIP_DNS_SETSERVER_WITH_NETIF is not set
+# CONFIG_LWIP_USE_ESP_GETADDRINFO is not set
# end of DNS
CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7
@@ -1683,9 +1922,14 @@ CONFIG_LWIP_HOOK_ND6_GET_GW_NONE=y
CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_NONE=y
# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_DEFAULT is not set
# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_CUSTOM is not set
+CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_NONE=y
+# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_DEFAULT is not set
+# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_CUSTOM is not set
CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y
# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set
# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set
+CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_NONE=y
+# CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_CUSTOM is not set
CONFIG_LWIP_HOOK_IP6_INPUT_NONE=y
# CONFIG_LWIP_HOOK_IP6_INPUT_DEFAULT is not set
# CONFIG_LWIP_HOOK_IP6_INPUT_CUSTOM is not set
@@ -1714,6 +1958,7 @@ CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096
# CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set
# CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set
CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=y
+# CONFIG_MBEDTLS_SSL_KEYING_MATERIAL_EXPORT is not set
CONFIG_MBEDTLS_PKCS7_C=y
# end of mbedTLS v3.x related
@@ -1743,7 +1988,9 @@ CONFIG_MBEDTLS_HAVE_TIME=y
# CONFIG_MBEDTLS_PLATFORM_TIME_ALT is not set
# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set
CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y
+CONFIG_MBEDTLS_SHA1_C=y
CONFIG_MBEDTLS_SHA512_C=y
+CONFIG_MBEDTLS_SHA3_C=y
CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y
# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set
# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set
@@ -1797,6 +2044,8 @@ CONFIG_MBEDTLS_X509_CSR_PARSE_C=y
# end of Certificates
CONFIG_MBEDTLS_ECP_C=y
+CONFIG_MBEDTLS_PK_PARSE_EC_EXTENDED=y
+CONFIG_MBEDTLS_PK_PARSE_EC_COMPRESSED=y
# CONFIG_MBEDTLS_DHM_C is not set
CONFIG_MBEDTLS_ECDH_C=y
CONFIG_MBEDTLS_ECDSA_C=y
@@ -1820,6 +2069,8 @@ CONFIG_MBEDTLS_ECP_FIXED_POINT_OPTIM=y
# CONFIG_MBEDTLS_HKDF_C is not set
# CONFIG_MBEDTLS_THREADING_C is not set
CONFIG_MBEDTLS_ERROR_STRINGS=y
+CONFIG_MBEDTLS_FS_IO=y
+# CONFIG_MBEDTLS_ALLOW_WEAK_CERTIFICATE_VERIFICATION is not set
# end of mbedTLS
#
@@ -1839,20 +2090,23 @@ CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y
# end of ESP-MQTT Configurations
#
-# Newlib
+# LibC
#
-CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y
-# CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF is not set
-# CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR is not set
-# CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF is not set
-# CONFIG_NEWLIB_STDIN_LINE_ENDING_LF is not set
-CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y
-# CONFIG_NEWLIB_NANO_FORMAT is not set
-CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT=y
-# CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC is not set
-# CONFIG_NEWLIB_TIME_SYSCALL_USE_HRT is not set
-# CONFIG_NEWLIB_TIME_SYSCALL_USE_NONE is not set
-# end of Newlib
+CONFIG_LIBC_NEWLIB=y
+CONFIG_LIBC_MISC_IN_IRAM=y
+CONFIG_LIBC_LOCKS_PLACE_IN_IRAM=y
+CONFIG_LIBC_STDOUT_LINE_ENDING_CRLF=y
+# CONFIG_LIBC_STDOUT_LINE_ENDING_LF is not set
+# CONFIG_LIBC_STDOUT_LINE_ENDING_CR is not set
+# CONFIG_LIBC_STDIN_LINE_ENDING_CRLF is not set
+# CONFIG_LIBC_STDIN_LINE_ENDING_LF is not set
+CONFIG_LIBC_STDIN_LINE_ENDING_CR=y
+# CONFIG_LIBC_NEWLIB_NANO_FORMAT is not set
+CONFIG_LIBC_TIME_SYSCALL_USE_RTC_HRT=y
+# CONFIG_LIBC_TIME_SYSCALL_USE_RTC is not set
+# CONFIG_LIBC_TIME_SYSCALL_USE_HRT is not set
+# CONFIG_LIBC_TIME_SYSCALL_USE_NONE is not set
+# end of LibC
#
# NVS
@@ -1867,25 +2121,10 @@ CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT=y
# CONFIG_OPENTHREAD_ENABLED is not set
#
-# Thread Operational Dataset
+# OpenThread Spinel
#
-CONFIG_OPENTHREAD_NETWORK_NAME="OpenThread-ESP"
-CONFIG_OPENTHREAD_MESH_LOCAL_PREFIX="fd00:db8:a0:0::/64"
-CONFIG_OPENTHREAD_NETWORK_CHANNEL=15
-CONFIG_OPENTHREAD_NETWORK_PANID=0x1234
-CONFIG_OPENTHREAD_NETWORK_EXTPANID="dead00beef00cafe"
-CONFIG_OPENTHREAD_NETWORK_MASTERKEY="00112233445566778899aabbccddeeff"
-CONFIG_OPENTHREAD_NETWORK_PSKC="104810e2315100afd6bc9215a6bfac53"
-# end of Thread Operational Dataset
-
-CONFIG_OPENTHREAD_XTAL_ACCURACY=130
# CONFIG_OPENTHREAD_SPINEL_ONLY is not set
-# CONFIG_OPENTHREAD_RX_ON_WHEN_IDLE is not set
-
-#
-# Thread Address Query Config
-#
-# end of Thread Address Query Config
+# end of OpenThread Spinel
# end of OpenThread
#
@@ -1894,6 +2133,7 @@ CONFIG_OPENTHREAD_XTAL_ACCURACY=130
CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_0=y
CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1=y
CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_2=y
+CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_PATCH_VERSION=y
# end of Protocomm
#
@@ -1936,6 +2176,9 @@ CONFIG_SPI_FLASH_BROWNOUT_RESET=y
# Features here require specific hardware (READ DOCS FIRST!)
#
CONFIG_SPI_FLASH_SUSPEND_TSUS_VAL_US=50
+# CONFIG_SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND is not set
+# CONFIG_SPI_FLASH_FORCE_ENABLE_C6_H2_SUSPEND is not set
+CONFIG_SPI_FLASH_PLACE_FUNCTIONS_IN_IRAM=y
# end of Optional and Experimental Features (READ DOCS FIRST)
# end of Main Flash configuration
@@ -1961,11 +2204,11 @@ CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192
#
# Auto-detect flash chips
#
-CONFIG_SPI_FLASH_VENDOR_XMC_SUPPORTED=y
-CONFIG_SPI_FLASH_VENDOR_GD_SUPPORTED=y
-CONFIG_SPI_FLASH_VENDOR_ISSI_SUPPORTED=y
-CONFIG_SPI_FLASH_VENDOR_MXIC_SUPPORTED=y
-CONFIG_SPI_FLASH_VENDOR_WINBOND_SUPPORTED=y
+CONFIG_SPI_FLASH_VENDOR_XMC_SUPPORT_ENABLED=y
+CONFIG_SPI_FLASH_VENDOR_GD_SUPPORT_ENABLED=y
+CONFIG_SPI_FLASH_VENDOR_ISSI_SUPPORT_ENABLED=y
+CONFIG_SPI_FLASH_VENDOR_MXIC_SUPPORT_ENABLED=y
+CONFIG_SPI_FLASH_VENDOR_WINBOND_SUPPORT_ENABLED=y
CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y
CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=y
CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y
@@ -2047,6 +2290,7 @@ CONFIG_UNITY_ENABLE_DOUBLE=y
CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y
# CONFIG_UNITY_ENABLE_FIXTURE is not set
# CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL is not set
+# CONFIG_UNITY_TEST_ORDER_BY_FILE_PATH_AND_LINE is not set
# end of Unity unit testing library
#
@@ -2065,6 +2309,8 @@ CONFIG_VFS_MAX_COUNT=8
#
CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1
# end of Host File System I/O (Semihosting)
+
+CONFIG_VFS_INITIALIZE_DEV_NULL=y
# end of Virtual file system
#
@@ -2082,6 +2328,7 @@ CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16
CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30
# CONFIG_WIFI_PROV_BLE_BONDING is not set
# CONFIG_WIFI_PROV_BLE_FORCE_ENCRYPTION is not set
+# CONFIG_WIFI_PROV_BLE_NOTIFY is not set
# CONFIG_WIFI_PROV_KEEP_BLE_ON_AFTER_PROV is not set
CONFIG_WIFI_PROV_STA_ALL_CHANNEL_SCAN=y
# CONFIG_WIFI_PROV_STA_FAST_SCAN is not set
@@ -2146,7 +2393,6 @@ CONFIG_LV_OS_NONE=y
# CONFIG_LV_OS_WINDOWS is not set
# CONFIG_LV_OS_MQX is not set
# CONFIG_LV_OS_CUSTOM is not set
-CONFIG_LV_USE_OS=0
# end of Operating System (OS)
#
@@ -2155,6 +2401,9 @@ CONFIG_LV_USE_OS=0
CONFIG_LV_DRAW_BUF_STRIDE_ALIGN=1
CONFIG_LV_DRAW_BUF_ALIGN=4
CONFIG_LV_DRAW_LAYER_SIMPLE_BUF_SIZE=24576
+CONFIG_LV_DRAW_LAYER_MAX_MEMORY=0
+CONFIG_LV_DRAW_THREAD_STACK_SIZE=8192
+CONFIG_LV_DRAW_THREAD_PRIO=3
CONFIG_LV_USE_DRAW_SW=y
CONFIG_LV_DRAW_SW_SUPPORT_RGB565=y
CONFIG_LV_DRAW_SW_SUPPORT_RGB565A8=y
@@ -2165,6 +2414,7 @@ CONFIG_LV_DRAW_SW_SUPPORT_L8=y
CONFIG_LV_DRAW_SW_SUPPORT_AL88=y
CONFIG_LV_DRAW_SW_SUPPORT_A8=y
CONFIG_LV_DRAW_SW_SUPPORT_I1=y
+CONFIG_LV_DRAW_SW_I1_LUM_THRESHOLD=127
CONFIG_LV_DRAW_SW_DRAW_UNIT_CNT=1
# CONFIG_LV_USE_DRAW_ARM2D_SYNC is not set
# CONFIG_LV_USE_NATIVE_HELIUM_ASM is not set
@@ -2179,10 +2429,12 @@ CONFIG_LV_DRAW_SW_ASM_NONE=y
CONFIG_LV_USE_DRAW_SW_ASM=0
# CONFIG_LV_USE_DRAW_VGLITE is not set
# CONFIG_LV_USE_PXP is not set
+# CONFIG_LV_USE_DRAW_G2D is not set
# CONFIG_LV_USE_DRAW_DAVE2D is not set
# CONFIG_LV_USE_DRAW_SDL is not set
# CONFIG_LV_USE_DRAW_VG_LITE is not set
# CONFIG_LV_USE_VECTOR_GRAPHIC is not set
+# CONFIG_LV_USE_DRAW_DMA2D is not set
# end of Rendering Configuration
#
@@ -2224,6 +2476,7 @@ CONFIG_LV_GRADIENT_MAX_STOPS=2
CONFIG_LV_COLOR_MIX_ROUND_OFS=128
# CONFIG_LV_OBJ_STYLE_CACHE is not set
# CONFIG_LV_USE_OBJ_ID is not set
+# CONFIG_LV_USE_OBJ_NAME is not set
# CONFIG_LV_USE_OBJ_PROPERTY is not set
# end of Others
# end of Feature Configuration
@@ -2271,6 +2524,8 @@ CONFIG_LV_FONT_MONTSERRAT_14=y
# CONFIG_LV_FONT_DEJAVU_16_PERSIAN_HEBREW is not set
# CONFIG_LV_FONT_SIMSUN_14_CJK is not set
# CONFIG_LV_FONT_SIMSUN_16_CJK is not set
+# CONFIG_LV_FONT_SOURCE_HAN_SANS_SC_14_CJK is not set
+# CONFIG_LV_FONT_SOURCE_HAN_SANS_SC_16_CJK is not set
CONFIG_LV_FONT_UNSCII_8=y
CONFIG_LV_FONT_UNSCII_16=y
# end of Enable built-in fonts
@@ -2300,11 +2555,18 @@ CONFIG_LV_FONT_UNSCII_16=y
# CONFIG_LV_FONT_DEFAULT_DEJAVU_16_PERSIAN_HEBREW is not set
# CONFIG_LV_FONT_DEFAULT_SIMSUN_14_CJK is not set
# CONFIG_LV_FONT_DEFAULT_SIMSUN_16_CJK is not set
+# CONFIG_LV_FONT_DEFAULT_SOURCE_HAN_SANS_SC_14_CJK is not set
+# CONFIG_LV_FONT_DEFAULT_SOURCE_HAN_SANS_SC_16_CJK is not set
CONFIG_LV_FONT_DEFAULT_UNSCII_8=y
# CONFIG_LV_FONT_DEFAULT_UNSCII_16 is not set
# CONFIG_LV_FONT_FMT_TXT_LARGE is not set
# CONFIG_LV_USE_FONT_COMPRESSED is not set
CONFIG_LV_USE_FONT_PLACEHOLDER=y
+
+#
+# Enable static fonts
+#
+# end of Enable static fonts
# end of Font Usage
#
@@ -2314,6 +2576,7 @@ CONFIG_LV_TXT_ENC_UTF8=y
# CONFIG_LV_TXT_ENC_ASCII is not set
CONFIG_LV_TXT_BREAK_CHARS=" ,.;:-_"
CONFIG_LV_TXT_LINE_BREAK_LONG_LEN=0
+CONFIG_LV_TXT_COLOR_CMD="#"
# CONFIG_LV_USE_BIDI is not set
# CONFIG_LV_USE_ARABIC_PERSIAN_CHARS is not set
# end of Text Settings
@@ -2329,6 +2592,19 @@ CONFIG_LV_USE_BUTTON=y
CONFIG_LV_USE_BUTTONMATRIX=y
CONFIG_LV_USE_CALENDAR=y
# CONFIG_LV_CALENDAR_WEEK_STARTS_MONDAY is not set
+
+#
+# Days name configuration
+#
+CONFIG_LV_MONDAY_STR="Mo"
+CONFIG_LV_TUESDAY_STR="Tu"
+CONFIG_LV_WEDNESDAY_STR="We"
+CONFIG_LV_THURSDAY_STR="Th"
+CONFIG_LV_FRIDAY_STR="Fr"
+CONFIG_LV_SATURDAY_STR="Sa"
+CONFIG_LV_SUNDAY_STR="Su"
+# end of Days name configuration
+
CONFIG_LV_USE_CALENDAR_HEADER_ARROW=y
CONFIG_LV_USE_CALENDAR_HEADER_DROPDOWN=y
# CONFIG_LV_USE_CALENDAR_CHINESE is not set
@@ -2385,7 +2661,7 @@ CONFIG_LV_USE_GRID=y
#
# 3rd Party Libraries
#
-CONFIG_LV_FS_DEFAULT_DRIVE_LETTER=0
+CONFIG_LV_FS_DEFAULT_DRIVER_LETTER=0
# CONFIG_LV_USE_FS_STDIO is not set
# CONFIG_LV_USE_FS_POSIX is not set
# CONFIG_LV_USE_FS_WIN32 is not set
@@ -2394,6 +2670,7 @@ CONFIG_LV_FS_DEFAULT_DRIVE_LETTER=0
# CONFIG_LV_USE_FS_LITTLEFS is not set
# CONFIG_LV_USE_FS_ARDUINO_ESP_LITTLEFS is not set
# CONFIG_LV_USE_FS_ARDUINO_SD is not set
+# CONFIG_LV_USE_FS_UEFI is not set
# CONFIG_LV_USE_LODEPNG is not set
# CONFIG_LV_USE_LIBPNG is not set
# CONFIG_LV_USE_BMP is not set
@@ -2425,9 +2702,13 @@ CONFIG_LV_USE_SNAPSHOT=y
CONFIG_LV_USE_OBSERVER=y
# CONFIG_LV_USE_IME_PINYIN is not set
# CONFIG_LV_USE_FILE_EXPLORER is not set
+# CONFIG_LV_USE_FONT_MANAGER is not set
+# CONFIG_LV_USE_TEST is not set
+# CONFIG_LV_USE_XML is not set
+# CONFIG_LV_USE_COLOR_FILTER is not set
CONFIG_LVGL_VERSION_MAJOR=9
-CONFIG_LVGL_VERSION_MINOR=2
-CONFIG_LVGL_VERSION_PATCH=2
+CONFIG_LVGL_VERSION_MINOR=3
+CONFIG_LVGL_VERSION_PATCH=0
# end of Others
#
@@ -2448,6 +2729,9 @@ CONFIG_LVGL_VERSION_PATCH=2
# CONFIG_LV_USE_ILI9341 is not set
# CONFIG_LV_USE_GENERIC_MIPI is not set
# CONFIG_LV_USE_RENESAS_GLCDC is not set
+# CONFIG_LV_USE_ST_LTDC is not set
+# CONFIG_LV_USE_FT81X is not set
+# CONFIG_LV_USE_UEFI is not set
# CONFIG_LV_USE_OPENGLES is not set
# CONFIG_LV_USE_QNX is not set
# end of Devices
@@ -2461,14 +2745,19 @@ CONFIG_LVGL_VERSION_PATCH=2
#
# Demos
#
+CONFIG_LV_BUILD_DEMOS=y
# CONFIG_LV_USE_DEMO_WIDGETS is not set
# CONFIG_LV_USE_DEMO_KEYPAD_AND_ENCODER is not set
+# CONFIG_LV_USE_DEMO_BENCHMARK is not set
# CONFIG_LV_USE_DEMO_RENDER is not set
# CONFIG_LV_USE_DEMO_SCROLL is not set
# CONFIG_LV_USE_DEMO_STRESS is not set
# CONFIG_LV_USE_DEMO_MUSIC is not set
# CONFIG_LV_USE_DEMO_FLEX_LAYOUT is not set
# CONFIG_LV_USE_DEMO_MULTILANG is not set
+# CONFIG_LV_USE_DEMO_SMARTWATCH is not set
+# CONFIG_LV_USE_DEMO_EBIKE is not set
+# CONFIG_LV_USE_DEMO_HIGH_RES is not set
# end of Demos
# end of LVGL configuration
# end of Component config
@@ -2481,6 +2770,7 @@ CONFIG_LVGL_VERSION_PATCH=2
# CONFIG_ESP32_NO_BLOBS is not set
# CONFIG_ESP32_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set
# CONFIG_ESP32_COMPATIBLE_PRE_V3_1_BOOTLOADERS is not set
+# CONFIG_APP_ROLLBACK_ENABLE is not set
# CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set
# CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set
# CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set
@@ -2488,7 +2778,6 @@ CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y
# CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set
# CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set
CONFIG_LOG_BOOTLOADER_LEVEL=3
-# CONFIG_APP_ROLLBACK_ENABLE is not set
# CONFIG_FLASH_ENCRYPTION_ENABLED is not set
# CONFIG_FLASHMODE_QIO is not set
# CONFIG_FLASHMODE_QOUT is not set
@@ -2530,6 +2819,7 @@ CONFIG_GATTS_SEND_SERVICE_CHANGE_AUTO=y
CONFIG_GATTS_SEND_SERVICE_CHANGE_MODE=0
CONFIG_GATTC_ENABLE=y
# CONFIG_GATTC_CACHE_NVS_FLASH is not set
+CONFIG_BLE_ESTABLISH_LINK_CONNECTION_TIMEOUT=30
CONFIG_BLE_SMP_ENABLE=y
# CONFIG_SMP_SLAVE_CON_PARAMS_UPD_ENABLE is not set
# CONFIG_HCI_TRACE_LEVEL_NONE is not set
@@ -2693,10 +2983,8 @@ CONFIG_BLUFI_TRACE_LEVEL_WARNING=y
# CONFIG_BLUFI_TRACE_LEVEL_DEBUG is not set
# CONFIG_BLUFI_TRACE_LEVEL_VERBOSE is not set
CONFIG_BLUFI_INITIAL_TRACE_LEVEL=2
-# CONFIG_BLE_HOST_QUEUE_CONGESTION_CHECK is not set
CONFIG_SMP_ENABLE=y
# CONFIG_BLE_ACTIVE_SCAN_REPORT_ADV_SCAN_RSP_INDIVIDUALLY is not set
-CONFIG_BLE_ESTABLISH_LINK_CONNECTION_TIMEOUT=30
# CONFIG_BTDM_CONTROLLER_MODE_BLE_ONLY is not set
CONFIG_BTDM_CONTROLLER_MODE_BR_EDR_ONLY=y
# CONFIG_BTDM_CONTROLLER_MODE_BTDM is not set
@@ -2713,7 +3001,8 @@ CONFIG_ADC2_DISABLE_DAC=y
CONFIG_SW_COEXIST_ENABLE=y
CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE=y
CONFIG_ESP_WIFI_SW_COEXIST_ENABLE=y
-# CONFIG_MCPWM_ISR_IN_IRAM is not set
+# CONFIG_GPTIMER_ISR_IRAM_SAFE is not set
+# CONFIG_MCPWM_ISR_IRAM_SAFE is not set
# CONFIG_EVENT_LOOP_PROFILING is not set
CONFIG_POST_EVENTS_FROM_ISR=y
CONFIG_POST_EVENTS_FROM_IRAM_ISR=y
@@ -2735,10 +3024,32 @@ CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC=y
# CONFIG_ESP32_RTC_CLK_SRC_INT_8MD256 is not set
# CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_8MD256 is not set
CONFIG_ESP32_RTC_CLK_CAL_CYCLES=1024
+CONFIG_PERIPH_CTRL_FUNC_IN_IRAM=y
# CONFIG_ESP32_XTAL_FREQ_26 is not set
CONFIG_ESP32_XTAL_FREQ_40=y
# CONFIG_ESP32_XTAL_FREQ_AUTO is not set
CONFIG_ESP32_XTAL_FREQ=40
+CONFIG_BROWNOUT_DET=y
+CONFIG_ESP32_BROWNOUT_DET=y
+CONFIG_BROWNOUT_DET_LVL_SEL_0=y
+CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_0=y
+# CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set
+# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_1 is not set
+# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set
+# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_2 is not set
+# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set
+# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_3 is not set
+# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set
+# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_4 is not set
+# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set
+# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_5 is not set
+# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set
+# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_6 is not set
+# CONFIG_BROWNOUT_DET_LVL_SEL_7 is not set
+# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_7 is not set
+CONFIG_BROWNOUT_DET_LVL=0
+CONFIG_ESP32_BROWNOUT_DET_LVL=0
+CONFIG_ESP_SYSTEM_BROWNOUT_INTR=y
CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y
# CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION is not set
CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20
@@ -2777,26 +3088,6 @@ CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y
CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y
# CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set
CONFIG_ESP32_DEBUG_OCDAWARE=y
-CONFIG_BROWNOUT_DET=y
-CONFIG_ESP32_BROWNOUT_DET=y
-CONFIG_BROWNOUT_DET_LVL_SEL_0=y
-CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_0=y
-# CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set
-# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_1 is not set
-# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set
-# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_2 is not set
-# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set
-# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_3 is not set
-# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set
-# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_4 is not set
-# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set
-# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_5 is not set
-# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set
-# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_6 is not set
-# CONFIG_BROWNOUT_DET_LVL_SEL_7 is not set
-# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_7 is not set
-CONFIG_BROWNOUT_DET_LVL=0
-CONFIG_ESP32_BROWNOUT_DET_LVL=0
# CONFIG_DISABLE_BASIC_ROM_CONSOLE is not set
CONFIG_IPC_TASK_STACK_SIZE=1024
CONFIG_TIMER_TASK_STACK_SIZE=3584
@@ -2811,8 +3102,6 @@ CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32
CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y
CONFIG_ESP32_WIFI_TX_BA_WIN=6
CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y
-CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y
-CONFIG_ESP32_WIFI_RX_BA_WIN=6
CONFIG_ESP32_WIFI_RX_BA_WIN=6
CONFIG_ESP32_WIFI_NVS_ENABLED=y
CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y
@@ -2864,11 +3153,22 @@ CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
# CONFIG_TCPIP_TASK_AFFINITY_CPU1 is not set
CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF
# CONFIG_PPP_SUPPORT is not set
+CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y
+# CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF is not set
+# CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR is not set
+# CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF is not set
+# CONFIG_NEWLIB_STDIN_LINE_ENDING_LF is not set
+CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y
+# CONFIG_NEWLIB_NANO_FORMAT is not set
+CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT=y
CONFIG_ESP32_TIME_SYSCALL_USE_RTC_HRT=y
CONFIG_ESP32_TIME_SYSCALL_USE_RTC_FRC1=y
+# CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC is not set
# CONFIG_ESP32_TIME_SYSCALL_USE_RTC is not set
+# CONFIG_NEWLIB_TIME_SYSCALL_USE_HRT is not set
# CONFIG_ESP32_TIME_SYSCALL_USE_HRT is not set
# CONFIG_ESP32_TIME_SYSCALL_USE_FRC1 is not set
+# CONFIG_NEWLIB_TIME_SYSCALL_USE_NONE is not set
# CONFIG_ESP32_TIME_SYSCALL_USE_NONE is not set
CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5
CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072