Arduino MKR NB1500: lukt niet om te verbinden.
-
@Crowdsourcer It’s an arduino development board, it’s not build for low power. So don’t expect too much from it. In practise I get about 7uA deep sleep current with u-blox R4
-
@Crowdsourcer the sleep current on the mkrfox1200 boards Ive used vary from 80 to +/- 180 uA but it very much depends on what pins you use. ( mkrfox1200 uses the -DVERY_LOW_POWER option in boards.txt)
@Stefan-de-Lange I dont think its only the board thats not optimised, but also the current arduino implementation. for example you could run the samd21 at lower speed. -
@Crowdsourcer do you turn off the sara module before sleep?
-
@Martijn-Kooijman If you want to use network PSM you can’t turn it off.
@Stefan-de-Lange I dont think its only the board thats not optimised, but also the current arduino implementation. for example you could run the samd21 at lower speed.
If you want to measure sleep current the MCU should be in deep sleep, so no clock running at all (except maybe RTC to wake it up)
-
@Stefan-de-Lange if you want to measure sleep current of the mkrnb1500 I would turn of all other peripherals. And I agree that psm might give better overall results if you send often but when you send once in a while (like I do) I think turning it off is more power efficient? The clock speed was just an example (arduino code is meant to be interchangeable between mcus so might not be optimal)
-
@Martijn-Kooijman said in Arduino MKR NB1500: lukt niet om te verbinden.:
And I agree that psm might give better overall results if you send often but when you send once in a while (like I do) I think turning it off is more power efficient?
That depends on many things. Turning R4 off means you have to attach to the network every time you turn it on, that can consume a lot of energy.
-
@Stefan-de-Lange @Martijn-Kooijman
No need to solder anything, I just did the serialpassthrough method of updating firmware and it works perfectly fine! First check with ATI9 what firmware you have, mine was 2.00. -
@Crowdsourcer what instructions did you use, for me serialpassthrough did not work
-
@Martijn-Kooijman
https://forum.arduino.cc/index.php?topic=628808.15
Zbelding updated his update procedure on 25 June. You may have tried his first version? First check what version you have by using command ATI9. Then select the proper zip file download somewhere else on that forum. Works exactly as described. Meanwhile there could be a newer version, for that I will contact Ublox. -
https://ublox-firmware.s3.amazonaws.com/L0506A0201-to-L0508A0204.zip
https://ublox-firmware.s3.amazonaws.com/L0506A0200-to-L0508A0204.zip
(I had version 2.00 so I used the second zip) -
Thanks I think I tried these already but could not get it to work. what terminal program did you use? And maybe other things that are of importance?
-
@Martijn-Kooijman
This procedure was also recommended by Arduino. Exactly do as described by Zbelding: use Extra putty (his step 3). You can check if Extra putty works by entering an AT command such as ATI9, if all is fine the modem will return the current firmware. To be safe, just use Extra putty, it is a free download.
Did you wait the 21 minutes (step 18)? -
@Martijn-Kooijman @Stefan-de-Lange
Some news after the update (to 2.04): Lowpower.sleep (or deepSleep) has improved by a factor 2! The current reduced to 0.48 mA, still not very low power but at least an improvement.
The command AT+URAT=8 is not recognized anymore (comunication selection for NB only). It also seems that it sometimes needs a lot of time to open a channel after a deep_sleep (varies between 10 s and >30s which wastes energy). -
@Crowdsourcer Nice, but still far from expected values (7 uA). What do you mean by ‘open a channel’ ? After wake-up from deep sleep the ublox takes at max 4 seconds to wake up, so I wonder what happens in your case.
-
@Stefan-de-Lange
Yes, still high, but there are more peripherals (such as the charger IC) so I think something like 50 uA should be expected.
Before sleep I do:
digitalWrite(SARA_PWR_ON, LOW); //to shut down the ubloxAfter sleep I need to switch on the modem and do a reset:
digitalWrite(SARA_PWR_ON, HIGH);
delay(100);
digitalWrite(SARA_RESETN, HIGH);
delay(100); //default 100
digitalWrite(SARA_RESETN, LOW);I first wait about 10 s, then I open a port:
“AT+USOCR=17,7000”
I usually get an error: “+CME ERROR: Operation not allowed”
So I need to repeat this until I get:
+USOCR: 0
That usually takes between 12 and more than 40s.Since URAT is not possible any more, it seems as if it has difficulty selecting NB?
Any recommendations to make this more reliable? -
Yes, still high, but there are more peripherals (such as the charger IC) so I think something like 50 uA should be expected.
50 uA is still high but it depends what you want get out of it ofcourse.
Before sleep I do:
digitalWrite(SARA_PWR_ON, LOW); //to shut down the ubloxThis is not necessary. The ublox can stay in 7uA PSM mode, no need to turn it off unless you plan to stay off for a looong time
After sleep I need to switch on the modem and do a reset:
digitalWrite(SARA_PWR_ON, HIGH);
delay(100);
digitalWrite(SARA_RESETN, HIGH);You should never drive a reset pin, it may damage the board. It’s also not necessary, you can wake it up with PWR_ON pin alone. Use open collector/open drain for both PWR_ON and reset
delay(100); //default 100
digitalWrite(SARA_RESETN, LOW);I first wait about 10 s, then I open a port:
“AT+USOCR=17,7000”
I usually get an error: “+CME ERROR: Operation not allowed”
So I need to repeat this until I get:
+USOCR: 0
That usually takes between 12 and more than 40s.Because the u-blox is attaching to a network. See:
You can wait for +CEREG first, then open a socket.Since URAT is not possible any more, it seems as if it has difficulty selecting NB?
Any recommendations to make this more reliable?This can happen if your FW upgrade package did not come with an EU MNO profile. Check AT+UMNOPROF=?
Check if you see ‘100: Standard Europe’ in the list. If not then you need to ask u-blox for instructions on how to install it. -
@Stefan-de-Lange
-The reset pin is used in the Arduino supplied SerialSARAPassthrough program so that seems fine to use for a reset.
-I did not test PSM, in default configuration it is off.
-I tested AT+UMNOPROF? and it is default 0, I then changed it to 100 (Standard Europe), but AT+URAT is still not available.
-For now after each wake up I do the following sequence (about 14 seconds in total):
AT+CFUN=0
AT+CEREG=3
AT+CFUN=1
wait for “CEREG:…” in a SARA response string
AT+COPS=1,2,“20416”
AT+USOCR=17,7000
check for USOCR: 0
then send data…So far it seems to work fine.
-
-The reset pin is used in the Arduino supplied SerialSARAPassthrough program so that seems fine to use for a reset.
Ofcourse you can use it, but not after sleep to wake it up. Hard reset is only used as a last resort when the module is stuck for example.
-I did not test PSM, in default configuration it is off.
If you want to get low power it’s a good idea to use it
-I tested AT+UMNOPROF? and it is default 0, I then changed it to 100 (Standard Europe), but AT+URAT is still not available.
-For now after each wake up I do the following sequence (about 14 seconds in total):
AT+CFUN=0
AT+CEREG=3
AT+CFUN=1
wait for “CEREG:…” in a SARA response string
AT+COPS=1,2,“20416”
AT+USOCR=17,7000
check for USOCR: 0
then send data…So far it seems to work fine.
That looks better. But you don’t have to use AT+COPS, after you see +CEREG: 1 (or 5 if roaming) you are already attached.
-
@Stefan-de-Lange
I just tested the SARA PSM setting:
Changed from default 0 to 4: AT+UPSV=4
After about 6 s inactivity it enters sleep mode and requires a dummy character to send to wake it up. I get reliable connection each time (using AT+USOCR=17,7000). So far so good,
however, sleep currents too high now (>10mA) and I also observe regular increases to >40 mA and accidental short drops <1 mA.
So it seems the SARA is consuming much more than your suggested 7uA during sleep time. -
I just tested the SARA PSM setting:
Changed from default 0 to 4: AT+UPSV=4That’s not PSM but power saving. PSM is the network sleep state, you can set it via AT+CPSMS=1 (+timers).
After about 6 s inactivity it enters sleep mode and requires a dummy character to send to wake it up. I get reliable connection each time (using AT+USOCR=17,7000). So far so good,
Good. Just FYI, it’s UDP so there is no ‘connection’, atleast not to the server. You can open a socket and send packets when you are attached but the module will not tell you if they failed to arrive
however, sleep currents too high now (>10mA) and I also observe regular increases to >40 mA and accidental short drops <1 mA.
So it seems the SARA is consuming much more than your suggested 7uA during sleep time.Try AT+CPSMS=1. I measured 6.7 uA, datasheet says 7 uA so you should see similar values
-
@Stefan-de-Lange
I tried AT+CPSMS=1 but the Arduino board consumed >15 mA during sleep. No idea why, but I think for the Arduino board it is easiest to just use the power_on pin (note that this is not the power supply pin!). -
@Crowdsourcer said in Arduino MKR NB1500: lukt niet om te verbinden.:
@Martijn-Kooijman @Stefan-de-Lange
Some news after the update (to 2.04): Lowpower.sleep (or deepSleep) has improved by a factor 2! The current reduced to 0.48 mA, still not very low power but at least an improvement.
The command AT+URAT=8 is not recognized anymore (comunication selection for NB only). It also seems that it sometimes needs a lot of time to open a channel after a deep_sleep (varies between 10 s and >30s which wastes energy).I can confirm now that AT+URAT=8 works with the new firmware! Probably because I changed: AT+UMNOPROF=100 (European profile).
-
@Crowdsourcer AT+CPSMS=1 enables network PSM so the module can sleep while staying attached to the network. Using the power_on pin just turns the whole module off so you detach and next time you wake up you will have to attach again, both cost energy. In almost all cases using PSM is prefered