Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
FAQ zum iRadioMini
#41
in der sdkconfig ist das LyraT 4.3 eingestellt. Dann habe ich ja für das AI-thinker die falsche hardware Konfiguration. Eine Zeile für das AI-thinker existiert nicht. Mit dem passenden Lyrat-board bekomme ich beim flashen keinen connect.
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#42
(16.02.2022, 21:15)saarfranzose schrieb: ich bekomme weiterhin I2C-Meldungen sowie SD-Card Fehler, auch mit einem anderen AI-Board und anderer SD-Karte (FAT32)

Poste mir bitte mal die Consolenausgabe, ein Bild vom Dateiexplorer deiner SD-Karte und ggf. auch den Inhalt der beiden Dateien wifi.txt und playlist.m3u

Denke bitte daran, daß die Dateinamen case-sensitiv sind. Wifi.txt wifi.TXT oder sowas funktioniert nicht! Danach wird beim Start nicht gesucht.

(16.02.2022, 21:15)saarfranzose schrieb: Das build dauert nur ein paar Sekunden. Ist das normal?

Das ist okay, es müssen ja nur die Änderungen übersetzt werden.
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
#43
(16.02.2022, 21:42)saarfranzose schrieb: in der sdkconfig ist das LyraT 4.3 eingestellt. Dann habe ich ja für das AI-thinker die falsche hardware Konfiguration. Eine Zeile für das AI-thinker existiert nicht. Mit dem passenden Lyrat-board bekomme ich beim flashen keinen connect.

Das AI-thinker ist quasi das LyraT 4.3 -> https://github.com/BM45/ESP32-A1S-AudioKit

Und wenn Du das ADF von mir ausgecheckt hast, oder aus meinem iRadioMiniESP32SDK.zip hast, dann sind die GPIO-Anpassungen die AI-thinker auf der Seite, also hier https://github.com/BM45/ESP32-A1S-AudioKit vorgibt, schon drin.

Hast Du das ADF von Expressif, sind die Änderungen nicht drin! Dann musst Du die händisch einpflegen und das iRadioMini nochmal bauen.

Bitte verändere da nicht die sdkconfig -> LyraT 4.3 ist da absolut richtig.

Gruß
Bernhard
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
#44
sorry ich hatte noch den alten Namen wpa_supplicant.conf.
Jetzt hab ich wlan, aber noch keinen Ton. Der Audio Chip initialisiert nicht.

Code:
I (869) SDCARD: SSID found: ######
I (869) SDCARD: PSK found: ######
I (879) SDCARD: Try read channel list from sdcard
I (889) SDCARD: read URL:http://wdr-wdr5-live.icecast.wdr.de/wdr/wdr5/live/mp3/128/stream.mp3:68
I (889) SDCARD: read URL:http://icecast.radiofrance.fr/fiprock-hifi.aac:46
I (899) SDCARD: read URL:http://icecast.radiofrance.fr/fip-hifi.aac:42
I (909) SDCARD: read URL:http://streaming01.sr-online.de/sr1_1.m3u:41
I (919) IRADIOMINI: prepare to start the player process
I (919) IRADIOMINI: start IPC
I (929) IRADIOMINI: Heartbeat
I (929) PLAYER: [ 1 ] startup Audio Player
I (939) gpio: GPIO[19]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:3
E (949) gpio: gpio_install_isr_service(412): GPIO isr service already installed
I (939) gpio: GPIO[5]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (959) gpio: GPIO[18]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
E (979) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (999) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (999) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
I (1009) HTTPD: alive
E (1019) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (1029) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (1039) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (1049) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (1069) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (1079) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (1089) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (1109) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (1119) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (1129) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (1139) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (1159) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (1169) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (1179) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (1199) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (1209) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (1219) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (1229) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (1249) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (1259) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (1269) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (1289) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (1299) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (1309) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
E (1319) I2C_BUS: /home/pi/esp-adf/components/esp_peripherals/driver/i2c_bus/i2c_bus.c:101 (i2c_bus_write_bytes):I2C Bus WriteReg Error
I (1339) gpio: GPIO[21]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (1359) ES8388_DRIVER: init,out:02, in:00
E (1359) AUDIO_HAL: codec init failed!
E (1359) AUDIO_BOARD: /home/pi/esp-adf/components/audio_board/lyrat_v4_3/board.c:55 (audio_board_codec_init): Got NULL Pointer
I (1369) PLAYER: [ 1.1 ] Start audio codec chip
E (1369) AUDIO_HAL: audio_hal handle is null
E (1389) AUDIO_HAL: audio_hal handle is null
I (1389) PLAYER: [ 1.2 ] Start and wait for Wi-Fi network
I (1409) wifi:wifi driver task: 3ffd0134, prio:23, stack:3584, core=0
I (1409) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE
I (1409) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE
I (1439) wifi:wifi firmware version: 5f8804c
I (1439) wifi:config NVS flash: enabled
I (1439) wifi:config nano formating: disabled
I (1449) wifi:Init dynamic tx buffer num: 32
I (1449) wifi:Init data frame dynamic rx buffer num: 32
I (1449) wifi:Init management frame dynamic rx buffer num: 32
I (1459) wifi:Init management short buffer num: 32
I (1459) wifi:Init static rx buffer size: 1600
I (1469) wifi:Init static rx buffer num: 10
I (1469) wifi:Init dynamic rx buffer num: 32
I (1569) phy: phy_version: 4180, cb3948e, Sep 12 2019, 16:39:13, 0, 0
I (1569) wifi:mode : sta (98:cd:ac:75:25:80)
I (1689) wifi:new:<1,0>, old:<1,0>, ap:<255,255>, sta:<1,0>, prof:1
I (2029) HTTPD: alive
I (2669) wifi:state: init -> auth (b0)
I (2679) IRADIOMINI: Heartbeat
I (2679) wifi:state: auth -> assoc (0)
I (2699) wifi:state: assoc -> run (10)
I (3029) HTTPD: alive
I (3679) IRADIOMINI: Heartbeat
I (4029) HTTPD: alive
I (4679) IRADIOMINI: Heartbeat
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#45
Die I2C-Fehler schauen mir nach #43 aus, hast Du ADF von meinem oder vom Espressiv github ausgecheckt?

