Close
0%
0%

WiFi Webradio on ESP8266 or ESP32

KaRadio
A fully featured wifi web radio player with only low cost boards.
with or without a vs1053 board

Similar projects worth following
Control with any browsers (ie edge, chrome mozilla etc...).
or with an external hardware panel or with the uart interface or with telnet.
Memory for 255 stations
OTA (On the Air) upgrade,
Read direct mp3 or ogg or WMA streams or playlist .pls .m3u, asx and .xspf
Read up to a 320 kb/s stream,
Encoder, IR, lcd ...
Embedded wifi configuration via the web or serial or telnet.
Metadata displayed (ie Title of the current song if given in the stream),
Permanent setting (sound setting, stations, wifi)
Server multi clients with automatic refresh (websocket),
The stations may be downloaded and uploaded within the web site,
Stations sort management by drag drop.
very quick responsive web by caching local information in the browser and websocket.
additional hardware: a led indicates the state of the equipment
Optional: control switches, lcd display, additional ram for buffering

See http://www.instructables.com/id/Wifi-Webradio-With-ESP8266-and-VS1053 for the description of the minimal prototype.

See Github for sources

See github source for the ESP32 version ( vs1053 or i2s or pcm or internal DAC)

See A project derived from KaRadio32 in progress.

See the lcd +IR software's on Github AddOn

See some realizations of users at KaraDio

A nextion touchscreen display for KaraDio from yo2ldk : Here

For more informations or questions, you can enter to the Karadio facebook group


KaRadio32 Release 1.9


KaRadio32:

Release 1.9 Rev 9 - Built on 2020/12/30

New:

  • 1.9 R9:
    • VS1053b detection improved.
    • Now ogg streams are played with the vs1053b
    • No more glitch with the vs1053b
  • 1.9 R8:
    • Add Battery level
    • Add SPDIF output. Thanks to R3D4
    • VS1053 patch V2.9 updated

