Conversation
enable both interfaces if configured from menuconfig Signed-off-by: Karl Osterseher <karli_o@gmx.at>
…on config change printf to ESP_LOGI in net_functions add missing components to network interface Signed-off-by: Karl Osterseher <karli_o@gmx.at>
add sdkconfig.defaults change some warnings to verbose in player if more than 16 bits are selected in i2s use I2S_MCLK_MULTIPLE_384 remove stream tags, add client info message to snapcast protocol Signed-off-by: Karl Osterseher <karli_o@gmx.at>
Signed-off-by: Karl Osterseher <karli_o@gmx.at>
add OTA instructions
Signed-off-by: Karl Osterseher <karli_o@gmx.at>
…snapclient.git into network_if_component
# Conflicts: # main/CMakeLists.txt
Signed-off-by: Karl Osterseher <karli_o@gmx.at>
Signed-off-by: Karl Osterseher <karli_o@gmx.at>
…component - add i2s channel delete to deinit_player() - improve network interface component store IP and connection status of interfaces - improve UI http server Signed-off-by: Karl Osterseher <karli_o@gmx.at>
Signed-off-by: Karl Osterseher <karli_o@gmx.at>
…eher/snapclient.git into develop
add support for mixing stereo to mono through dsp_processor (fixes #106) add sdkconfigs to github action workflow suppress warnings from flac git submodule remove unused variable and address some compiler warnings remove some dead code Signed-off-by: Karl Osterseher <karl_osterseher@gmx.at>
…running during upgrade wait for free space in flac write callback if none can be aquired. Signed-off-by: Karl Osterseher <karl_osterseher@gmx.at>
* Fix #include statement in main.c * Fix typing in es8388.c * Fix i2c_bus_write_data function * Remove uneeded log statement
Signed-off-by: Karl Osterseher <karl_osterseher@gmx.at>
* [tas5805m] Add configuration for mono mixing (#115) When bridge mode is active, by default, only the left input channel is send to the output. With the configuration, you can choose either the left or the right channel, or a "mono" configuration which mix the two input channel. Co-authored-by: Alex <alex@alexlg.org> * Allow using pcm510a without dedicated mute pin. (#120) If the pin number is set to a value <0, no GPIO actions are performed. * Added sdkconfig for Olimex PoE Board and PCM5102A (#128) * Add example config for Wireless-Tag WT32-ETH01 board with PCM5102A DAC (#130) Co-authored-by: mat <mat@devtal.de> * Update mute state in player task (#134) * Fix issue where 100% volume is not restored after reboot (#137) * Fix idf 5.4/5.5 build errors (#139) * fix idf 5.4 build errors * Remove errors from flac and opus * close #126 --------- Co-authored-by: Jordi <jordiag@kth.se> * Update default settings for snapcast. Does not contain dac/wifi/user settings * Update readme (#142) * Update README, fix typos * Add AI-Thinker board to README * Make TAS5805M power down pin configurable (#140) * Make TAS5805M power down pin configurable defaults to pin 33 defaults to pin 17 on esp32s3 * Fix soft volume * Fix sdkconfig defaults. Disable ethernet --------- Co-authored-by: Alexandre Thomazo <alex@thomazo.info> Co-authored-by: Alex <alex@alexlg.org> Co-authored-by: bg nerilex <bg@nerilex.org> Co-authored-by: sneu14 <62690888+sneu14@users.noreply.github.com> Co-authored-by: matmemo <33166560+matmemo@users.noreply.github.com> Co-authored-by: mat <mat@devtal.de> Co-authored-by: Manuel Blatt <45859907+blattm@users.noreply.github.com> Co-authored-by: Jordi <jordiag@kth.se>
This reverts commit 77efbdf.
…ovisioning is disabled Signed-off-by: CarlosDerSeher <karl_osterseher@gmx.at>
Signed-off-by: CarlosDerSeher <karl_osterseher@gmx.at>
* TAS5805M driver improvements. Sleep mode when mute. State object for DAC state tracking. Added debug logging. * Set correct mute flag on DAC restore * Added revised state changes: independent MUTE flags and DAC power mode * Volume implementation without a lookup table * Changed lower border of volume slider to -60dB to provide better dynamic range * Added missing enum value (for clarity) --------- Co-authored-by: Andriy Malyshenko <andriy@sonocotta.com>
) * Sync S3-related changes from master * Implemented Improv deinit when Ip is received. Fixed IP discovery for Improv (was returning 0.0.0.0 all the times) * Added improv deinit after timeout (3 minutes) * wifi_provisioing depends in wifi_interface only --------- Co-authored-by: Andriy Malyshenko <andriy@sonocotta.com>
I2C communication, init sequence, digital volume and mute (both software and pin mute) (#169) Co-authored-by: Andriy Malyshenko <andriy@sonocotta.com>
…165) Major features: - Added web UI to manage DSP settings and change DSP flow on the fly - Added UI to change mdns hostname and persist in NVS - Added restart button to UI with improved placement - Moved files from SPIFFS to flash embed Architecture improvements: - Refactored DSP settings into dedicated component - Broke dependency loop between ui_http_server and dsp_processor - Reversed dependency of dsp_processor on dsp_processor_settings - Fully data-driven front-end implementation Bug fixes and cleanup: - Fixed build errors under ESP-IDF v5.1.5 - Fixed default DSP settings producing no sound - Fixed static snapserver config in sdkconfig - Added mutex protection to params_change - Removed unused fc_2 and gain_2 parameters - Added fail-safe defaults to freq and gain settings - Code refactoring and cleanup Co-authored-by: Andriy Malyshenko <andriy@sonocotta.com>
* rework sync algo Signed-off-by: CarlosDerSeher <karl_osterseher@gmx.at> * estimate sync quality based on pcm frames fed to DMA fix #148 Signed-off-by: CarlosDerSeher <karl_osterseher@gmx.at> * remove unsed variable in player Signed-off-by: CarlosDerSeher <karl_osterseher@gmx.at> * correct build errors Signed-off-by: CarlosDerSeher <karl_osterseher@gmx.at> * Kalmanfilter (#167) * Implement Kalmann filter for latency * Fix sdkconfig for esp32s3 * Reduce filter full threshold * Implement feedback. Make sure static variables are initialized. * - remove time sync message timer calling netconn API from 2 task isn't safe so set a timeout on netconn_receive and do sending those time messages directly from http_task - ensure all resources used by player_task are created before the task is created - do not reset latency buffer in start_player() Signed-off-by: CarlosDerSeher <karl_osterseher@gmx.at> * Fix reset latency buffer. Apply changes to all sdkconfigs. * fix sdkconfig.defaults * Add mising netconn_set_recvtimeout * Cleanup default sdkconfigs * fix typo --------- Signed-off-by: CarlosDerSeher <karl_osterseher@gmx.at> Co-authored-by: CarlosDerSeher <karl_osterseher@gmx.at>
# Conflicts: # README.md # components/improv_wifi/wifi_provisioning.c # components/network_interface/eth_interface.c # main/main.c
|
@anabolyc So I've had to resolve some conflicts manually. Could you please confirm I didnt't mess up anything, as these have been related to improv. |
Looks okay, although I didn't run it on actual hardware. Can try test that on weekend. |
* Added signal clamping * Added cubic soft clipping to the DSP (config controled, disabled by default) --------- Co-authored-by: Andriy Malyshenko <andriy@sonocotta.com>
When the server pauses playback, the player was repeating the last audio block for ~2 seconds causing unpleasant noise. This was because auto_clear=false caused the DMA to loop the last buffer during underrun. Setting auto_clear=true fills the DMA buffer with zeros (silence) when there's no new data, providing clean audio cutoff on pause.
Signed-off-by: CarlosDerSeher <karl_osterseher@gmx.at>
Signed-off-by: CarlosDerSeher <karl_osterseher@gmx.at>
o reduce i2sDmaBufCnt from 3 to 2 o CONFIG_ETH_DMA_BUFFER_SIZE from 1024 to 512 o CONFIG_ETH_DMA_RX_BUFFER_NUM from 30 to 15 o add heap debugging log (disabled by default) - correct div by zero bug in start_player() Signed-off-by: CarlosDerSeher <karl_osterseher@gmx.at>
update some template sdkconfigs Signed-off-by: CarlosDerSeher <karl_osterseher@gmx.at>
This PR adds comprehensive DAC configuration and equalizer support for the TAS5805M chip with a web UI. Major Features: - TAS5805M DAC settings page with configurable parameters: * Bridge mode, modulation mode, switching frequency * Analog and digital volume control * Mixer implementation with compensation gains * Fault monitoring and fault reset - 15-band parametric equalizer with two modes: * Manual 15-band EQ control with per-band gains * HF and LF filter presets for quick bi-amp configuration * Real-time updates and visualization - New dedicated settings component (tas5805m_settings) for persistence - All settings persist to NVS and restore on boot Architecture Improvements: - Created dedicated tas5805m_settings component - DAC UI in the dedicated HTML tab - Data-driven front-end with settings-ui.js renderer Bug Fixes: - Fixed EQ UI showing 0 gains before music starts - Fixed channel gains not restoring on reboot - Fixed NULL semaphore crashes during player restart - Fixed DSP init ordering (semaphore creation before use) - Fixed NULL pointer checks in mDNS and player - Fixed WiFi power save interfering with low-latency audio - Fixed settings persistence and restoration Technical Details: - Extended partitions.csv for additional storage - Settings stored in NVS with proper restoration - DSP processor coordination with I2S clock requirements - Delayed settings application after DAC initialization - Proper semaphore and mutex protection Co-authored-by: andriy.malyshenko <andriy@sonocotta.com> Co-authored-by: Andriy Malyshenko <andriy@sonocotta.com>, craigmillard86 <craigmillard@gmail.com>
Did a bit of restructuring of the Installation section, mainly to make it clearer that following the docker path doesn't require the additional steps below anymore (as they are documented separately already in the docker readme). Also moved the config anchor a bit to directly go to the config options (skipping the command before), as it's used in the docker page to link to and should directly go to the available options. Also removed a few typos and fixed some punctuation. Co-authored-by: CarlosDerSeher <CarlosDerSeher@users.noreply.github.com>
add information about develop branch to the contribution guidelines for pull requests.
|
@anabolyc @luar123 |
|
Honestly, I didn't realize that OTA was implemented. How would you upgrade the firmware? |
I think ideally when develop reach stable enough state, it should be as simple as marking the stable commit as the master head. In the current situation, I'd still prefer rebase and merge for a cleaner chain of changes. |
See readme:
|
|
Oh, my bad. I'm not sure though many people use that. I'd say release notes sould do it then |
|
I would go with merge commit to keep the history. Ota: |
|
Could a second nvs partition on the end be helpful, or would there be the same problems? |
|
I don't think distributing data over two partitions would help. |
|
I see your point. So you are saying if someone is using OTA to upgrade one of their ota partitions there won't be a problem as long as the code doesn't try to write to those 16k more of nvs introduced. So increasing ota partitions to fill the 4MB will be safe too. Still, what we should do is to add a note (with commit hast or add a tag) somewhere in OTA section to make people aware of the changed partition table and possible issues, don't you think. |
Let's pull all those newest features to master