I’ve been wrestling with the digital pin behavior on an E310 and am wondering if anyone can help. I am running the latest firmware with threading disabled.
I have three pins (D1, D2, D4) configured as INPUT_PULLDOWN in setup(), and have found that they go high briefly on startup, when receiving application updates via cellular, and after sending a particle.publish. This is problematic because I need to be able to rely on getting accurate input from these pins.
I was able to work around the startup and publish behavior by adding delays at the end of setup and after each publish event respectively though this is less than ideal, and I have been unable to find a workaround for the update behavior because I can’t find any way to determine it is happening (event, syscall, etc) before the pins go high.
So I have two questions - first, is all of this behavior expected and unavoidable? Second, if so, is there a way to identify when an update is coming in so I can ignore the pins pre-emptively? I have tried event handlers, checking for OTA updates, but the pins always go high before the event registers and I can react to it.