• Support
  • Modems exhibiting different behavior

I’m trying to get an understanding why some of my modems are acting differently from each other.

I’ve written an application that shuts down as much as possible to try to achieve low battery draw. So in idle the modem is supposed to use < 200µA. I’m able to achieve this on most modems but I have a few that don’t seem to go down to that low current state and stay above 1 mA when in sleep mode.

I just got a couple modems and one worked flawlessly but the other had problems flashing where newtmgr would die after 10%. I used a different computer to flash it and it seemed to be idling at the higher current. The other modem had no issues.

I ran my code with some debug printout and noticed that it is going to sleep and not executing code but the current draw is higher.

So currently 2 out of 5 modems on my bench appear to have issues with an increased current draw.

Do you have any ideas what could be causing these kinds of issues?

To isolate, I run the same firmware on all modems. They also all use the same SIM card, antenna, and power supply.

These are all BRD-0015-05 versions of the Feather.

And I’m using Hologram for the SIM.

Supplying them with 3.7 VDC via the battery connector.

Hmm interesting. 🤔

Do you have the boards hooked to any external circuitry?

Have you tried running the active sleep sample on your boards? Should be about 10uA < 3.8V VBAT

    Just to use the same terms:

    The modem has three states:

    • RRC active (that usually consumes a lot of power 50-250mA)
    • RRC idle (that consumes in my experience about 1mA)
    • PSM sleeping (that consumes in my experience about 13µA, if the voltage is between 3.7 and 4.1V)

    I didn’t measure all feathers (I run 11), but I have also no indication (real-world battery runtime), that some of them are consuming relevant more energy.

    Which power profiler are you using?

      jaredwolff Not at the moment, this is just the feather.

      I used the active sleep sample code as a guide for my application, so it’s essentially that.

      To be sure I’ll run the active sleep sample on the board and post results.

      AchimKraus

      Thanks for the explanation of the states. Let me run the active sleep sample and get more data. Would that be PSM sleep?

      I’m not using my PPK-II at the moment. These measurements are from my Keysight 34450A.

        The other thing I noticed is that in my sample the “good” board idle at 66 µA and sit there indefinitely.

        The “bad” one starts off at ~ 200 µA and climbs up all the way past 1.1mA over time (10+ minutes).

          Also, if none of the GPIO pins are connected, does it make sense to set them to either pull-up/down so they aren’t left floating?

            One thing that I’ve seen cause that is if you’re not using the external NOR flash you should initialize it. Also I’ve had good results initializing the wp and hold GPIOs separately:

            / {
                zephyr,user {
                    latch-en-gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>;
                    wp-gpios = < &gpio0 8 GPIO_ACTIVE_LOW >;
                    hold-gpios = < &gpio0 10 GPIO_ACTIVE_LOW >;
                };
            
            &spi3 {
            	w25q32jv: w25q32jv@0 {
                    /delete-property/ wp-gpios;
                    /delete-property/ hold-gpios;
            		t-enter-dpd = < 3500 >;
            		t-exit-dpd = < 3500 >;
            	};
            };
            static int setup_gpio(void)
            {
            	gpio_pin_configure_dt(&wp, GPIO_INPUT | GPIO_PULL_UP);
            	gpio_pin_configure_dt(&hold, GPIO_INPUT | GPIO_PULL_UP);
            
            	return 0;
            }

              piotr337 Also, if none of the GPIO pins are connected, does it make sense to set them to either pull-up/down so they aren’t left floating?

              The on-reset default should be fine for most pins.

                Keysight 34450A

                I have no experience with such high speed multimeter. But “190 readings/sec” is much slower then I run my power profiler. So, not sure, if that value fits the reality. A simple Nordic Power Profiler Kit II is quite inexpensive (around 100 Euro). There are a couple of power charts of the nRF9160 in the web, I also published some one, see zephyr-coaps-client / power-consumption

                Would that be PSM sleep?

                The modem has several function to save energy (mainly by switching between the 3 states faster). If you switch the modem off/on (CFUN=0/CFUN=1) the switching on takes some more energy. If you network supports PSM, then the device will be able to enter the sleepmode and wakeup faster (and with less energy). In general, people report, that the difference is quite large. In my own experience with the nRF9160 both works very close to each other.
                If you want to know more about the “state” the modem is actually using, there are events which indicates RRC active, RRC ide, sleeping on and sleeping off.

                  Nordic’s power profiler is great for budget projects but the Joulescope, in my experience, has a significantly higher sample rate which is useful for catching transients

                    JS220

                    2 million times per second with 300 kHz bandwidth.

                    PPK II

                    100 ksps sampling rate

                    Anyway, a PPK II does a better job than a high speed multimeter with 190 sps.
                    It would be very interesting, if the higher sample rate really does an even better job. Did you made some test comparing that?
                    In my experience I use even less samples. I have even tested an “on device” approach with an INA233 at about 1ksps, which results also in pretty good values (about 10% delta to PPK II, but measured “continuously in the wild”).

                      AchimKraus Anyway, a PPK II does a better job than a high speed multimeter with 190 sps.

                      Yes!

                      AchimKraus It would be very interesting, if the higher sample rate really does an even better job. Did you made some test comparing that?

                      It sure does. I’ve done side by side tests because one of my customers was saying the current draw was higher than I saw on the PPKII. Ran the test on the Joulescope and sure enough he was right!

                      Hey guys. I appreciate all the support. I got sidetracked with a different project for a little bit but now I’m back.

                      I have a PPK2, I’ve used it for measuring the draw during development.

                      For this I was just using my bench DMM because I just cared about what was going on at idle. So I didn’t think I needed to get the PPK out for that.

                      Well the good news is that after adding what Jared recommended to my overlay I was able to get the current draw down a bit more. Will have to measure again but it seemed better then previously.

                      The bad board is still reporting approx 4 mA during idle. So I’m not sure what’s going on there still.

                      I have a bunch of modems I need to test, so I’ll see how often I get modems idling at higher current.

                        Another odd thing happened is that there is one board that I can’t flash anymore.

                        I can get it into programming mode and it’s showing up in Linux but when I try to program it, it’s stuck at 0%. I tried this on another computer and same problem.

                        Any thought on what could be causing an issue with not being able to program a board?

                          AchimKraus

                          Thanks for that tip. I need to take a look for that API and see if it’s going into the expected sleep mode.

                          I’m pretty sure PSM is working for us based on the activity when measuring via PPK.

                            piotr337 Any thought on what could be causing an issue with not being able to program a board?

                            Did you have the serial monitor open at the same time. That will cause issues with bootloader usage. Is the blue LED solid when running the load command?

                              Terms and Conditions | Privacy Policy