/ESP8266-WebRadio

WIFI WEBRADIO player based on ESP8266 (esp-12 or nodeMCU) and VS1053

Primary LanguageAssemblyOtherNOASSERTION

ESP8266-WebRadio

###WiFi shoutcast player based on ESP8266 and VS1053b chips ##Basic informations ####Version: 1.0.2
Added: "Now playing" informations are now given with the help of a websocket. The display is immediatly updated on the browser.
Reading 320Kb/s is improved
Stability tested during many days and nights....
Video on https://youtu.be/cT8cGp9pvcs
#####Version: 1.0.1
A static ip at the first start is a problem if you are not in 192.168.1.xxx network.
The first start will now be in dhcp mode. See the allocated ip in the uart traces or scan your network.
This can be done with fing for mobile for example:
IOS: https://itunes.apple.com/fr/app/fing-network-scanner/id430921107?mt=8
Android: https://play.google.com/store/apps/details?id=com.overlook.android.fing&hl=fr

#####Version: 1.0.0 (KaraWin)
Status: under design and development

2016, May (KaraWin)

First step, Final release done.

  • Read up to 320 kB/s stream,
  • New web page, Fit well on mobile or computer.
  • Embedded wifi configuration via the web site (see below)
  • Metadata displayed,
  • all settings saved (sound setting, stations, wifi)
  • server multi clients with automatic refresh for all,
  • The stations can be dowloaded and uploaded within the web site,
  • very quick responsive web by caching local information in the browser.
  • additional hardware: a led indicates the state of the equipment (gpo16->resistor->led->3.3volt). Speed blink: init, 90%in 10%out: connexion in progress, 10% in 90%out: Equipment ready.
  • ...

Loading the esp8266

First use

  • If the acces point of your router is not known, the webradio inits 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. Dont forget to save your stations list in case of problem or for new equipments.
  • if the AP is already know by the esp8266, the default ip is given by dhcp.
  • a sample of stations list is on https://github.com/karawin/ESP8266-WebRadio/blob/master/ESP8266-Firmware/WebStations.txt . Can be uploaded via the web page.

Feedback

Please tell me if you succeded or something more can be done, thanks.
The second step will add some hardware buttons (vol + -, station + -, play ...)

screenshot

screenshot

screenshot

2016,April (Karawin):


TXD to CH340G UART rx
RXD from CH340G UART tx
GPIO05 to VS1053 XDCS
GPIO04 to VS1053 DREQ
GPIO00 to VS1053 XRST
GPIO02
GPIO15 to VS1053 XCS

##Used hardware WiFi and main MCU: ESP8266 (ESP-12 with 32Mbits flash)
Additional MCU (as a bridge UART<=>UI): AVR
Audio decoder: VS1053
##TODO list ###ESP8266 -**[NORMAL]**Metadata processing
-**[LOW]**External SRAM implementation
-**[LOW]**Code cleanup and optimization ###AVR -Hardware design
-Code ##Changelog ###v0.13 -**[ESP8266]**Some kind of beta version of web interface is ready.
-**[ESP8266]**Works saving and loading stations and settings to/from flash
-**[ESP8266]**Added "How to run" document ###v0.12 -**[ESP8266]**Development of functions for saving and reading settings from flash "eeprom"
-**[ESP8266]**Functions for driving GPIO16
-**[ESP8266]**Development of webinterface
-**[ESP8266]**Webclient is using socket ###v0.11 -**[Hardware]**Finished first revision of schematic (main board) and PCB
-**[Hardware]**Added GERBER files for main board (NOT TESTED YET)
-**[Hardware]**AVR is going to be only an interface between UART in ESP8266 and UI (which is LCD, encoder and buttons) ###v0.10 -**[ESP8266]**Support for user data (stations, config, etc.) storage in last 64kb of flash -**[Hardware]**Schematic of main board ###v0.9 -**[ESP8266]**Sound settings through web interface
-**[ESP8266]**Web interface improvements ###v0.8 -**[ESP8266]**Webserver uses sockets - improved stability
-**[ESP8266]**Improvments of webinterface (now supports Instant Play)
-**[ESP8266]**Improvments of webserver (simple POST parser)
-**[ESP8266]**DNS lookup ###v0.7 -**[ESP8266]**Simple and rough sketch of VS1053 driver (working)
-**[ESP8266]**Rough sketch of webclient is working
-I can say that alpha version of player works for now, because I can listen to some SHOUTcast streams. ###v0.6 -**[ESP8266]**Started making new firmware based on esp_iot_rtos_sdk with bare LwIP and freeRTOS
-**[Hardware]**New conception of hardware, where main MCU is ESP8266 and some small AVR is only to provide user interface (LCD, etc.) and configure ESP via UART
-First tests of new firmware are very promising, because HTTP server based on Netconn is very responsive (much better than previous version of firmware) ###v0.5 -**[ESP8266]**Improved: HTTP server configuration
-**[ESP8266]**Added: HTTP client UART output
-**[STM32]**Added: Unclean sketch of firmware for basic testing purposes ###v0.4 -**[ESP8266]**Added: Simple CGI parser
-**[ESP8266]**Added: ICY header parser ###v0.3 -**[ESP8266]**Added: Simple admin panel mockup
-**[ESP8266]**Added: Connecting to client ###v0.2 -**[ESP8266]**Added: Running simple http server on port 80
-**[ESP8266]**Added: Simple UART command parser for wifi configuration ###v0.1 -**[ESP8266]**Initial release - ESP8266 firmware based on cleaned nodemcu source (deleted lua, flash-fs, etc.)