-
Notifications
You must be signed in to change notification settings - Fork 964
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improved button-click accuracy #3188
Conversation
If I push the button too fast or too often, I can get the esp-32 to coredump and reboot. Also a long press to put the device into deep sleep has some odd results, as in it shows the shutdown screen, starts to play the tone, after the first three tones I get a Guru meditation error. |
Serial output for the first case: DEBUG | 17:58:51 311 [RadioIf] AirTime - Packet received (noise?) : 542ms Core 1 register dump: Backtrace: 0x4009a5bf:0x3ffbfbdc |<-CORRUPTED Core 0 register dump: Backtrace: 0x4009a750:0x3ffbf54c |<-CORRUPTED ELF file SHA256: 378a178679a40d7a E (2891) esp_core_dump_flash: Core dump flash config is corrupted! CRC=0x7bd5c66f instead of 0x0 rst:0xc (SW_CPU_RESET),boot:0x1f (SPI_FAST_FLASH_BOOT) //\ E S H T /\ S T / C |
Serial output for the second case: Core 1 register dump: Backtrace: 0x4009a5bf:0x3ffbf9cc |<-CORRUPTED Core 0 register dump: Backtrace: 0x4009a752:0x3ffbf54c |<-CORRUPTED ELF file SHA256: 378a178679a40d7a E (8103) esp_core_dump_flash: Core dump flash config is corrupted! CRC=0x7bd5c66f instead of 0x0 rst:0xc (SW_CPU_RESET),boot:0x1f (SPI_FAST_FLASH_BOOT) //\ E S H T /\ S T / C |
I see... fix is under way. |
I opened a new issue related to implementing this fix: #3238 |
The current button implementation polls the GPIO states periodically which often leads to missed button clicks or e.g executing double-press action when triple-press was intended.
This PR implements an interrupt based handling of the (default) button GPIO which is more accurate and improves the user experience.
Tested with tbeam, t3s3, t-echo.
Also: