Update: The reader Andreas Schröder has changed the project a little and supplemented some functions. You can find the text and sketch at the end of the post.
Many radio stations can be heard as a MP3 stream over the Internet. Since the microcontroller ESP32 has WLAN skills on the one hand and, on the other hand, can convert the digital data stream into an analog signal with two built-in digital/analog converters, it offers itself as an ideal solution. In addition, a battery power supply, an audio amplifier, two speakers, a display for the transmitter display and an input device for the transmitter setting is required. The whole thing is rounded off with a housing from the 3D printer.
Required hardware
Number | Component | annotation |
---|---|---|
1 |
|
|
1 |
|
|
1 |
|
|
2 |
Resistance 4.7 KOHM |
|
2 |
Resistance 22 KOHM |
|
1 |
Resistance 10 kohm |
|
1 |
Elko 1000UF / 10V |
|
1 |
|
|
1 |
|
|
1 |
|
|
1 |
|
|
1 |
|
|
1 |
|
|
2 |
Spring strips 19-pin |
|
1 |
Park bar 3-pin |
|
1 |
Park bar 4-pin |
|
1 |
Pin bar 5-pin |
|
2 |
Turntons for 6mm axis |
|
Several |
Jumper cable female too female |
|
1 |
|
|
1 |
|
|
1 |
|
|
various |
|
circuit
Important!
If the Rotary Encoder is not used, the PIN 34 of the ESP32 must still be connected to the 10 co-cock resistance with 3.3V.
The ESP32 is built up on a 50x70 mm hole grid plate with the resistances and pen strips for the periphery.
The figure shows the assembly and wiring on the underside
wiring
First of all, the loader's battery connection is connected to the input of the DC-DC Step Up converter. Note the polarity! The battery is also soldered via a suitable connector with the battery input of the loader. Now the output voltage of the converter with the blue potentiometer should be set to approx. 5.2 V. To do this, either a battery must be connected or the loader's USB input must be connected to a USB network.
If the voltage is set, the output of the converter can be connected to the supply receipt of the audio amplifier. There are two soldering points on the back of the amplifier, the plus connection is switched over the switch of the volume potentiometer.
This connection is used to supply the ESP32 and the display so that the device can be switched off completely via the potentiometer.
Now the connections to the control board can be made on the hole grid plate. It is best to use jumper wires with two female plugs. You need a 3-pin connection from the audio output to the amplifier, a 4-pin to the display and a 5-pin to the Rotary Encoder.
Important NOTE!
The loudspeakers should not be attached or staked out when switched on, since inductive tension peaks could destroy the amplifier outputs.
If the housing presented in the blog post is used, battery, loader, DC/DC converter and the control board come to the baking tarpaulin. The speakers, the amplifier, the Rotary Encoder and the display come to the front tarpaulin. The lid is used to secure the battery.
software
In order for the sketch to be compiled, the Arduino IDE must be prepared accordingly. By default, Arduino IDE supports a large number of boards with different microcontrollers, but not the ESP32. So that you can create and upload programs for these controllers, a software package for the support must therefore be installed.
First you have to communicate the Arduino IDE where you can find the additional data required. To do this, open the Preferences in the File menu. In the preset window there is the input field called "Additional board administrator URLS". If you click on the icon to the right of the input field, a window in which you can open the URL https://dl.espressif.com/dl/package_esp32_index.json for the ESP32 can enter. Version 2.0.0 or higher of the ESP32 package should not be used for this project, since these versions have problems related to the ESP8266audio library!
Now choose the board management in the Arduino IDE under tool → board.
A window opens in which all available packages are listed. In order to narrow down the list, you enter "ESP32" in the search field. Then you only get an entry in the list. Install the "ESP32" package.
For the display you need a library that can be installed via the Arduino library management. This is the library "Liquidcrystal I2C".
Another library is required for the Rotary Encoder. Her name is "Aiesp32rotary Coder".
The core of this project is the library "ESP8266audio".
This library enables various digital input currents to be read, decoding and reproducing them using various output channels. As an entrance, the program memory, the internal RAM can be used by an SD card, an HTTP stream or an ICY stream. The icy stream is typically used by internet radios.
WAV, MOD, MIDI, Flac, AAC and MP3 files can be decoded. MP3 is required for the web radio. The output can finally be made in memory, files or I2S. There is a special feature for the ESP32. The I2S Output can be output on the internal digital analog converter. An analog stereo signal is then available at the output pins of the DAW (PIN 25 and PIN 26). This feature is used in the present project.
If all libraries are installed, the sketch can be compiled and uploaded to the hardware.
The sketch
#include <Wifi.H> // Includes from ESP8266audio #include "AudioFileesourceiSstream.h" // input stream #include "AudioFileesourcebuffer.h" // input buffer #include "Audiogeneratormp3.h" //decoder #include "AudioOutPuti2s.h" // output stream // Library for LCD display #include <Liquidcrystal_i2c.H> // Library for Rotary Encoder #include "AiesP32rotaryScoder.h" // ESP32 Library to Save Preferences in Flash #include <Preferences.H> // WLAN Access Fill with your credentials #define SSID "************" #define PSK "*************" // Used pins for Rotary Encoder #define Rotary_encoder_a_pin 33 #define Rotary_encoder_b_pin 32 #define Rotary_encoder_Button_pin 34 #define Rotary_encoder_vcc_pin -1 /* 27 PUT -1 of Rotary Encoder VCC IS Connected Directly to 3.3V; Else you can use declared output pin for powering rotary encoder */ // Depending on Your Encoder - Try 1.2 OR 4 TO GET Expected Behavior //#define rotary_encoder_steps 1 //#define rotary_encoder_steps 2 #define Rotary_encoder_steps 4 // Structure for Station List type struct { char * url; // stream url char * Surname; // station name } station; #define Ward 24 // Number of Stations in Tzhe List // Station List Can Easily Be Modified to Support Other Stations station wardlist[Ward] Progmem = { {"http://icecast.ndr.de/ndr/ndr2/niedersachsen/mp3/128/stream.mp3","NDR2 Lower Saxony"}, {"http://icecast.ndr.de/ndr/ndr1niedersachsen/hannover/mp3/128/stream.mp3","NDR1 Hannover"}, {"http://wdr-1live-live.iceCast.wdr.de/wdr/1live/live/mp3/128/stream.mp3","WDR1"}, {"http://wdr-cosmo-live.iceCast.wdr.de/wdr/cosmo/live/mp3/128/stream.mp3","WDR Cosmo"}, {"http://radiohagen.cast.addradio.de/radiohagen/simulcast/high/stream.mp3","Radio Hagen"}, {"http://st01.sslstream.dlf.de/dlf/01/128/mp3/stream.mp3","Deutschlandfunk"}, {"http://dispatcher.rndfnk.com/br/br1/franken/mp3/low","Bayern1"}, {"http://dispatcher.rndfnk.com/br3/live/mp3/low","Bayern 3"}, {"http://dispatcher.rndfnk.com/hr/hr3/live/mp3/48/stream.mp3","Hessen3"}, {"http://stream.antentne.de/antne","Antenne Bayern"}, {"http://stream.1a-webradio.de/saw-deutsch/","Radio 1a German hits"}, {"http://stream.1a-weibradio.de/saw-rock/","Radio 1a Rock"}, {"http://streams.80s80s.de/ndw/mp3-192/streams.80S80S.de/","Neue Deutsche Welle"}, {"http://dispatcher.rndfnk.com/br/brklassik/live/mp3/low","Bavaria Classic"}, {"http://mdr-284280-1.Cast.mdr.de/MDR/284280/1/mp3/low/Stream.mp3","MDR"}, {"http://icecast.ndr.de/ndr/njoy/live/mp3/128/stream.mp3","N-Joy"}, {"http://dispatcher.rndfnk.com/rbb/rbb888/live/mp3/mid","RBB"}, {"http://dispatcher.rndfnk.com/rbb/antnebrandenburg/live/mp3/mid","Antenne Brandenburg"}, {"http://wdr3-live.iceCasttssl.wdr.de/wdr/wdr3/live/mp3/128/stream.mp3","WDR3"}, {"http://wdr2-aachenundregion.iceCasttssl.wdr.de/wdr2/aachenundregion/mp3/128/stream.mp3","WDR 2"}, {"http://rnrw.cast.addradio.de/rnrw-0182/deinschlager/low/Stream.mp3","NRW Schlagerradio"}, {"http://rnrw.cast.addradio.de/rnrw-0182/deinrock/low/stream.mp3","NRW Rockradio"}, {"http://rnrw.cast.addradio.de/rnrw-0182/dein90er/low/stream.mp3","NRW 90s"}, {"http://mp3.hitradiort1.c.nmdn.net/rt1rockwl/livestream.mp3","RT1 Rock"}}; // Buffer size for stream buffering const intimately Preallocatebuffersize = 80*1024; const intimately PreallocateCodecsize = 29192; // MP3 Codec Max Mem Needed // pointer to preallocated memory void *Preallocatebuffer = ZERO; void *PreallocateCodec = ZERO; // Instance of Preferences Preferences Pref; // Instance for Rotary Encoder AISP32Rotary code rotary = AISP32Rotary code(Rotary_encoder_a_pin, Rotary_encoder_b_pin, Rotary_encoder_Button_pin, Rotary_encoder_vcc_pin, Rotary_encoder_steps); // Instance for LCD display Liquidcrystal_i2c LCD(0x27,16,2); // Set the lcd address to 0x27 for a 16 chars and 2 line display // Instance for Audio Components Audio *decoder = ZERO; Audio filesourceistream *file = ZERO; Audio filesource buffer *buff = ZERO; Audiooutputi2s *out; // Special character to Show a Speaker Icon for Current Station uint8_t speaker[8] = {0x3,0x5,0x19,0x11,0x19,0x5,0x3}; // global variables uint8_t curing = 0; // Index for current selected station in station list uint8_t act = 0; // Index for current station in station list used for streaming uint32_t liability = 0; // Time of Last Selection Change // Callback function wants to be called If Meta Data Were Found in Input Stream void MDCallback(void *cbdata, const char *type, Bool isunicode, const char *string) { const char *PTR = Reinterpret_Cast<const char *>(cbdata); (void) isunicode; // Punt this ball for Now // note that the type and string may be in progmem, so copy them to ram for printf char S1[32], s2[64]; strncpy_p(S1, type, Sizeof(S1)); S1[Sizeof(S1)-1]=0; strncpy_p(s2, string, Sizeof(s2)); s2[Sizeof(s2)-1]=0; Serial.printf("Metadata (%s) '%s' = '%s' \ n", PTR, S1, s2); Serial.flush(); } // stop playing the input stream release memory, delete instantences void stop playing() { IF (decoder) { decoder->Stop(); delete decoder; decoder = ZERO; } IF (buff) { buff->close(); delete buff; buff = ZERO; } IF (file) { file->close(); delete file; file = ZERO; } } //start playing a stream from current active station void startUrl() { stopPlaying(); //first close existing streams //open input file for selected url Serial.printf("Active station %s\n",stationlist[actStation].url); file = new AudioFileSourceICYStream(stationlist[actStation].url); //register callback for meta data file->RegisterMetadataCB(MDCallback, NULL); //create a new buffer which uses the preallocated memory buff = new AudioFileSourceBuffer(file, preallocateBuffer, preallocateBufferSize); Serial.printf_P(PSTR("sourcebuffer created - Free mem=%d\n"), ESP.getFreeHeap()); //create and start a new decoder decoder = (AudioGenerator*) new AudioGeneratorMP3(preallocateCodec, preallocateCodecSize); Serial.printf_P(PSTR("created decoder\n")); Serial.printf_P("Decoder start...\n"); decoder->begin(buff, out); } //show name of current station on LCD display //show the speaker symbol in front if current station = active station void showStation() { lcd.clear(); if (curStation == actStation) { lcd.home(); lcd.print(char(1)); } lcd.setCursor(2,0); String name = String(stationlist[curStation].name); if (name.length() < 15) lcd.print(name); else { uint8_t p = name.lastIndexOf(" ",15); //if name does not fit, split line on space lcd.print(name.substring(0,p)); lcd.setCursor(0,1); lcd.print(name.substring(p+1,p+17)); } } //handle events from rotary encoder void rotary_loop() { //dont do anything unless value changed if (rotaryEncoder.encoderChanged()) { uint16_t v = rotaryEncoder.readEncoder(); Serial.printf("Station: %i\n",v); //set new currtent station and show its name if (v < STATIONS) { curStation = v; showStation(); lastchange = millis(); } } //if no change happened within 10s set active station as current station if ((lastchange > 0) && ((millis()-lastchange) > 10000)){ curStation = actStation; lastchange = 0; showStation(); } //react on rotary encoder switch if (rotaryEncoder.isEncoderButtonClicked()) { //set current station as active station and start streaming actStation = curStation; Serial.printf("Active station %s\n",stationlist[actStation].name); pref.putUShort("station",curStation); startUrl(); //call show station to display the speaker symbol showStation(); } } //interrupt handling for rotary encoder void IRAM_ATTR readEncoderISR() { rotaryEncoder.readEncoder_ISR(); } //setup void setup() { Serial.begin(115200); delay(1000); //reserve buffer für for decoder and stream preallocateBuffer = malloc(preallocateBufferSize); // Stream-file-buffer preallocateCodec = malloc(preallocateCodecSize); // Decoder- buffer if (!preallocateBuffer || !preallocateCodec) { Serial.printf_P(PSTR("FATAL ERROR: Unable to preallocate %d bytes for app\n"), preallocateBufferSize+preallocateCodecSize); while(1){ yield(); // Infinite halt } } //start rotary encoder instance rotaryEncoder.begin(); rotaryEncoder.setup(readEncoderISR); rotaryEncoder.setBoundaries(0, STATIONS, true); //minValue, maxValue, circleValues true|false (when max go to min and vice versa) rotaryEncoder.disableAcceleration(); //init WiFi Serial.println("Connecting to WiFi"); WiFi.disconnect(); WiFi.softAPdisconnect(true); WiFi.mode(WIFI_STA); WiFi.begin(SSID, PSK); // Try forever while (WiFi.status() != WL_CONNECTED) { Serial.println("...Connecting to WiFi"); delay(1000); } Serial.println("Connected"); //create I2S output do use with decoder //the second parameter 1 means use the internal DAC out = new AudioOutputI2S(0,1); //init the LCD display lcd.init(); lcd.backlight(); lcd.createChar(1, speaker); //set current station to 0 curStation = 0; //start preferences instance pref.begin("radio", false); // Set Current Station to Saved Value IF Available IF (Pref.Iskey("station")) curing = Pref.gut("station"); IF (curing >= Ward) curing = 0; // Set Active Station to Current Station // Show on display and start streaming act = curing; show station(); starturl(); } void loop() { // check if stream has ended Normally not on icy streams IF (decoder->Isrunning()) { IF (!decoder->loop()) { decoder->Stop(); } } Else { Serial.printf("MP3 Done \ n"); // Restart ESP when streaming is done or errored delay(10000); ESP.remaining start(); } // Read events from Rotary Encoder rotary_loop(); }
Before compiling, the SSID and the password must be set for the WLAN. At the beginning of the sketch is a list of 24 German radio stations. You can edit or expand them as you like to hear your desired program. A maximum of 100 stations can be defined.
After uploading, the program can be started. The channel list can be scrolled with the Rotary Encoder. If you press the button of the Rotary Encoder, the station that has just been displayed is set as active. This selection is saved in the flash, so that after a power break, the program is started again with the selected transmitter. The station that has just been reproduced is displayed on the display by a preceding loudspeaker symbol.
Have fun with the internet radio
Update from our reader Andreas Schröder
(thanks at this point)
With a cut black film on white housing, it looks really good.
Because this is not tingling and screwing up, I expanded the code to include the following:
1. An automatic AP mode with a lack of WLAN connection, which then queries the access data via web server.
2. In normal operation, the transmitter list can be maintained via a web front end. Would like to have provided the code, screenshots and the plotter file for the film here.
The WLAN configuration is held in the internal flash memory. This can be configured using the web interface. The configuration process is as follows:
-
Charge the saved login data
-
Attempt to make connections (display shows "WLAN")
-
If that is not possible
-
Change to AP mode and create the WLAN "WebRadio"
-
Expect the data entry under http://192.168.4.1
-
Restart with new data
-
==> The whole thing is repeated until a connection is possible
Transmitter list
The list of stored transmitters can above http: // be adjusted.
296 commentaires
Andreas Kühn
Hallo Gerald Lechner und Andreas Schröder
meine Hochachtung für diesen Job!!! Hat im Prinzip auf Anhieb funktioniert. Ich habe anstelle des LCD-Displays ein OLED-Display verbaut (war gerade greifbar), die entsprechende Programmänderung ist wegen der übersichtlichen Aufteilung in funktionale Teile ja kein Hexenwerk..
Ein paar Anmerkungen:
1.) @Gerald Lechner:
das Umschalten von einem Stream auf einen Anderen verursacht sehr laute Geräusche (Brummen/Knattern), bevor der “neue” Stream ausgegeben wird – das stört sehr! Ist das nur bei mir so? Ich hätte für dieses Problem gern eine Lösung. Als Quick&Dirty-workaround könnte ich mir z.B. vorstellen, vor dem “stopPlaying()” die beiden Ausgangs-Pins des DAW (Pin 25 und Pin 26) als Eingänge umzuschalten und nach den “startUrl()” ggf. mit Verzögerung wieder zurück als Analogausgänge zu schalten. Könnte soetwas funktionieren?
2.) @Andreas Schröder
Die Erweiterung der Funktion “setup_senderList()” (siehe Kommentar vom 09. Mai) lässt sich nicht kompilieren, und ich bin in Sachen Programmierung nicht so firm, dass ich selbst herausfinden könnte, was da passiert bzw. nicht passiert. Bitte um Hinweise.
3.) @beide Profis
Welchen Bedingungen müssen die URLs von Streams genügen, damit die Dekodierung startet? Beim “MDR Aktuell” verursacht die URL “http://avw.mdr.de/streams/284340-0_mp3_low.m3u” z.B. diesen 10-Sekunden-Überlauf, ohne Dekoderstart.
4.) Carsten (Kommentar 17. August)
Ich hatte bei einem anderen Projekt ein vergleichbares Problem: das Einschalten des WLAN verursachte bei mir einen Spannungseinbruch, der die brownout-detection anspringen lies. Meine Lösung dafür war: am Anfang der setup()-Routine brownout auszuschalten
(CLEAR_PERI_REG_MASK(RTC_CNTL_BROWN_OUT_REG, RTC_CNTL_BROWN_OUT_ENA); //disable brownout detector)
und am Ende der setup()-Routine (ggf. mit delay) wieder einzuschalten
(SET_PERI_REG_MASK(RTC_CNTL_BROWN_OUT_REG, RTC_CNTL_BROWN_OUT_ENA); // enable brownout detection)
Vielleicht hilft das!
Thommy
Ich habe das Radio nachgebaut und hab auf anhieb alles hinbekommen. Nun habe ich ein wenig im Sketch geschaut und habe dabei die NTP Abfrage gefunden, die aber leider nicht weiter benutzt wird. Es wäre doch schön wenn anstelle des Sendernamens nach einer Weile die aktuelle Uhrzeit und das Datum angezeigt würde. Was haltet ihr davon?
Carsten
Hallo,
auch von mir vielen Dank für das tolle Projekt. Ich habe das Radio ohne Akku und Laderegler aufgebaut, da mir ein 5V Direktbetrieb genügt. Ich gehe mit den 5V Eingangsspannung von USB direkt auf die Versorgungs-Pins des Verstärkers. Ansonsten ist mein Aufbau identisch, einfach nur ohne Laderegler und Akku. Das Problem das ich habe: beim Einschalten läuft der Esp in einer Reset-Schleife (LED blinkt), Display flackert im gleichen Takt. Wenn ich mit abgezogenen Lautsprechern einschalte, startet der ESP normal, ich kann dann auch die Lautsprecher kontaktieren und das Radio spielt und lässt sich normal bedienen. Ich verstehe nur nicht, wo das Einschaltproblem herkommt. Ist das evtl. ein Versorgungsproblem von USB (Strom zu gering) und braucht man den Akku, um die Einschaltspitzen zu überbrücken? Könnte das mal bitte einer ohne Akkuversorgung nachstellen – wenn es bei Euch funktioniert, dann muss ich wohl irgendein HW Problem haben, und würde mal anfangen den Verstärker tauschen. Danke!
Gerald Lechner
WICHTIGER HINWEIS:*********************
Es gibt neue Erkenntnisse zur Kompatipilität zwischen ESP32 Packages und ESP8266Audio Bibliothek. Die Version 1.9.5 der Audio-Bibliothek funktioniert nur mit dem ESP32-Package Version 1.0.6. Die aktuelle Version der Audio-Bibliothek 1.9.7 funktioniert jetzt auch mit der aktuellen Version 2.0.3 oder neuer, des ESP32-Package!!
@Johann Auerbäck: Die Bibliothek für die Anzeige ist “LiquidCrystalI2C von Marco Schwartz in der Version 1.1.2” mit dieser Bibliothek klappt das Kompilieren. Allerdings muss in den Voreinstellungen der Arduino IDE der Punkt “Compiler-Warnungen” auf “keine” gestellt werden, da diese Bibliothek auf Grund eines falschen Eintrags im properties File eine Compiler-Warnung generiert, die ignoriert werden kann.
@KDU300: Ich denke, dass das Problem am Stream liegt. Für den ersten Funktionstest sollte unbedingt eine der vorgegebenen Stream-URLs verwendet werden, da diese getestet wurden.
@Thomas: Sie benutzen eine sehr alte Version des bESP32 Package (Version 1.0.4) in der es die Funktion isKey() noch nicht gab. Sie sollten die aktuellste Version 2.0.4 benutzen. Beachten Sie bitte auch den wichtigen Hinweis am Beginn dieses Kommentars.
Achim Kalthoff
Hallo, ich kann den Sketch leider nicht kompilieren. Ich habe immer die Fahlermeldung "AVR/IO.h kann nicht gefunden werden. Alle Vesuche führten bisher nicht zum Erfolg. Was kann ich hier machen?
Johann Auerbäck
Hallo habe so ziemlich alle Liquidcrystal I2C files getestet leider bekomme ich beim kompilieren immer Fehlermeldung, es sind leider meine ersten Gehversuche mit dem Arduino IDE (Compilation error: no matching function for call to ‘LiquidCrystal_I2C::begin()’) bitte um Hilfe.
KDU300
Habe nun alles zusammen gebaut.
Die FW wurde mit PlatformIO gebaut (Espressif32 Ver 5.1.0 u. ESP8266Audio Ver 1.9.7). FW läuft.
Startet aber nach wenigen Sekunden neu mit der Loop-Meldung “mp3 done”.
Hat Irgendjemand eine Idee?
Thomas
Hallo.
Ich wollte das Radio nachbauen, leider erhalte ich beim compilieren die Fehlermeldung “‘class Preferences’ has no member named ‘isKey’”
Da ich nicht programmieren kann, sagt mir der Fehler leider nichts. Eine Suche danach war leider auch erfolglos.
Was will mir die Meldung sagen? Wie bekomme ich den Fehler weg?
Es ist die Zeile if (pref.isKey(“station”)) curStation = pref.getUShort(“station”); im Code.
Vielen Dank.
Gerald Lechner
Ich habe einen Link zu den Schrauben (2.2mm Blchschrauben) der Materialliste hinzugefügt.
KDU300
Moin,
habe mich jetzt auch hinreißen lassen, das Internetradioprojekt umzusetzen.
Was sind das für Befestigungsschrauben. Die gefallen mir besser als Heißkleber zu benutzen.
Die Schrauben sollte ruhig auch in der BOM auftauchen.
Wolle
Wie groß sind die Gehäuseabmessungen?
Hauke
Betr. Meine Anfrage wg. Programmabruch durch Zwangstrennung vom Provider.
#include // für WatchdogDas Problem habe ich gelöst indem ich einen Watchdog installiert habe. Siehe folgende Zeilen
#define WDT_TIMEOUT 10 // für Watchdog
am Ende von void setup() anfügen:
esp_task_wdt_init(WDT_TIMEOUT, true); //Zeit für Watchdog setzen wenn esp_task_wdt_reset() nicht aufgerufen wird esp_task_wdt_add(NULL); //Aktuellen Thread zur WDT-Überwachung hinzufügenunter void loop() erste Zeile:
esp_task_wdt_reset(); // Watchdog Zähler zurücksetzen
Fällt nun das Internet aus dann wird alle 10 Sekunden ein Reset ausgeführt bis die Verbindung wieder aufgebaut werden konnte.
Wer es gebrauchen kann . Gruß Hauke
Horst Mayer
Frage zur Tonqualität mit dem internen DAC
Bevor ich mich da an den Nachbau mache:
Kann vielleicht mal jemand realistisch über die Tonqualität berichten?
So wie ich das verstanden habe, werden die beiden ESP32 internen 8 Bit DACs verwendet.
Mit 8 Bit kann man doch wohl das Prinzip zeigen aber wohl kaum ernsthaft einen guten Klang erzeugen?!
Da braucht es doch wohl eher einen externen I2S DAC?
Helmut Lieven
Bei mir läuft der Code nicht durch. Bei LiquidCrystal_I2C lcd stopt er. "invalid conversion from “int” to “tbacklightPol”[-fpermissive]
Alles noch mal neu geladen. Komm nicht weiter.
Gruß Helmut
Hauke
Tolles Projekt, funktioniert auf Anhieb. Ich habe nur ein kleines Problem. Immer wenn der Provider meines Internets eine Zwangstrennung durchführt wird der Empfang unterbrochen, der Lautsprecher brummt nur noch und es am RotaryEncoder keine Einstellung mehr möglich. Hier hilft nur ein Druck auf die Reset Taste oder Trennung der Stromversorgung. Gibt es hier eine Lösung um das Gerät im Dauerbetrieb laufen zu lassen. Danke schon mal für die Antwort.
Gerald Lechner
@Robin: Die Station http://rnrw.cast.addradio.de/rnrw-0182/deinrock/low/stream.mp3 funktioniert mit derm Web-Radio leider nicht.
Gerald Lechner
Zuerst mal, danke für die positiven Kommentare zu diesem Beitrag. Ich will versuchen die gestellten Fragen zu beantworten:
@Mike Westermann: Die zusätzliche Bluetooth einbindung könnte vielleicht gehen. Allerdings sind mir Probleme bei der gleichzeitigen Nutzung von Bluetooth und WLan am ESP32 bekannt. Ich denke, dass diese Erweiterung eher aufwendig werden würde.
@Dieter: HTTPs funktioniert mit der ESP8266Audio Bibliothek derzeit nicht. Redirekt funktioniert ebenfalls nicht. Leider gibt es auch für die weiteren Fragen keine Lösung.
@Richie69: Beim ICYStream liefert die ESP8266Audio Bibliothek offenbar keine Metadaten Events. Ich hbe einen entsprechenden Issue eingegeben.
Richie69
Hallo und vielen Dank für das Projekt. Es scheint bisher das einzige zu sein, was ein Stereosignal aus einem webstream mit nur dem ESP32 in einer guten Qualität produziert. Chapeau!
Übrigens…wenn man den pin EN über einen Elko 4,7 mü gegen Masse verbindet, erübrigt sich das lästige drücken des Boot-Tasters während des uploads.
Nun zu meinen Problem: Ich möchte gern ein Oled anstatt des Lcd verwenden und den Titel/Interpreten darstellen. Habe den Code dafür abgeändert. Leider bleibt mir die ICY sowohl im Monitor, als auch im Display verborgen.
Irgendeine Idee?
Richie
Dieter
Ich habe einige Fragen: Die Beispiel-Links sind alle http, möglicherweise stehen aber auch https-Quellen zur Verfügung. Können auch https-Quellen verarbeitet werden? # Ich habe bei m3u-Links festgestellt, dass da ein mp3-Link enthalten sein kann, aber das ist nicht einheitlich. # Dann gibt es auch mp3-Links, die redirected werden: Es wird da zu einem tempräreren Link weitergeleitet. Im Webrowser kann man das erkennen. Kann das Internetradio auch einem Redirect folgen? # Ich habe auch mal ein Internetradioquelle gefunden, bei dem zunächst eine Datenschutzerklärung abgenickt werden sollte. # Einige Internetradios verwenden auch eigene Player-Software, die im Webrowser läuft. Dadurch kann die URL der Quelle versteckt werden. # Gibt es für die Probleme Lösungen?
Mike Westermann
Hallo,
ein tolles Projekt, welches bei mir nahezu ootb funktioniert hat. Vielen Dank an alle Mitwirkenden und den tollen Support hier.
Ich habe natürlich auch eine Frage:
Ist es möglich den code von dieser Seite, https://www.pschatzmann.ch/home/2020/03/27/1255/ ,
irgendwie mit zu integrieren? Die Bluetooth-Funktionalität wäre sicher eine tolle Erweiterung, und man könnte beispielsweise beim Einschalten abfragen, ob man heute vom Handy streamen, oder Webradio hören möchte. Meine Programmierfähigheiten gehen allerdings gegen Null.
Viele Grüße
Mike
Robin
So hab es auch geschafft alles zu kompilieren
Meiner startet aber auch immer wieder neu
Connected
Webserver ist gestartet
Active station http://rnrw.cast.addradio.de/rnrw-0182/deinrock/low/stream.mp3
sourcebuffer created – Free mem=111020
created decoder
Decoder start…
Guru Meditation Error: Core 1 panic’ed (LoadProhibited). Exception was unhandled.
Core 1 register dump:
PC : 0×4008ac81 PS : 0×00060d30 A0 : 0×8015232c A1 : 0×3ffb20d0
A2 : 0×00000000 A3 : 0xfffffffc A4 : 0×000000ff A5 : 0×0000ff00
A6 : 0×00ff0000 A7 : 0xff000000 A8 : 0×00000000 A9 : 0×3ffb24d0
A10 : 0×3ffc4ce4 A11 : 0×0000059c A12 : 0×0000001c A13 : 0×00000000
A14 : 0×00000000 A15 : 0×00000000 SAR : 0×00000010 EXCCAUSE: 0×0000001c
EXCVADDR: 0×00000000 LBEG : 0×4008ac81 LEND : 0×4008ac91 LCOUNT : 0xffffffff
Backtrace:0×4008ac7e:0×3ffb20d00x40152329:0×3ffb20e0 0×40156ec2:0×3ffb23f0 0×40156efe:0×3ffb2480 0×400e7a3e:0×3ffb24c0 0×400d4793:0×3ffb2560 0×400d54d4:0×3ffb25f0 0×400d4d2e:0×3ffb2740 0×400d4c35:0×3ffb2760 0×400d4bd7:0×3ffb2780 0×400d5941:0×3ffb27a0 0×400d5abb:0×3ffb27c0 0×400d34cf:0×3ffb27e0 0×400d3767:0×3ffb2800 0×400e8c01:0×3ffb2820
ELF file SHA256: 0000000000000000
Rebooting…
Leon
Nochmal eine Ergänzung:
Die aktuelle Audio Library 1.9.7 ist kampatibel mit der aktuellen esp32 library 2.0.3.
Die ältere esp32 Version 1.0.6 ist kompatibel mit der Audio library 1.9.5
Robin
Hallo Leon,
danke für die Antwort
Eine neuere Version wie die 1.0.6 kann ich nicht auswählen
Grüße Robin
julian
Nachtrag zu meinem letzten Beitrag:
Arduino IDE deinstalliert, alle Ordner gelöscht, neu herunter geladen, jetzt kompiliet alles.
Trotzdem bricht jetzt decoder→loop() sofort ab und es erscheint “mp3 done”.
Leon
Danke an Gerald Lechner – super Beitrag, ich habe das Display und den Encoder rausgenommen und ein Seniorenradio für meinen Opa gebaut – Ein Button für Sender wechseln, ein Poti für Lautstärke.
@Robin
Ich hatte wegen deines Beitrags vor dem ersten kompilieren auf esp32 v1.0.6 umgestellt, damit habe ich die gleichen Fehler erhalten, wie du. Nach umstellen auf esp32 v2.0.3 klappte es dann.
Julian
Ich habe leider auch Kompilierungsprobleme, wobei ich versucht habe, exakt die Bibliothek-Versionen der Screenshots zu benutzen.
Board: ESP32 Dev Module, installiert als Version 1.0.6
ESP8266 Audio: Version 1.9.5
Beim Kompilieren in Arduino IDE erscheint allerdings die Fehlermeldung “bits/c++config.h: No such file or directory”. Außerdem eine Warnung mit “breadboard:avr:atmega328bb doesn’t define a ‘build.board’ preference”.
C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.57.0_x86__mdqgnx93n4wtt\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.57.0_x86__mdqgnx93n4wtt\hardware -hardware K:\Dokumente und Einstellungen\Sword\Eigene Dateien\Eigene Dokumente\ArduinoData\packages -hardware K:\Dokumente und Einstellungen\Sword\Eigene Dateien\Eigene Dokumente\Arduino\hardware -tools C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.57.0_x86__mdqgnx93n4wtt\tools-builder -tools C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.57.0_x86__mdqgnx93n4wtt\hardware\tools\avr -tools K:\Dokumente und Einstellungen\Sword\Eigene Dateien\Eigene Dokumente\ArduinoData\packages -built-in-libraries C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.57.0_x86__mdqgnx93n4wtt\libraries -libraries K:\Dokumente und Einstellungen\Sword\Eigene Dateien\Eigene Dokumente\Arduino\libraries -fqbn=esp32:esp32:esp32:PSRAM=disabled,PartitionScheme=default,CPUFreq=240,FlashMode=qio,FlashFreq=80,FlashSize=4M,UploadSpeed=921600,DebugLevel=none -ide-version=10819 -build-path C:\Users\Julian\AppData\Local\Temp\arduino_build_136623 -warnings=none -build-cache C:\Users\Julian\AppData\Local\Temp\arduino_cache_577544 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.xtensa-esp32-elf-gcc.path=K:\Dokumente und Einstellungen\Sword\Eigene Dateien\Eigene Dokumente\ArduinoData\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0 -prefs=runtime.tools.xtensa-esp32-elf-gcc-1.22.0-97-gc752ad5-5.2.0.path=K:\Dokumente und Einstellungen\Sword\Eigene Dateien\Eigene Dokumente\ArduinoData\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0 -prefs=runtime.tools.esptool_py.path=K:\Dokumente und Einstellungen\Sword\Eigene Dateien\Eigene Dokumente\ArduinoData\packages\esp32\tools\esptool_py\3.0.0 -prefs=runtime.tools.esptool_py-3.0.0.path=K:\Dokumente und Einstellungen\Sword\Eigene Dateien\Eigene Dokumente\ArduinoData\packages\esp32\tools\esptool_py\3.0.0 -prefs=runtime.tools.mkspiffs.path=K:\Dokumente und Einstellungen\Sword\Eigene Dateien\Eigene Dokumente\ArduinoData\packages\esp32\tools\mkspiffs\0.2.3 -prefs=runtime.tools.mkspiffs-0.2.3.path=K:\Dokumente und Einstellungen\Sword\Eigene Dateien\Eigene Dokumente\ArduinoData\packages\esp32\tools\mkspiffs\0.2.3 -verbose C:\Users\Julian\Desktop\testskt\sketch_jun26a\sketch_jun26a.ino
C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.57.0_x86__mdqgnx93n4wtt\arduino-builder -compile -logger=machine -hardware C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.57.0_x86__mdqgnx93n4wtt\hardware -hardware K:\Dokumente und Einstellungen\Sword\Eigene Dateien\Eigene Dokumente\ArduinoData\packages -hardware K:\Dokumente und Einstellungen\Sword\Eigene Dateien\Eigene Dokumente\Arduino\hardware -tools C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.57.0_x86__mdqgnx93n4wtt\tools-builder -tools C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.57.0_x86__mdqgnx93n4wtt\hardware\tools\avr -tools K:\Dokumente und Einstellungen\Sword\Eigene Dateien\Eigene Dokumente\ArduinoData\packages -built-in-libraries C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.57.0_x86__mdqgnx93n4wtt\libraries -libraries K:\Dokumente und Einstellungen\Sword\Eigene Dateien\Eigene Dokumente\Arduino\libraries -fqbn=esp32:esp32:esp32:PSRAM=disabled,PartitionScheme=default,CPUFreq=240,FlashMode=qio,FlashFreq=80,FlashSize=4M,UploadSpeed=921600,DebugLevel=none -ide-version=10819 -build-path C:\Users\Julian\AppData\Local\Temp\arduino_build_136623 -warnings=none -build-cache C:\Users\Julian\AppData\Local\Temp\arduino_cache_577544 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.xtensa-esp32-elf-gcc.path=K:\Dokumente und Einstellungen\Sword\Eigene Dateien\Eigene Dokumente\ArduinoData\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0 -prefs=runtime.tools.xtensa-esp32-elf-gcc-1.22.0-97-gc752ad5-5.2.0.path=K:\Dokumente und Einstellungen\Sword\Eigene Dateien\Eigene Dokumente\ArduinoData\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0 -prefs=runtime.tools.esptool_py.path=K:\Dokumente und Einstellungen\Sword\Eigene Dateien\Eigene Dokumente\ArduinoData\packages\esp32\tools\esptool_py\3.0.0 -prefs=runtime.tools.esptool_py-3.0.0.path=K:\Dokumente und Einstellungen\Sword\Eigene Dateien\Eigene Dokumente\ArduinoData\packages\esp32\tools\esptool_py\3.0.0 -prefs=runtime.tools.mkspiffs.path=K:\Dokumente und Einstellungen\Sword\Eigene Dateien\Eigene Dokumente\ArduinoData\packages\esp32\tools\mkspiffs\0.2.3 -prefs=runtime.tools.mkspiffs-0.2.3.path=K:\Dokumente und Einstellungen\Sword\Eigene Dateien\Eigene Dokumente\ArduinoData\packages\esp32\tools\mkspiffs\0.2.3 -verbose C:\Users\Julian\Desktop\testskt\sketch_jun26a\sketch_jun26a.ino
Using board ‘esp32’ from platform in folder: K:\Dokumente und Einstellungen\Sword\Eigene Dateien\Eigene Dokumente\ArduinoData\packages\esp32\hardware\esp32\1.0.5
Using core ‘esp32’ from platform in folder: K:\Dokumente und Einstellungen\Sword\Eigene Dateien\Eigene Dokumente\ArduinoData\packages\esp32\hardware\esp32\1.0.5
Warning: Board breadboard:avr:atmega328bb doesn’t define a ‘build.board’ preference. Auto-set to: AVR_ATMEGA328BB
cmd /c if exist “C:\\Users\\Julian\\Desktop\\testskt\\sketch_jun26a\\partitions.csv” copy /y “C:\\Users\\Julian\\Desktop\\testskt\\sketch_jun26a\\partitions.csv” “C:\\Users\\Julian\\AppData\\Local\\Temp\\arduino_build_136623\\partitions.csv”
cmd /c if not exist “C:\\Users\\Julian\\AppData\\Local\\Temp\\arduino_build_136623\\partitions.csv” copy “K:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5\\tools\\partitions\\default.csv” “C:\\Users\\Julian\\AppData\\Local\\Temp\\arduino_build_136623\\partitions.csv”
Detecting libraries used…
“K:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\tools\\xtensa-esp32-elf-gcc\\1.22.0-97-gc752ad5-5.2.0/bin/xtensa-esp32-elf-g++” -DESP_PLATFORM “-DMBEDTLS_CONFIG_FILE=\”mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -DGCC_NOT_5_2_0=0 -DWITH_POSIX “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/config” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/app_trace” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/app_update” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/asio” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/bootloader_support” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/bt” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/coap” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/console” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/driver” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/efuse” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/esp-tls” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/esp32” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/esp_adc_cal” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/esp_event” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/esp_http_client” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/esp_http_server” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/esp_https_ota” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/esp_https_server” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/esp_ringbuf” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/esp_websocket_client” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/espcoredump” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/ethernet” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/expat” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/fatfs” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/freemodbus” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/freertos” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/heap” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/idf_test” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/jsmn” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/json” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/libsodium” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/log” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/lwip” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/mbedtls” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/mdns” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/micro-ecc” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/mqtt” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/newlib” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/nghttp” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/nimble” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/nvs_flash” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/openssl” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/protobuf-c” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/protocomm” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/pthread” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/sdmmc” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/smartconfig_ack” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/soc” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/spi_flash” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/spiffs” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/tcp_transport” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/tcpip_adapter” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/ulp” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/unity” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/vfs” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/wear_levelling” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/wifi_provisioning” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/wpa_supplicant” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/xtensa-debug-module” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/esp-face” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/esp32-camera” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/esp-face” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5/tools/sdk/include/fb_gfx” -std=gnu++11 -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=maybe-uninitialized -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-unused-but-set-parameter -Wno-missing-field-initializers -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10819 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 “-DARDUINO_BOARD=\”ESP32_DEV\"" “-DARDUINO_VARIANT=\”esp32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5\\cores\\esp32” “-IK:\\Dokumente und Einstellungen\\Sword\\Eigene Dateien\\Eigene Dokumente\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.5\\variants\\esp32” “C:\\Users\\Julian\\AppData\\Local\\Temp\\arduino_build_136623\\sketch\\sketch_jun26a.ino.cpp” -o nul
Alternatives for bits/c++config.h: []
ResolveLibrary(bits/c++config.h)
→ candidates: []
In file included from k:\dokumente und einstellungen\sword\eigene dateien\eigene dokumente\arduinodata\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0\algorithm:60:0,
from K:\Dokumente und Einstellungen\Sword\Eigene Dateien\Eigene Dokumente\ArduinoData\packages\esp32\hardware\esp32\1.0.5\cores\esp32/Arduino.h:142,
from C:\Users\Julian\AppData\Local\Temp\arduino_build_136623\sketch\sketch_jun26a.ino.cpp:1:
k:\dokumente und einstellungen\sword\eigene dateien\eigene dokumente\arduinodata\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0\utility:68:28: fatal error: bits/c++config.h: No such file or directory
compilation terminated.
exit status 1
Fehler beim Kompilieren für das Board ESP32 Dev Module.
Fehler beim Kompilieren für das Board ESP32 Dev Module.
Mit PlatformIO und VSCode konnte ich zwar alles kompilieren und hochladen mit folgender der platformio.ini Einstellung, aber die Verbindung bricht sofort wieder ab (“mp3 done”).
[env:az-delivery-devkit-v4]
platform = espressif32
platform_packages = framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#1.0.6
board = esp32dev
framework = arduino
lib_deps =
marcoschwartz/LiquidCrystal_I2C@^1.1.4
earlephilhower/ESP8266Audio@^1.9.7
monitor_speed = 115200
Robin
Beim Esp32 board verwende ich die 1.0.6
Bei der ESP8266Audi die Version 1.9.7
Gerald Lechner
@Robin: Die Fehlermeldung kommt daher, dass die Bibliothek ESP8266Audio nicht mit dem aktuellen ESP32 Package funktioniert. Wenn man in der Boardverwaltung beim ESP32 die Version 1.6 wählt, dann ist der Fehler weg.
Robin
Hallo Zusammen
ich bekomme folgende Fehlermeldungen. Was mach ich da Falsch?
Arduino: 1.8.19 (Mac OS X), Board: “ESP32 Dev Module, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, None”
WARNUNG: Bibliothek LiquidCrystal_I2C behauptet auf avr Architektur(en) ausgeführt werden zu können und ist möglicherweise inkompatibel mit Ihrem derzeitigen Board, welches auf esp32 Architektur(en) ausgeführt wird.
/Users/robin/Documents/Arduino/libraries/ESP8266Audio/src/AudioOutputI2S.cpp: In member function ‘bool AudioOutputI2S::SetPinout()’:
/Users/robin/Documents/Arduino/libraries/ESP8266Audio/src/AudioOutputI2S.cpp:95:41: error: ‘i2s_pin_config_t’ has no non-static data member named ‘mck_io_num’
.data_in_num = I2S_PIN_NO_CHANGE};
^
/Users/robin/Documents/Arduino/libraries/ESP8266Audio/src/AudioOutputI2S.cpp: In member function ‘bool AudioOutputI2S::begin(bool)’:
/Users/robin/Documents/Arduino/libraries/ESP8266Audio/src/AudioOutputI2S.cpp:232:28: error: ‘I2S_MCLK_MULTIPLE_DEFAULT’ was not declared in this scope
.mclk_multiple = I2S_MCLK_MULTIPLE_DEFAULT, // Unused
^
/Users/robin/Documents/Arduino/libraries/ESP8266Audio/src/AudioOutputI2S.cpp:233:28: error: ‘I2S_BITS_PER_CHAN_DEFAULT’ was not declared in this scope
.bits_per_chan = I2S_BITS_PER_CHAN_DEFAULT // Use bits per sample
^
/Users/robin/Documents/Arduino/libraries/ESP8266Audio/src/AudioOutputI2S.cpp:234:7: error: ‘i2s_config_t’ has no non-static data member named ‘mclk_multiple’
};
^
/Users/robin/Documents/Arduino/libraries/ESP8266Audio/src/AudioOutputSPDIF.cpp: In constructor ‘AudioOutputSPDIF::AudioOutputSPDIF(int, int, int)’:
/Users/robin/Documents/Arduino/libraries/ESP8266Audio/src/AudioOutputSPDIF.cpp:108:22: error: ‘I2S_MCLK_MULTIPLE_DEFAULT’ was not declared in this scope
.mclk_multiple = I2S_MCLK_MULTIPLE_DEFAULT, // Unused
^
/Users/robin/Documents/Arduino/libraries/ESP8266Audio/src/AudioOutputSPDIF.cpp:109:22: error: ‘I2S_BITS_PER_CHAN_DEFAULT’ was not declared in this scope
.bits_per_chan = I2S_BITS_PER_CHAN_DEFAULT // Use bits per sample
^
/Users/robin/Documents/Arduino/libraries/ESP8266Audio/src/AudioOutputSPDIF.cpp:110:3: error: ‘i2s_config_t’ has no non-static data member named ‘mclk_multiple’
};
^
/Users/robin/Documents/Arduino/libraries/ESP8266Audio/src/AudioOutputSPDIF.cpp: In member function ‘bool AudioOutputSPDIF::SetPinout(int, int, int)’:
/Users/robin/Documents/Arduino/libraries/ESP8266Audio/src/AudioOutputSPDIF.cpp:159:3: error: ‘i2s_pin_config_t’ has no non-static data member named ‘mck_io_num’
};
^
Mehrere Bibliotheken wurden für “SD.h” gefunden
Benutzt: /Users/robin/Library/Arduino15/packages/esp32/hardware/esp32/1.0.6/libraries/SD
Nicht benutzt: /private/var/folders/dq/8jk9c2hn4s18pq58hftqn7f80000gn/T/AppTranslocation/94586793-D3BE-49BF-8465-53C452995F94/d/Arduino.app/Contents/Java/libraries/SD
Mehrere Bibliotheken wurden für “WiFi.h” gefunden
Benutzt: /Users/robin/Library/Arduino15/packages/esp32/hardware/esp32/1.0.6/libraries/WiFi
Nicht benutzt: /private/var/folders/dq/8jk9c2hn4s18pq58hftqn7f80000gn/T/AppTranslocation/94586793-D3BE-49BF-8465-53C452995F94/d/Arduino.app/Contents/Java/libraries/WiFi
exit status 1
Fehler beim Kompilieren für das Board ESP32 Dev Module.
mahoc
Hallo zusammen, hat jemand das Projekt erfolgreich auf einem Mac kompilieren können?
Peter Gottfried
Hallo Andreas, wie muss das Programm für den I2s Verstärker angepasst werden?
Stefan Trzesniowski
Hallo in die Runde, großen Dank an die Entwickler. Jetzt kämpfe ich mit der Erweiterung von Andreas oder habe ich was falsch gelesen?
Char nnn10 ist danach nur nnn. Was mache ich da falsch. Die Originalversion läuft seit Wochen:-)
// set additional sender (more than 20) with flash-values or defaults
int se=20;
char nnn10;
while (se < STATIONS) {
sprintf(nnn, “n%d”, se+1);
strcpy(stationlist[se].name, sender.getString(nnn, “NDR2 Niedersachsen”).c_str());
sprintf(nnn, “u%d”, se+1);
strcpy(stationlist[se].url, sender.getString(nnn, “http://icecast.ndr.de/ndr/ndr2/niedersachsen/mp3/128/stream.mp3”).c_str());
se++;
}
Danke an die Profis Stefan
Robert
Herzlichen Dank für dieses tolle Projekt. Alles hat ohne Veränderungen auf Anhieb perfekt funktioniert. Ich habe die Schaltung zunächst auf einem Breadboard aufgebaut, jetzt wird das ganze für den dauerhaften Einsatz auf Platine getackert … ;-)
Andreas Schröder
An dieser Stelle noch einmal an großes Danke an Gerald Lechner für diese wunderschöne Projektidee. Mittlerweile nutze ich etwas bessere Lautsprecher mit dem hier bei AZ-Delivery erhältlichen “I2S 3W Klasse D Amplifier Breakout Modul” anstatt des eingebauten DAs – es klingt einfach super :)
Andreas Schröder
Hallo Norbert, siehe meinen Post vom 5. Mai. Diese Bibliotheken musst Du nur bei github herunterladen (google nach asynctcp und espasyncwebserver und nimm jeweils das erste Ergebnis) und packke das in Deinen Library-Ordner – fertig! :)
Andreas Schröder
Hallo Konrad, habe ich im Post von gerade noch vergessen: Die AsyncWeberver Library ist übrigens noch viel mächtiger, als sie hier Verwendung findet. Das Templating der Webseite, was ich hier mit sprintf mache, ist da drin eigentlich noch viel besser implementiert – und noch vieles mehr (wie z.B. JSON-Calls, etc.). Lies Dir doch mal die Doku dazu durch – Du wirst begeistert sein. Auch die Zuverlässigkeit, wenn der ESP mal monatelang vor sich hin läuft und dann spontan Websites ausspucken muss, ist hier perfekt (habe hier z.B. einen auch per Web steuerbaren Dimmer damit im Wintergarten seit 9 Monaten unterbrechungsfrei laufen). Mein Wechsel zu Async-Library hat viele damalige Probleme gelöst.
Man sollte nicht alles, was per Klick in der Arduino-IDE verfügbar ist, als Standard bezeichnen – und es lohnt sich wirklich hier eben einen Ordners in den Ordner “libraries” zu kopieren :)
Liebe Grüße
Andreas Schröder
Hallo Konrad, ich nutze AsyncWebserver mittlerweile ausschließlich, weil es einfach mit Abstand deutlich performanter ist. So mag ich es hier z.B. nicht, wenn der Stream stottert, nur weil eine Web-Aktion stattfindet :)
Hallo Hellmut, gute Idee, die mit der Zeit kaputten Stream-URLs nerven mich auch – ich werde am Wochenende mal ein wenig tüfteln :)
Denis
Andreas, many thanks for your answer about increasing >20 stations…
I wasn’t at home last week so, please, apologize my late message.
I will try soon this modification.
Greetings,
Denis
Konrad
Hallo Andreas Schröder,
ich hätte da mal eine Verständnisfrage:
Du arbeitest in Deinem Sketch mit der ESPAsyncWebServer.h library.
Wäre das mit dem WebServer.h library der integriert ist nicht einfacher?
Mein Problem ist, – dass meine übrigen Sketche alle auf der WebServer.h library basieren. Bei einem anderen Projekt hatte ich auch die ESPAsyncWebServer.h library vor mir und versuchte den Sketch zu übertragen auf die WebServer.h library zu übertragen. Das ging bei mir leider ziemlich schief. Offensichtlich sind meine Detailkenntnisse nicht auf dem notwendigen Niveau.
Würde mich über Deine Meinung sehr freuen. Vielleicht hast Du sogar einen Tipp wie ich von der einen library einfach in die andere wechseln kann.
Danke
Konrad
Helmut
Moin Andreas, erstmal vorweg alles läuft gut aber wenn man einen Sender gespeichert hat der nicht funktioniert oder der Stream ist down dann versucht das Gerät ja immer wieder zu verbinden und startet neu. Ich hatte dann keine Möglichkeit mehr irgendwas zu ändern. Was muss ich dann machen ? Ich habe in der Not das ganze Programm neu aufgespielt. Kannst du nicht eine Funktion einbauen das wenn ein Stream nach 3 mal nicht startet das dann der vorherige oder der nächste oder der 1. Speicherplatz geladen wird ?
Norbert
Hallo
Welche genaue Bibliotheken muß ich denn für den neuen Sketch nehmen?Wenn ich in der Bibliothekverwaltung ESPAsyncwebServer, AsyncTCP oder Arduino Json eintrage kommen ja mehrere .
Habe schon mehrere installiert aber es kommt immer noch die Fehlermeldung das er ESPAsyncwebServer.h nicht findet.Mit dem alten Sketch hat’s wunderbar funktioniert nach dem installieren der Bibliotheken.
Gruß Norbert
Andreas Schröder
Hallo Denis,
// set additional sender (more than 20) with flash-values or defaults int se=20; char nnn10; while (se < STATIONS) { sprintf(nnn, “n%d”, se+1); strcpy(stationlist[se].name, sender.getString(nnn, “NDR2 Niedersachsen”).c_str()); sprintf(nnn, “u%d”, se+1); strcpy(stationlist[se].url, sender.getString(nnn, “http://icecast.ndr.de/ndr/ndr2/niedersachsen/mp3/128/stream.mp3”).c_str()); se++; }sorry, hatt da etwas vergessen was zuschlägt, sobald man mehr als 20 Sender haben möchte (STATIONS >20): Nach dem Start werden dann weiterhin nur die ersten 20 Sender aus dem flash geladen. Zur Korrektur müssen folgende Zeilen an das Ende der Funktion “setup_senderList()” in der Datei
“senderlist”, dann klappt’s auch mit mehr als 20:
Andreas Schröder
Hallo Helmut,
sorry dass ich mich jetzt erst melde – genutzt habe ich AsyncWebserver in der Version 1.2.3, die zugehörige AsyncTCP nutzte ich in der Version 1.1.1.
Viel Erfolg
Denis
Hello Andreas and Gerald,
I tested the new version, good job Andreas !!! it works for me.
Then, I tried to enter more stations so I changed in EspWebRadio sketch
#define STATIONS 20 by #define STATIONS 40
Then, I added 20 more stations to Senderlist sketch in order to reach 40 stations.
On the ESP-Webradio webpage, I see the 20 first stations followed by 20 blank positions. The stations I entered in the Senderlist are missing.
If I save the list (pressing “alles speichen” button) all the list is cleared from first to last position !
Where is my mistake ? How can I do to add more stations ?
Hope to get a solution but, again, thanks to both of you for this good job.
Denis
Helmut
Moin,
ich nochmal. Ich habe den Fehler gefunden.
In Arduino musste ich 3 neue Bibliotheken einbinden und zwar
1. ESPAsyncwebServer-main
2. AsyncTCP
3. Arduino Json
Danach kompilierte der Sketch einwandfrei durch und danke an Andreas, läuft einwandfrei.
Helmut
Moin,
erstmal vorweg das Webradio ist spitze. Lüft super. Jetzt wollte ich auch die aktuelle Version updaten aber irgenwie klappt das kopilieren nicht. Welche ESPAyncweb Server Lib ist denn die richtige, oder ist da bei mir noch was falsch ?
Hier die Fehlermeldung:
Arduino: 1.8.13 (Windows 10), Board: “NodeMCU-32S, 80MHz, 921600”
C:\Program Files\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files\Arduino\hardware -hardware C:\Users\Helmut\AppData\Local\Arduino15\packages -tools C:\Program Files\Arduino\tools-builder -tools C:\Program Files\Arduino\hardware\tools\avr -tools C:\Users\Helmut\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files\Arduino\libraries -libraries C:\Users\Helmut\Documents\Arduino\libraries -fqbn=esp32:esp32:nodemcu-32s:FlashFreq=80,UploadSpeed=921600 -vid-pid=10C4_EA60 -ide-version=10813 -build-path C:\Users\Helmut\AppData\Local\Temp\arduino_build_966445 -warnings=none -build-cache C:\Users\Helmut\AppData\Local\Temp\arduino_cache_68201 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.esptool_py.path=C:\Users\Helmut\AppData\Local\Arduino15\packages\esp32\tools\esptool_py\3.0.0 -prefs=runtime.tools.esptool_py-3.0.0.path=C:\Users\Helmut\AppData\Local\Arduino15\packages\esp32\tools\esptool_py\3.0.0 -prefs=runtime.tools.xtensa-esp32-elf-gcc.path=C:\Users\Helmut\AppData\Local\Arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0 -prefs=runtime.tools.xtensa-esp32-elf-gcc-1.22.0-97-gc752ad5-5.2.0.path=C:\Users\Helmut\AppData\Local\Arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0 -prefs=runtime.tools.mkspiffs.path=C:\Users\Helmut\AppData\Local\Arduino15\packages\esp32\tools\mkspiffs\0.2.3 -prefs=runtime.tools.mkspiffs-0.2.3.path=C:\Users\Helmut\AppData\Local\Arduino15\packages\esp32\tools\mkspiffs\0.2.3 -verbose C:\Users\Helmut\Downloads\ESPwebRadio\ESPwebRadio.ino
C:\Program Files\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files\Arduino\hardware -hardware C:\Users\Helmut\AppData\Local\Arduino15\packages -tools C:\Program Files\Arduino\tools-builder -tools C:\Program Files\Arduino\hardware\tools\avr -tools C:\Users\Helmut\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files\Arduino\libraries -libraries C:\Users\Helmut\Documents\Arduino\libraries -fqbn=esp32:esp32:nodemcu-32s:FlashFreq=80,UploadSpeed=921600 -vid-pid=10C4_EA60 -ide-version=10813 -build-path C:\Users\Helmut\AppData\Local\Temp\arduino_build_966445 -warnings=none -build-cache C:\Users\Helmut\AppData\Local\Temp\arduino_cache_68201 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.esptool_py.path=C:\Users\Helmut\AppData\Local\Arduino15\packages\esp32\tools\esptool_py\3.0.0 -prefs=runtime.tools.esptool_py-3.0.0.path=C:\Users\Helmut\AppData\Local\Arduino15\packages\esp32\tools\esptool_py\3.0.0 -prefs=runtime.tools.xtensa-esp32-elf-gcc.path=C:\Users\Helmut\AppData\Local\Arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0 -prefs=runtime.tools.xtensa-esp32-elf-gcc-1.22.0-97-gc752ad5-5.2.0.path=C:\Users\Helmut\AppData\Local\Arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0 -prefs=runtime.tools.mkspiffs.path=C:\Users\Helmut\AppData\Local\Arduino15\packages\esp32\tools\mkspiffs\0.2.3 -prefs=runtime.tools.mkspiffs-0.2.3.path=C:\Users\Helmut\AppData\Local\Arduino15\packages\esp32\tools\mkspiffs\0.2.3 -verbose C:\Users\Helmut\Downloads\ESPwebRadio\ESPwebRadio.ino
Using board ‘nodemcu-32s’ from platform in folder: C:\Users\Helmut\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6
Using core ‘esp32’ from platform in folder: C:\Users\Helmut\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6
cmd /c if exist “C:\\Users\\Helmut\\Downloads\\ESPwebRadio\\partitions.csv” copy /y “C:\\Users\\Helmut\\Downloads\\ESPwebRadio\\partitions.csv” “C:\\Users\\Helmut\\AppData\\Local\\Temp\\arduino_build_966445\\partitions.csv”
cmd /c if not exist “C:\\Users\\Helmut\\AppData\\Local\\Temp\\arduino_build_966445\\partitions.csv” copy “C:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6\\tools\\partitions\\default.csv” “C:\\Users\\Helmut\\AppData\\Local\\Temp\\arduino_build_966445\\partitions.csv”
Detecting libraries used…
“C:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\xtensa-esp32-elf-gcc\\1.22.0-97-gc752ad5-5.2.0/bin/xtensa-esp32-elf-g++” -DESP_PLATFORM “-DMBEDTLS_CONFIG_FILE=\”mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -DGCC_NOT_5_2_0=0 -DWITH_POSIX “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/config” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/app_trace” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/app_update” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/asio” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/bootloader_support” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/bt” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/coap” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/console” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/driver” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/efuse” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp-tls” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp32” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp_adc_cal” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp_event” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp_http_client” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp_http_server” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp_https_ota” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp_https_server” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp_ringbuf” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp_websocket_client” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/espcoredump” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/ethernet” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/expat” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/fatfs” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/freemodbus” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/freertos” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/heap” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/idf_test” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/jsmn” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/json” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/libsodium” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/log” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/lwip” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/mbedtls” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/mdns” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/micro-ecc” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/mqtt” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/newlib” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/nghttp” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/nvs_flash” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/openssl” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/protobuf-c” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/protocomm” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/pthread” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/sdmmc” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/smartconfig_ack” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/soc” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/spi_flash” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/spiffs” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/tcp_transport” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/tcpip_adapter” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/ulp” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/unity” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/vfs” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/wear_levelling” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/wifi_provisioning” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/wpa_supplicant” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/xtensa-debug-module” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp-face” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp32-camera” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp-face” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/fb_gfx” -std=gnu++11 -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=maybe-uninitialized -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-unused-but-set-parameter -Wno-missing-field-initializers -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10813 -DARDUINO_NodeMCU_32S -DARDUINO_ARCH_ESP32 “-DARDUINO_BOARD=\”NodeMCU_32S\"" “-DARDUINO_VARIANT=\”nodemcu-32s\"" -DESP32 -DCORE_DEBUG_LEVEL=0 “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6\\cores\\esp32” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6\\variants\\nodemcu-32s” “C:\\Users\\Helmut\\AppData\\Local\\Temp\\arduino_build_966445\\sketch\\ESPwebRadio.ino.cpp” -o nul -DARDUINO_LIB_DISCOVERY_PHASE
Alternatives for AsyncEventSource.h: [ESPAsyncWebServer-master@1.2.3 ESPAsyncWebServer-main@1.2.3]
ResolveLibrary(AsyncEventSource.h)
→ candidates: [ESPAsyncWebServer-master@1.2.3 ESPAsyncWebServer-main@1.2.3]“C:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\xtensa-esp32-elf-gcc\\1.22.0-97-gc752ad5-5.2.0/bin/xtensa-esp32-elf-g++” -DESP_PLATFORM “-DMBEDTLS_CONFIG_FILE=\”mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -DGCC_NOT_5_2_0=0 -DWITH_POSIX “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/config” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/app_trace” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/app_update” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/asio” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/bootloader_support” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/bt” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/coap” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/console” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/driver” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/efuse” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp-tls” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp32” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp_adc_cal” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp_event” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp_http_client” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp_http_server” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp_https_ota” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp_https_server” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp_ringbuf” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp_websocket_client” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/espcoredump” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/ethernet” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/expat” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/fatfs” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/freemodbus” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/freertos” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/heap” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/idf_test” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/jsmn” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/json” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/libsodium” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/log” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/lwip” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/mbedtls” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/mdns” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/micro-ecc” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/mqtt” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/newlib” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/nghttp” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/nvs_flash” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/openssl” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/protobuf-c” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/protocomm” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/pthread” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/sdmmc” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/smartconfig_ack” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/soc” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/spi_flash” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/spiffs” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/tcp_transport” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/tcpip_adapter” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/ulp” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/unity” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/vfs” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/wear_levelling” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/wifi_provisioning” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/wpa_supplicant” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/xtensa-debug-module” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp-face” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp32-camera” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/esp-face” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6/tools/sdk/include/fb_gfx” -std=gnu++11 -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=maybe-uninitialized -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-unused-but-set-parameter -Wno-missing-field-initializers -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10813 -DARDUINO_NodeMCU_32S -DARDUINO_ARCH_ESP32 “-DARDUINO_BOARD=\”NodeMCU_32S\"" “-DARDUINO_VARIANT=\”nodemcu-32s\"" -DESP32 -DCORE_DEBUG_LEVEL=0 “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6\\cores\\esp32” “-IC:\\Users\\Helmut\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6\\variants\\nodemcu-32s” “-IC:\\Users\\Helmut\\Documents\\Arduino\\libraries\\ESPAsyncWebServer-main\\src” “C:\\Users\\Helmut\\AppData\\Local\\Temp\\arduino_build_966445\\sketch\\ESPwebRadio.ino.cpp” -o nul -DARDUINO_LIB_DISCOVERY_PHASE
Alternatives for AsyncTCP.h: []In file included from C:\Users\Helmut\Downloads\ESPwebRadio\ESPwebRadio.ino:1:0:
ResolveLibrary(AsyncTCP.h)
C:\Users\Helmut\Documents\Arduino\libraries\ESPAsyncWebServer-main\src/AsyncEventSource.h:25:22: fatal error: AsyncTCP.h: No such file or directory
→ candidates: []compilation terminated.Mehrere Bibliotheken wurden für “AsyncEventSource.h” gefunden
Benutzt: C:\Users\Helmut\Documents\Arduino\libraries\ESPAsyncWebServer-main Nicht benutzt: C:\Users\Helmut\Documents\Arduino\libraries\ESPAsyncWebServer-masterBibliothek ESPAsyncWebServer-main in Version 1.2.3 im Ordner: C:\Users\Helmut\Documents\Arduino\libraries\ESPAsyncWebServer-main wird verwendet
exit status 1
Fehler beim Kompilieren für das Board NodeMCU-32S.
Konrad
5 Sterne für Andreas Schröder!!
Jetzt bekomme ich sogar meine Lieblingsradiostationen ohne große Probleme rein (Übrigens muss das s in https weg, sonst klappt es nicht; – wie z.B. beim SWR3).
Ich bin total begeistert! Vielen Dank.
Gerald Lechner
Danke für den Hinweis. Die Widerstände waren vertauscht. Ich habe die Abbildung korrigiert.
Rocco
Wenn ich das richtig sehe, dann sind die 4,7k und 22k Widerstände in der Abbildung der Bestückung vertauscht.
K
Hallo nochmal Herr Lechner,
die Frage 2 meines vorigen Kommentares hat sich erledigt. Offensichtlich ist mein Löt “Know-How” noch nicht so gut. 2 unterschiedliche Lötpunkte haben nicht funktioniert (hat mich einen kompletten Sonntag gekostet (Puh meine Frau schimpft)).
Das mit dem Akku muss ich mir in Ruhe auch mal anschauen. Habe parallel nämlich eine Variante mit Breadboard gebaut für die Fehlersuche (siehe oben). Wenn Sie aber Hinweise haben; – vielen Dank.
Übrigens ist meine Kiste inzwischen so voller Kabel, dass ich die beiden 3Druck Aussen Panele nicht mehr zusammen bekomme. Schade.
Grüße
Konrad