Skip to content

ёRadio

image

Web-radio based on ESP32-audioI2S or/and ESP32-vs1053_ext library


NEW!

yoRadio Printed Circuit Boards repository:

image

https://github.com/e2002/yopcb


image

More images in Images.md

Hardware

Required:

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

Optional:

Displays

(see Wiki for more details)

Controls
RTC

Connection tables

Use this tool to build your own connection table and myoptions.h file.

image

https://e2002.github.io/docs/myoptions-generator.html


Dependencies

Libraries:

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.

Tool:

ESP32 Filesystem Uploader

See wiki for details


Hardware setup

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
  }

Quick start

image

  • 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 ehRadio.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


Update

  1. Backup your settings: \ download http://\<yoradioip>/data/playlist.csv and http://\<yoradioip>/data/wifi.csv and place them in the yoRadio/data/data/ folder
  2. In ArduinoIDE - upload sketch data via Tools→ESP32 Sketch Data Upload
  3. Upload the sketch to the board
  4. Go to page http://\<yoradioip>/ in the browser and press Ctrl+F5 to update the scripts.
  5. Well done!

Update over web-interface

  1. Backup your settings: \ download http://\<yoradioip>/data/playlist.csv and http://\<yoradioip>/data/wifi.csv and place them in the yoRadio/data/data/ folder
  2. Get firmware binary: Sketch → Export compiled binary
  3. Get SPIFFS binary: disconnect ESP32 from your computer, click on ESP32 Data Sketch Upload. \ You will get an error and file path

image

  1. Go to page http://\<yoradioip>/update and upload ehRadio.ino.esp32.bin and yoRadio.spiffs.bin in turn, checking the appropriate upload options.
  2. Well done!

MQTT

  1. Copy file examples/mqttoptions.h to yoRadio/ directory
  2. In the mqttoptions.h file, change the options to the ones you need
  3. Well done!

Home Assistant

image

  1. Requires MQTT integration
  2. Copy directory HA/custom_components/yoradio to .homeassistant/custom_components/
  3. Add yoRadio entity into .homeassistant/configuration.yaml (see example)
  4. Restart Home Assistant
  5. Add Lovelace Media Player card to UI (or mini-media-player card)
  6. Well done!

More features

  • 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


Plugins

The Plugin class serves as a base class for creating plugins that hook into various system events.
To use it, inherit from Plugin and override the necessary virtual methods.
Place your new class in the src/plugins/<MyPlugin> directory More details can be found in the comments within the yoRadio/src/pluginsManager/pluginsManager.h file and at here.
Additional examples are provided in the examples/plugins folder. Work is in progress...


Version history

0.9.533

  • fixed compilation error for esp32 core version lower than 3.0.0
  • fixed error setting display brightness to 1
  • fixed error setting IR tolerance value (upload a new file options.html.gz via WEB Board Uploader and press Ctrl+F5 on the settings page)

0.9.530

  • optimization of webserver/socket code in netserver.cpp, part#1
  • added support for ArduinoOTA (OTA update from Arduino IDE) (disabled by default)\ to enable you need to add to myoptions.h: #define USE_OTA true\ set password: in myoptions.h #define OTA_PASS "myotapassword12345"
  • in web interface added basic HTTP authentication capability (disabled by default)\ to enable you need to add to myoptions.h:\ #define HTTP_USER "user"\ #define HTTP_PASS "password"
  • added "emergency firmware uploader" form (for unforeseen cases) http://ipaddress/emergency
  • added config (sys.config) telnet command that displays the same information usually shown over serial at boot.
  • bug fixes 🪲

0.9.515

  • fixed a bug with resetting all parameters when resetting only one section of parameters

0.9.512

  • fixed bug with saving ntp server #1 value

0.9.511

In this version, the contents of the data/www directory have changed, so that the first time you flash it, you will be greeted by WEB Board Uploader. Just upload all the files from data/www (11 pcs) to it\ or -> !!! a full update with Sketch data upload is required. After updating please press CTRL+F5 in browser !!! - fixed a bug with saving smartstart mode - fixed a bug with no restart when initially uploading files to spiffs - fixed a bug with hanging on unavailable hosts - fixed a bug with attempting to connect with an empty playlist - fixed a bug with passing strings with quotes in mqtt - fixing some other bugs - web interface rewritten from scratch (well, almost), bugs added 👍 - added listening to links in the browser in playlistEditor - buttons reboot (reboot) format (spiffs format) and reset (reset settings to default) have been added to the settings - the beginnings of theming (theme.css) (just a list of global colors that can be changed, and then uploaded to theme.css via WB uploader)

