New firmware release 1.7.6.b1
-
@jellium
The source on github hasn't been updated to 1.7.6 yet -
The LoRaWAN frame counters storage in NVS doesn't seem to work as intended when combined with deep sleep (tried with both 1.7.6.b1 and the new 1.7.7.b1): the uplink frame counter restarts at 1 after each sleep... Not sure if that's because the counter is not properly stored, not properly read, or reset in the process?
The only thing I do after wake up is:
lora = LoRa(mode=LoRa.LORAWAN) s = socket.socket(socket.AF_LORA, socket.SOCK_RAW) s.setsockopt(socket.SOL_LORA, socket.SO_DR, 0) s.send(bytes([1]));Even though
loraisn't used, if I don't include theLora()initialiser,socketthrows an error (OSError: Network card not available), not sure if that call resets the counter (I would expect only thejointo do so)?I even added a 2-second sleep after sending just to make sure the packet is actually sent, just in case the NVS storage is done only once the packet has finished sending, no change.
Is there a way to check what is stored in NVRAM, using
pycom.nvs_get()for instance?Thanks,
Jacques.
-
-
@jellium @daniel OK, so I dug a bit in the code and added a few traces, and the conclusion is that:
-
there are actually two instances of the counters being reset: right from the init of the board (in
TASK_LoRa, which callsLoRaMacStoreUpAndDownLinkCountersInNvs), and a second one in theLoRaconstructor, which callsLoRaMacInitializationwhich in turn callsResetMacParameters. Both will save the counters with their default values before they have been read from NVS. -
the
TASK_LoRais actually an infinite loop running all the time, whether LoRa is actually running or configured or not!
I'll try to find how this could be resolved, but I won't mind if someone who is more familiar with the code does it first or has any pointers!
BTW, the code on GitHub has the wrong version number, is there anything else that would have missed the commit?
-
-
@jcaron hi, has this been fixed i wonder? i get "network card not available" right now, and i'm not using lora. don't need to.
-
@soren said in New firmware release 1.7.6.b1:
network card not available
Can you post the code you’re trying to use, or at least the part where you setup the network / socket?
-
@jmarcelino yes, of course. It's the part where I'm using the socket that is commented out right now:
import machine from machine import UART from network import WLAN #from network import LoRa #lora = LoRa(mode=LoRa.LORAWAN) #from machine import SD import socket #import ssl #import time import os import pycom print('starting up..') #sd = SD() #os.mount(sd, '/sd') #time.sleep(5) #os.listdir('/sd') #time.sleep(5) uart = UART(0, 115200) os.dupterm(uart) pycom.heartbeat(False) pycom.rgbled(0x7f0000) # red wlan = WLAN() #print('SD mounted!') if machine.reset_cause() != machine.SOFT_RESET: print('setting wlan config...') wlan.init(mode=WLAN.STA) wlan.ifconfig(config=('10.0.0.88', '255.255.255.0', '10.0.0.1', '8.8.8.8')) if not wlan.isconnected(): print('looking for network...') wlan.connect('NETGEAR64', auth=(WLAN.WPA2, 'oddchair195'), timeout=5000) while not wlan.isconnected(): machine.idle() print('connected to wifi!') #s = socket.socket() #ss = ssl.wrap_socket(s) #ss.connect(socket.getaddrinfo('www.google.com', 443)[0][-1]) #print('connected to internet!') space = os.getfree('/flash') print('free flash mem: ', space) pycom.rgbled(0x007f00) # green
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better đź’—
Register Login