-
Notifications
You must be signed in to change notification settings - Fork 202
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
108 changed files
with
112,394 additions
and
2 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
/* | ||
* @Description: None | ||
* @version: None | ||
* @Author: None | ||
* @Date: 2023-06-05 13:01:59 | ||
* @LastEditors: None | ||
* @LastEditTime: 2023-07-01 13:36:19 | ||
*/ | ||
#pragma once | ||
|
||
/*ESP32S3*/ | ||
#define PIN_LCD_BL 38 | ||
|
||
#define PIN_LCD_D0 39 | ||
#define PIN_LCD_D1 40 | ||
#define PIN_LCD_D2 41 | ||
#define PIN_LCD_D3 42 | ||
#define PIN_LCD_D4 45 | ||
#define PIN_LCD_D5 46 | ||
#define PIN_LCD_D6 47 | ||
#define PIN_LCD_D7 48 | ||
|
||
#define PIN_POWER_ON 15 | ||
|
||
#define PIN_LCD_RES 5 | ||
#define PIN_LCD_CS 6 | ||
#define PIN_LCD_DC 7 | ||
#define PIN_LCD_WR 8 | ||
#define PIN_LCD_RD 9 | ||
|
||
#define PIN_BUTTON_1 0 | ||
#define PIN_BUTTON_2 14 | ||
#define PIN_BAT_VOLT 4 | ||
|
||
#define PIN_IIC_SCL 17 | ||
#define PIN_IIC_SDA 18 | ||
|
||
#define PIN_TOUCH_INT 16 | ||
#define PIN_TOUCH_RES 21 | ||
|
||
/* External expansion */ | ||
//SD | ||
#define PIN_SD_CS 16 | ||
#define PIN_SD_CLK 21 | ||
#define PIN_SD_MISO 3 | ||
#define PIN_SD_MOSI 10 | ||
|
||
// MPR121_PIN | ||
#define MPR121_ADDR1 0x5A | ||
#define MPR121_ADDR2 0x5B // VCC | ||
#define MPR121_IRQ_PIN 2 | ||
#define MPR121_SDA 18 | ||
#define MPR121_SCL 17 | ||
|
||
// PCF8575_PIN | ||
#define T_DISPLAY_PCF8575_IIC_ADDRESS 0x20 | ||
#define PCF8575_IRQ_PIN 2 | ||
#define PCF8575_SDA 18 | ||
#define PCF8575_SCL 17 | ||
#define T_DISPLAY_PCF8575_INTERRUPTPIN 2 | ||
|
||
// PCM5102A_PIN | ||
#define PCM5102A_LRCK 13 | ||
#define PCM5102A_DIN 12 | ||
#define PCM5102A_BCK 11 | ||
|
||
// XL95x5_PIN | ||
#define T_DISPLAY_XL95x5_IIC_ADDRESS 0X20 | ||
#define T_DISPLAY_XL95x5_SDA 18 // Default configuration | ||
#define T_DISPLAY_XL95x5_SCL 17 | ||
#define T_DISPLAY_XL95x5_INTERRUPTPIN 2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# Number of days of inactivity before an issue becomes stale | ||
daysUntilStale: 60 | ||
# Number of days of inactivity before a stale issue is closed | ||
daysUntilClose: 7 | ||
# Issues with these labels will never be considered stale | ||
exemptLabels: | ||
- pinned | ||
- security | ||
# Label to use when marking an issue as stale | ||
staleLabel: wontfix | ||
# Comment to post when marking an issue as stale. Set to `false` to disable | ||
markComment: > | ||
This issue has been automatically marked as stale because it has not had | ||
recent activity. It will be closed if no further activity occurs. Thank you | ||
for your contributions. | ||
# Comment to post when closing a stale issue. Set to `false` to disable | ||
closeComment: false |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
# ESP32-audioI2S | ||
Plays mp3, m4a and wav files from SD card via I2S with external hardware. | ||
HELIX-mp3 and -aac decoder is included. | ||
Works with MAX98357A (3 Watt amplifier with DAC), connected three lines (DOUT, BLCK, LRC) to I2S. | ||
For stereo are two MAX98357A necessary. AudioI2S works with UDA1334A (Adafruit I2S Stereo Decoder Breakout Board), PCM5102A and CS4344. | ||
Other HW may work but not tested. Plays also icy-streams and GoogleTTS. Can be compiled with Arduino IDE. [WIKI](https://github.com/schreibfaul1/ESP32-audioI2S/wiki) | ||
|
||
```` c++ | ||
#include "Arduino.h" | ||
#include "WiFi.h" | ||
#include "Audio.h" | ||
#include "SD.h" | ||
#include "FS.h" | ||
|
||
// Digital I/O used | ||
#define SD_CS 5 | ||
#define SPI_MOSI 23 | ||
#define SPI_MISO 19 | ||
#define SPI_SCK 18 | ||
#define I2S_DOUT 25 | ||
#define I2S_BCLK 27 | ||
#define I2S_LRC 26 | ||
|
||
Audio audio; | ||
|
||
String ssid = "*******"; | ||
String password = "*******"; | ||
|
||
void setup() { | ||
pinMode(SD_CS, OUTPUT); digitalWrite(SD_CS, HIGH); | ||
SPI.begin(SPI_SCK, SPI_MISO, SPI_MOSI); | ||
Serial.begin(115200); | ||
SD.begin(SD_CS); | ||
WiFi.disconnect(); | ||
WiFi.mode(WIFI_STA); | ||
WiFi.begin(ssid.c_str(), password.c_str()); | ||
while (WiFi.status() != WL_CONNECTED) delay(1500); | ||
audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT); | ||
audio.setVolume(21); // default 0...21 | ||
// or alternative | ||
// audio.setVolumeSteps(64); // max 255 | ||
// audio.setVolume(63); | ||
// | ||
audio.connecttohost("http://iskatel.hostingradio.ru:8015/iskatel-320.aac"); // aac | ||
// audio.connecttohost("http://mcrscast.mcr.iol.pt/cidadefm"); // mp3 | ||
// audio.connecttohost("http://www.wdr.de/wdrlive/media/einslive.m3u"); // m3u | ||
// audio.connecttohost("https://stream.srg-ssr.ch/rsp/aacp_48.asx"); // asx | ||
// audio.connecttohost("http://tuner.classical102.com/listen.pls"); // pls | ||
// audio.connecttohost("http://stream.radioparadise.com/flac"); // flac | ||
// audio.connecttohost("http://stream.sing-sing-bis.org:8000/singsingFlac"); // flac (ogg) | ||
// audio.connecttohost("http://s1.knixx.fm:5347/dein_webradio_vbr.opus"); // opus (ogg) | ||
// audio.connecttohost("http://26373.live.streamtheworld.com:3690/XHQQ_FMAAC/HLSTS/playlist.m3u8"); // HLS | ||
// audio.connecttohost("http://eldoradolive02.akamaized.net/hls/live/2043453/eldorado/master.m3u8"); // HLS (ts) | ||
// audio.connecttoFS(SD, "/test.wav"); // SD | ||
// audio.connecttoFS(SD_MMC, "/test.wav"); // SD_MMC | ||
// audio.connecttoFS(SPIFFS, "/test.wav"); // SPIFFS | ||
// audio.connecttospeech("Wenn die Hunde schlafen, kann der Wolf gut Schafe stehlen.", "de"); // Google TTS | ||
} | ||
|
||
void loop() | ||
{ | ||
audio.loop(); | ||
} | ||
|
||
// optional | ||
void audio_info(const char *info){ | ||
Serial.print("info "); Serial.println(info); | ||
} | ||
void audio_id3data(const char *info){ //id3 metadata | ||
Serial.print("id3data ");Serial.println(info); | ||
} | ||
void audio_eof_mp3(const char *info){ //end of file | ||
Serial.print("eof_mp3 ");Serial.println(info); | ||
} | ||
void audio_showstation(const char *info){ | ||
Serial.print("station ");Serial.println(info); | ||
} | ||
void audio_showstreamtitle(const char *info){ | ||
Serial.print("streamtitle ");Serial.println(info); | ||
} | ||
void audio_bitrate(const char *info){ | ||
Serial.print("bitrate ");Serial.println(info); | ||
} | ||
void audio_commercial(const char *info){ //duration in sec | ||
Serial.print("commercial ");Serial.println(info); | ||
} | ||
void audio_icyurl(const char *info){ //homepage | ||
Serial.print("icyurl ");Serial.println(info); | ||
} | ||
void audio_lasthost(const char *info){ //stream URL played | ||
Serial.print("lasthost ");Serial.println(info); | ||
} | ||
void audio_eof_speech(const char *info){ | ||
Serial.print("eof_speech ");Serial.println(info); | ||
} | ||
|
||
```` | ||
Breadboard | ||
![Breadboard](https://github.com/schreibfaul1/ESP32-audioI2S/blob/master/additional_info/Breadboard.jpg) | ||
Wiring | ||
![Wiring](https://github.com/schreibfaul1/ESP32-audioI2S/blob/master/additional_info/ESP32_I2S_PCM5102A.JPG) | ||
Impulse diagram | ||
![Impulse diagram](https://github.com/schreibfaul1/ESP32-audioI2S/blob/master/additional_info/Impulsdiagramm.jpg) |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added
BIN
+1.2 MB
lib/ESP32-audioI2S-3.0.0/additional_info/Testfiles/Santiano-Wellerman.flac
Binary file not shown.
5 changes: 5 additions & 0 deletions
5
lib/ESP32-audioI2S-3.0.0/additional_info/Testfiles/myPlaylist.m3u
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
#EXTM3U | ||
#EXTINF:18,Bjarne Liller - Olsen Banden (Titelmusik der Olsenbande) - Olsen-Banden.mp3 | ||
https://raw.githubusercontent.com/schreibfaul1/ESP32-audioI2S/master/additional_info/Testfiles/Olsen-Banden.mp3 | ||
#EXTINF:10,Santiano-Wellermann - Santiano-Wellerman.flac | ||
https://raw.githubusercontent.com/schreibfaul1/ESP32-audioI2S/master/additional_info/Testfiles/Santiano-Wellerman.flac |
Binary file not shown.
Binary file not shown.
Binary file added
BIN
+187 KB
lib/ESP32-audioI2S-3.0.0/additional_info/Testfiles/test_16bit_mono.wav
Binary file not shown.
Binary file added
BIN
+374 KB
lib/ESP32-audioI2S-3.0.0/additional_info/Testfiles/test_16bit_stereo.wav
Binary file not shown.
Binary file added
BIN
+93.5 KB
lib/ESP32-audioI2S-3.0.0/additional_info/Testfiles/test_8bit_mono.wav
Binary file not shown.
Binary file added
BIN
+187 KB
lib/ESP32-audioI2S-3.0.0/additional_info/Testfiles/test_8bit_stereo.wav
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
|
||
This directory is intended for project header files. | ||
|
||
A header file is a file containing C declarations and macro definitions | ||
to be shared between several project source files. You request the use of a | ||
header file in your project source file (C, C++, etc) located in `src` folder | ||
by including it, with the C preprocessing directive `#include'. | ||
|
||
```src/main.c | ||
|
||
#include "header.h" | ||
|
||
int main (void) | ||
{ | ||
... | ||
} | ||
``` | ||
|
||
Including a header file produces the same results as copying the header file | ||
into each source file that needs it. Such copying would be time-consuming | ||
and error-prone. With a header file, the related declarations appear | ||
in only one place. If they need to be changed, they can be changed in one | ||
place, and programs that include the header file will automatically use the | ||
new version when next recompiled. The header file eliminates the labor of | ||
finding and changing all the copies as well as the risk that a failure to | ||
find one copy will result in inconsistencies within a program. | ||
|
||
In C, the usual convention is to give header files names that end with `.h'. | ||
It is most portable to use only letters, digits, dashes, and underscores in | ||
header file names, and at most one dot. | ||
|
||
Read more about using header files in official GCC documentation: | ||
|
||
* Include Syntax | ||
* Include Operation | ||
* Once-Only Headers | ||
* Computed Includes | ||
|
||
https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
|
||
This directory is intended for project specific (private) libraries. | ||
PlatformIO will compile them to static libraries and link into executable file. | ||
|
||
The source code of each library should be placed in a an own separate directory | ||
("lib/your_library_name/[here are source files]"). | ||
|
||
For example, see a structure of the following two libraries `Foo` and `Bar`: | ||
|
||
|--lib | ||
| | | ||
| |--Bar | ||
| | |--docs | ||
| | |--examples | ||
| | |--src | ||
| | |- Bar.c | ||
| | |- Bar.h | ||
| | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html | ||
| | | ||
| |--Foo | ||
| | |- Foo.c | ||
| | |- Foo.h | ||
| | | ||
| |- README --> THIS FILE | ||
| | ||
|- platformio.ini | ||
|--src | ||
|- main.c | ||
|
||
and a contents of `src/main.c`: | ||
``` | ||
#include <Foo.h> | ||
#include <Bar.h> | ||
|
||
int main (void) | ||
{ | ||
... | ||
} | ||
|
||
``` | ||
|
||
PlatformIO Library Dependency Finder will find automatically dependent | ||
libraries scanning project source files. | ||
|
||
More information about PlatformIO Library Dependency Finder | ||
- https://docs.platformio.org/page/librarymanager/ldf.html |
Oops, something went wrong.