In meinem sind die Anpassung für ESP32-A1S-Kit ES8388 drin, jedoch nicht für AC101 codecs, da dort status:halt production angegeben ist.

Siehe mein Post #1 im Hauptthread zu iRadioMini:

Step 5 ESP32 + ES8388 audio chips sofern Ihr das SDK von meiner Github-Seite habt, ist das auch schon erledigt!

Die Änderungen für ESP32 + AC101 audio chips  sind bei mir nicht durchgeführt, da Boards in dieser Konfiguration mit dem Status status:halt production gekennzeichnet sind. Sollte jemand so ein Board noch besitzen, dann sind diese aufgeführten Schritte noch durchzuführen, was aber kein Beinbruch ist.

Noch etwas sehe ich in deinem Consolenlog:

I (909) SDCARD: read URL:http://streaming01.sr-online.de/sr1_1.m3u:41

Bitte beachten was ich geschrieben habe! Keine verschachtelten Playlists. Die Playersoftware kann so etwas noch nicht parsen. Möglichweise sollte ich die Einleseroutine noch dahingehend "absichern" das Einträge mit m3u pls usw. gleich ignoriert werden. Willst Du den Sender hören, öffne die Playlist mit einem Browser -> der lädt die Datei runter -> Datei öffnen und darin findest Du die direkten Streams. Die kannst Du dann in der Playlist für den ESP32-Audioplayer verwenden.

So für heute werde ich erstmal aufhören! Ich gehe dann offline.
Gute Nacht Jupp und allen Lesern.
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
#46
die adf hab ich von hier genommen: https://github.com/BM45/esp-adf
wie auch in deinen hardcopies etc. angegeben.

meine audio-kit-boards haben den ES8388 Chip.

den SR1 Eintrag nehme ich raus.

gute Nacht, Bernhard!
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#47
Sicher Jupp? Schaue bitte nochmal nach ob das wirklich von mir stammt,

in der Datei esp-adf/components/audio_board/lyrat_v4_3/board_pins_config.c müssen diese Pins vorhanden sein und nicht die alte Belegung.

esp_err_t get_i2c_pins(i2c_port_t port, i2c_config_t *i2c_config)
{
AUDIO_NULL_CHECK(TAG, i2c_config, return ESP_FAIL);
if (port == I2C_NUM_0 || port == I2C_NUM_1) {
i2c_config->sda_io_num = GPIO_NUM_33;
i2c_config->scl_io_num = GPIO_NUM_32;
} else {
i2c_config->sda_io_num = -1;
i2c_config->scl_io_num = -1;
ESP_LOGE(TAG, "i2c port %d is not supported", port);
return ESP_FAIL;
}
return ESP_OK;
}

esp_err_t get_i2s_pins(i2s_port_t port, i2s_pin_config_t *i2s_config)
{
AUDIO_NULL_CHECK(TAG, i2s_config, return ESP_FAIL);
if (port == I2S_NUM_0 || port == I2S_NUM_1) {
i2s_config->bck_io_num = GPIO_NUM_27;
i2s_config->ws_io_num = GPIO_NUM_25;
i2s_config->data_out_num = GPIO_NUM_26;
i2s_config->data_in_num = GPIO_NUM_35;
} else {
memset(i2s_config, -1, sizeof(i2s_pin_config_t));
ESP_LOGE(TAG, "i2s port %d is not supported", port);
return ESP_FAIL;
}
return ESP_OK;
}

Ansonsten macht mich diese Ausgabe stutzig ob es der richtige Chip ist!

E (1359) AUDIO_HAL: codec init failed!
E (1359) AUDIO_BOARD: /home/pi/esp-adf/components/audio_board/lyrat_v4_3/board.c:55 (audio_board_codec_init): Got NULL Pointer

Denn audio_board_codec_init sieht so aus:

audio_hal_handle_t audio_board_codec_init(void)
{
audio_hal_codec_config_t audio_codec_cfg = AUDIO_CODEC_DEFAULT_CONFIG();
audio_hal_handle_t codec_hal = audio_hal_init(&audio_codec_cfg, &AUDIO_CODEC_ES8388_DEFAULT_HANDLE);
AUDIO_NULL_CHECK(TAG, codec_hal, return NULL);
return codec_hal;
}

Die versucht einen ES8388 zu initialisieren. Warum sollte das sonst nicht klappen auf zig anderen Board aber schon.

Also entweder stimmen die Pins nicht weil die Datei nicht aus meinem github kommt, oder der Chip ist eventuell doch ein AC101.
Bitte kontrolliere das nochmal sorgfältig.

So nun bin ich aber wirklich weg.
Bis morgen!
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
#48
das habe ich diese Nacht noch herausgefunden:

Bernhard45 schrieb:in der Datei esp-adf/components/audio_board/lyrat_v4_3/board_pins_config.c müssen diese Pins vorhanden sein und nicht die alte Belegung.
..
        i2c_config->sda_io_num = GPIO_NUM_33;
        i2c_config->scl_io_num = GPIO_NUM_32;
..
        i2s_config->bck_io_num = GPIO_NUM_27;
        i2s_config->ws_io_num = GPIO_NUM_25;
        i2s_config->data_out_num = GPIO_NUM_26;
        i2s_config->data_in_num = GPIO_NUM_35;
..

...Also entweder stimmen die Pins nicht weil die Datei nicht aus meinem github kommt, oder der Chip ist eventuell doch ein AC101.

Mit den Pins lagst du richtig. Die AI-boards haben trotz gleicher Versionsnummer (V2.2 - 3378) unterschiedliche Belegung. Bei mir liegen I2C und I2S auf folgenden Pin:

I2C_SCL 23
I2C_SDA 18

I2S_LRCK 25
I2S_BCLK 5
I2S_DATA 26

das sind genau die Änderungen die du für deine Board-Versionen nachträglich angepasst hast.

Die gleiche Belegung haben auch meine LyraT V4.3 Boards.

Damit hatten wir die Boards ja auch schon mal erfolgreich in Betrieb. Ich habe meine Notizen dazu rausgesucht.

Ich habe es in der board_pins_config.c geändert und neu compiliert. Hatte aber keinen Erfolg. Die Werte stehen evtl. noch in irgendeinem cache oder an anderer Stelle. Die I2C-Fehler sind zumindest weg, die Belegung wird aber noch nicht korrekt angezeigt. Die Boards (AI und LyraT) hängen in einer bootschleife mit folgendem Report:

