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