Erster ESPuino, erste Probleme

Hallo zusammen,

als technisch unversierter Mensch schreibe ich jetzt einfach Mal einen Post dazu :wink: Wir haben gestern endlich den espuino zusammengesteckt, nur will der Drehencoder nicht. Beim Drehen kommt via getRawCount immer nur -1, unabhängig von der Richtung, und als Konsequenz ändert sich die Lautstärke nicht. Haben wir was bei der Verdrahtung übersehen, oder ist unser Bauteil falsch?

Auch der deepsleep will nicht, sobald ich damit kompiliere bekomme ich die Box nicht mehr geweckt (Anm.: Beim ersten Boot ist es nicht möglich, die Box soweit zu bekommen, dass sie den AP öffnet). Aber das habe ich erstmal zurückgestellt.

Last but not least: Ich habe hier einen Stapel diverser … Dinge(?), und frage mich ob ich davon eines verwenden kann als Mosfet. Auf dem Tütchen steht L7805, L7809, L7812, L7815, L7905, L7909, L7913, LM317. Das übersteigt mein Verständnis leider komplett.

a) Hast du die settings der GPIOs passend zur Platine, die du nutzt, angepasst?
b) Sind auf der Unterseite der Platine SMD-Widerstände zu sehen?

Was meinst du mit „damit“? Der Deepsleep ist doch ganz normaler Bestandteil des ESPuinos. Oder redest du vom Aufwecken mittels PN5180?

Das sind Spannungsregler. Die bringen dir hier nichts.

Beschreibe bitte generell mal, welche Hardware du genau verwendest und poste ggf. auch Bilder.

Dazu noch was. Das wundert mich irgendwie. Also wenn die Anbindung der SD-Karte funktioniert und der ESP32 startet, dann fällt mir kein Event ein, was dies verhindern würde. Also dass er ESPuino nicht ins WLAN kommt - ok. Aber nen eigenen AP aufspannen geht eigentlich immer.

Das klingt für mich so als würde ein Pin des Rotary fehlen ( kalte Lötstelle ? ) Poste mal Bilder deiner Platine von beiden Seiten und möglichst scharf .
VG

Ja, vielleicht sollte ich erstmal von Anfang an berichten :wink: Ich hatte ehrlich gesagt nicht so schnell mit einer Antwort gerechnet, daher hier diverse Infos.

Hardware

Ich habe das ganze bisher nur auf dem Breadboard zusammengesteckt und benutze damit das Profil vom Lolin 32D (HAL 3).

Software
Genutzt wird der Software-Stand der refactoring Branch, im lolin_d32 Environment. Aber auch das az-delivery-devkit-v4 zeigt das gleiche Verhalten.


Das Problem hatte ich auch, hatte mir offenbar einen ungeeigneten Pin ausgesucht. Mit der „36“ gehts jetzt.

Damit meint sobald ich #define PN5180_ENABLE_LPCD aktiviere. Egal, ob ich eine 14er oder eine 15er RFID-Karte nehme, ich bekomme ihn daraus nicht mehr geweckt.

Logic-level at PN5180's IRQ-PIN: 0
Kartenerkennung via 'low power' erfolgreich durchgeführt
ESP32 wurde vom Kartenleser aus dem Deepsleep aufgeweckt. Allerdings wurde keine ISO-14443-Karte gefunden. Gehe zurück in den Deepsleep...
ets Jun  8 2016 00:22:57

rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:10124
load:0x40080400,len:5828
entry 0x400806a8

Ohne den PN180 Deep Sleep bootet er vollständig und landet im Idle mit rotierenden LEDs. Die 15er Tags funktionieren damit aber trotzdem nicht (Passwort habe ich angepasst).

Maximale Inaktivitätszeit wurde aus NVS geladen: 10
Initiale LED-Helligkeit wurde aus NVS geladen: 16
LED-Helligkeit für Nachtmodus wurde aus NVS geladen: 2

  _____   ____    ____            _
 | ____| / ___|  |  _ \   _   _  (_)  _ __     ___
 |  _|   \__  \  | |_) | | | | | | | | '_ \   / _ \
 | |___   ___) | |  __/  | |_| | | | | | | | | (_) |
 |_____| |____/  |_|      \__,_| |_| |_| |_|  \___/
 Rfid-controlled musicplayer

 Rev 20210705-1

Wakeup was not caused by deep sleep: 0
Versuche SD-Karte wird im SD_MMC-Modus (1 Bit) zu mounten...
SD card type: SDHC
FTP-User wurde aus NVS geladen: esp32
FTP-Passwort wurde aus NVS geladen: esp32
Lautstärke vor dem letzten Shutdown wird wiederhergestellt. Dies überschreibt die Einstellung der initialen Lautstärke aus der 
GUI.
Initiale Lautstärke wurde aus NVS geladen: 3
Maximale Lautstärke für Lautsprecher wurde aus NVS geladen: 21
Unterer Spannungslevel (Batterie) fuer Neopixel-Anzeige aus NVS geladen: 3.00 V
Oberer Spannungslevel (Batterie) fuer Neopixel-Anzeige aus NVS geladen: 4.20 V
Spannungslevel (Batterie) fuer Warnung via Neopixel aus NVS geladen: 3.40 V
Zyklus für Spannungsmessung (Batterie) fuer Neopixel-Anzeige aus NVS geladen: 10 Minuten
Hostname aus NVS geladen: musikbox
.Aktuelle IP: 192.168.188.95
Freier Heap-Speicher nach Setup-Routine: 128560
PSRAM: 0 bytes
Flash-size: 4194304 bytes
Firmware version=4.1
RFID-Tags koennen jetzt gescannt werden...
Neue Lautstärke empfangen via Queue: 3
Aktuelle Batteriespannung: 6.05 V

Am Drehencoder habe ich die Pins CLK, DT, SW (habe ich als Switch interpretiert, für den Button), +, GND. Auf der Platine sind 3 Stellen für 10k Widerstände zu sehen, aber R1 ist scheinbar frei.

// RFID
#define RFID_CS                         21          // GPIO for chip select (RFID)
#define RFID_MOSI                       23          // GPIO for master out slave in (RFID)
#define RFID_MISO                       19          // GPIO for master in slave out (RFID)
#define RFID_SCK                        18          // GPIO for clock-signal (RFID)
#define RFID_BUSY                   16          // PN5180 BUSY PIN
#define RFID_RST                    22          // PN5180 RESET PIN
#define RFID_IRQ                    39          // PN5180 IRQ PIN (only needed for low power card detection)
// Rotary encoder
#define ROTARYENCODER_CLK           34          // If you want to reverse encoder's direction, just switch GPIOs of CLK with DT (in software or hardware)
#define ROTARYENCODER_DT            33          // Info: Lolin D32 is using 35 for battery-voltage-monitoring!
#define ROTARYENCODER_BUTTON        32          // (set to 99 to disable; 0->39 for GPIO; 100->115 for port-expander)
// Buttons
#define NEXT_BUTTON                      4          // Button 0: GPIO to detect next
#define PREVIOUS_BUTTON                 36          // Button 1: GPIO to detect previous (Important: as of 19.11.2020 changed from 33 to 2; make sure to change in SD-MMC-mode)
#define PAUSEPLAY_BUTTON                 5          // Button 2: GPIO to detect pause/play

Ich hatte zeitweise ein paar Serial.println Debugs drin, nach jeder der Setup-Anweisungen, und er kam nicht über Rfid_WakeupCheck() hinaus. Entsprechend kam er gar nicht bis zum AP-Anschalten.