Code:
I (854) SDCARD: SSID found: ####
I (864) SDCARD: PSK found: ####
I (864) SDCARD: Try read channel list from sdcard
I (874) SDCARD: read URL:http://wdr-wdr5-live.icecast.wdr.de/wdr/wdr5/live/mp3/128/stream.mp3:68
I (874) SDCARD: read URL:http://icecast.radiofrance.fr/fiprock-hifi.aac:46
I (884) SDCARD: read URL:http://icecast.radiofrance.fr/fip-hifi.aac:42
I (894) IRADIOMINI: prepare to start the player process
I (904) IRADIOMINI: start IPC
I (904) IRADIOMINI: Heartbeat
I (904) PLAYER: [ 1 ] startup Audio Player
I (924) gpio: GPIO[19]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:3
E (934) gpio: gpio_install_isr_service(412): GPIO isr service already installed
I (914) DISPLAYD_SSD1306_I2C: u8g2_InitDisplay
I (934) u8g2_hal: sda_io_num 21
I (934) u8g2_hal: scl_io_num 22
I (914) gpio: GPIO[5]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (964) gpio: GPIO[18]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (964) u8g2_hal: clk_speed 50000
I (984) u8g2_hal: i2c_param_config 1
I (984) u8g2_hal: i2c_driver_install 1
I (1034) HTTPD: alive
E (1284) err: esp_err_t = -1

um das LyraT Board zu flashen muss beim connecten bei gedrückter Boot-Taste die RST-Taste betätigt werden.
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#49
Guten Morgen Jupp!

(17.02.2022, 01:23)saarfranzose schrieb: Mit den Pins lagst du richtig. Die AI-boards haben trotz gleicher Versionsnummer (V2.2 - 3378) unterschiedliche Belegung.

