Themabewertung:
  • 1 Bewertung(en) - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
ESP32 Webradio Platine Version 1.1
#21
Hallo Jochen,

PN ist ein Nachrichtenaustausch innerhalb des Forum. Hier im Forum rechts oben "Private Nachrichten"

Aber du hattest ja deine Adresse hier öffentlich geschrieben und deine Platinen sind schon eingepackt.

Du kannst ja mal versuchen mich per email über info@saarfranzosen.de anzuschreiben.

Die links funktionieren zwar im VLC, aber nicht im ESP-Radio. Grundsätzlich musst du das vorangestellte http:// oder https:// weglassen, daran liegt es hier aber nicht.
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#22
das ist der link für BR-Klassik:

streams.br.de/br-klassik_2.m3u

und hier für Deutschlandradio:

st01.dlf.de/dlf/01/128/mp3/stream.mp3
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#23
Hallo Jupp
vielen Dank für die Dateien.
Tolle Arbeit, die du da machst, ich lese auch gerne deine Anleitungen auf deiner Homepage.
Da ich von der Materie nicht viel Ahnung habe, aber trotzdem gerne bastle.
Vielen, vielen Dank!
Schöne Grüße oitei
Zitieren
#24
Hallo Jupp,
vielleicht hast du eine Idee wo ich suchen müsste, denn obwohl alles in Ordnung zu seien scheint, habe ich keinen Audio Signal. Ich habe die Platine - bis auf den Verstärker bestückt - und sehe auf dem TFT-display und auch im WEB-interface, dass die SW läuft und reagiert (z.B. Senderwahl, Lautstärke-Einstellung). Das Audiosignal entnehme ich direkt der Klinkenbuchse des Codecs, an die ich einen Ohrhörer angestöpselt habe. Nein, es ist nicht auf MUTE gestellt, der switch des rotary encoder funktioniert, das sehe ich auf dem display. Ich habe zwei Codecs ausprobiert, mindestens einer davon lief im ursprünglichen "Drahtverhau".
Die SW-Version meldet 21. Jan
Die HW zieht 150 bis 200 mA
Ich bin etwas ratlos :-(
Jochen
Zitieren
#25
mit codec meinst du bestimmt den VS1053? siehst du Anhaltspunkte im seriellen Monitor?
Wenn der stream definitiv läuft kann es ja nur noch an der Lautstärke, an dem VS-Baustein oder am Kopfhörer liegen?
Der PAM-Verstärker ist natürlich nur optional.
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#26
Hallo Jochen,
bist Du sicher, dass ein VS1053 Chip auf dem Board sitzt und k e i n VS1003 !
Ich hatte genau diesen Fall, Anzeige, WebInterface, Encoder funktionierte - aber keine Sound-Ausgabe....
Grüße aus Wassenberg,
Norbert.
Zitieren
#27
Hallo Jupp, hallo Norbert,
> Norbert, Du liegst richtig, offensichtlich ist einer der beiden getesteten Chips ein VS1003, obwohl VS1053B drarauf steht
> Jupp auch Du hast wohl recht. Der Test der beim Start/rest durch läuft zeigt nichts auffälliges. Der Chip wird geteste mir Fast SPI read/write registers again... die verbindung zu meinem Wlan wird aufgebaut, der server wird gestartet (und ist erreichbar), der rotary encoder is enabled, die Zeit wird richtig erkannt und auf dem TFT-display wir Sender, Song und Interpret richtig angezeigt. Conclusio: Audio-output des VS1053 Moduls defekt!?
Danke für eure Hinweise
Jochen
Zitieren
#28
wenn auf dem chip 1053 draufsteht kann man davon ausgehen dass es auch ein 1053 ist. Wäre es ein 1003 dann käme auch die software gar nicht auf die Beine.
Die Lautstärke musst du meist auf über 80% hochdrehen damit ein Ton zu hören ist. Das wirst du wohl probiert haben.
Wenn eine Lautstärkeminderung vom encoder registriert wird siehst du das im seriellen Monitor an einer fortlaufenden Meldung "Rotation count -1" o.ä.
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#29
mit einer kleinen Konfigurationsänderung hab ich das Radio für meine Zwecke einfacher benutzbar gemacht.

Die umständliche Sendereinstellung hat mich gestört. Doppelklick - Sendersuche - Einfachklick , und alles in bestimmten Zeitfenstern.

Jetzt betätige ich nur einmal den switch des encoder und das Radio toggelt auf den nächsten Sender in der Liste.

Die Änderung in der defaultprefs.h:

Code:
# GPIO pinnings
pin_ir = -1                                          # GPIO Pin number for IR receiver VS1838B (35)
pin_enc_clk = 25                                     # GPIO Pin number for rotary encoder "CLK" (25)
pin_enc_dt = 26                                      # GPIO Pin number for rotary encoder "DT" (26)
pin_enc_sw = -1                                      # GPIO Pin number for rotary encoder "SW" (27)
#

Code:
# Programmable input pins:
gpio_27 = uppreset = 1
#

gpio_27 hab ich mit -1 von seiner Funktion als pin_enc_sw befreit
stattdessen hab ich gpio_27 mit der Funktion "uppreset = 1" belegt.

damit die Änderung greift muss neu kompiliert und hochgeladen werden und dann im webinterface die default-Werte geladen werden mit anschliessendem save.

Natürlich kann man auch die Änderungen gleich im config-Bereich des webinterface durchführen. Es empfiehlt sich dann trotzdem den Quellcode zu ändern damit bei einem späteren Hochladen die Änderungen nicht wieder überschrieben werden.
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#30
Danke, Jupp,
Das ist eine gute Option, insbesondere wenn die Playlist nicht zu lang ist.
Es hat auch bei mir eine Weile gedauert bis ich die richtige Zeit zwischen Mute und Umschalten einigermaßen gut im Griff bekommen habe.
Ich werde es bei dem nächsten Projekt ausprobieren.
Gruß,
Ivan
Zitieren
#31
Ivan, du kannst es auch bei einem fertigen Radio ändern. Es muss dazu nicht geöffnet werden. Nur im webinterface die Änderungen wie beschrieben eintragen.
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#32
Hallo, Jupp,
weiß ich, ja.
Aber ich habe nur ein Exemplar im Gehäuse der mit Encoder und nicht per Sensor arbeitet, den möchte ich wie bisher behalten - schließlich habe ihm weit über 20 Sender gespeichert und das wäre per Klick etwas zu lange dauern. Die anderen die im Röhrenradio integriert sind, arbeiten mit Sensor und es ist für die praktikabler.
Deswegen habe ich es mir für das nächste Projekt vorgenommen. Bastelst Du schon am IR Bedienung?
Gruß,
Ivan
Zitieren
#33
(19.02.2021, 20:05)saarfranzose schrieb: wenn auf dem chip 1053 draufsteht kann man davon ausgehen dass es auch ein 1053 ist. Wäre es ein 1003 dann käme auch die software gar nicht auf die Beine.
Die Lautstärke musst du meist auf über 80% hochdrehen damit ein Ton zu hören ist. Das wirst du wohl probiert haben.
Wenn eine Lautstärkeminderung vom encoder registriert wird siehst du das im seriellen Monitor an einer fortlaufenden Meldung "Rotation count  -1" o.ä.

Lautstärke habe ich auf "voll" hochgedreht, sehe ich auf dem LCD unten am roten Strich. Dessen Länge ändert sich auch beim drehen am Encoder.
Apropo Display: Ich habe bei den #define's von BLUETFT auf #define LCD2004I2C geswitcht. Nun wird diese displa nicht erkannt. Fehlermeldung
...
D: Start display
D: Init LCD2004, I2C pins -1,-1
D: Init LCD2004 failed!
...
Da müsste ich wohl noch an anderer Stelle was ändern. Jupp bei dir läuft doch diese display, kannst du mir sagen wo ich noch was anpassen muss?
Sobald ich einen neuen VS1053 bekommen habe, ich werde ihn wie ein rohes Ei behandeln, werde ich hier kurz berichten.
Allen ein schönes Wochenende
Zitieren
#34
in meiner Beschreibung findest du diese Hinweise:

Zitat:Bei Displays, die über I2C angesteuert werden, müssen die gpio's für SDA und SCL zugewiesen werden

Esp32_radio.ino:

im Bereich der Zeile 500:

{ 21, false, false, "", false }, // Also Wire SDA
{ 22, false, false, "", false }, // Also Wire SCL

und im Bereich der Zeile 2560:

struct iosetting klist[] = { // List of I/O related keys
{ "pin_ir", &ini_block.ir_pin, -1 },
{ "pin_enc_clk", &ini_block.enc_clk_pin, -1 },
{ "pin_enc_dt", &ini_block.enc_dt_pin, -1 },
{ "pin_enc_sw", &ini_block.enc_sw_pin, -1 },
{ "pin_tft_cs", &ini_block.tft_cs_pin, -1 }, // Display SPI version
{ "pin_tft_dc", &ini_block.tft_dc_pin, -1 }, // Display SPI version
{ "pin_tft_scl", &ini_block.tft_scl_pin, 22 }, // Display I2C version
{ "pin_tft_sda", &ini_block.tft_sda_pin, 21 }, // Display I2C version
{ "pin_tft_bl", &ini_block.tft_bl_pin, -1 }, // Display backlight
{ "pin_tft_blx", &ini_block.tft_blx_pin, -1 }, // Display backlight (inversed logic)

und:

Datei LCD1602.h oder LCD2004.h :

Zitat:Bei LCD-Displays ist deren I2C-Adresse zu berücksichtigen. Die eingetragene Adresse muss zur hardwaremässigen Adresse des Display passen und kann den Wert 0x27 oder 0x3F annehmen.

//#define I2C_ADDRESS 0x27 // Adjust for your display
#define I2C_ADDRESS 0x3F // Adjust for your display
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#35
Hallo Jupp,
genau wie du es zitiert hast ist es. Es heiß ja "Wer lesen kann ist im Vorteil" und ich bin offenbar zu ungeduldig oder unkonzentriert. Jedenfalls vielen, vielen Dank für deine Hinweise. Jetzt bin ich schon mal 8 Anschlußdräte vom LCD los.

Beste Grüße vom Bodensee
Jochen
Zitieren
#36
Wer hat ESP32-radio mit IR-control am Laufen und kann mir einen Tipp geben?

Auf pin 35 habe ich einen funktionierenden IRreceiver angeschlossen, das Signal kommt dort auch an und ist valide.
Auf der config Seit im WEB-interface habe ich:
pin_ir = 35 # GPIO Pin number for IR receiver VS1838B
eingetragen dann Save + Restart.
Leider sehe ich keine Reaktion im Konsol-output.

Was mache ich falsch, was fehlt in meinem set-up?
Zitieren
#37
Hast Du denn auch gesagt welcher gesendeter CODE deiner Fernbedienung welche Aktion ausführen soll?

Im Servicehandler der für IR zuständig ist, hier der Quellcode:

Code:
//**************************************************************************************************
//                                          I S R _ I R                                            *
//**************************************************************************************************
// Interrupts received from VS1838B on every change of the signal.                                 *
// Intervals are 640 or 1640 microseconds for data.  syncpulses are 3400 micros or longer.         *
// Input is complete after 65 level changes.                                                       *
// Only the last 32 level changes are significant and will be handed over to common data.          *
//**************************************************************************************************
void IRAM_ATTR isr_IR()
{
 sv uint32_t      t0 = 0 ;                          // To get the interval
 sv uint32_t      ir_locvalue = 0 ;                 // IR code
 sv int           ir_loccount = 0 ;                 // Length of code
 uint32_t         t1, intval ;                      // Current time and interval since last change
 uint32_t         mask_in = 2 ;                     // Mask input for conversion
 uint16_t         mask_out = 1 ;                    // Mask output for conversion

 t1 = micros() ;                                    // Get current time
 intval = t1 - t0 ;                                 // Compute interval
 t0 = t1 ;                                          // Save for next compare
 if ( ( intval > 300 ) && ( intval < 800 ) )        // Short pulse?
 {
   ir_locvalue = ir_locvalue << 1 ;                 // Shift in a "zero" bit
   ir_loccount++ ;                                  // Count number of received bits
   ir_0 = ( ir_0 * 3 + intval ) / 4 ;               // Compute average durartion of a short pulse
 }
 else if ( ( intval > 1400 ) && ( intval < 1900 ) ) // Long pulse?
 {
   ir_locvalue = ( ir_locvalue << 1 ) + 1 ;         // Shift in a "one" bit
   ir_loccount++ ;                                  // Count number of received bits
   ir_1 = ( ir_1 * 3 + intval ) / 4 ;               // Compute average durartion of a short pulse
 }
 else if ( ir_loccount == 65 )                      // Value is correct after 65 level changes
 {
   while ( mask_in )                                // Convert 32 bits to 16 bits
   {
     if ( ir_locvalue & mask_in )                   // Bit set in pattern?
     {
       ir_value |= mask_out ;                       // Set set bit in result
     }
     mask_in <<= 2 ;                                // Shift input mask 2 positions
     mask_out <<= 1 ;                               // Shift output mask 1 position
   }
   ir_loccount = 0 ;                                // Ready for next input
 }
 else
 {
   ir_locvalue = 0 ;                                // Reset decoding
   ir_loccount = 0 ;
 }
}

sehe ich beim schnellen Überfliegen auch keine Ausgabe auf der Konsole. Wäre sicher für einen ISR auch nicht der richtige Platz. Allerdings könntest Du dort ja schnell deine eigene Debug-Meldung reincodieren.

Ein Debugbuild wird hierüber gesteuert:

// Global variables
int DEBUG = 1 ; // Debug on/off

und für Ausgaben gibt es die konfortable Funktion dbgprint
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#38
Hallo,

so steht es im Handbuch:

Code:
To use this interface, the "out" pin of a VS1838B receiver must be connected to a GPIO pin of the ESP32:

Add the assigned GPIO pin to the preferences through the config page in the web interface.  Example:
pin_ir = 35                   # GPIO Pin number for IR receiver VS1838B

VCC is connected to 3.3 Volt.  A 220 µF capacitor should be connected between VCC and GND.
The software will read the raw code of the IR transmitter, making it possible to use virtually any remote control to be used.  I tested it with the 21 button remote as well as with an LG TV remote.
To assign functions to the buttons, watch the debug log output while pressing a button.  For example, press the +volume button.  You will see something like:
D: IR code 807F received, but not found in preferences!
Now add the command:
ir_807F = upvolume = 2
to the preferences in the config page of the web interface.  Likewise you can assign functions to all buttons, for example:
ir_8A31 = uppreset = 1
ir_719A = station = us1.internet-radio.com:8105
ir_1F6B = mute

also wenn der Elko über der Betriebsspannung der IR-Diode liegt und du den pin aktiviert hast musst du im seriellen Monitor der IDE den empfangenen code sehen. Meinst du den mit Konsol?
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#39
(26.02.2021, 17:38)saarfranzose schrieb: hast musst du im seriellen Monitor der IDE den empfangenen code sehen.

Stimmt Jupp. Der raw-Code müsste in Debug-Build erscheinen. Die Ausgabe wird in der Function scanIR() mittels dbgprint erzeugt und die scanIR wird permanent in loop() aufgerufen. dbgprint gibt aber nur im Debugbuild eine Meldung aus. Also schaue bitte nach ob das Flag (siehe oben) entsprechend gesetzt ist, sofern Du in der Software etwas abgeändert hast. Kommt dennoch keine Anzeige des raw-Codes (aber andere Debugmeldungen!), dann ist die Verkabelung nochmal zu prüfen, eventuell gibt es auch Ressourcenkonflikte, sprich wurde der GPIO also schon anderweitig zugeteilt?
Den VS1838B selbst hattest Du ja schon geprüft.
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#40
Vielen Dank für all die nützlichen Tipps.
Des Rätsels Lösung war dann ganz einfach: 10k pullup R am GPIO35 und schon sah ich die raw-IR codes auf der seriellen Konsole.
Wie immer gibt es jedoch ein "aber". Von den vielen von mir getesteten IR-transmittern funktioniert bisher nur einer. Ich werden mal einen anderen VS1838B IR-receiver anschließen, vielleicht liegt es ja an dem. Ist aber eher unwahrscheinlich, denn auch die Fernseher Fernbedienung funktioniert (mit den ESP32-radio) nicht. Ich finde die Steuerung des Radios per Fernbedienung sehr sinnvoll. Wenn die funktioniert möchte ich noch den externen Verstärker auch damit ein/ausschalten oder nur auf "mute" schalten. Das Radio braucht ja eine gewisse Zeit nach dem "power up", die umgeht man so. Und ca 1 Watt standby Stromverbrauch könnte ich verkraften.

Nochmals viele Dank für all die guten Tipps
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  iRadioMini für ESP32 Bernhard45 17 11.094 09.03.2024, 22:29
Letzter Beitrag: OttoBerger
  MW-Sender mit ESP32 DrNeurosurg 23 4.633 06.02.2024, 14:56
Letzter Beitrag: navi
  Software Installer für den ESP32 pintel 18 952 29.12.2023, 18:29
Letzter Beitrag: Siegfried55
  Karadio für ESP8266/ESP32 saarfranzose 21 7.414 13.11.2023, 13:25
Letzter Beitrag: wmnbg
  Huth E72 Internetradio mit ESP32 saarfranzose 10 1.789 12.05.2023, 14:49
Letzter Beitrag: saarfranzose

Gehe zu: