Also, damit das hier mal am ordentlichen Platz ist.
Zusammenfassung
Hintergrund:
Ich habe mir (mit guter Absicht!) bei Olimex ein ESP32-ADF besorgt als Basis. Das bringt gute Vorraussetzungen mit für ESPuino, so dachte ich zumindest.
Die Hardware scheint gut, jedoch hapert es mit der Software bzw. den Treibern.
Eigentlich will ich keinen Fork oder sonstwas von ESPuino machen, sondern nur eine Box die mit den RFID-Tags funktioniert. Der Code ist aktuell auch in keinem Zustand, den ich herzeigen kann. Dazu ist vieles noch zu buggy.
PlatformIO fällt als Basis aus, weil es für den ES8388 (Audio DAC+AMP) keinen passenden Treiber gibt. Daher bleibt nur die ESP-IDF bzw. ESP-ADF nativ. Diese bietet viele Vorteile, jedoch muss die Software neu geschrieben werden.
Hardware im Detail:
Das Olimex ESP32-ADF besteht aus
- ESP32-WROVER
- ES8388
- IR-Receiver
- 3.5mm Klinkenstecker für Kopfhörer
- 2x 3W Lautsprecher
- Einige Buttons (4x touch, 3x tactile)
- 2 Mikrophone
- LiPo Ladeelektronik
Ich verwende dazu noch einen RC522 via SPI, sowie einen MCP23017 I2C-Port-Expander.
Die Bedienung mit 3 Buttons und einem Rotary-Encoder gefällt mir gut, habe ich vorerst übernommen.
Es gibt zwar einige Beispiele mit dem ESP-ADF um MP3s zu Streamen bzw. von der SD-Karte abzuspielen, jedoch ist es nicht ganz so trivial, alles zugleich zum Laufen zu bringen. Zudem gibts mit jedem Update der ESP-IDF bzw. ESP-ADF immer wieder so Probleme.
SPI und die SD-Karte und RC522 zugleich haben mir einiges an Kopfzerbrechen bereitet. Mit einem Update der ESP-IDF waren die Probleme dann mit einem Schlag gelöst!
tl;dr
ESP-IDF v4.2.1
ESP-ADF v2.3
Aktueller Stand:
- MP3-Wiedergabe funktioniert von SD-Karte
- RC522 funktioniert
- MCP23017 Port Expander funktioniert
- Kopfhörerverstärker und Kopfhörererkennung funktionieren
- Deep-Sleep und Aufwachen funktioniert
- Buttons und Drehencoder über MCP23017 funktionieren
- SPI und I2C nutzt Hardware
- Interrupts für MCP23017
ToDo:
- WiFi
- Web Interface
- Andere Codecs als MP3 sauber unterstützen
- NeoPixel oder andere LEDs