ESPuino auf dem M5Stack Gray - interner DAC?

Hallo,

ich versuche gerade die ESPuino Software auf einem M5Stack Grey zum laufen zu bekommen. Das sieht insofern schon ganz gut aus, dass die SW läuft und ich einen MFC522 und Rotary Encoder angebunden habe. Die Anpassungen soweit waren relativ überschaubar und ich werde wenn alles läuft und Interesse besteht wohl ein Settings.h zuliefern können. Allerdings habe ich noch ein größeres Problem mit dem Ton, und mit meinen bis jetzt noch sehr bescheidenen ESP32 Kenntnissen wäre ich über Tipps, die mich auf die richtige Spur bringen könnten sehr dankbar.

Aktuell ist der Ton extremst verzerrt, an der Grenze zu „tut in den Ohren weh“ und die Lautstärke lässt sich nicht regeln (Rotary enc laut serial Monitor tut aber). Der M5 core hat einen eingebauten DAC. Mir ist nicht ganz klar, was angepasst werden muss damit der läuft. Die Anpassungen laut ESP32-audioI2S Wiki (home · schreibfaul1/ESP32-audioI2S Wiki · GitHub) beheben das Problem nicht. Allerdings läuft ein Code mit mit der Lib ESP88266Audio GitHub - earlephilhower/ESP8266Audio: Arduino library to play MOD, WAV, FLAC, MIDI, RTTTL, MP3, and AAC files on I2S DACs or with a software emulated delta-sigma DAC on the ESP8266 and ESP32 ohne Verzerrungen. An der HW kann es also nicht liegen.

Mir ist bewusst: Streng genommen ist das kein ESPuino Problem, denn ein Minimalbeispiel von ESP32-audioI2S zeigt auch die Verzerrungen, aber vielleicht hat ja jemand der hier mitliest eine Idee die meine Suche nach einer Lösung verkürzen könnte. Wie gesagt ich bin ESP32 Neuling und vielleicht ist es ja was offensichtliches…

Servus,

meine erste Frage wäre eigentlich gewesen: Hast du das mit Jumperwires aufgebaut? Weil als ich das Projekt gestartet habe, hatte ich da auch massive Probleme. Aber nur bei SD, bei Webreadio war alles gut. Am End kam ich dann drauf, dass es einfach an der schlechten Kontaktierung lag. Kram aufgelötet und schon war alles fein. Aber gut, wenn du sagst, dass es mit der ESP8266-Lib (die hatte ich auch mal getestet), dann wird es das vermutlich nicht sein.

Was mir in dem Zuge auch noch einfällt: Ich hatte vor ein paar Wochen nochmal Probleme, mit verzerrten Tönen. Da kam am End raus, dass es am Visaton FR7 lag. Nagelneu, aber da hat offenbar die Schwingspule wo gekratzt.

Also wenn es auch mit dem Minimalbeispiel von Wolle (Schreibfaul) nicht geht, dann ist die Frage ggf. bei ihm besser aufgehoben. (Womit ich aber ausdrücklich nicht sagen will, dass du die Frage hier nicht stellen darfst :slight_smile: )

Hi,

danke für die Hinweise. Ja stimmt während dem Zusammenfassen meiner bisherigen Versuche kam mir schon die Erkenntnis, dass es eigentlich aus deiner Richtung keine Lösungsmöglichkeit gibt. Aber da war der Text schon mühevoll mit dem Smartphone getippt und mein Ziel ist ja am Ende dann doch den ESPuino zum laufen zu bekommen auf der HW die hier halt gerade Rum liegt. Auch wenn es aus deiner Sicht wohl eher ein Exot ist :wink:

Ich hatte sowas mit dem ESP32-A1S schon mal, den habe ich auch zum Laufen bekommen (obgleich ich dessen Verwendung aufgrund der wenigen GPIOs nicht so wirklich empfehlen kann). Reden wir bei deinem (habe davon noch nie vorher gehört) von dem hier? [EOL] ESP32 GRAY Development Kit with 9-Axis Sensor | m5stack-store
Cool finde ich das auf jeden Fall, wenn das auch auf anderen Plattformen läuft. Ich kann das halt nur selbst nicht alles supporten. Es ist quasi jetzt schon zu viel :slight_smile:

Ja genau das ist er.

Ich finde nicht welcher DAC verwendet wird , aber es gibt verschiedene Verfahren der Datenübertragung . Versuche mal in der Library von Schreibfaul , in ESP32-audioI2S-master im File Audio.cpp das MSB in LSB zu ändern .
//---------------------------------------------------------------------------------------------------------------------
Audio::Audio(const uint8_t BCLK, const uint8_t LRC, const uint8_t DOUT) {
//i2s configuration
m_i2s_num = I2S_NUM_0; // i2s port number
m_i2s_config.mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_TX);
m_i2s_config.sample_rate = 16000;
m_i2s_config.bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT;
m_i2s_config.channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT;
m_i2s_config.communication_format = (i2s_comm_format_t)(I2S_COMM_FORMAT_I2S | I2S_COMM_FORMAT_I2S_MSB);
m_i2s_config.intr_alloc_flags = ESP_INTR_FLAG_LEVEL1; // high interrupt priority
m_i2s_config.dma_buf_count = 8; // max buffers
m_i2s_config.dma_buf_len = 1024; // max value
m_i2s_config.use_apll = APLL_ENABLE;

Ist aus diesem Projekt eigentlich was geworden? Die Frage kam gerade heute wieder auf:

Schaltplan ist vermutlich das hier: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/schematic/Core/CORE2_V1.0_SCH.pdf

Müsste klappen:


m_audio.setPinout(12, 0, 2);

Wie klingt der denn?
Den Reader könnte man sicher über so einen Prototype Stack verbinden.

Sehe gerade…das ist der Core2 …

Ja ich hab es zum Laufen bekommen auf dem Grey. Im Grunde (und wenn ich mich richtig erinnere) musste man nur die HAL anpassen und dann ging es. Evtl noch eine Zeile wegen dem DAC.

Er benutzt halt den internen DAC und der Lautsprecher ist nicht so prall. Anfangs war der Sound grässlich, aber nachdem Wolle einen Fix eingebaut hatte hat sich das deutlich verbessert (Details hier: Internal ESP32 DAC · Discussion #95 · schreibfaul1/ESP32-audioI2S · GitHub).

Dem nackten M5 fehlt halt einiges, was den ESPuino aus macht

  • Kein RFID (hatte einen RC522 über Jumperwores dran)
  • Kein Neopixel
  • Ein LCD was nicht genutzt wird

Immerhin geht

  • Drei Tasten
  • Webinterface
  • SD
  • Töne
  • Akku integriert (aber winzig)

Mein Fazit: für Einsteiger wie mich, um erstmal mit rum zu spielen und sich grundsätzlich mit dem ESPuino vertraut zu machen ist es gut. Als Dauerlösung ist es nichts.

Der M5Grey ist jetzt bis auf weiteres eine Wetterstation.

1 „Gefällt mir“