@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
Posts made by Stefan de Lange
-
RE: Arduino MKR NB1500: lukt niet om te verbinden.
-
RE: Is there any way for my device to know if a packet it has sent has been received?
@IoT-Arista @Sopwafel Interesting problem. Have you considered using CoAP? It supports confirmable messaging at application level over UDP. It is very similar to HTTP (TCP) but at much less energy. If you then still experience packetloss you either have no connection at all or T-Mobile CDP is losing your packets
In any case the packetloss on UDP should be minimal. Big gaps in your data indicate there is some kind of problem either in the network or with your module/SW. There is virtually no way you will lose several UDP packets in a row without some underlying problem to begin with…
-
RE: Arduino MKR NB1500: lukt niet om te verbinden.
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
-
RE: Arduino MKR NB1500: lukt niet om te verbinden.
-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.
-
RE: Arduino MKR NB1500: lukt niet om te verbinden.
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. -
RE: Arduino MKR NB1500: lukt niet om te verbinden.
@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.
-
RE: Load Test Germany
@Kashif-Shahab Nice! Very interesting. Question, did you consider using a UE simulator for this? For example this one: https://www.amarisoft.com/products/test-measurements/amari-ue-simbox/ It can emulate 1000’s of UE’s connecting at the same time.
-
RE: LTE-Cat.M1 Rollout in Germany
@Ronan-Lacroix said in LTE-Cat.M1 Rollout in Germany:
@Ronan-Lacroix said in LTE-Cat.M1 Rollout in Germany:
Hi Alfons, Hi Thomas,
I have the pleasure to announce that LTE-M is now available in Germany throughout the country.
Please take a look at https://t-map.telekom.de/tmap2/mobileiot for a detailed view of our coverage map, as well as at https://iot.telekom.com/ for the available pre-paid offerings.Looking forward to getting your return of experience on our brand new IoT network!
Kind regards,
Ronan
Nice! Did you issue a press release? Or more info somewhere?
-
RE: Arduino MKR NB1500: lukt niet om te verbinden.
@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.
-
RE: Arduino MKR NB1500: lukt niet om te verbinden.
@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)
-
RE: 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
-
RE: Arduino MKR NB1500: lukt niet om te verbinden.
@Crowdsourcer I use realterm, it works well with binary data:
-
RE: Arduino MKR NB1500: lukt niet om te verbinden.
@Crowdsourcer What tool do you use to send those ‘0’ characters? A standard serial terminal like putty will take input from your keyboard and will transmit ‘0’ as 0x30
-
RE: Arduino MKR NB1500: lukt niet om te verbinden.
@Crowdsourcer I don’t think it is a SARA bug. If there was a bug with this command I would have seen it after all the testing I did…
-
RE: Arduino MKR NB1500: lukt niet om te verbinden.
@Crowdsourcer said in Arduino MKR NB1500: lukt niet om te verbinden.:
@Stefan-de-Lange @Martijn-Kooijman
Sorry for spamming you again, but the script is not reliable. I could not repeat reliable results and only one message was sent last night (I am sending every 15 min.). Certain hex values or a combination of them still seem to be interpreted as control characters. I will try to find those “forbidden” numbers. Sending control characters such as CR or ETX are not causing issues and are just treated as binary. I may need to resort to Base syntax, but I don’t like sending the double amount of data.This sounds very confusing. I suggest you try manually first with the passthrough sketch before continuing to write the program. I have used both syntaxes extensively in various applications and have never had any problems
-
RE: Arduino MKR NB1500: lukt niet om te verbinden.
@Crowdsourcer said in Arduino MKR NB1500: lukt niet om te verbinden.:
@Stefan-de-Lange Yes, I am first sending the command as text, then after receiving the @ I switch to binary to send the raw data.
//So I first open a UDP channel:
Udp.beginPacket(“172.27.131.100”,15683);
//Then I send the USOST command using ascii printing
sendcommand=“AT+USOST=0,“172.27.131.100”,15683,”+String(payload_size);
SerialSARA.println(sendcommand);
//Subsequently I receive a “@” from the SARA module, then write binary data
Udp.write((uint8_t*)&payload, payload_size);//
Udp.endPacket();I can’t judge your code. I can only see you do not read ‘@’ (or it’s hidden in some other function) but start writing immediately. I suggest you implement this synchronously and read back the ‘@’ before writing data.
-
RE: Arduino MKR NB1500: lukt niet om te verbinden.
Only when I use SerialSARA.println(payloadtest); (this time with payloadtest as a char array I get the right values. However if one of these chars contain a control character the communication stops which is understandable for a print statement). Using a SerialSARA.write(…) in a loop byte for byte did not solve this (nothing ever received).
Can you try the binary syntax? It is stated in the AT command manual you can’t send control characters using base syntax:
-
RE: More messages than expected on application server.
@Martijn-Kooijman I tried AT+CSGT but only ERROR as a return value (also with the serialpassthrough script). I can’t set it either: AT+CSGT=1,“test” for example.
So I have no clue how I should be able to test when it is fine to start.AT+CSGT=1 works fine on my u-blox R4, I guess it’s not supported on your older firmware. You can try monitoring the V_INT signal, that will tell you if the module is in low power mode or not and may also tell you if the module is ready to receive commands
-
RE: Arduino MKR NB1500: lukt niet om te verbinden.
@Crowdsourcer Shows Arduino didn’t properly read the datasheet of the u-blox when they made this board. USB console access should come out of the box