1.9 R7

  • New telnet or serial commands: cli.wake, cli.sleep:
    cli.wake("x"): x in minutes. Start or stop the wake function. A value 0 stop the wake timer cli.sleep("x"): x in minutes. Start or stop the sleep function. A value 0 stop the sleep timer cli.wake: Display the current value in seconds cli.Sleep: Display the current value in seconds
  • sys.lcdstop, sys.lcdblv: sys.lcdstop and sys.lcdstop("x"): Timer in seconds to switch off the lcd on stop mode. 0= no timer sys.lcdblv and sys.lcdblv("x"): Value in percent of the backlight.
  • Fade in and out for backlight driven by a gpio.
  • New tool and hardware partition from Bazooka07: Update for boards/nvs_generator.sh use nvs_partition_gen.py tool directly from $IDF_PATH folder can process one or all boards in one shot. Update size for binary partition : 0x3000 now ! Look at : https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/storage/nvs_partition_gen.html#running-the-utility
  • Decode url correctly for /webStation. included name #149
  • Esp-idf Release 3.3.1
  • https://github.com/karawin/Ka-Radio32/releases
  • 1.9 R6:
    • Parse playlist fix.
    • 1.9 R4:
      • wifi.auto command now disable the AP mode if already connected to an AP in the past.
      • I2S corrected for 32bit output stream. Thanks to har-in-air github user.
      • Instant play: new button "Add/Edit", and update fields on cli commands.

    KaRadio: Release 1.9

    Release 1.9 R8 - Built on 2021/01/01

    New:

    • 1.9 R8:
      • vs1053b code cleaning
    • 1.9 R7:
      • New vs1053b patch Rev 2.9 .
    • 1.9 R6:
      • Parse playlist fix.
    • 1.9 R4:
      • LWIP layer tuned. Better errno 11 computing.

    History:

    history

    For ESP32 see the github page KaRadio32. Release 1.6 R4

    ESP8266 Simplest prototype:

    - Optional external ram (23LCV1024) support (1:CS/=GPIO16 2:MISO=GPIO12 3:NC 4:GND 5:MOSI=GPIO13 6:SCK=GPIO14 7:GND 8:3.3v)

    Attention:
    The optional led is now on GPIO2. The blue led on the ESP8266 is blinking at the same rate.
    GPIO16 is now the Chip select for the external ram if any.
    The external ram is detected at boot time if present.

    To upgrade to this release, please flash user1.4096.new.4.bin at 0x1000 ,
    user2.4096.new.4.bin at 0X81000 and blank.bin at 0x7e000 & 0x3fe000
    After that, all next updates are done with the On The Air (OTA) feature.
    New binaries are hosted at http://karadio.karawin.fr .

    Loading the esp8266

    First use

    • If the access point of your router is not known, the webradio initializes itself as an AP. Connect your wifi to the ssid "WifiWebRadio",
    • Browse to 192.164.4.1 to display the page, got to "setting" "Wifi" and configure your ssid ap, the password if any, the wanted IP or use dhcp if you know how to retrieve the dhcp given ip (terminal or scan of the network).
    • In the gateway field, enter the ip address of your router.
    • Validate. The equipment restart to the new configuration. Connect your wifi to your AP and browse to the ip given in configuration.
    • Congratulation, you can edit your own station list....
    Read more »

    KaRadio32.bin

    KaRadio32 1.9 Rev 9 Updated

    octet-stream - 1.39 MB - 01/01/2021 at 21:11

    Download

    user2.4096.new.4.bin

    KaRadio 1.9 Rev 8 Partition 1

    application/octet-stream - 424.33 kB - 01/11/2020 at 18:13

    Download

    user1.4096.new.4.bin

    KaRadio 1.9 Rev 8 Partition 2

    application/octet-stream - 424.33 kB - 01/11/2020 at 18:13

    Download

    octet-stream - 3.98 kB - 09/17/2017 at 10:26

    Download

    octet-stream - 4.00 kB - 07/21/2016 at 15:19

    Download

    View all 6 files

    View all 6 components

    View all 11 project logs

    • 1
      Step 1

      Wiring:

      From ESP8266_ESP12( 3.3 v) or nodeMCU(5v) to VS1053 (5 v)

      REST:

      ADC : gound if control panel not used

      CH_PD to 3.3v

      GPIO16 led output

      D5:GPIO14 to VS1053 SCK

      D6:GPIO12 to VS1053 MISO (or so)

      D7:GPIO13 to VS1053 MOSI (or si)

      TXD to CH340G UART rx

      RXD from CH340G UART tx

      D1:GPIO05 to VS1053 XDCS

      D2:GPIO04 to VS1053 DREQ

      D3:GPIO00 to VS1053 XRST

      GPIO02

      D8:GPIO15 to VS1053 XCS

    View all instructions

    Enjoy this project?

    Share

    Discussions

    jan wrote 08/22/2017 at 18:04 point

    Is it possible to make a soft reset from the ardruino 

      Are you sure? yes | no

    Jean-Pierre Cocatrix wrote 08/22/2017 at 20:08 point

    from the arduino? I don't have an arduino on this project apart the addon for lcd and controls. Anyway, to send a reboot on the serial, the command is
    sys.boot

      Are you sure? yes | no

    ernie 881 wrote 06/09/2017 at 14:59 point

    I personally think that the red VS1053B modules e. g. http://www.ebay.de/itm/VS1053-MP3-Module-with-SD-card-slot-VS1053B-Ogg-real-time-recording-for-Arduino-/272508590908?hash=item3f72c71b3c:g:1ogAAOSwUKxYa5fD are much better than the blue ones labeled "lcsoft studio" or "lc technology". These were or damaged at arrival or dead after a few hours and don't have pin 34 pulled down (mp3 enabled at startup see http://www.bajdi.com/lcsoft-vs1053-mp3-module/ ).

      Are you sure? yes | no

    Jean-Pierre Cocatrix wrote 06/13/2017 at 20:19 point

    I own all models lcsoft, red one and alientek (more complete than other) and all play for month now without problem.

    The pin 34 is not a problem with the software patch.

      Are you sure? yes | no

    ldv82 wrote 05/30/2017 at 13:44 point

    Most likely, this depends on the compatibility of VS1053 and DAC. You will use an external DAC instead of the built-in VS1053.

      Are you sure? yes | no

    Jean-Pierre Cocatrix wrote 05/30/2017 at 16:37 point

    I am not an expert on DAC. All I know is:
    ##I2S speed: 0, 0=48kHz, 1=96kHz, 2=192kHz#
    from the vs1053.

      Are you sure? yes | no

    brony wrote 05/20/2017 at 04:53 point

    Hi. Could you implement so called "radio buttons" to select preset stations?

      Are you sure? yes | no

    aqvarius-sey wrote 05/18/2017 at 14:57 point

    on version 1.1.5 strange problem. if you have installed memory and increase the volume of the radio goes silent. only a reboot helps. if the memory is to retrieve all works. checked all the connection is correct.

      Are you sure? yes | no

    aqvarius-sey wrote 05/18/2017 at 10:05 point

    hi! in the beginning I want to say thank you for a great project! I have a question to the Creator. updated from version 1.1.5 to 1.2.1. buttons connected to an analog input. problems: 1. when adjusting the volume there is no smooth adjustment while holding the button. 2. when you press short the volume randomly changes (jumps from low to high and back). in version 1.1.5 often, she cleared the EEPROM in the esp8266, you need to re-set the network settings, and list of stations.

      Are you sure? yes | no

    AndrzejSc wrote 05/16/2017 at 14:32 point

    I have a problem when change uart to 9600, after reset radio doesn't play. If I change back to 115200 it's play again. Debug informations is the same at both cases. Any ideas ?

      Are you sure? yes | no

    ldv82 wrote 05/16/2017 at 09:44 point
    What are the advantages of ESP32? Any new functions will be at the radio?

      Are you sure? yes | no

    Jean-Pierre Cocatrix wrote 05/16/2017 at 09:53 point

    Don't know yet ;-)
    Just for fun and may be bluetooth, but I have to learn it before.

      Are you sure? yes | no

    ldv82 wrote 05/15/2017 at 13:54 point

    jp cocatrix 

    Do not plan a version STM32+SSD1306+encoder?

      Are you sure? yes | no

    Jean-Pierre Cocatrix wrote 05/15/2017 at 22:32 point

    Yes, i'am working on it. Some technical problem with u8glib ...

      Are you sure? yes | no

    Jean-Pierre Cocatrix wrote 05/30/2017 at 16:33 point

    Too busy to study the STM32. I have one but unpacked for the moment.

      Are you sure? yes | no

    Roman wrote 05/13/2017 at 15:29 point

    HI,Problem! Radio sometimes stops working (hangs)!!!!

    Thanks

    Best regards,
    ~~ Roman

      Are you sure? yes | no

    Flex wrote 05/14/2017 at 15:04 point

    Hey,

    I’ve got a similar problem, sometimes stops the VS Coding and needs a reset. The NodeMCU and Website keep working well, but the speaker didn’t get a signal from the decoder. It seems to happen randomly, sometimes after 20min and othertimes the systems run over hours perfectly.


    I use an NodeMCU connected to an Arduino (for the OLED and a FM transmitter), buttons and such an VS1053: http://www.ebay.de/itm/VS1053-MP3-Module-Development-Board-w-On-Board-Recording-Function-SPI-Interface-/291596880495?hash=item43e4874a6f:g:gm4AAOSwEK9Tw2qE

    It could be a pointer issue of the VS, when I stream from my Shoutcast-Server with 320kbps stereo it feels like the problem comes earlier as if I stream with 98kbps mono signal.

    Greets

    Felix

      Are you sure? yes | no

    cwojtala wrote 05/03/2017 at 11:49 point

    Hi, i've got an issue. I flashed the esp8266 with the esptool like this:

    esptool.py write_flash 0x000 boot_v1.6.bin 0x01000 user1.4096.new.4.bin
    0x81000 user2.4096.new.4.bin 0x7e000 blank.bin 0x3fe000 blank.bin
    0xfc000 esp_init_data_default.bin 0x3fc000 esp_init_data_default.bin

    and it seemed to work. i can connect to the AP but when i fill in the SSID ans password an then click validate nothing happens, after a reset its still in ap mode....

    pls hlp

    chris

      Are you sure? yes | no

    Jean-Pierre Cocatrix wrote 05/03/2017 at 13:46 point

    dhcp, or ip,mask,  gateway?

    In dhcp the ip may be read on the uart interface.

      Are you sure? yes | no

    cwojtala wrote 05/03/2017 at 13:59 point

    i.ve tried both. it starts always in ap mode again

      Are you sure? yes | no

    Jean-Pierre Cocatrix wrote 05/03/2017 at 14:01 point

    check with a terminal on the usb com port. You will see the error. Certainly a bad password.

      Are you sure? yes | no

    cwojtala wrote 05/03/2017 at 14:51 point

    dont ask m how but after a couple resets ist working now. what i observed is tha at the beginning there was no mac adress next to the wlan security options, but now is is there and its working. thx for this very cool project

      Are you sure? yes | no

    Jean-Pierre Cocatrix wrote 05/03/2017 at 14:23 point

    notice that the validate will reset automatically. It is the validate on right of the Wifi & Network label

      Are you sure? yes | no

    Vishal Dhayalan wrote 04/22/2017 at 22:51 point

    Hi again, can you also tell me which files i need to flash onto the ESP8266 NodeMCU and any other details required in this process? There seems to be more files in the 'files' section, than shown in the images on instructables for this project... Thank you.

      Are you sure? yes | no

    Jean-Pierre Cocatrix wrote 05/03/2017 at 13:50 point

    Which one?

      Are you sure? yes | no

    Vishal Dhayalan wrote 04/22/2017 at 22:48 point

    Hi, is it possible to add IR-Remote alone, without a display? and i would like it to just run on the esp8266 NodeMCU, without an arduino, as I'm trying to run on a minimum setup with basic user controls. Love all the effort and time you've put into this! Thank you.

      Are you sure? yes | no

    Jean-Pierre Cocatrix wrote 05/03/2017 at 13:48 point

    no, not without arduino mini pro. But you can have IR remote without display. Just don't add it.

    Thanks

      Are you sure? yes | no

    Paul wrote 04/14/2017 at 01:41 point

    Hi, the ntp client is a fantastic new feature, for some reason the time is returning as UTC +1. When I add my tzo ("+8") the clock reads one hour ahead. I have changed my tzo to +7 to give me the correct time for now. Will you be correcting this in the future. We don't have dst where I live, so thats not the issue.

    Thanks for all your hard work on this project :) 

      Are you sure? yes | no

    Jean-Pierre Cocatrix wrote 05/03/2017 at 13:52 point

    No, it is a simplified implementation.

      Are you sure? yes | no

    cwojtala wrote 04/09/2017 at 12:12 point

    I'm a little  bit confusedFirst: if i connect the buttons to the adc, do i have to change the firmware in the esp8266?

    And second: i've odered this Module: 

    VS1003B VS1053 MP3 Module Development Board Onboard recording function

     http://s.aliexpress.com/veUV3iiU 
    (from AliExpress Android)

    Does ist work with ist? If yes, how do i connect it to the ESP Board?

      Are you sure? yes | no

    Jean-Pierre Cocatrix wrote 04/09/2017 at 12:43 point

    1/ No, it is auto detected in software.

    2/ Not sure, it is a vs1003. Partial support only by Karadio. Some doesn't work at all.
    Th wire is well noted on the board. Same as vs1053.

      Are you sure? yes | no

    cwojtala wrote 04/10/2017 at 11:48 point

    thanks. Knowing my luck, my board won't work. But i can tell when it arrive from china

      Are you sure? yes | no

    Eugene wrote 04/18/2017 at 16:13 point

    This board works correctly with this project, have the same one

      Are you sure? yes | no

    fjs1 wrote 04/04/2017 at 12:47 point

    A really fantastic piece of work !  It works better than all IP radios (commercial) I had before.

    Congratulations et Merci !

    Franz

      Are you sure? yes | no

    Jean-Pierre Cocatrix wrote 04/04/2017 at 12:50 point

    Thanks.
    Yes, a bit hard to code but so exciting...

      Are you sure? yes | no

    vanilinman wrote 04/01/2017 at 23:01 point

    I solved the problem of crackles.I shorten the loop of wires between the modules (I connected without a breadboard).Thanks for the tips.

      Are you sure? yes | no

    vanilinman wrote 04/01/2017 at 21:48 point

    Thank you. You are super. It began to play. Please tell me how to get rid of crackles in the headphones. I tried various sources of power, it does not help.

      Are you sure? yes | no

    Jean-Pierre Cocatrix wrote 04/01/2017 at 21:52 point

    I don't have this problem.

    Check the ground wires (try another gnd entry may be) and try to short it (and all other....
    Enjoy.

    JP

      Are you sure? yes | no

    vanilinman wrote 04/01/2017 at 20:54 point

    Hello friends. Help is needed. I picked up the radio for Wemos D1 Mini following the instructions, but it does not want to play. The port writes:
    ##CLI.STOPPED# from playStationInt
    ##CLI.NAMESET#: 1 Record
    ##CLI.URLSET#: air.radiorecord.ru:8101/rr_320
    ##CLI.PATHSET#: /Icecast 2.3.3-kh10
    ##CLI.PORTSET#: 80
    ##CLI.OVOLSET#: 104
    ##CLI.STOPPED# from clientConnect

    ##CLI.VOL#: 254

      Are you sure? yes | no

    Jean-Pierre Cocatrix wrote 04/01/2017 at 21:02 point

    url: air.radiorecord.ru

    Port: 8101

    Path: /rr_320

    And it will work.

    ##CLI.STOPPED# from Post instant_play
    ##CLI.URLSET#: air.radiorecord.ru
    ##CLI.PATHSET#: /rr_320
    ##CLI.PORTSET#: 8101
    ##CLI.OVOLSET#: 0
    ##CLI.VOL#: 72
    ##CLI.ICY0#: Radio Record
    ##CLI.ICY4#: Dance
    ##CLI.ICY5#: 320
    ##CLI.ICY7#:  ice-samplerate=44100;ice-bitrate=320;ice-channels=2
    ##CLI.PLAYING#
    ##CLI.META#: Bounce Inc - Faith

      Are you sure? yes | no

    Thomas wrote 02/18/2017 at 09:50 point

    Hi JP, how is the correct Syntax to Change UART Baud over Browser?

      Are you sure? yes | no

    Thomas wrote 02/18/2017 at 10:05 point

    Hi JP, i already found but dont understand. Is it 192.168.2.136/sys.uart("19200") for example? This Dont Work so i guess my Syntax ist wrong

      Are you sure? yes | no

    Jean-Pierre Cocatrix wrote 02/18/2017 at 10:11 point

    Two different interfaces: 
    On browser:

    192.168.2.136/?uart   revert the uart to 115200 until a reset. Useful in case you don't remind the current speed.

    But on the uart interface (serial on tx rx)
    sys.uart("115200")
    Or other speed to change the uart baud rate on the next reset and forever until another sys.uart command.

    115200 is the default. Before connecting a display controller, you must change to 28800.

      Are you sure? yes | no

    Thomas wrote 02/18/2017 at 10:23 point

    Ok, its a pitty. I  thought it could be adjusted on browser also. Is it possible to read the curren setting of baud on the browser? I unfortunatly have no communication between display controller and Esp . And want to check this first before Disassemble my Radio to connect it to a computer.

      Are you sure? yes | no

    Thomas wrote 02/20/2017 at 11:07 point

    Hi JP i know that your Standard setting is 28800. But i changed it both to 19200 because 28800 is not selectable with Arduino Serial Monitor. This works fine for me, also with IR Receiver on a pro Mni with 8 Mhz and 3,3 Volts.

    In the past i had sometimes trouble with self changing settings on the Baudrate.

    But in this case i checked now with computer, it hasnt changed.  I detached the esp Module and mount it again, and now Display works again.

    It seems that my build on a protoboard is not much better than on a breadboard.

    Regards

    Thomas

      Are you sure? yes | no

    Similar Projects

    Does this project spark your interest?

    Become a member to follow this project and never miss any updates