Skip to content

GPIO36 "fake" falling interrupts #4903

Closed
@stuartpittaway

Description

@stuartpittaway

Hardware:

Board: ESP32-WROOM-32U
Core Installation version: PlatformIO 5.1.1a3
IDE name: Platform.io
Computer OS: Windows 10

Description:

I'm using version 3.10005.210223 of platformio/framework-arduinoespressif32. If I attach a falling interrupt to GPIO36 it will continuously trigger. The pin is pulled high externally via a touch screen. Verified with scope.

Swapping back to version 3.10004.210126 fixes this issue and the interrupt returns to normal, only triggering on genuine transitions of the pin.

Describe your system( Hardware, computer, O/S, core version, environment).
Windows 10, Platform IO

This seems to be similar (but not identical to) this issue, espressif/esp-idf#1096
however I am not using the ADC or any power saving features (wifi is enabled).

Activity

me-no-dev

me-no-dev commented on Mar 6, 2021

@me-no-dev
Member

interesting... there has been no change to the code for GPIO and interrupts here. I would guess that there has been a change in the wifi driver that is causing the issue to show, or do you not have WiFi/ADC on?

felmue

felmue commented on Mar 6, 2021

@felmue

Hello guys

I noticed the same thing on an M5Paper device which uses GPIO36 as interrupt from the touch screen. I get constant 'ghost' interrupts.

And I can confirm that it only happens if WiFi is active. As soon as I invoke a WiFi.disconnect() the ghost interrupts go away. When I invoke a WiFi.begin() the issue starts again.

I only see the issue with framework-arduinoespressif32 - 3.10005.210223 (1.0.5).

With the previous version, e.g. framework-arduinoespressif32 - 3.10004.201016 (1.0.4) the issue does not happen.

Thanks
Felix

me-no-dev

me-no-dev commented on Mar 9, 2021

@me-no-dev
Member

This is in line with the hardware issue with IOs 36 and 39 mentioned in the ESP32-ECO and changes in the WiFi driver.

me-no-dev

me-no-dev commented on Mar 9, 2021

@me-no-dev
Member

I saw somewhere mentioned that WiFi.setSleep(false); after connection is established could help.

felmue

felmue commented on Mar 9, 2021

@felmue

Hello @me-no-dev

thank you for the information. I can confirm that disabling the WiFi sleep mode prevents the 'ghost' interrupts. E.g.

WiFi.setSleep(WIFI_PS_NONE);

Thanks
Felix

stuartpittaway

stuartpittaway commented on Mar 9, 2021

@stuartpittaway
Author

With the previous version, e.g. framework-arduinoespressif32 - 3.10004.201016 (1.0.4) the issue does not happen.

Same here, with SDK Version v3.2.3-14-gd3e562907 - everything is good.

@me-no-dev do you have a link to the hardware issue/bug reference you mentioned about the ESP-ECO?

me-no-dev

me-no-dev commented on Mar 9, 2021

@me-no-dev
Member
stuartpittaway

stuartpittaway commented on Mar 9, 2021

@stuartpittaway
Author

Thanks for this.

If I use the WiFi.setSleep on version 3.10005.210223 / v3.3.4-432-g7a85334d8 then the interrupts fire as expected.

innovationcentralph

innovationcentralph commented on Oct 21, 2022

@innovationcentralph

Hello @me-no-dev

thank you for the information. I can confirm that disabling the WiFi sleep mode prevents the 'ghost' interrupts. E.g.

WiFi.setSleep(WIFI_PS_NONE);

Thanks Felix

Thank you so much for this.

This solved my issue

rozrabiak

rozrabiak commented on Jan 18, 2025

@rozrabiak

Hi, above solution not work for me.
Any ideas?

Chip is ESP32-D0WDQ6 (revision v1.0)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz

[EDIT]: this is solution for my esp32:

As a workaround, call adc_power_acquire() in the app.
This will result in higher power consumption (by ~1mA), but will remove the glitches on GPIO36 and GPIO39.
added a commit that references this issue on May 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      GPIO36 "fake" falling interrupts · Issue #4903 · espressif/arduino-esp32