Das ist eine verdammte Katastrophe was der Boardhersteller da verzapft! Und ehrlich habe ich mich da schon an dieser Stelle (https://github.com/Ai-Thinker-Open/ESP32-A1S-AudioKit) , als es um die händischen Änderungen ging, geärgert!

Espressif gibt mit dem ADF ein wunderbares Framework und Regelwerk zur Integration von Boards vor, aber AI und ein paar andere Hersteller versauen die Sache so. Warum hat man nicht die Stunde Arbeit investiert und hier ganz sauber eine eigene Boarddefinition rausgegeben? Ein Order den man ins ADF kopiert und mit dem man den Hardware Abstraction Layer erweitert. Dann könnte man händisch in der Konfigurationsdatei oder über menuconfig Board+Rev+Chip auswählen?

Aber offensichtlich hat man dort nicht einmal die Revs richtig unter Kontrolle!

Ich habe hier:

v2.2 3478  - läuft mit den Änderungen aus https://github.com/Ai-Thinker-Open/ESP32-A1S-AudioKit welche auch in meinem Fork des ADF drin sind. Chip ES8388

v2.2 3378  - dito 3478

jetzt hast Du ein 3378 mit anderer Belegung, nämlich der mit dem alten AC101 obwohl ein ES8388 verbaut ist???

Ich hatte auch ein v2.2 - 2957 bestellt (nach Produktbild), gekommen ist aber ein v2.2 3478

Ich frage mich wie viele Versionen dieser PCB da draußen noch existieren und welche Permutation an GPIO-Belegungen noch existieren. Das wäre ja nicht das Problem, wenn das ordentlich kommuniziert wird und wenn man sich da weitestgehend an die ADF-"Regeln" für das HAL hält.

Auch komisch ist der production status beim AC101, der auf halt steht. Warum steht der wirklich auf halt? Chipmangel, technische Probleme? Und, wird er irgendwann von halt wieder in production gehen? Wenn man zukünftig auf einen anderen Chip setzt, wäre doch so etwas wie obsolet oder deprecated angepasster als halt.

Wäre bei diesem Kuddelmuddel mit den PCB und GPIO-Permutationen es nicht doch besser, der Status experimental zu vergeben?

Unter dem Strich ist es wohl echt empfehlenswert ein eigenes "blanko" ESP32 Modul zu nehmen + SD-Karten Fassung + Audiocodec und alles selbst zu verkabeln + eine eigene Boarddef im ADF anzulegen.



(17.02.2022, 01:23)saarfranzose schrieb: Ich habe es in der board_pins_config.c geändert und neu compiliert. Hatte aber keinen Erfolg. Die Werte stehen evtl. noch in irgendeinem cache oder an anderer Stelle.

Wenn Du so etwas befürchtest, kannst Du immer den vom Compiler angelegten "build"-Ordner im Projektverzeichnis löschen. Beim nächsten Compilieren wird dann sauber alles nochmals übersetzt, dauert aber halt auch wieder so lange wie beim Erstlauf des Compilers.


(17.02.2022, 01:23)saarfranzose schrieb: Die I2C-Fehler sind zumindest weg, die Belegung wird aber noch nicht korrekt angezeigt. Die Boards (AI und LyraT) hängen in einer bootschleife mit folgendem Report:

Code:
I (914) DISPLAYD_SSD1306_I2C: u8g2_InitDisplay
I (934) u8g2_hal: sda_io_num 21
I (934) u8g2_hal: scl_io_num 22
I (964) u8g2_hal: clk_speed 50000
I (984) u8g2_hal: i2c_param_config 1
I (984) u8g2_hal: i2c_driver_install 1
E (1284) err: esp_err_t = -1

Ist denn das Display richtig angeschlossen und stimmen die Display-GPIOs und die I2C-Adresse? Es sieht so aus, also würde die Grafiklib dein Display nicht bedienen können.

Grundsätzlich empfiehlt es sich bei solchen Sachen erst einmal alle Dienste (Prozesse) in der iRadioMini.c zu deaktivieren und dann nach und nach zuzuschalten. Also erst nur SD-Karte zum Lesen der wifi.txt und playlist.m3u, dann den Audioplayer. Dann gpiod, dann displayd, dann httpd, .... usw.  Bis man die Ausbaustufe erreicht hat, die man für sein Projekt haben will. Nicht gebrauchte Dienste werden (oder bleiben) natürlich abgeschaltet. Mit Speicher müssen wir (im Gegensatz zum Raspberry) beim ESP32 natürlich auch irgendwo haushalten.

Gruß
Bernhard
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
#50
Hallo Bernhard,

ich habe heute wieder von vorne angefangen. Also löschen von:
- ~/esp-adf
- ~/.espressiv
- ~/iRadioMini

vor dem Ausführen der install.sh die board_pins_config.c editiert und vor dem build die "daemonen" in der iRadioMini.c bis auf den player deaktiviert

Ergebnis:
das AI-Board spielt noch nicht, wohl aber das LyraT-Board!

dann webinterface dazugenommen -> funktioniert (btw: hat leider noch keine Lautstärkeeinstellung, Lautstärke ist aber angenehm eingestellt)

Display dazugenommen -> bootschleife. Da steht immer noch irgendwo I2C -> 21/22. Das LyraT hat gpio 23 und 18 nicht explizit gekennzeichnet. Es gibt nur die Pin SCK und SDA. Da werde ich noch recherchieren wie die verdrahtet sind.

Das AI-Board muss ich auch noch untersuchen. Tatsache ist dass es mit einem Minimalsketch mit der alten AC101-Belegung, aber mit dem ES8388 Treiber schon gespielt hat.

Also ich komme auf jeden Fall weiter, und bekomme allmählich auch ein Gefühl für das SDK und iRadioMini. Ich danke dir sehr fürs Anstubsen!
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#51
Hallo Jupp!

(17.02.2022, 12:31)saarfranzose schrieb: ich habe heute wieder von vorne angefangen. Also löschen von:
- ~/esp-adf
- ~/.espressiv
- ~/iRadioMini

Ach herrje. Wie gesagt für ein komplett neues Build reicht es, wenn man den build-Ordner löscht.


(17.02.2022, 12:31)saarfranzose schrieb: Ergebnis:
das AI-Board spielt noch nicht, wohl aber das LyraT-Board!

Ist doch schon mal was!

(17.02.2022, 12:31)saarfranzose schrieb: dann webinterface dazugenommen -> funktioniert (btw: hat leider noch keine Lautstärkeeinstellung, Lautstärke ist aber angenehm eingestellt)

Ehrlich gesagt suche ich immer noch einen "Webdesigner" der sich da vielleicht einbringt, siehe mein "Hilferuf" im Hauptthread.
Aber ich werde mal versuchen ob ich da noch irgendwie einen hübschen Slider hinbekomme.


(17.02.2022, 12:31)saarfranzose schrieb: Display dazugenommen -> bootschleife. Da steht immer noch irgendwo I2C -> 21/22. Das LyraT hat gpio 23 und 18 nicht explizit gekennzeichnet. Es gibt nur die Pin SCK und SDA. Da werde ich noch recherchieren wie die verdrahtet sind.

Also wir haben im ESP32 ja zwei I2C-Controller. Den einen brauchen wir für den AudioDAC, der ist also schon weg. (Das sind ja die Einstellungen von oben in den Board-Ordnern) Den 2. benutzt zur Zeit das I2C-Display. Die GPIO-Einstellung dafür findest Du in /modulesy/display/ssd1306OLED/displayd_i2c.c

PHP-Code:
// SDA - PIN
#define PIN_SDA GPIO_NUM_21

// SCL - PIN
#define PIN_SCL GPIO_NUM_22

// I2C - Adresse
#define I2C_ADRESS 0x78 

An der I2C-Adresse des Displays ändert sich ja nichts, aber die SDA/SCL Leitung kannst Du umlegen, so wie dein Board es braucht. Bei meinem Board liegen die beiden Pins IO21/IO22 ja oben auf dem kleinen Pinheader zum Abgriff.
Bei all dem Hick-Hack um die verschiedenen Board-Varianten, musst Du leider selbst mal schauen wie die Pins bei Dir nummeriert sind.


(17.02.2022, 12:31)saarfranzose schrieb: Das AI-Board muss ich auch noch untersuchen. Tatsache ist dass es mit einem Minimalsketch mit der alten AC101-Belegung, aber mit dem ES8388 Treiber schon gespielt hat.

Wenn es schon gelebt hat, besteht ja Hoffnung.

(17.02.2022, 12:31)saarfranzose schrieb: Also ich komme auf jeden Fall weiter, und bekomme allmählich auch ein Gefühl für das SDK und iRadioMini. Ich danke dir sehr fürs Anstubsen!

Thumbs_up

Gruß
Bernhard
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
#52
Zitat:Ach herrje. Wie gesagt für ein komplett neues Build reicht es, wenn man den build-Ordner löscht.

ich hatte beim build einen Abbruch und wusste nicht warum, deshalb das Zurücksetzen. Mittlerweile weiß ich aber die Ursache. Es sind beim Startverhalten der Dienste in der iRadioMini.c diese Zeilen:

Zitat:TaskHandle_t xxxxxHandle = NULL;

anscheinend dürfen sie nicht auskommentiert sein, bei gleichnamigen Diensten aber auch nicht doppelt vorkommen.

und dann hatte ich gestern zurückgesetzt nachdem ich in sdkconfig ein anderes Board eingestellt hatte. Daraufhin hat der compiler die sdkconfig komplett umgebaut und ich hatte es nicht mehr im Griff. Diese Datei darf also keinesfalls editiert werden. Andererseits funktioniert das Konfigurationsmenu immer noch nicht. Da klemmt noch irgendwas im System.

Code:
Die GPIO-Einstellung dafür findest Du in /modulesy/display/ssd1306OLED/displayd_i2c.c

ja, das hatte ich heute morgen noch im Hauptthread gefunden.

Aber das wusste ich nicht:

Code:
Also wir haben im ESP32 ja zwei I2C-Controller. Den einen brauchen wir für den AudioDAC, der ist also schon weg. (Das sind ja die Einstellungen von oben in den Board-Ordnern) Den 2. benutzt zur Zeit das I2C-Display.

mir war nicht klar dass codec und display nicht den gleichen Bus benutzen. Das schaue ich mir dann noch an.
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#53
Das AI-Board spielt jetzt auch. Ich musste mit dem flash_download_tool den Baustein erst mal komplett löschen. Dann verhielt er sich genaus so wie das Lyrat-Board. Und da gpio 21 und 22 bei dem AI-Board herausgeführt sind aktivierte ich auch das Display. Beim dem LyraT wäre ein Display nur mit Lötarbeiten möglich.

   

edit:

mit
Code:
idf.py erase_flash
hätte man auch den Baustein löschen können
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#54
noch etwas zu dem Betrieb des AI-Board mit I2C-Display:
es funktioniert zwar grundsätzlich, aber es gibt rhythmische Aussetzer in der Wiedergabe, die ohne Display nicht auftreten. Hier hat das Board also noch einen Konflikt. Andere gpio als 21 und 22 stehen nicht zur Verfügung. Kann das jemand bestätigen?
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#55
Hallo Jupp,

Aussetzer durch das Display habe ich nicht, nein das spielt bei mir schon fein durch, aber bei kippeligen WLAN-Empfang (das habe ich zu Testzwecken mal provoziert),  setzt die Wiedergabe natürlich schneller aus, als bei VLC auf dem Raspberry. Klar, wir haben auch nicht solche großen Pufferspeicher. Und auch der Wiederanlauf dauert etwas, wir haben hier halt auch nur 240 MHz vs. 900+ MHz beim Pi.

Etwas störend finde ich die Bedenkzeit des ESP_Dekoders bei der Analyse des Datenstroms. Beim Umschalten muss der ESP_Dekoder erstmal schauen welches Format gestreamt wird, dann entscheidet er, welcher Dekoder (MP3, AAC, ....) in die Audiopipeline gestellt wird.
Auch erkennt er nicht immer das richtige Format und gibt dann auf (muss man nochmal hin-/her-schalten) oder er ermittelt wahrscheinlich auch mal falsche Parameter. Dann gibt es einen Crash + Neuanlauf. Da könnte ich eventuell noch etwas einbauen. Leider können wir nicht in den Quellcode des ESP_Dekoder (eigentlich sämtlicher Softwaredecoder) reinschauen, denn die kommen vorkompiliert von Espressif. Wir sehen nur die Headerfiles, damit wir wissen was für Funktionen in den Binärversionen aufrufbar sind, also die Schnittstelle.

Kannst Du angucken:

https://github.com/espressif/esp-adf-lib...lude/codec

Die Implementierung aber nicht:

https://github.com/espressif/esp-adf-lib.../lib/esp32

Das kann (patent-, lizenz-)rechtliche Gründe haben, oder man will sich hier technologisch nicht in die Karten schauen lassen. Eventuell bekommen kommerzielle Kunden nach Unterschrift unter Geheimhaltungserklärung Einblick in die Quellen. Ist in der Radioindustrie heute durchaus üblich.  Das Gute ist aber, daß diese Codecs von Espressif ständig aktualisiert und gepflegt werden, also da wird sich sicher noch etwas tun.


(17.02.2022, 21:25)saarfranzose schrieb: Andere gpio als 21 und 22 stehen nicht zur Verfügung. Kann das jemand bestätigen?

Nein kann ich nicht bestätigen. Du kannst die I2C Controllerausgänge variabel auf andere GPIOs setzen. Das ist ja das, was Du oben in den Boarddefinitionen für den Audiocodec machst und auch für das Display.

To establish I2C communication, start by configuring the driver. This is done by setting the parameters of the structure i2c_config_t:

Set I2C mode of operation - slave or master from i2c_mode_t

Configure communication pins

Assign GPIO pins for SDA and SCL signals
...



Gruß
Bernhard
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
#56
ich zeige mal kurz in einem Video was ich meine:



während den Aussetzphasen leuchtet LED D4 oder D6. Bei deaktiviertem Display läuft die Wiedergabe flüssig. Es kann sein dass nur meine spezielle Boardrevision betroffen ist. Es tritt auch bei meinem zweiten AI-Board auf. Die beiden Boards sind identisch.
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#57
Das ist ja ein interessantes Fehlerbild. Der Wifi-Radioempfang und auch der Decoder scheinen weiter zu laufen, hört sich an, als würde kurz der Endverstärker zyklisch abgeschaltet bzw. gemutet. Es gibt doch diesen PA-Enable Pin, liegt der bei deinem Board zufällig auf der 21 oder 22? Wenn ja, dann hänge das Display an einen anderen GPIO und route den I2C-Controller auf diesen neuen GPIO.
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
#58
Ja ist er:

#define PA_ENABLE_GPIO GPIO_NUM_21

Ist bei bei meinem Board übrigens auch so in der SW definiert, aber da ich den Kopfhörerausgang benutze, habe ich dies "Störung" durch I2C logischerweise gar nicht, denn der Kopfhörerausgang wird so gar nicht weggeschaltet. Danke für den Tip!
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
#59
Müsste man mal schauen ob das beide Kanäle betrifft oder nur J3 -> https://docs.ai-thinker.com/_media/esp32....2_sch.pdf
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
#60
#define PA_ENABLE_GPIO GPIO_NUM_21
Das Signal geht direkt an den Freigabe / Mute Eingang der beiden Endstufen ICs.
Grüße aus Wassenberg,
Norbert.
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  iRadioMini für ESP32 Bernhard45 17 11.269 09.03.2024, 22:29
Letzter Beitrag: OttoBerger
  Art-Deco Radio mit iRadioMini saarfranzose 9 2.108 21.03.2022, 13:54
Letzter Beitrag: saarfranzose

Gehe zu: