Wakup aus Deep Sleep mit allen Tasten

Hallo zusammen,

bin gestern etwas verzweifelt.
Ich habe versucht über esp_sleep_enable_ext1_wakeup die Bitmaske für alle meine Taster zu konfigurieren.

Es hat immer nur funktioniert wenn ich ein GPIO in der Maske hatte. Bis ich endlich gemerkt habe das der Parameter ja ESP_EXT1_WAKEUP_ALL_LOW heist!

Also alle Taster müssen LOW sein um aufzuwachen. Da der Standard im Projekt ja schalten gegen Ground ist, sind erst mal alle Eingänge HIGH. Würde man aktiv auf HIGH Schalten könnte man so weit ich das verstehe mit ESP_EXT1_WAKEUP_ANY_HIGH das Aufwachen über irgend einen Schalter realisieren.

Oder bin ich hier auf dem Holzweg?
Hat jemand eine gute Idee?

Moin.

Vielleicht nicht, denn:
internal pullups and pulldowns don’t work when RTC peripherals are shut down. In this case, external resistors need to be added. Alternatively, RTC peripherals (and pullups/pulldowns) may be kept enabled using esp_sleep_pd_config function.

Was man auch beachten muss ist:
Only GPIOs which are have RTC functionality can be used: 0,2,4,12-15,25-27,32-39.

Quelle: Sleep Modes - ESP32 - — ESP-IDF Programming Guide latest documentation

Also keine Ahnung, ob dir das hilft; fällt mir nur spontan so ein :slight_smile:

Ne leider nicht :slight_smile:

Hab externe Pull-ups dran da ich GPIOs 34 + Nutze. Die haben gar keine Internen.

All sind RTC Pins. Das ist auch nicht das Problem. Da jeder alleine ja auch funktioniert.

Es ist die blöde Logic der Funktion. Entweder du kannst konfigurieren das einer High sein muss oder alle Low. Es gibt leider kein „einer Low“ :frowning:

So wie ich das verstehe muss man wirklich die Taster als gedrückt = High auslegen um die Funktion sinnvoll zu nutzen.

Blöd.

LG,
Elmar

oh, danke… auf das Problem wäre ich auch gestoßen, wenn ich endlich meine Teile hätte.
Wenn man das Aufwecken per Button mit dem Aufwecken mittels LPCD-Funktion des PN5180-RFID-Readers kombinieren will, ist *_ANY_HIGH doch sowieso sinnvoll, da das für den RFID_IRQ Pin schon genutzt wird, oder?
Blöd aber, wenn man dafür die Buttons anders anschließen muss.

Was spricht eigentlich dagegen BUTTON_PIN_BITMASK dynamisch zu definieren?
Wenn man also alle 4 Buttons (alle als gedrückt = high) und LPCD vom PN5180 nutzen will:
#define BUTTON_PIN_BITMASK ((1ULL << RFID_IRQ)|(1ULL << DREHENCODER_BUTTON)|(1ULL << PAUSEPLAY_BUTTON)|(1ULL << NEXT_BUTTON)|(1ULL << PREVIOUS_BUTTON))

Das Hauptproblem ist das es eine Hardware Änderung wäre. Dann müsste man die Taster anders anschließen.

Das ist ein ziemlicher Rattenschwanz.
Und in der Software muss auch umgeschrieben werden.

Weiß nicht ob der Aufwand lohnt.

LG
Elmar

Naja, ob sich der Aufwand lohnt kann nur derjenige entscheiden, der es umsetzen will.
Das ist ja das tolle an OpenSource.

Prinzipiell sind wir ja schon mal zwei, die an der Funktionalität interessiert wären.

Die Frage ist aber auch, wie viele Flags und IF-Bedingungen man (@biologist) im Code haben will und ob das Feature Chancen hat in den Hauptzweig aufgenommen zu werden. Einen dauerhaften Fork ist mir das Feature sicher nicht wert.

Hab eh schon einen Fork. Müsste dann aber drei Boxen umverdrahten:(

Hatte auch schon mal testweise eine Buttonlibary drin.

Im Moment reicht mir das aufwachen mit einem Button. Hätte ich es ehr gemerkt, hätte ich die Boxen anders verdrahtet.

Aber den Fork mergen nervt mich auch schon :wink:
Aber alles im Master einbauen lassen will ich auch nicht verlangen;)

So bin ich halt flexibel :slight_smile:

Am wichtigsten ist gerade für mich das ich im Fork Bluetooth drin habe.