Cannot get MDBT42Q current draw below 95uA #3679
Replies: 7 comments
-
Posted at 2021-03-05 by AkosLukacs Have you connected anything to serial pin (D0 on MDBT40Q)? That would turn on the high speed oscillator and increase power draw. |
Beta Was this translation helpful? Give feedback.
-
Posted at 2021-03-05 by @gfwilliams That's odd - literally just You could also try the above. It won't sleep, but should reduce power consumption both when idle and connected
|
Beta Was this translation helpful? Give feedback.
-
Posted at 2021-03-05 by gmurphy @AkosLukacs D0 is connected to a NO switch (same as the breakout). @gfwilliams using that code, it remains largely the same (88-95uA, but with spikes for the advertising). When using NRF.sleep(), I do not see it show up in NRF Connect - though (unexpectedly) I also don't see anything with the same address show up when using Gordon's code snippet (it still appears correctly after a hard reset). Tested on two MDBT42Q breakouts. To make extra sure the code is getting executed, I flash the LED, and I verified my current measurement tool can go down to single-digit uAs (by measuring other projects). For giggles I also flashed Espruino to an Adafruit nRF52832 Bluefruit Feather, and with straight NRF.sleep(), I get uA readings that oscillate between 0 and 90uA about once a second which I assume is coming from all the other stuff on the board (whereas I never see a number below ~88uA on the Espruino board). Will keep experimenting! |
Beta Was this translation helpful? Give feedback.
-
Posted at 2021-03-07 by AkosLukacs Interesting, IIRC Espruino interpreter does "wake up" periodically, some timer runs out, it's documented somewhere. So short spikes in power consumption is expected. When did you buy the Espruino and the Raytac module? Long shot, but maybe Raytac changed something in the module, and doesn't go as low power as earlier modules did? Got mine with the Bangle kickstarter. Or maybe you uploaded something earlier to the modules that changed fuse bits?Attachments: |
Beta Was this translation helpful? Give feedback.
-
Posted at 2021-03-07 by gmurphy Ah that's super interesting - all my modules were purchased in the past month, from a mix of Adafruit and Amazon (I needed next day, so I bought the kit).
But interestingly, I also got it running on an MDBT42V (the super tiny new one from Raytac) using the same method, and on that board I do manage to get ~20uA sleep! |
Beta Was this translation helpful? Give feedback.
-
Posted at 2021-03-08 by @gfwilliams It is strange - I see what @AkosLukacs reports - there are small spikes of power usage, but the average is extremely low. I wonder whether it's possible your meter is doing something like showing you the maximum power used over a period, and not the average? You could try attaching a big capacitor across it to soak up any peaks of power draw |
Beta Was this translation helpful? Give feedback.
-
Posted at 2021-03-09 by gmurphy My meter updates at about 5hz (whereas @AkosLukacs' spikes seem to occur every few seconds), and has been quite good at instantanteous readings so far, but given that no-one else seems to see this I'll tinker some more and report back. FWIW I flashed a second MDBT42V, and that also got the 20uA readings. |
Beta Was this translation helpful? Give feedback.
-
Posted at 2021-03-05 by gmurphy
Hi,
I am certain I have missed something, but have been tearing my hair out over this - I have two Espruino MDBT42Q breakout modules, as well as a bare module I got from Raytac that I flashed myself. On all of these modules, using firmwares 2v04, 2v07, 2v08, and 2v08_189, according to my current measurements (tested using both a uCurrent Gold + multimeter and a Current Ranger with its default OLED), and with a variety of power sources, I haven't been able to get the current draw below 95uA, even when I bypass the voltage regulator and directly power the modules through their VDD and GND pins.
I've tried a variety of things, but even the following code, on Flash + Reboot, or in RAM fails to get it below this number. It also sits at this number between advertising packets when I'm not sleeping it, so maybe NRF.sleep isn't doing the right thing?
Apologies in advance for missing something obvious, whatever it may be 😬
Beta Was this translation helpful? Give feedback.
All reactions