#neuhier - und Fragen zu meinem Projekt

Moin.

Da musst du dich noch ein bisschen gedulden. Es gibt einen Prototyp, allerdings noch nicht in echt, weil die Platinen noch nicht da sind.

Ansonsten gibt es dieses Board hier: ESPuino-miniD32(pro): Lolin D32/D32 pro mit SD_MMC und Port-Expander (SMD). Das kann man mit Lolin D32 und Lolin D32 pro verwenden. Den o.g. Prototyp habe ich vom Pinout auch so geplant, dass er da auch passt. Größe habe ich auf der Seite beschrieben; grob gesagt einen Tick kleiner als eine RFID-Karte. Das Develboard wird dann gesockelt.

Zum Rest schreibe ich dir eine PN.

Na dann brauch ich meiner Frau noch nicht sagen, das ich wieder eine Box baue :smile:

Ich warte dann mal, was aus deiner Bestellung @biologist wird und ob das wie gewünscht funktioniert.
Hab ja kein Zeitdruck. Ganz im Gegenteil, bin ja anscheinend zum richtigen Zeitpunkt auf das Board hier gestoßen.

Ich steck mal die Tage was auf einem Breadboard zusammen und schau mir die Software an.

Ok, passt.
Lass dir nur gesagt sein: Speziell was SD angeht, sind Jumper-Wires/Breadboards kritisch. Also wenn du da irgendwelche Störgeräusche, Knackser etc pp hast, dann liegt das gerne daran.

Ja klar. Mir geht es mehr um die Software. Das ganze Projekt anschauen und probieren. MQTT hab ich auch einiges zu probieren.

Ich bin endlich mal dazu gekommen, die Stiftleisten und Leitungen an die Module zu löten. Das Schwierigste war, die Stiftleisten aus dem Drehgeber rauszubekommen (mehrere Punkte ziemlich hochschmelzendes Lot), um die Verbinder direkt einzulöten.

Fragen, die sich daraus ergeben:

A) Den MFRC522 (Ja, ich weiß - selbst schuld :rofl:) bekomme ich nicht ganz auf den JST-Connector ge-mapped: Geht SDA auf CS (gelbe Leitung) oder auf BSY (lila)? 5 V (schwarze Leitung) wird wohl nicht gebraucht.

B) Am Lautsprecher-Anschluss (der 2er neben dem habe ich keine +/- Markierung für die korrekte Phase gefunden. Kann man sich da auf rot/schwarz verlassen? Mind. ab 3er-Kabel scheint Farbe nicht mehr auf Polung abgestimmt zu sein (z.B. Drehgeber). Bei den Buttons ist es ja egal.

C) Aprospos Buttons: Bei 2-Knopf-Bedienung wird der 1. (Back) und 3. (Next) belegt, richtig? Play wird ja über den Drehgeber-Switch gesteuert.

Als nächstes kontrolliere ich nochmal alle Pin-Verbindungen und mach ich mich mal an VSC und die Parameter-Konfiguration ran (erstmal Standard). Dann befasse ich mich nochmal detaillierter mit dem Flashen über Micro-USB und die WLAN-Konfiguration.

Erstmal Mono-Mix-Down zum Laufen bringen - Dann kann ich überlegen, ob ich mich an die Spannungsteiler für Stereo und den zusätzlichen MAX-Verstärker ranwage. Die Widerstände sind SMD, da habe ich noch null Erfahrung…

Schön, dass nach Tagen der Ruhe, mal wieder jmd. hier was schreibt :slight_smile:

Da will ich demnächst auch mal Adapterplatinen für bereitstellen. Mich nervt das auch :slight_smile:

5 V, BSY, RST und IRQ brauchst du nicht.
SDA mappt auf CS.

Das kann ich dir nicht beantworten, da das ein fertiges Modul ist.

Ja ich gebe zu, dass ich das ein bisschen verkackt habe. Ich habe ganz am Anfang nicht drauf geachtet und es dann halt so gelassen, damit ich die ganze Peripherie nicht doppelt hier rumliegen habe. Und irgendwann wollte ich es dann nicht mehr ändern, weil es doch inzwischen von einigen Leuten so verwendet wird.

Na das kannst du dir aussuchen.
Schau mal hier in den Settings. ESPuino/src/settings.h at 161e2716ee8d430811c83d482a3649e5f7ea61bc · biologist79/ESPuino · GitHub
Also erstmal ist zu sagen, dass die Bedeutung der Zahlen 0 bis 5 ab Zeile 89 beschrieben ist. Und ab Zeile 113 gibt es dann Aktionen zum kurzen Drücken, zum langen Drücken und zu einer Kombination aus zwei Tasten. Die Aktionen, die du zuweisen kannst, findest du hier: ESPuino/src/values.h at 161e2716ee8d430811c83d482a3649e5f7ea61bc · biologist79/ESPuino · GitHub (Zeile 34 bis 62).
Auf dem Drehencoder liegt beim kurzen Drücken normalerweise die Anzeige der Akkuspannung.

2 „Gefällt mir“

Purer Egoismus :wink: Es ist echt klasse, dass es diesen Ort hier gibt. Und ich muss nochmal loswerden, dass sowohl die Platine als auch die Doku erstklassig vorbereitet sind. Wenn trotzdem Fragen verbleiben, ist das halt der Komplexität in Verbindung mit meiner Vorbildung geschuldet :slight_smile:

erledigt. RST kann aber trotzdem verbunden bleiben, oder?

Das war wichtig: Ich habe es erst nicht verstanden, weil ich ich den Reset-Anschluss-JST (neben dem MAX) für den Lautsprecher-JST gehalten hatte. Jetzt ist klar: Lautsprecher kommt auf den blauen Aufsatz
auf dem MAX (der mit den Schraubanschlüssen). => Anderes Kabel angelötet, und das JST-Kabel gleich an den dritten Button gelötet, der ja offenbar doch zur Standard-Konfiguration gehört.

Nix verkackt, ist ja bei zig Adern auch schwierig, noch die Farbe zu berücksichtigen, gerade mit 3,3 V und 5 V (beide rot wär auch doof…). Fazit: Man muss halt nur wissen, wie die Konvention ist (bzw. einfach auf die Beschriftung achten, nicht auf die Farbe). Easy.

OK, ich lasse erstmal Alles im Standard, auch wenn ich nur 3 Buttons nutze. Dann kann man immer noch optimieren.

Danke für die verlinkten Artikel (Ist ja ein Service hier… :wink: Hatte es aber auch schon gut aufgefunden - Gut strukturiertes Forum!). Weil ich schonmal mit der ESP32 NodeMCU rumgespielt hatte, hatte ich schon beim TONuino versucht, mit VSC zu arbeiten (und bin kläglich gescheitert, weil der Sketch für die ArduionoIDE optimiert war und ich zu wenig Einblicke hatte). Insofern lief das schnell, nur die Auswahl des Profils lief nicht wie im Screenshot (Zeilte unten Punkt 4) - ging dann aber anders. Git-Integration war auch neu für mich, in die Details mit stashen, stagen, PRs usw. kenne ich mich noch nicht aus, wollte da aber länger schon ran.

Ich habe auch die Anpassungen in src/settings.h gemacht:

#define PORT_EXPANDER_ENABLE
#define SD_MMC_1BIT_MODE
#define HEADPHONE_ADJUST_ENABLE

Ich benutze den Port-Expander ja nicht, aber schadet wohl auch nicht… Da ich den MFRC522 nutze, habe ich den natürlich nicht gegen den PN im Code ausgetauscht.
Und in settings-lolin_d32_pro_sdmmc_pe.h:

#define INVERT_POWER
#define POWER                           115

(JP5 ist ja auf 2-3 gelötet)

So - Eigentlich müsste ich das jetzt einfach per MicroUSB anschließen und flashen können, oder? Ich habe noch etwas Muffensausen, weil da irgendwas von „abrauchen“ stand… Aber bei der von Dir gelöteten Platine kann ja eigentlich nicht viel schiefgehen… Den Eremit-Akku lasse ich erstmal außen vor, aber die gemessene Polarität am JST passt zur +Markierung auf dem JST.

Stören wird’s vermutlich nicht.

Der ist nicht optimiert sondern war (ist?) fehlerhaft. Da haben Typendeklarationen gefehlt im Code und die Arduino-IDE winkt das offenbar so durch, weil sie intern irgendwelchen Kram macht. Zufälligerweise weiß ich das, weil ich dort mal ein Tutorial geschrieben habe, wie man das in VSC reinkriegt.

Wieso benutzt du den nicht? Da laufen alle Buttons drüber, die Ansteuerung des MAX und ggf. auch der Kopfhörerplatine. Alle Nummern, die zwischen 100 und 115 liegen, gehören zum Port-Expander. Übrigens steht „pe“ im Namen der zugehörigen Settings auch dafür :slight_smile:

Ja, dann ist der POrt-Expander sogar für die Ansteuerung des Power-Mosfets notwendig. Kurzum: Hättest du Port-Expander nicht aktiviert, dann würde dein ESPuino gar nicht richtig starten.

Jo.

Schau halt, dass + / - nicht vertauscht sind. Wo es auf jeden Fall knallt ist, wenn man das am Neopixel vertauscht. Dann raucht auf dem D32 pro der Festspannungsregler ab.

1 „Gefällt mir“

Solche aussagen machen mich leicht nervös… :rofl: Nein, alles gut, denke auch, das tut nicht, vielleicht löte ich ihn noch ab.

OK, das erklärt, wie es zu dieser „Optimierung“ kam :grin: An das Tutorial erinnere ich mich, war mir dann aber zu aufwändig. Wie auch immer: Ich freue mich, dass hier gleich VSC genutzt wird.

OK - Ich dachte, dass man für den PE an die Pins rangehen muss (Dazu seien die da) - Aber dann ist das intern geroutet, verstehe.

Ja - Das war die Alarmglocke, die bei mir im Hinterkopf schrillte. Irgendwas von dem vielen Gelesenen bleibt zum Glück hängen :slight_smile: Ich kontrolliere nochmal und melde dann Vollzug.

Auf die Gefahr hin, dass es nervt, aber ich kann Dir nicht genug für Deinen engagierten Support hier danken! Leider bin ich IT-Autodidakt mit begrenzter Freizeit, Aber ich hoffe, dass ich irgendwann mal tief genug drin bin, um was zurück zu geben.

Update: Vollzug. Alles eingerichtet, erste Karte läuft. Reversiere gerade die Drehrichtung des Drehencoders. Dann fehlt nur noch ein Gehäuse - Topp!

Und wenn mir langweilig ist, gehe ich das Stereo-Thema an :slight_smile:

Update 2:
Das zweite Gerät hatte ich geflasht mit REVERSE_ROTARY aktiviert. Das dürfte eigentlich keinen Einfluss haben - Aber der RFID-Reader reagiert nicht auf die im anderen Gerät programmierte Karte (dieselbe µSD, aber er lädt weder das Album, noch weist er die Karte neu zu). Die rote LED leuchtet aber.

Das erste Gerät habe ich nochmal geflasht (wg. REVERSE_ROTARY). Im Prozess fängt der plötzlich an, mittelfrequent zu fiepen, und schmeißt einen Error. Die Konsole spricht (gekürzt und anonymisiert):

> Executing task in folder ESPuino: C:\Users\Matthias\.platformio\penv\Scripts\platformio.exe run --target upload --target monitor --environment lolin_d32_pro_sdmmc_pe <

Processing lolin_d32_pro_sdmmc_pe (board: lolin_d32_pro; platform: espressif32@<=3.5.0; framework: arduino)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Library Manager: Installing Hash
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/lolin_d32_pro.html
PLATFORM: Espressif 32 (1.11.0) > WEMOS LOLIN D32 PRO
HARDWARE: ESP32 240MHz, 320KB RAM, 16MB Flash
DEBUG: Current (esp-prog) External (esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:
 - framework-arduinoespressif32 @ 0.0.0+sha.46d5afb
 - tool-esptoolpy @ 1.20600.0 (2.6.0)
 - tool-mkspiffs @ 2.230.0 (2.30)
 - toolchain-xtensa32 @ 2.50200.80 (5.2.0)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 50 compatible libraries
Scanning dependencies...

(...)

Warning: Could not auto-detect Flash size (FlashID=0x0, SizeID=0x0), defaulting to 4MB
Compressed 17104 bytes to 11191...

Writing at 0x00001000... (100 %)
Wrote 17104 bytes (11191 compressed) at 0x00001000 in 0.3 seconds (effective 534.3 kbit/s)...

A fatal error occurred: Timed out waiting for packet header
*** [upload] Error 2
====================================================================================== [FAILED] Took 82.26 seconds ======================================================================================
Environment             Status    Duration
----------------------  --------  ------------
lolin_d32_pro_sdmmc_pe  FAILED    00:01:22.257
================================================================================= 1 failed, 0 succeeded in 00:01:22.257 =================================================================================Der Terminalprozess "C:\Users\#######\.platformio\penv\Scripts\platformio.exe 'run', '--target', 'upload', '--target', 'monitor', '--environment', 'lolin_d32_pro_sdmmc_pe'" wurde mit folgendem Exitcode beendet: 1.

Das Terminal wird von Aufgaben wiederverwendet, drücken Sie zum Schließen eine beliebige Taste.

Es sieht so aus, als würde er das Profil nicht richtig erkennen.

Die SD hat damit nix zu tun. Gespeichert werden Zuordnungen im Mikrocontroller. D.h. wenn du einen anderen Mikrocontroller verwendest, dann kennt dieser keine Zuordnungen. Weil auf der Karte selbst wird NIX gespeichert. ESPuino liest immer nur IDs von Karten aus.

Den Rest habe ich noch nie gesehen muss ich sagen. Zur Not flashe es wieder mit „Standardeinstellungen“ und löte die Drähte CLK/DT am Drehencoder um. Das wäre quasi die Hardware-Variante von REVERSE_ROTARY.

Ja, dass die RFIDs nix enthalten, wusste ich, aber die SD ist offenbar auch nur für die MP3s und die Backup Datei - Verstanden.

OK, ich schaue mal, wie ich meine gespeicherten Stände auf den Stand Deines Git-Repos zurücksetze, mache dann die Konfiguration neu und flashe erneut. Das hochfrequente rote Blinken neben dem Akku-Anschluss auf dem ESP (ca. 10/sekunde) ist auch normal?

Über USB kann ich aber immer wieder drüber-flashen, richtig? Mit Commits usw. hat das auch nichts zu tun, oder? Ich habe bisher einfach nur den Code im Verzeichnis (also wohl lokales Git-Repo) gespeichert.

Ja, das kommt vom LiPo-Laderegler.

Ja.

Also mir sind diesbzgl. keine Fehler bekannt.

1 „Gefällt mir“

So ganz komm ich nicht ran. Der Drehencoder funktioniert invers, was für ein erfolgreiches Flashen spricht. Trotzdem Fehlermeldung und Fiepen… :thinking:

Vielleicht hat es was damit zu tun?
Warning: Could not auto-detect Flash size (FlashID=0x0, SizeID=0x0), defaulting to 4MB
Eigentlich müsste der sich doch miit 16 MB melden, oder? PlatformIO Project Environment ist aber auf lolin_d32_pro_sdmmc_pe

und ab und an flacker eine oder auch mal mehrere LEDs blau ('ne Zehntelsekunde, aber mehrfach)

Das zweite Gerät hat sich jetzt auch irgendwie „gelöst“: Wenn ich es mit der RFID-Karte berühre, geht es, Millimeter darüber nicht. Der SDA wirkt etwas zart angeheftet (dann zu hoher Übergangswiderstand), ich muss da wohl mit dem Lötkolben nochmal nacharbeiten. Oder MFRC hat eine Macke (hab zum Glück noch einen rumliegen). Aber grundsätzlich geht es.

Kannst du mal versuchen, da den esp32 zu flashen, wenn er nicht in das ESPuino-Board eingesteckt ist?

Vielleicht fällt ja sonst wem noch was dazu ein. Glaube vereinzelt mussten Leute irgendwas mit gpio0 machen (oder so ähnlich).

So, endlich zu gekommen - Danke auch für den Link. Der Tipp, ohne Board zu flashen, war entscheidend…

Anderes USB-Kabel: Fatal Error. Nur ESP flashen: Ging. Also wieder auf’s Board und alle Komponenten nacheinander abgeklemmt. Fatal error. Also das Board? Nein - Zwei „Komponenten“ fehlten: Der Lautsprecher und die µSD. Und siehe da: µSD raus - läuft.

Ich kann die jetzt natürlich drüber formatieren und hoffen, dass es dann wieder geht. Aber sollte auf Dauer die SD nicht beim Flashen einfach drin und erhalten bleiben können? Beim ersten Mal war die meiner Erinnerung nach doch auch drinnen… (Allerdings noch ohne Daten, die habe ich offenbar nach erfolgreichem Test mit Daten bespielt).

Irgendeine Idee?

In jedem Fall habe ich jetzt wenigstens eine Ursache und einen Work-Around.

Edit: Ich habe jetzt die SD nochmal formatiert (2 GB, war auf FAT, jetzt FAT 32), damit ging flashen. 2 Verzeichnisse mit Hörspielen drauf (Dateinamen mit moderater Länge) => Fehler beim Flashen. Nur ein Verzeichnis, Verzeichnis und Dateien um Umlaute bereinigt => Fehler beim Flashen

Hmm, da fällt mir jetzt ehrlich gesagt auch nix zu ein. Dass man den ESP32 bei eingesteckter SD-Karte nicht flashen kann kenne ich nur, wenn man den einen PullUp-Widerstand auf dem SD-Modul nicht auslötet. Aber das würde mich ein bisschen wundern, wenn ich das vergessen hätte.

Was dir halt ansonsten eh noch bleibt, ist das Flashen per OTA. Da kompiliert man die Firmware in Platformio und kann sie dann über die Weboberfläche auf den ESP32 hochladen. Ganz ohne Verbindung per USB.

Kann man ja - Solange sie leer ist.

Ich denke, ich probiere mal eine andere SD-Karte.

Ich bin immer noch dran, habe aber gerade enorm wenig Luft für das Projekt.

Ich habe am SD-Modul zwischen C1 und C2 eine Lötbrücke entdeckt, habe den Camshot aber gerade nicht parat. Aber das Problem besteht auf beiden Geräten, das wird nicht zufällig die gleiche Lötbrücke sein… Und es scheint doch nicht vom Inhalt der SD abzuhängen (auch wenn die leer ist).

Also werde ich demnächst mal das WLAN-basierte Update probieren. Aber das Gerät an sich läuft ja auch schon.

Was mir noch unklar ist: Wie stöpselt Ihr den Micro-USB dran (z.B. zum Laden des Akku)? Der ESP ist ja etwas vom Platinenrand weg, der wird also nicht an’s Gehäuse reichen. Gibt es da eine Verlängerung, mit der man den rauszieht?