Skip to content
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

The NeoTrellis INT line occasionally getting stuck low issue. #76

Open
lfg6000 opened this issue Jul 5, 2022 · 0 comments
Open

The NeoTrellis INT line occasionally getting stuck low issue. #76

lfg6000 opened this issue Jul 5, 2022 · 0 comments

Comments

@lfg6000
Copy link

lfg6000 commented Jul 5, 2022

Bug Report:

The NeoTrellis INT line occasionally getting stuck low issue.

Reproduce Case:

I created a very simple reproduce case that is documented below:

Setup:

  • (1) ItsyBitsy M4
  • (1) NeoTrellis Keypad
  • (1) Adafruit example code: interrupt.ino from the Adafruit seesaw Library\examples\NeoTrellis\interrupt\interrupt.ino
    (this Adafruit example code polls the neotrellis INT line (there are no interrupts being used on the M4...the file name interrupt.ino is a bit confusing)
  • this reproduce case is 100% Adafruit example code
  • using visual code v1.68.1 / platformio v2.5

Pictures:

This bug report was originally posted on the adafruit forum which included some pictures
https://forums.adafruit.com/viewtopic.php?f=22&t=192463

Test:

  • press a kypd button a few times with the loop() delay set to 2ms.
  • press a kypd button a few times with the loop() delay set to 50ms.

Results:

  1. when the delay() in loop() is 2 ms the INT line does Not get stuck low
  2. when the delay() in loop() is 50 ms the INT line Does get stuck low occasionally (anything >= a 7 ms delay() will cause the INT line to occasionally get stuck low)

Conclusions:

  1. the length of the delay() in loop() appears to adversely affect the neotrellis INT pin's behavior
  2. any code in loop() that takes longer then 7 ms to run will cause this issue to appear
  3. this seems like a bug in the neotrellis firmware (ATSAMD09D14A see saw firmware)
  4. this is a very straight forward way to reproduce the issue for testing and debugging

Hope this is helpful,
Louie

p.s. i have 13 of these neotrellis boards.
p.s. there is a workaround...detect when the INT line is stuck low and call NeoTrellis.SWReset()
p.s. i think Adafruit is awesome. I am very happy Adafruit customer. Your sw libraries make building so easy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant