Web-radio based on ESP32-audioI2S or/and ESP32-vs1053_ext library
- Hardware
- Connection tables
- Software dependencies
- Hardware setup
- Quick start
- Detailed start
- Update
- Update over web-interface
- Controls
- MQTT
- Home Assistant
- More features
- Plugins
- Version history
- Описание на 4PDA
https://github.com/e2002/yopcb
More images in Images.md
ESP32 board: https://aliexpress.com/item/32847027609.html
I2S DAC, roughly like this one: https://aliexpress.com/item/1005001993192815.html
https://aliexpress.com/item/1005002011542576.html
or VS1053b module : https://aliexpress.com/item/32893187079.html
https://aliexpress.com/item/32838958284.html
https://aliexpress.com/item/32965676064.html
- ST7735 1.8' or 1.44' https://aliexpress.com/item/1005002822797745.html
- or SSD1306 0.96' 128x64 I2C https://aliexpress.com/item/1005001621806398.html
- or SSD1306 0,91' 128x32 I2C https://aliexpress.com/item/32798439084.html
- or Nokia5110 84x48 SPI https://aliexpress.com/item/1005001621837569.html
- or ST7789 2.4' 320x240 SPI https://aliexpress.com/item/32960241206.html
- or ST7789 1.3' 240x240 SPI https://aliexpress.com/item/32996979276.html
- or SH1106 1.3' 128x64 I2C https://aliexpress.com/item/32683094040.html
- or LCD1602 16x2 I2C https://aliexpress.com/item/32305776560.html
- or LCD1602 16x2 without I2C https://aliexpress.com/item/32305776560.html
- or SSD1327 1.5' 128x128 I2C https://aliexpress.com/item/1005001414175498.html
- or ILI9341 3.2' 320x240 SPI https://aliexpress.com/item/33048191074.html
- or ILI9341 2.8' 320x240 SPI https://aliexpress.com/item/1005004502250619.html
- or SSD1305 (SSD1309) 2.4' 128x64 SPI/I2C https://aliexpress.com/item/32950307344.html
- or SH1107 0.96' 128x64 I2C https://aliexpress.com/item/4000551696674.html
- or GC9106 0.96' 160x80 SPI (looks like ST7735S, but it's not him) https://aliexpress.com/item/32947890530.html
- or LCD2004 20x4 I2C https://aliexpress.com/item/32783128355.html
- or LCD2004 20x4 without I2C https://aliexpress.com/item/32783128355.html
- or ILI9225 2.0' 220x176 SPI https://aliexpress.com/item/32952021835.html
- or Nextion displays - more info
- or ST7796 3.5' 480x320 SPI https://aliexpress.com/item/1005004632953455.html?sku_id=12000029911293172
- or GC9A01A 1.28' 240x240 https://aliexpress.com/item/1005004069703494.html?sku_id=12000029869654615
- or ILI9488 3.5' 480x320 SPI https://aliexpress.com/item/1005001999296476.html?sku_id=12000018365356570
- or ILI9486 (Testing mode) 3.5' 480x320 SPI https://aliexpress.com/item/1005001999296476.html?sku_id=12000018365356568
- or SSD1322 2.8' 256x64 SPI https://aliexpress.com/item/1005003480981568.html
- or ST7920 2.6' 128x64 SPI https://aliexpress.com/item/32699482638.html
(see Wiki for more details)
- Three tact buttons https://www.aliexpress.com/item/32907144687.html
- Encoder https://www.aliexpress.com/item/32873198060.html
- Joystick https://aliexpress.com/item/4000681560472.html
https://aliexpress.com/item/4000699838567.html - IR Control https://www.aliexpress.com/item/32562721229.html
https://www.aliexpress.com/item/33009687492.html - Touchscreen https://aliexpress.com/item/33048191074.html
- DS1307 or DS3231 https://aliexpress.com/item/4001130860369.html
Use this tool to build your own connection table and myoptions.h file.
https://e2002.github.io/docs/myoptions-generator.html
Library Manager: Adafruit_GFX, Adafruit_ST7735*, Adafruit_SSD1306*, Adafruit_PCD8544*, Adafruit_SH110X*, Adafruit_SSD1327*, Adafruit_ILI9341*, Adafruit_SSD1305*, TFT_22_ILI9225* (* depending on display model), OneButton, IRremoteESP8266, XPT2046_Touchscreen, RTCLib
Github: ESPAsyncWebServer, AsyncTCP, async-mqtt-client (if you need MQTT support) <<< starting with version 0.8.920, these libraries have been moved into the project, and there is no need to install them additionally.
See wiki for details
Don't edit the options.h!
Hardware is adjustment in the myoptions.h file.
Important! You must choose between I2S DAC and VS1053 by disabling the second module in the settings:
// If I2S DAC used:
#define I2S_DOUT 27
#define VS1053_CS 255
// If VS1053 used:
#define I2S_DOUT 255
#define VS1053_CS 27
Define display model:
#define DSP_MODEL DSP_ST7735 /* default - DSP_DUMMY */
The ST7735 display submodel:
#define DTYPE INITR_BLACKTAB // 1.8' https://aliexpress.ru/item/1005002822797745.html
//#define DTYPE INITR_144GREENTAB // 1.44' https://aliexpress.ru/item/1005002822797745.html
Rotation of the display:
#define TFT_ROTATE 3 // 270 degrees
Note: If INITR_BLACKTAB dsp have a noisy line on one side of the screen, then in Adafruit_ST7735.cpp:
// Black tab, change MADCTL color filter
if ((options == INITR_BLACKTAB) || (options == INITR_MINI160x80)) {
uint8_t data = 0xC0;
sendCommand(ST77XX_MADCTL, &data, 1);
_colstart = 2; // ← add this line
_rowstart = 1; // ← add this line
}
- Arduino IDE version 2.x.x is not supported. Use Arduino IDE 1.8.19
- ESP32 core version 2.0.0 or higher is required!
- Generate a myoptions.h file for your hardware configuration using this tool.
- Put myoptions.h file next to yoRadio.ino.
- Replace file Arduino/libraries/Adafruit_GFX_Library/glcdfont.c with file yoRadio/fonts/glcdfont.c
- Restart Arduino IDE.
- In ArduinoIDE - upload sketch data via Tools→ESP32 Sketch Data Upload (it's here)
- Upload the sketch to the board
- Connect to yoRadioAP access point with password 12345987, go to http://192.168.4.1/ configure and wifi connections.
*this step can be skipped if you add WiFiSSID WiFiPassword pairs to the yoRadio/data/data/wifi.csv file (tab-separated values, one line per access point) before uploading the sketch data in step 1 - After successful connection go to http://<yoipaddress>/ , add stations to playlist (or import WebStations.txt from KaRadio)
- Well done!
See wiki for details
- Backup your settings:
download http://<yoradioip>/data/playlist.csv and http://<yoradioip>/data/wifi.csv and place them in the yoRadio/data/data/ folder - In ArduinoIDE - upload sketch data via Tools→ESP32 Sketch Data Upload
- Upload the sketch to the board
- Go to page http://<yoradioip>/ in the browser and press Ctrl+F5 to update the scripts.
- Well done!
- Backup your settings:
download http://<yoradioip>/data/playlist.csv and http://<yoradioip>/data/wifi.csv and place them in the yoRadio/data/data/ folder - Get firmware binary: Sketch → Export compiled binary
- Get SPIFFS binary: disconnect ESP32 from your computer, click on ESP32 Data Sketch Upload.
You will get an error and file path
- Go to page http://<yoradioip>/update and upload yoRadio.ino.esp32.bin and yoRadio.spiffs.bin in turn, checking the appropriate upload options.
- Well done!
- Copy file examples/mqttoptions.h to yoRadio/ directory
- In the mqttoptions.h file, change the options to the ones you need
- Well done!
- Requires MQTT integration
- Copy directory HA/custom_components/yoradio to .homeassistant/custom_components/
- Add yoRadio entity into .homeassistant/configuration.yaml (see example)
- Restart Home Assistant
- Add Lovelace Media Player card to UI (or mini-media-player card)
- Well done!
-
Can add up to 65535 stations to a playlist. Supports and imports KaRadio playlists (WebStations.txt)
-
Telnet with KaRadio format output
see list of available commands -
MQTT support
Topics:
MQTT_ROOT_TOPIC/command - Commands
MQTT_ROOT_TOPIC/status - Player status
MQTT_ROOT_TOPIC/playlist - Playlist URL
MQTT_ROOT_TOPIC/volume - Current volume
Commands:
prev - prev station
next - next station
toggle - start/stop playing
stop - stop playing
start, play - start playing
boot, reboot - reboot
volm - step vol down
volp - step vol up
vol x - set volume
play x - play station x -
Home Assistant support
There is no documentation yet, you will have to deal with the examples, which is in directory examples/plugins/.
Work is in progress...
- added the ability to play SDCARD without an Internet connection. More in Wiki
- fixed an issue where it was impossible to reconnect when the WiFi connection was lost
- fixed an "Guru Meditation Error" when playing streams with the ESP32 v2.0.10 and higher core installed
- fixed date display bug for ILI9488/ILI9486 displays
- fixed a hang bug when switching to SD mode after removing the SD
- fixed a hangup error when the connection to the stream was lost in WEB mode
- added support for DS1307 or DS3231 RTC module (you need to install the RTCLib library in the library manager)
- setup
#define RTC_MODULE DS3231 /* or DS1307 */
#define RTC_SDA <pin>
#define RTC_SCL <pin>
- fixed a hang bug when scrolling through an SD playlist with an encoder in configurations with VS1053B
- fixed a hang bug when quickly switching SD / WEB modes from the WEB interface in configurations with VS1053B
- fixes in the logic of work
- fix compilation error 'class NetServer' has no member named 'resetQueue'
- SD card playlist moved from SPIFFS to SD card
- new parameter #define SD_MAX_LEVELS - Search depth for files on SD card
- fixed bugs with SD card in multi-threaded mode
- fixed SD prelist indexing error when switching Web>>SD
- fixed a bug of switching to the next track when accidentally playing SD
- fixed import of large playlists (tried). PS: import playlist size is limited by SPIFFS size (SPIFFS.totalBytes()/100*65-SPIFFS.usedBytes() = approximately 60kb )
- new url parameter - http://YPRADIOIP/?clearspiffs - for clearing tails from SD playlist
- optimization of the issuance of the WEB-interface
- brought back the functionality of the track slider
- fixing bugs in the application logic
- fixed a bug when importing a playlist
!!! a full update with Sketch data upload is required. After updating please press CTRL+F5 in browser !!!
- implementation of WEB/SD mode switching without reboot
- replacement of SD cards without turning off the power
- switching WEB / SD from the web interface. full update required, including SPIFFS Data
- fixing the Home Assistant integration behavior logic
- SD_HSPI parameter now works. Pins HSPI - 13(MOSI) 12(MISO) 14(CLK)
- new parameter SD_SPIPINS.
#define SD_SPIPINS sck, miso, mosi
- sck, miso, mosi - any available pins. Used for "TTGO Tm Music Album" boards
#define SD_SPIPINS 14, 2, 15
- fixed a bug with garbage appearing on display ILI9225
- the slider for moving along the SD track is temporarily not working.
- bug fixes
- OneButton library moved to the project
- fixed bitrate display error when playing SD on VS1053B modules
- added forced shutdown of smartstart when WebSocket freezes on problem stations
- added bitrate icon when playing files from SD card
- fix html markup errors
- fixed errors 403 Account already in use, 401 Authorization required
- fixed bitrate icon overflow bug
- fix html markup errors
- fixed bug of random change of playback location when playing files from SD card
- added bitrate badget for displays ST7789, ST7796, ILI9488, ILI9486, ILI9341, ILI9225 and ST7735(BLACKTAB) (disable: #define BITRATE_FULL false)
- fixed a bug with garbage appearing on display ILI9225
- fixed NOKIA5110 display invert/off bug
- fixed a bug with smartstart playback when the power is turned off
- fixed error reconnecting to WiFi when connection is lost
- ADDED a compilation error when choosing a board other than "ESP32 Dev Module" or "ESP32 Wrover Module"
- fixed crash in configurations with NOKIA5110 displays
- fixed bug with displaying buffer indicator when switching audioinfo
- fixed bug with displaying the buffer indicator when the connection is lost
- fixed bug of MUTE_PIN failure when connection is lost
- other minor fixes
- fixed a bug in the operation of SSD1305 displays
- fixed bug in operation of LCD1602/2004 displays
- fixed errors in Serial Monitor output
- optimization and bug fixes (display, player, netserver, telnet. mqtt)
- monospace fonts for clock on TFT displays. Fonts can be restored to their original form by adding the
#define CLOCKFONT_MONO false
parameter to the myoptions.h file - new parameter
#define COLOR_CLOCK_BG R,G,B
- color of inactive clock segments
- added support for ST7920 128x64 2.6' OLED display https://aliexpress.com/item/32699482638.html
- added support for SSD1322 256x64 2.8' OLED display https://aliexpress.com/item/1005003480981568.html
- optimization of the display of the list of stations
- now the playlist size can be changed with one parameter in the yoRadio/src/displays/conf/displayXXXXconf.h file --> const ScrollConfig playlistConf param #3
- fixed fonts for ILI9225 display
- fixes in Nextion displays
- bug fixes (including BUFFER FILLED IN 403 MS)
- fixed compilation error netserver.cpp:63:28 for some configurations
- added WEB Board Uploader. ESP32 Filesystem Uploader is no longer needed, the initial setup can be done in the browser. (see wiki for more info)
- fixed error getting weather for some locations
- fixed error displaying access point credentials when DSP_INVERT_TITLE is false
- fixed compilation error for OLED displays when DSP_INVERT_TITLE is false
- DSP_INVERT_TITLE now works for all displays when assigned
#define DSP_INVERT_TITLE false
the display title takes on a "classic" look (light letters on a dark background) - advanced weather display - wind direction and strength, feels like
- sea level pressure changed to surface pressure
- added degree icon [*ps]
- displaying the WiFi signal level in graphical form [*ps]
[*ps] - glcdfont.c from the Adafruit_GFX_Library library has been changed to add new icons, so for the correct display of all this, you need to replace the specified file in the Adafruit_GFX library with the file from the yoRadio/fonts/ folder
- fixed reboot error after sending media from Home Assistant
- fixed bug when playing media from Home Assistant for VS1053
- fix grammar errors
- added support for remote media playback from Home Assistant (Local Media, Radio Browser, TTS)
- HA component >> fixed bugs of getting and generating a playlist
- added support for ILI9488 display
- added support for ILI9486 display in testing mode
!!! a full update with Sketch data upload is required. After updating please press CTRL+F5 in browser !!!
Please backup playlist.csv and wifi.csv before updating.
- fixed bug with displaying horizontal scroll in playlist
- fixed compilation error with IR_PIN=255
- libraries async-mqtt-client, AsyncTCP, ESPAsyncWebServer moved to the project
- new parameter #define XTASK_MEM_SIZE - buffer size for AsyncTCP task (4096 by default)
!!! a full update with Sketch data upload is required. After updating please press CTRL+F5 in browser !!!
Please backup playlist.csv and wifi.csv before updating.
- added SD Card support (more info in connection table and examples/myoptions.h)
- added MODE button to switch SD/WEB modes (more info in Controls.md)
- asterisk on the remote control now switches SD/WEB modes
- double click BTN_CENTER and ENC_BTNB now toggles SD/WEB modes
- bug fixes
- bootlog added
- fixed work of start/stop button in configurations with DSP_DUMMY
- fixed unclosed comment in examples/myoptions.h
- fixed compilation error without encoder
- added numeric IR remote buttons in configurations with DSP_DUMMY
- fixed navigation bug in playlist with more than 255 stations
- fixed work of encoders in configurations with DSP_DUMMY
- fixed missing volume value bug when switching to volume control dialog
- LED_BUILTIN is now 255 by default (off)
- fixed compilation error with BOOMBOX_STYLE parameter
- fixes in default configuration for GC9A01A display
- added support for GC9A01A display https://aliexpress.com/item/1005004069703494.html?sku_id=12000029869654615
- increased length of SSID string to 30 characters (requires full update + ESP32 Data Upload)
- fixed artifacts when adjusting the volume on OLED displays
- fixed bug with missing current station in playlist on OLED displays
- new parameter DSP_INVERT_TITLE - invert colors in station name for OLED displays (more details in examples/myoptions.h)
- added support for ST7796 display
- added support for capacitive touch GT911
- HSPI bus support added - DSP_HSPI, VS_HSPI, TS_HSPI options More details in examples/myoptions.h
- changed the method of connecting the touchscreen in myoptions.h Now instead of specifying TS_CS, you must specify TS_MODEL (by default TS_MODEL_UNDEFINED) More details in examples/myoptions.h
- new parameters TS_SDA, TS_SCL, TS_INT, TS_RST for GT911 touchscreen
- new parameters LIGHT_SENSOR and AUTOBACKLIGHT - to automatically adjust the brightness of the display. More details in examples/myoptions.h
- new parameter LED_INVERT (true/false) - to invert the behavior of the built-in LED
- fixed bug with extra sign } in humidity value
- fixed artifacts when displaying the volume level
- changes in mytheme.h . Added colors COLOR_PL_CURRENT, COLOR_PL_CURRENT_BG, COLOR_PL_CURRENT_FILL. Details in examples/mytheme.h
- fix INITR_MINI160x80 compiling error
- fix ENC_INTERNALPULLUP description in examples/myoptions.h
- rewritten the display engine
- added the ability to position widgets on the display using configuration files. More info in yoRadio/src/displays/conf/ and here https://github.com/e2002/yoradio/wiki/Widgets
- the VU_PARAMS3 parameter is deprecated. VUmeter configuration is done through yoRadio/src/displays/conf/ configs
- added bitrate display on displays
- added the ability to display the weather on all displays except LCD1602
- examples of plug-ins related to displaying information on the display are outdated and no longer work. The examples have been removed from the examples/plugins folder.
- the structure of the project files has been changed so that I don’t know what.
- localization of information displayed on the display (rus, en). Option L10N_LANGUAGE (EN by default. see examples/myoptions.h for details)
- changes in mytheme.h . Added colors COLOR_STATION_BG, COLOR_STATION_FILL, COLOR_BITRATE
- optimization, refactoring
- bugs fixes
- bugs adding
- probably something else that I forgot .__.
- fixed compilation error when using NEXTION display with DUMMY display
- added control via uart (see list of commands). The uart and telnet commands are the same.
- added additional commands
- added control via GET/POST (see list of commands)
- fixed clock operation when configured with DSP_DUMMY
- fixed RSSI display in web interface when configured with DSP_DUMMY
- added brightness control/on/off nextion displays from the web interface
- new parameter WAKE_PIN (to wake up esp after sleep command earlier than given time (see examples/myoptions.h and list of commands)
- minor memory optimization
!!! a full update with Sketch data upload is required. After updating please press CTRL+F5 in browser !!!
Please backup playlist.csv and wifi.csv before updating.
- fixed playlist break down when saving it
- fixed bug with cropped song titles on single line displays (GC9106, ST7735mini, N5110 etc.)
- netserver - optimization and refactoring
- web interface optimization
- the AUDIOBUFFER_MULTIPLIER parameter is deprecated. New parameter AUDIOBUFFER_MULTIPLIER2. If everything works fine, then it is better not to touch it.
- new setting VS_PATCH_ENABLE (see PS)
- fixing other bugs
PS: A bug was found with the lack of sound on some (not all) green VS1053 boards. If there is no sound, you need to assign in myoptions
#define VS_PATCH_ENABLE false
On red boards and normally working green boards, nothing else needs to be done.
- fixed non latin long titles of songs error
!!! a full update with Sketch data upload is required. After updating please press CTRL+F5 in browser !!!
Please backup playlist.csv and wifi.csv before updating.
- added the ability to themize color displays. Details in examples/mytheme.h
- in this connection, examples of plugins displayhandlers.ino and rssibitrate.ino have been updated
- parameter VU_PARAMS2 is deprecated. New parameter - VU_PARAMS3. Details in yoRadio/display_vu.h
- added deepsleep capability for LCD_I2C and OLED displays
- in this connection, a full update with Sketch data upload is required
- in this connection, example of plugin deepsleep.ino (examples/plugins/deepsleep.ino) have been updated
- some bug fixes
- updating libraries ESP32-audioI2S and ESP32-vs1053_ext to the latest version
- optimization of the web interface during playback
- fixed one js bug. a full update with Sketch data upload is desirable
- plugin example for esp deep sleep when playback is stopped (examples/plugins/deepsleep.ino)
!!! a full update with Sketch data upload is required. After updating please press CTRL+F5 in browser !!!
Please backup playlist.csv and wifi.csv before updating.
- added the ability to configure parameters through the web interface
- new parameter BRIGHTNESS_PIN - pin for adjusting the brightness of the display. Details in examples/myoptions.h
- the weather plugin is integrated into the code, the settings are made through the web interface
PS: Due to the change in the storage location of settings in the ESP memory, settings such as:
smartstart, audioinfo, time zone, IR remote, last volume level, last played station, equalizer
will have to be configured again through the web interface. Please understand and forgive.
- fix initialization of some vs1053b green boards
- fix VU initialization on vs1053b boards
- fixed choppy of sound when volume adjustment
- fixed initialisation of Nextion displays
- added support for Nextion displays (more info)
- fixed work of VU Meter
- fixed time lag when adjusting the volume / selecting a station
- optimization of work with the DSP_DUMMY option
- some bug fixes
- adding VU meter for displays ST7735 160x80, GC9106 160x80, ILI9225 220x176, ST7789 240x240
- TFT_22_ILI9225 library is integrated into the project
- adding VU meter for displays ST7735 160x128, ST7735 128x128, ILI9341 320x240, ST7789 320x240
option ENABLE_VU_METER (see myoptions.h for example)
!!! Important !!!
if you enable this feature on the esp32 wroom, due to lack of memory, you must modify the file Arduino/libraries/AsyncTCP/src/AsyncTCP.cpp
replace the line 221
_xTaskCreateUniversal(_async_service_task, "async_tcp", 8192 * 2, NULL, 3, &async_service_task_handle, CONFIG_ASYNC_TCP_RUNNING_CORE);
with
_xTaskCreateUniversal(_async_service_task, "async_tcp", 8192 / 2, NULL, 3, &async_service_task_handle, CONFIG_ASYNC_TCP_RUNNING_CORE);
!!! a full update with Sketch data upload is required. After updating please press CTRL+F5 in browser !!!
- adding an IR remote control has been moved to the web-interface (more info in Controls.md)
- fixed broken internal DAC on esp32 core 2.0.3 and highest
- fixed compilation errors with esp32 core 2.0.4
!!! a full update with Sketch data upload is required. After updating please press CTRL+F5 in browser !!!
- fixed a bug when saving a playlist with special characters in the name and url
- fixed a bug when saving wifi settings with special characters in the name and password
- fixed css bugs
- remove ZERO WIDTH NO-BREAK SPACE (BOM, ZWNBSP) from stream title
- added support for ST7789 1.3' 240x240 SPI displays
!!! Important !!! This display requires further development when used in conjunction with the VS1053 module.
See this link for details https://www.instructables.com/Adding-CS-Pin-to-13-LCD/
- fixed display bugs in the rssibitrate plugin
- fixed some compilation warnings
- fix compilation error in rssibitrate plugin with ILI9225 display
- fixed SPI-display bugs when used with VS1053B module
- added example plugin for analog volume control (examples/plugins/analogvolume.ino)
- added example plugin for backlight control depending on playback (examples/plugins/backlightcontrols.ino)
- added example plugin for replace a RSSI to bitrate information alternately (examples/plugins/rssibitrate.ino)
- fixed ILI9225 display bug when used with VS1053B module
- fixed ILI9225 plugin support
- added support for ILI9225 220x176 SPI displays
- added support for I2S internal DAC, option I2S_INTERNAL (see myoptions.h for example)
(this option worked only with esp32 core version==2.0.0) - new option SOFT_AP_REBOOT_DELAY (see myoptions.h for example)
- fixed MQTT connection when WiFi reconnected
- fixed date display for ILI9341 displays
- fixed garbage on volume control with displays ILI9341
- fixed interface blocking error when synchronizing time
- time sync optimization
- new option SNTP_SERVER, to set your custom server for synchronization (see myoptions.h for example)
- added support for LCD2004 displays
- added support for SSD1305/SSD1309 I2C displays
- fixed rotation of SH1106 display
- fixed encoder internal pullup
- change encoder library to ai-esp32-rotary-encoder (injected to project)
- added new option VOL_ACCELERATION - volume adjustment acceleration by encoder (see myoptions.h for example)
- fixed connection error with http-stations on esp32-core v2.0.3
- fixed css errors (a full update is required)
- added update via web-interface
Attention! Full firmware with chip re-partitioning is required! see board setup example - fixed choppy when switching stations via Home Assistant
- new option PLAYER_FORCE_MONO (with i2S DAC only)
- change default scroll speed in DSP_NOKIA5110
- improved reconnect to WiFi on connection loss
- fixed choppy playback on DSP_ST7735 displays used with VS1053
- new option PL_WITH_NUMBERS (show the number of station in the playlist)
- fixed compiling error with DSP_DUMMY option
- correction of displays GC9106 and SSD1305
- fixed errors in the operation of the second encoder
- rewrote plugin example
- fixed compilation errors on macOS #2
- please backup your playlist and wifi settings before updating (export)
- accelerated displays up to ~30fps (everything except LCD)
- corrections/additions in the WEB interface (a full update is required)
- rewrote plugin example
- fixed compilation errors on macOS
- changed the logic of the second encoder (switching to the volume control mode by double click)
- optimization, bug fixes
- probably some other things that I forgot about %)
- added support for GC9106 160x80 SPI displays
- fixed compiling error with DSP_DUMMY option
- fixed compiling error with DSP_1602I2C / DSP_1602 option
- the logic of division by cores has been changed
- fixed choppy playback (again)
- improvements in the stability of the web interface
- increased smoothness of the encoder
- bug fixes
- bug fixes
- fixed choppy playback
- added displays SSD1327, ILI9341, SSD1305/SSD1309, SH1107, 1602
- added touchscreen support
- tasks are divided into cores, now the sound is not interrupted when selecting stations / volume
- increased speed of some displays
- optimization of algorithms, bugs fixes
- added something similar to plugins
- added two buttons BTN_UP, BTN_DOWN
- added the pins for the second encoder ENC2_BTNL, ENC2_BTNB, ENC2_BTNR
- fixed display of playlist with SSD1306 configuration
- improvements in the displays work
- bugs fixes, some improvements
- added support for SSD1306 128x32 I2C displays
- added support for ST7789 320x240 SPI displays
- added support for SH1106 I2C displays
- added support for 1602 16x2 I2C displays
- a little modified control logic
- added buttons long press feature
- small changes in options.h, check the correctness of your myoptions.h file
- bugs fixes
- fixed bug Equalizer not come visible after go to playlist
(a full update is required) - fixed playlist filling error in home assistant component
- fixed garbage in MQTT payload
- MQTT support
- added support for digital buttons for the IR control
(num keys - enter number of station, ok - play, hash - cancel) - added buttons for exporting settings from the web interface
- added MUTE_PIN to be able to control the audio output
- fixed js/html bugs (a full update is required)
- fixed playlist scrollbar in Chrome (a full update is required)
- fix "Could not decode a text frame as UTF-8" websocket error //Thanks for Verholazila
- fix display of non-latin characters in the web interface
- fix css in Chrome (a full update is required)
- IR repeat fix
- added support for IR control
- new options in options.h (ENC_INTERNALPULLUP, ENC_HALFQUARD, BTN_INTERNALPULLUP, VOL_STEP) //Thanks for Buska1968
- compilation error for module SSD1306 with arduino-esp32 version newest than 2.0.0
- fix compiler warnings in options.h
- fix some compiler warnings
- added control of balance and equalizer for VS1053
- TFT_ROTATE and st7735 DTYPE moved to myoptions.h
- fixed compilation error bug when using VS1053 together with ST7735
- fix VS1003/1053 reseting
- fix css in Firefox
- fix font in NOKIA5110 display
- added support for VS1053 module in testing mode
- added timezone config by telnet
- fix telnet output
- some separation apples and oranges
- excluded required installation of all libraries for displays
- added support for Nokia 5110 SPI displays
- some bugs fixes
- ovol reading bug
- display connection algorithm changed
- added support for myoptions.h file for custom settings
- vol steps 0..256 (in ESP32-audioI2S)
- added support for SSD1306 I2C displays
- fixed broken buttons.