TonUINO auf dem Esp32 Nano

Hier ist nun länger nichts mehr passiert und der Branch scheint einigermaßen ausreichend getestet zu sein. Ich werde also bald mergen, wenn keiner noch einen Änderungsvorschlag hat.
Danach werde ich mich noch anderen (preiswerteren) ESP32 Varianten zuwenden.

Ich habe in der constants.hpp noch ein define ergänzt für die Nutzung von LiPo Akku. Vwarn 3,4 V und V Off 3,2 V.
Die Pinzuweisung habe ich für 5Buttons auch so geändert, dass die Anordnung der Tasten so wie im Webinterface ist.

Hmmm? Ich hatte bei meinem Testaufbau nur den Arduino gewechselt. Da war die Tastenbelegung ohne Anpassung vollkommen kompatibel zum vorherigen Nano.
Wahrscheinlich eher zufällig ist auch die Tastenanordnung bei mir wie im Webinterface. Hängt offenbar vom individuellen Aufbau ab.

Was genau musstest Du ändern?

Die zusätzliche Anpassung für die Akkuspannung finde ich gut, wenn auch bei mir z. Zt. völlig ungenutzt.

Bei mir läuft der NanoESP32 sehr häufig als Hintergrundunterhaltung. Dabei habe ich keine Auffälligkeiten festgestellt.

Play/Pause unverändert auf A0
Next auf A1
Prev auf A2
Vol+ auf A3
Vol- auf A4

Hier läuft die letzte Version der TNG von @Boerge1 mit der Trägerplatine von @Thomas-Lehnert mit gestecktem KCX BT Modul und Neopixel Ring. Letzteren habe ich aber noch nicht ans Laufen bekommen. Ich habe in der constants.hpp #define NEO_RING und #define NEO_RING_2 eingeschaltet und mit #define NEO_RING_EXT gespielt, alles ohne Erfolg. Das KCX Modul lässt sich aktivieren (dafür scheint #define NEO_RING_2 gebraucht zu werden).

Außerdem bekomme ich das Aktivieren von OTA nicht hin. Bei meinem Original Arduino Nano ESP32 Board kann ich das Partitionsschema wählen, entweder FAT (default) oder SPIFFS. Ich kann aber keine Aufteilung wählen mit OTA wie ich das von anderen Boards kenne.

Was läuft da schief?

BT muss in der Constants.hpp das define aktiviert sein. Neo_ring sollte damit nichts zu tun haben.

Beim Macintosh ist das Verzeichnis etwas kryptisch:
/Users//Library/Caches/arduino/sketches/93AA63A675F89A7CAEB61D640068AB34/TonUINO-TNG.ino.bin

Wobei der Teil …/93AA63A675F89A7CAEB61D640068AB34/ nicht so sein muss. Am besten nach dem Kompilieren die Schlussmeldung ansehen, da steht immer das Verzeichnis in die .bin weggespeichert wurde.

Edit: Diese Antwort bezog sich auf die Aussage, wo die kompilierte .bin bei der Arduino IDE zu finden ist. Man kann es aber noch einfacher haben: Wenn man in der Arduino IDE wählt „Sketch → Kompilierte Binärdatei exportieren“ findet man im Projektordner ein Verzeichnis „build“. Dort klickt man sich durch und findet die .bin.

Neoring 2 darfst du nicht aktivieren wenn du BT verwendest. D2 wird für BT Steuerung gebraucht, aber auch von neo2 verwendet. Das gibt einen Konflikt.

Beim ESP Nano sind beide offiziellen Partitionsschema mit OTA. Es ist ja genügend Speicherplatz vorhanden. Es sollte also funktionieren. Was geht bei dir denn nicht?

Geht aber leider auch ohne Neo2 nicht.

OTA funktioniert! Ich kenne das nur von anderen ESPs dass in der Arduino IDE eingestellt werden muss, wie der Speicherplatz aufgeteilt wird.

Das einzige, was noch nicht funktioniert ist der Neopixel-Ring. Und wenn ich mein iPhone über BT gekoppelt habe, höre ich das nicht, was über diese Verbindung geschickt wird. Geht das nur über Kopfhörer?

Ich hab’s ausprobiert und nicht hinbekommen. Habe den TonUINO als Ziel der Tonausgabe im iPhone ausgewählt aber scheinbar landet der Stream im Nirwana. Geht weder über den Lautsprecher noch über Kopfhörer. Und wenn der Timer abläuft schaltet sich der TonUINO einfach ab, trotz laufenden Streams.

Da liegt ein kleines Missverständnis vor!
Mit dem KCX-Modul ist der TonUINO ein BT-SENDER, kein Empfänger.
Du kannst also über BT nur einen Kopfhörer, einen Lautsprecher oder eine Anlage als Verstärker koppeln.

Wenn Du das KCX-Modul als Empfänger betreiben möchtest, muss auf dem Modul eine Lötbrücke gemacht werden. Das ist m. M. nach aber nicht sehr sinnvoll, da dann nur ein magerer 3W Mono-Verstärker (vom DF-Player) gespeist werden würde.

Nur zur Sicherheit:
D5 vom Arduino liefert nur das serielle Steuersignal für die NEOs. (üblicherweise Anschluss DI = data in)
Masse und Power (+ 5 V) müssen unabhängig vom Arduino versorgt werden.

und nicht vergessen, in der constants.hpp die korrekte Anzahl der NEO-LEDs einzustellen, ansonsten werden einige nicht angesteuert.

Ja klar, ist alles erfüllt. Trotzdem geht der Ring nicht. Ein Hardwareproblem habe ich nicht gefunden.

Ach so, ich dachte ich hätte irgendwo gelesen, dass damit auch vom Handy gestreamt werden kann. Die (nicht vorhandene) Lötbrücke habe ich gefunden. Damit wird dann in den Empfängerbetrieb geschaltet und gleichzeitig der Sender abgeschaltet (TX/RX). Man könnte auch einen Schalter dran löten und nach Bedarf umschalten. Aber du hast wahrscheinlich recht, sehr sinnvoll ist das nicht.

Die Spannungen habe ich (auskommentiert) hinzugefügt.
Die Pinzuweisung habe ich nicht verändert, es soll ja alles so bleiben, wie beim Arduino Nano.

2 „Gefällt mir“

Ich habe noch einen Test wegen des Neopixel-Rings gemacht und kann einen Harwarefehler definitiv ausschließen. Ich habe nämlich auf der entsprechenden Trägerplatine bei sonst gleicher Konfiguration nur den Nano ESP32 ersetzt durch einen mit der neuen Software geflashten Nano Every und damit funktionierte der Neopixel-Ring wie er sollte.
Lieber @Boerge1, könntest du noch einmal in die ESP32 Software sehen, ob da der Fehler liegt?

Außerdem müsstest du einen Weg finden, die automatische Abschaltung zu unterbinden, solange der Stream läuft. Das busy Signal vom Dfplayer wird hier ja nicht aktiv.

Wenn Du zur Hand hast, könntest Du noch einen 5 oder 10 KOhm Widerstand als Pull-Up von D5 an + 5 V versuchen. Manchmal liefert nicht jeder Pin eines ICs ein sauberes HIGH.