0.9.434

  • fixed the issue with exiting Screensaver Blank Screen mode via button presses and IR commands.
  • reduced the minimum frequency for tone control on I2S modules to 80Hz.
  • increased the display update task delay to 10 TICKS. to revert to the previous setting, add #define DSP_TASK_DELAY 2 to myoptions.h.
  • when ENCODER2 is connected, the UP and DOWN buttons now work as PREV and NEXT (single click).
  • implemented backlight off in Screensaver Blank Screen mode.

0.9.428

  • fixed freezing after SD scanning during playback
  • AsyncWebSocket queue increased to 128
  • fixed VU meter overlapping the clock on displays
  • fixed Guru Meditation error when loading in SD mode with SD card removed

0.9.420

!!! a full update with Sketch data upload is required. After updating please press CTRL+F5 in browser !!! - added screensaver mode during playback, configurable via the web interface, pull request#129 - added blank screen mode to screensaver, configurable via the web interface, pull request#129 Thanks to @trip5 for the amazing code! - speeding up indexing of SD cards (advice - don't put all files in one folder) - i don't remember (honestly) why the AsyncTCP server worked on the same core with the player, now it works on the same core with the display #define CONFIG_ASYNC_TCP_RUNNING_CORE 0 - bug fixes

v0.9.412

!!! a full update with Sketch data upload is required. After updating please press CTRL+F5 in browser !!! - added mDNS support, configurable via the web interface, pull#125 - added a setting that allows you to switch stations with the UP and DOWN buttons immediately, bypassing the playlist, configurable via the web interface, pull#125

v0.9.399

!!! a full update with Sketch data upload is required. After updating please press CTRL+F5 in browser !!! - added a screensaver mode, configurable via the web interface. - changes to the tone control algorithm for the VS1053.

v0.9.390

  • updated the VU meter algorithms - shamelessly borrowed from @schreibfaul1, (thanks a lot!)
  • fixed the magic error "HSPI" redefined.

v0.9.380

  • fixed compilation error for ESP32 cores >= 3.1.0
  • fixed freezing error with incorrectly configured RTC module
  • [www|uart|telnet] new command mode - change SD/WEB mode. (0 - WEB, 1 - SD, 2 - Toggle) example: http://\<ipaddress>/?mode=2

v0.9.375

  • fixed the issue with saving settings for TIMEZONE.

v0.9.373

  • fixed the issue with displaying the settings page on fresh ESP modules after saving the weather key (a reset may be required)

v0.9.370

  • fixed the issue with saving settings on fresh ESP modules.

v0.9.369

  • fixed the issue with the non-functional HSPI bus

v0.9.368

  • SD Card - optimization and bug fixes
  • Config - improvements and bug fixes
  • Added stream format display in the web interface !!! A full update is required, including SPIFFS Data !!!
    (Alternatively, upload the new style.css.gz and script.js.gz files via the web interface.)
  • The content of ehRadio.ino has been moved to src/main.cpp
  • [www|uart|telnet] new command: reset - resets settings to default values. More details
  • Fixed compilation error: 'ets_printf' was not declared in this scope

v0.9.351

  • fixed freezing when loading without plugins in some configurations "running dots"

v0.9.350

  • Added parameters for configuring LED_BUILTIN on ESP32S3 modules:
  • USE_BUILTIN_LED: Determines whether to use the built-in LED_BUILTIN (default is true).
  • LED_BUILTIN_S3: Specifies a custom pin for the built-in LED_BUILTIN. Used in combination with USE_BUILTIN_LED = false (default is 255).

Note: For ESP32S3 boards, no changes are required by default; the onboard LED will work as expected.
These settings were added to allow disabling the built-in LED or reassigning it to a custom pin.

  • New class for plugin management, enabling multiple plugins to be assigned to each function.
    More details can be found in the comments within the yoRadio/src/pluginsManager/pluginsManager.h file and at here.
    Additional examples are provided in the examples/plugins folder. Backward compatibility: The old method of adding plugins will remain functional for some time in future versions but will eventually be deprecated and removed.

v0.9.342b

  • fixed compilation error for OLED displays

v0.9.340b

  • fixed compilation error audioVS1053Ex.cpp:181:5: error: 'sdog' was not declared in this scope

v0.9.337b (homeassistant component)

  • fixed the error of subscribing to mqtt topic on some systems

v0.9.337b

  • added support for Arduino ESP32 v3.0.0 and later
  • disabled SD indexing on startup; now the card is indexed only if the data/index.dat file is missing from the card
  • IRremoteESP8266 library integrated into the project (yoRadio/src/IRremoteESP8266)

v0.9.313b

  • added support for ESP32-S3 boards (ESP32 S3 Dev Module) (esp32 cores version 3.x.x is not supported yet)
  • fixes in displaying sliders in the web interface

v0.9.300 (homeassistant component)

  • HA component >> bug fixes in the component for newer versions of Home Assistant

v0.9.300

  • added the ability to play SDCARD without an Internet connection. More in Wiki

v0.9.280

  • fixed an issue where it was impossible to reconnect when the WiFi connection was lost

v0.9.273

  • fixed an "Guru Meditation Error" when playing streams with the ESP32 v2.0.10 and higher core installed

v0.9.260

  • fixed date display bug for ILI9488/ILI9486 displays

v0.9.259

  • 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

v0.9.250

  • 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>
    

v0.9.242

  • 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

v0.9.236

  • fix compilation error 'class NetServer' has no member named 'resetQueue'

v0.9.235

  • 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

v0.9.220

  • 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

v0.9.201

  • fixed a bug when importing a playlist

v0.9.200

!!! 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

v0.9.180

  • OneButton library moved to the project

v0.9.177

  • fixed bitrate display error when playing SD on VS1053B modules

v0.9.174

  • added forced shutdown of smartstart when WebSocket freezes on problem stations
  • added bitrate icon when playing files from SD card
  • fix html markup errors

v0.9.161

  • fixed errors 403 Account already in use, 401 Authorization required
  • fixed bitrate icon overflow bug
  • fix html markup errors

v0.9.156

  • fixed bug of random change of playback location when playing files from SD card

v0.9.155

  • 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

v0.9.143

  • fixed NOKIA5110 display invert/off bug

v0.9.142

  • fixed a bug with smartstart playback when the power is turned off

v0.9.141

  • 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"

v0.9.130

  • 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

v0.9.122

  • fixed a bug in the operation of SSD1305 displays
  • fixed bug in operation of LCD1602/2004 displays
  • fixed errors in Serial Monitor output

v0.9.110

  • optimization and bug fixes (display, player, netserver, telnet. mqtt)

v0.9.084

  • 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

v0.9.058

v0.9.045

v0.9.022

  • 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)

v0.9.001

  • fixed compilation error netserver.cpp:63:28 for some configurations

v0.9.000

  • 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

v0.8.990

  • fixed error displaying access point credentials when DSP_INVERT_TITLE is false
  • fixed compilation error for OLED displays when DSP_INVERT_TITLE is false

v0.8.988

  • 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

v0.8.962

  • fixed reboot error after sending media from Home Assistant
  • fixed bug when playing media from Home Assistant for VS1053
  • fix grammar errors

v0.8.950

  • added support for remote media playback from Home Assistant (Local Media, Radio Browser, TTS)

v0.8.933 (homeassistant component)

  • HA component >> fixed bugs of getting and generating a playlist

v0.8.933

  • added support for ILI9488 display
  • added support for ILI9486 display in testing mode

v0.8.920

!!! 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)

v0.8.901

!!! 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_PLAY and ENC_SW now toggles SD/WEB modes - bug fixes

v0.8.173

  • bootlog added
  • fixed work of start/stop button in configurations with DSP_DUMMY

v0.8.138

  • fixed unclosed comment in examples/myoptions.h

v0.8.137

  • fixed compilation error without encoder

v0.8.135

  • 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)

v0.8.112

  • fixed compilation error with BOOMBOX_STYLE parameter
  • fixes in default configuration for GC9A01A display

v0.8.100

v0.8.089

  • 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)

v0.8.03b

  • 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

v0.8.02b

  • 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

v0.8.01b

  • fix INITR_MINI160x80 compiling error
  • fix ENC_PULLUP description in examples/myoptions.h

