Commit Graph

14 Commits

  • Merge branch 'master' into fix_20ms_chunk_size_bug
    # Conflicts:
    #	.project
    #	components/audio_board/CMakeLists.txt
    #	components/audio_board/Kconfig.projbuild
    #	components/audio_board/component.mk
    #	components/audio_board/esp32_s2_kaluga_1_v1_2/board.c
    #	components/audio_board/esp32_s2_kaluga_1_v1_2/board.h
    #	components/audio_hal/driver/es8388/es8388.c
    #	components/audio_hal/driver/es8388/headphone_detect.c
    #	components/audio_hal/driver/tas5805m/tas5805m.c
    #	components/custom_board/Kconfig.projbuild
    #	components/esp_peripherals/driver/i2c_bus/i2c_bus.c
    #	components/esp_peripherals/esp_peripherals.c
    #	components/esp_peripherals/periph_button.c
    #	components/esp_peripherals/periph_console.c
    #	components/esp_peripherals/periph_led.c
    #	components/esp_peripherals/periph_sdcard.c
    #	components/esp_peripherals/periph_wifi.c
    #	components/esp_peripherals/periph_ws2812.c
    #	components/esp_peripherals/test/esp_peripherals_test.c
    #	components/eth_interface/CMakeLists.txt
    #	components/eth_interface/eth_interface.c
    #	components/lightsnapcast/include/snapcast.h
    #	components/lightsnapcast/player.c
    #	components/wifi_interface/CMakeLists.txt
    #	components/wifi_interface/wifi_interface.c
    #	dependencies.lock
    #	main/CMakeLists.txt
    #	main/main.c
    #	sdkconfig_PCM5102A
    #	sdkconfig_TAS5805M
    
    Signed-off-by: Karl Osterseher <karli_o@gmx.at>
  • Improv wifi (#85)
    * - add wifi credential reset
      o press reset button (nRESET pin) 3 times
        but wait about 1s between button presses
        the button press counter is reset 5s after boot
    * add wifi provisioning service through improv wifi (fix #75)
    
    Signed-off-by: Karl Osterseher <karli_o@gmx.at>
  • Sync with sample stuffing (#69)
    * upgrade to IDF v5.1.1
    * add new synchronization implementation, use sample stuffing / removal to keep up sync
    * use big DMA buffer for I2S and improve sync
    * Add DAC TAS5805M as custom board
    * add wifi credential reset
      o press reset button (nRESET pin) 3 times
        but wait about 1s between button presses
        the button press counter is reset 5s after boot
    * Add support for PT8211 DAC (#78)
    * upgrade ethernet interface to IDF v5 (#84)
    * port official example of ethernet for IDF v5.x
    * Fix cmake if guard for ethernet
    
    Signed-off-by: Karl Osterseher <karli_o@gmx.at>
    Co-authored-by: DerPicknicker <64746593+DerPicknicker@users.noreply.github.com>
    Co-authored-by: whc2001 <ianwang0122@outlook.com>
  • fix #60
    Signed-off-by: Karl Osterseher <karli_o@gmx.at>
  • fix #60
    Signed-off-by: Karl Osterseher <karli_o@gmx.at>
  • upgrade to IDF v5.1.1
    custom board driver ma120x0 is broken
    esp dsp is now IDF managed component
    mdns is now IDF managed component
    
    Signed-off-by: Karl Osterseher <karli_o@gmx.at>
  • - fix missing mac address in hello message when ethernet is used
    - fix noise when adau1961 is used and muted
    - fix ESP32 not booting because active REFCLK from LAN8720
    
    some code polish
  • - fix kernel panic when calling init_http_server_task() after provisioning finished
    - add menuconfig options for provisioning SSID and password
  • Increase maximum possible buffer length
    - updated snapserver.conf
    - allow wifi bandwith of 40MHz
    - add debug messages (disabled by default)
    
    Signed-off-by: Karl Osterseher <karli_o@gmx.at>
  • - major change, use lwip netconn instead of socket API to reduce RAM footprint
    o flac works, opus and pcm are untested and not working
    - improve on resyncing issues
    - add wifi logger component submodule
    - optimize stack sizes
  • - add sdkconfig for NO_SPIRAM and SPIRAM situation
    - detect snapcast configuration and init everything accordingly, e.g sample rate, chunk duration, ...
      o calculate apll predefines in dependence of sample rate
      o communicate these settings to interested parties
    - remove typos
  • - merge with original master from jorgen
    - minimize RAM usage of all components
    - use both IRAM and DRAM in player component so we can buffer up to 1s on modules without SPI RAM
    - support fragemented pcm chunks so we can use all available RAM if there isn't a big enough block available but still enough HEAP
    - reinclude all components from jorgen's master branch
    - add custom i2s driver to get a precise timing of initial sync
    - change wrong usage of esp_timer for latency measurement of snapcast protocol
    - add player component