I am working on a project using Borons and I am running into an issue during what should be a wakeup event where the designated wakeup pin (D8) is at 1.8V and the Boron does not wakeup.
Device Description
In each device, there is a Boron that is powered in one of three ways: through a very large external battery that is regulated down to 5V and powering the Boron through the VUSB pin, through USB, or through a small Boron-connected battery. The large battery is expected to be connected and disconnected (swapped) at any time. USB is not expected to be connected by anyone but a technician. The Boron-connected battery is just in place to power the RTC and not require a full boot-up of the application code each time. It is expected that there will be no cellular connectivity for most of the operational time of the device. D8 is used to monitor VUSB through a resistor divider (10s of kohm) such that 5V on VUSB corresponds to 3.3V on D8. Debugging is through Serial1.
Sleep Code
As a user may be connecting or disconnecting the large battery at any time, the application code waits 10 seconds for a reconnect, then waits for the large battery voltage to drop, then for the cellular modem to turn off, and then goes into ultra low power mode with gpio wakeup on D8 and the mode button.
What Happens
As I watch the debug output, the application code concludes and there is some system output lines, if I reconnect the large battery then, the Boron will not wakeup, and the D8 pin is steady at 1.8V.
Here are the channels:
CH1 = D8 Pin
CH2 = VUSB Pin
CH3 = 3.3V Pin
The Questions
Is there a minimum required rise time for the D8 (or any other) pin?
Is there an unexpected/undocumented feature of D8 that makes it unsuitable for a wakeup?
What is causing D8 to hold at 1.8V?