v0.8.00b

  • 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 DSP_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 .__.

v0.7.540

  • fixed compilation error when using NEXTION display with DUMMY display

v0.7.534

  • 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

v0.7.490

!!! 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.

v0.7.414

  • fixed non latin long titles of songs error

v0.7.402

!!! 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

v0.7.355

  • 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)

v0.7.330

!!! 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.

v0.7.017

  • fix initialization of some vs1053b green boards
  • fix VU initialization on vs1053b boards

v0.7.010

  • fixed choppy of sound when volume adjustment
  • fixed initialisation of Nextion displays

v0.7.000

  • 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

v0.6.530

  • adding VU meter for displays ST7735 160x80, GC9106 160x80, ILI9225 220x176, ST7789 240x240
  • TFT_22_ILI9225 library is integrated into the project

v0.6.494

  • 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);

v0.6.450

!!! 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

v0.6.400

  • fixed compilation errors with esp32 core 2.0.4

v0.6.380

!!! 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

v0.6.357

  • remove ZERO WIDTH NO-BREAK SPACE (BOM, ZWNBSP) from stream title

v0.6.355

v0.6.348

  • fixed display bugs in the rssibitrate plugin
  • fixed some compilation warnings

v0.6.345

  • fix compilation error in rssibitrate plugin with ILI9225 display

v0.6.344

v0.6.320

  • fixed ILI9225 display bug when used with VS1053B module
  • fixed ILI9225 plugin support

v0.6.313

  • 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

v0.6.290

  • 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)

v0.6.278

  • added support for LCD2004 displays
  • added support for SSD1305/SSD1309 I2C displays
  • fixed rotation of SH1106 display

v0.6.263

  • fixed encoder internal pullup

v0.6.262

  • 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)

v0.6.250

  • 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

v0.6.220

  • new option PLAYER_FORCE_MONO (with i2S DAC only)
  • change default scroll speed in DSP_NOKIA5110
  • improved reconnect to WiFi on connection loss

v0.6.210

  • 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

v0.6.202

  • fixed errors in the operation of the second encoder
  • rewrote plugin example
  • fixed compilation errors on macOS #2

v0.6.200

  • 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 %)

v0.6.120

  • added support for GC9106 160x80 SPI displays
  • fixed compiling error with DSP_DUMMY option
  • fixed compiling error with DSP_1602I2C / DSP_1602 option

v0.6.110

  • 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

v0.6.012

  • fixed choppy playback

v0.6.010

  • 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

v0.5.070

  • added something similar to plugins

v0.5.035

  • added two buttons BTN_UP, BTN_DOWN
  • added the pins for the second encoder ENC2_DT, ENC2_SW, ENC2_CLK
  • fixed display of playlist with SSD1306 configuration
  • improvements in the displays work
  • bugs fixes, some improvements

v0.5.020

  • added support for SSD1306 128x32 I2C displays

v0.5.010

  • 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

v0.4.323

v0.4.322

  • fixed garbage in MQTT payload

v0.4.320

  • MQTT support

image

v0.4.315

  • 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)

v0.4.298

  • fixed playlist scrollbar in Chrome (a full update is required)

v0.4.297

  • 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)

v0.4.293

  • IR repeat fix

v0.4.292

  • added support for IR control
  • new options in options.h (ENC_PULLUP, 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

v0.4.260

  • added control of balance and equalizer for VS1053
  • TFT_ROTATE and st7735 DTYPE moved to myoptions.h

v0.4.251

  • fixed compilation error bug when using VS1053 together with ST7735

v0.4.249

  • fix VS1003/1053 reseting
  • fix css in Firefox
  • fix font in NOKIA5110 display

v0.4.248

  • added support for VS1053 module in testing mode

v0.4.210

  • added timezone config by telnet
  • fix telnet output
  • some separation apples and oranges

v0.4.199

  • excluded required installation of all libraries for displays

v0.4.197

  • added support for Nokia 5110 SPI displays
  • some bugs fixes

v0.4.183

  • ovol reading bug

v0.4.182

  • display connection algorithm changed
  • added support for myoptions.h file for custom settings

v0.4.180

  • vol steps 0..256 (in ESP32-audioI2S)

v0.4.177

  • added support for SSD1306 I2C displays
  • fixed broken buttons.