void setup()
{
    Log_Init();
    Rfid_WakeupCheck(); // Hier ging's nicht weiter.
    System_Init();

Vom Rotary, dem ESP, oder dem Kabelsalat? Da das alles bisher nur auf dem Breadboard hängt, werde ich mal die Pins rütteln hat leider auch nicht geholfen.


Also da bin ich raus . Das wird nie funktionieren. ! Supportende ! Glaub mir . Ich habe es auf meinen Breadbords und mit Dupont‘s nie geschafft. Bin damit schon ca. 4 Jahre beschäftigt . Anfangs mit Tonuino und Arduinos ging es noch halbwegs aber die ESP32 takten viel höher und sind deutlich empfindlicher. Löte alles ordentlich auf Lochraster oder bestelle dir ein PCB von @biologist und ich empfehle wegen PSRAM unbedingt ein Board mit Wrover
VG

Mit dem Aufwecken aus dem Deepsleep via PN5180 gibt es derweil vermutlich noch einen Bug. Ich habe mich noch nicht drum gekümmert.

Übrigens ist mir eine Sache noch eingefallen. Und zwar kann man die Aktion „TOGGLE_WIFI_STATUS“ einer einzelnen Taster oder einer Tastenkombination zuweisen. Per Default ist dies einer Tastenkombination aus NEXT und PREVIOUS zugewiesen. Hast du diese Tasten vielleicht mal zusammen gedrückt und damit das WLAN deaktiviert? Weil der ESPuino merkt sich das.
An der Stelle sollte ich vielleicht mal einen Eintrag im Log generieren, damit das für den Benutzer transparent ist.

Nachtrag: Sehe gerade, dass das mit WLAN ja inzwischen geklappt hat.

Ja, es ist schon mit Vorsicht zu genießen, wenn man das auf Breadboards aufbaut. Also zum initialen Testen ist es schon ok, aber es gibt da einfach verschiedene Probleme. Das größte, das ich hatte war, dass bei Audiowiedergabe von SD Knackser drin waren. Wochenlang habe ich da rumgeeiert…

Zum Lolin D32 pro (das wäre ein ESP32-WROVER) habe ich leider bisher keinen PCB, der auch den PN5180 unterstützt. Ich bin aktuell dabei, einen für Lolin D32pro mit Port-Expander, SD-MMC, PN5180 und SMD Widerständen/Mosfets zu entwerfen. Aber das wird noch dauern. Auch für den von dir verwendeten ESP32-WROOM (von AZ) will ich einen PCB machen. Habe ich nur bisher noch nicht geschafft.

Auf die Schnelle, wenn du das auf einen PCB auflöten möchtest, habe ich nur was Passendes für den Lolin32 da. Damit mache ich jedoch auch 90% meiner Tests. Ist halt kein WROVER, aber läuft dennoch gut (finde ich). Wäre der hier: Lolin32 mit SD (SD_MMC) und PN5180 als RFID-Leser. Vorteil ggü. dem AZD ist auf jeden Fall, dass du damit auch Akkusupport out-of-the-box hast.

Ja, das mit dem Breadbord ist erstmal zum Testen und soll so definitiv NICHT bleiben. Keine Sorge :wink:

Ich werde Mal einen anderen Rotary testen, ob der sich genauso verhält. Und mit etwas Glück finde ich noch einen anderen Microcontroller. Ich glaube einen ttgo müsste ich noch haben… Gibt es dafür schon eine Platine?

Bonusfrage: Wo kauft ihr üblicherweise die Kleinteile, etwa Sockelleisten zum Auflöten, das Mosfet und die JST Stecker/Kabel?

Falls es ein TTGO T8 ist: dann mehr oder weniger inoffiziell schon (Lilygo TTGO T8 v1.7 mit SD_MMC und PN5180/RC522 als RFID-Leser). Habe davon noch zwei hier rumliegen, die haben nur insofern einen Fehler, als dass zwischen GND des Develboards und GND der Peripherie eine Verbindung fehlt. Muss man dann extern eine Drahtbrücke löten. Das ist mir ein Fehler in KiCad passiert, aber lässt sich damit fixen.

Wenn es schnell gehen soll eBay. Wenn ich Zeit habe (was meistens der Fall ist): AliExpress.
Allerdings: Bestellungen in China.

Ich versuche wo es geht von lokalen Händlern Teile zu beziehen. Kostet zwar mehr als direkt in China, dafür darf der Händler auch davon leben, und man hat sicher keine Probleme beim Zoll. :wink:
In Deutschland ist http://berrybase.de ganz nett, ich hatte auch mit https://www.roboter-bausatz.de/ gute Erfahrungen gemacht.

Ob es da FETs einzeln gibt weiss ich allerdings nicht.

Ich habe übrigens ein ESP32-ADF (von Olimex), aber auch einen Port Expander und Rotary auf dem Breadboard. Funzt sauber. Sogar mit 20cm langen Leads :slight_smile:
Allerdings ist dabei SD-Reader, und alles was mit Audio zu tun hat on board.

Ja ich habe auch schon viel bei Makershop bestellt und war auch immer total zufrieden. Das ist quasi um die Ecke bei mir und super schnell geliefert.

Aber einerseits kriege ich dort nicht alles und wenn ich an Develboards denke, dann sehe ich es andererseits auch nicht ein, dafür in Deutschland mitunter einfach mal nen 10er mehr zu zahlen als in China. Das war z.B. bei einem Lolin D32 so. Hast bei Aliexpress für 6eur oder so kaufen können und hier kommen dann zehn Euro drauf. So ein Lolin D32 pro ging da schwer Richtung 20€. Ganz ehrlich: Dafür kannst schon bald nen Raspberry Pi kaufen.
Im Endeffekt kommt der ganze Kram immer aus China. Bestellst das bei nem deutschen Händler, dann ist es halt einfach nur ein „Proxy“.

Wie das jetzt seit dem 1.7 mit Zoll ist weiß ich allerdings nicht. Das könnte die Sache natürlich deutlich ändern, wenn man da wegen jeden Mist zum Zoll muss oder Abfertigungsgebühren zahlen muss. Aber zuvor habe ich immer geschaut, dass ich unter 23eur bleibe und da habe ich nie zum Zoll gemusst und alles kam an.

Aber kann natürlich jeder so machen, wie er möchte :smiley:

Kleines Update von meiner Seite: It’s alive! Danke euch allen für die Inputs!

Ich habe jetzt umgesattelt auf einen TTGO T8, mit der Platine von @biologist und jetzt passt es :tada:

  • Der Drehencoder funzt hier problemlos, ich vermute inzwischen dass die Pinleiste nicht richtig angelötet war.
  • ISO15693 Karten werden auch erkannt (ich hatte einen Zeichendreher im Passwort)
  • Als nächstes probiere ich mich am Deep Sleep Wakeup :muscle:

Und dann fehlt natürlich noch ein Gehäuse, ehe auch die Kinder damit rumspielen dürfen.

Na das klingt doch gut :+1:
Zwei Anmerkungen dazu:

  1. Die genannten ISO-Karten kann man auch ohne Passwort lesen. Nur im Speziellen für die Tonies ist dies notwendig.
  2. Das Aufwecken per Karte scheint aktuell nicht zu funktionieren. Du musst aber vorher die Firmware des pn5180 erstmal aktualisieren. Ich habe mich bisher noch nicht um den Punkt gekümmert, muss ich noch machen.