Giter Club home page Giter Club logo

yet-another-internet-radio-esp32's Introduction

šŸ‘¶ This is a work in progress. It may change or disappear anytime, or update irregularly. šŸ‘¶

yet-another-internet-radio-ESP32

Streaming media player (internet radio) based on ESP32 and VS1053. It plays anything that VS1053 may decode.

It's a follow-up of the previous ESP8266 internet radio, now defunct. This doc is rather a notice to myself, in case I'll try to debug it after a long time.

Features

  • tested against up to 192 kbps streams. It plays even MIDI files! (type 0 MIDI)
  • controlled via LCD & 4 buttons and through a nice, html5, web interface
  • time, stream title, current song, bitrate, wifi level, buffer level shown on LCD during playback
  • detailed configuration is available using web interface
  • ā™„ļø LIKE button, for saving "now playing" song title into flashmem. Fave it now, google it later.
  • using MCU controlled relays for for delayed speaker coupling (to avoid the "thump" sound at power on)
  • configuration file is stored as a json into SPIFFS
  • at first run or corrupted spiffs, it will create a default json config
  • in case of ESP32 crash & restart, it continues in the previous state
  • scheduler for unattended use, with selectable running days and hours
  • RTC using ESP32's internal clock, updated from NTP continuously
  • bass, treble and separate left and right volume setting using VS1053 registers;
  • wifiManager+wifiMulti-like functionality - yet rudimentary; it will try to connect to several APs; if none of them is available, it creates its own, for accessing config page.

It's stable, all features are working, but with issues and lots of ToDo's.

Component list:

Configuration

All config is stored in the flash memory (/irconfig.json). At first run or if the file gets corrupted, it's overwriten with the default data. This allows you to connect to iRadio access point with 12345678 as password and make any changes:

{
  "user_agent": "iRadio",
  "ap_pass": "12345678",
  "wifi_channel": 10,
  "VS_vol_l": 50,
  "VS_vol_r": 70,
  "ST_AMPLITUDE": 15,
  "ST_FREQLIMIT": 8,
  "SB_AMPLITUDE": 15,
  "SB_FREQLIMIT": 15,
  "stationNow": 0,
  "fgApp": 0,
  "autoStartH": 8,
  "autoStartM": 0,
  "autoStopH": 18,
  "autoStopM": 0,
  "autoDoW": 127,
  "wifi": [
    {
      "ssid": "",
      "pass": ""
    },
    {
      "ssid": "",
      "pass": ""
    },
    {
      "ssid": "",
      "pass": ""
    }
  ],
  "station": [
    {
      "title": "Radio Shantz",
      "host": "82.78.220.54",
      "path": "/stream.mp3",
      "port": 8000
    }
  ]
}

How it works

There can be created several "apps", but only one runs in foreground. Currently there are 3 apps:

  1. clock & info (shown in stand by mode)
  2. radio
  3. station list

Several can be added, for example a Bluetooth speaker app, MIDI player or a weatherundeground.com client. You may switch between them from the web interface or by pushing button4.

yet-another-internet-radio-esp32's People

Contributors

pisicaverde avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

yet-another-internet-radio-esp32's Issues

external DAC

hi there

your build looks amazing!

i planed since a long time to implement my own radio.

does your code also works with the DAC 5102a?`

thx in advance

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    šŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. šŸ“ŠšŸ“ˆšŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ā¤ļø Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.