While getting ready to add a switch, with a 10KΩ pull down resistor to Gnd, and the other end of the resistor connected to the WKP pin, the the other side of the Normally Open switch is connected to the 3.3V pin on the Electron. (This was to simulate waking from DEEP SLEEP from a Rising signal from a water detection device.
I hooked up my DMM to the 3.3V pin right at the Electron and the voltage measures 3.34V with Li battery connected and cellular radio on, (No Sleep). When the Electron goes into DeepSleep the voltage jumps to 4.38V, in both cases the USB is connected. The Electron is plugged into a Particle Shield Shield. No Voltage on Vin.
Reading the Electron datasheet, 3V3 -This pin is the output of the on-board regulator. When powering the Electron via VIN or the USB port, this pin will output a voltage of 3.3VDC. The max load on 3V3 is 800mA. It should not be used as an input to power the Electron. This seems like the 3.3V regulator is not working correctly. Has anyone else seen this behavior ?
By the way, the switch simulation worked as expected, waking from System.sleep(SLEEP_MODE_DEEP, 60 * 20, SLEEP_NETWORK_STANDBY); The Console-Events displayed the Data in celsius, on a normal Wake Up after 20mins. it displays the data in Fahrenheit.
@RWB, nope, the regulator doesn’t turn off in deep sleep, just the battery monitor chip if you specify that. I am not seeing how 4.38v can appear on the 3v3 pin so I have to ask what else is the Electron connected to? Do you have USB power?
@ovro67, are you measuring the voltage at the 3V3 pin on the Electron? I would take the Electron out of the shield shield and onto a breadboard to take your measurements. The power path for the 3v3 output does not allow for any voltage.
More info...
I just replaced the Electron with a Photon (no battery) connected USB and measured 3.29V at the same pin (3v3). Plugged in Vin and it remained at 3.29V. Added Adafruit I2C RGB LCD Shield (p.n.714) and 3v3 pin remains at 3.29V.
It sounds like you may have a short circuit on the Shield Shield between 5V and 3.3V. USB feeds through a reverse polarity protection diode to VIN on the Electron. VIN on the Electron is connected to 5V of the Shield Shield, and 3.3V on the Electron is connected to 3.3V on the Shield Shield. You can measure between 5V and 3.3V on the Shield Shield with power disconnected and see if there is a direct low resistance. If you do actually have 4.38V on the 3.3V line… the STM32 MCU on the Electron is probably dead. It has an absolute max rating of 3.6V. So if it’s not dead, perhaps there is a measurement error.
FYI: Did you remove U1 and U2 (TXB0108PWR) from your Shield Shield? They appear to be missing. Check for solder shorts between the pins there.
Hey, you were right, I had a wiring error on the Shield.
I just corrected my error and plugged in the Electron. Now I have several hundred KΩ resistance between 3V3 and +5V.
I connected the USB to the Electron, and DMM across 3V3. It measured 3.4V. The LCD Shield was not connected to the Particle Shield. Then I plugged in the Li battery, the voltage remained at 3.4V. I then attached the LCD Shield and there was no change in voltage. Then I connected VIN to the Shield, voltage still at 3.34V. Removed the USB connection and I still have 3.34V. So I’m guessing that the STM32 MCU survived my wiring error. Thanks to everyone for your help.
Yes I had to remove the (TXB108PWR) since I was using D4 pulled up with 4.7KΩ for the 1-wire bus and it could not supply enough current to satisfy the TXB. So I used the BSS138 from Adafruit and copied what was done on D0, D1 for I2C.
I’m off now to waking from Sleep testing using an external trigger.
Just want to let you know that I had some strange behavior with the WKP pin, namely when I added any length of wire to it the electron woke up to any small ESD/EMI nearby.
Thanks for the heads up. I’m hoping the environment on the boat is quite since the WKP pin is edge triggered. The Electron will be powered from boat batteries and if the engine is running, publishing will stop.I’d really like to be able to just send the data from an array every 5 minutes using a time loop using mills();. Then I could fill each data publish packet and then not use Sleep.
I have experienced this false trigger on my Electron. Just sitting down to the computer if not touching and holding the oscilloscope ground will generate a Wake. I haven’t tried hooking up a corded electric drill and pulling the trigger test, but i’m sure it will generate several glitches that will be seen on the WKP and cause trouble.
Have you found any solutions to desensitizing it?