New Beta Release v1.20.3.b0



  • Dear Pycom community!

    We have a new Beta release available: v1.20.3.b0

    This includes a big update of the Espressif IDF from v3.3.1 to v4. The IDF is a foundational piece of our firmware, so this update can impact a lot of things.

    Beta means, we do NOT advise you install this on production devices. But if you test this release on your development projects we'd love to hear your feedback! What works better, what has regressed compared to the regular release candidates?

    Changes:

    • IDF v4.0
    • Updatd the LoRaWAN specification version to 1.0.3 (Class A& C)
    • Added support for new regions (CN779, RU864 and KR920.)
    • Added BLE Mesh
    • Reworked Coap
    • WiPy2, SiPy, and LoPy1 and are not supported anymore since they only have 4MB flash.
    • WiPy3, LoPy4, FiPy, GPy, W01, L01, L04 and G01 are all supported
    • sqnsupdater is removed from this FW due to FW size limits, so you cannot perform updates of the LTE modem firmware while running this development release
    • MDNS is removed, also due to FW size limits

    You can install this development release with the latest Firmware Updater tool 1.16.4 or download the .tar.gz packages from the docs. The .elf files can be downloaded from here. At this time the source code is not yet publicly available - we're working on that.

    Clarification: Originally, I had published this as "Alpha release v1.20.2.a1 for pybytes", however, in order to make all update channels work as they should, the correct version number should have been a "Beta release v1.20.3.b0 for development". This has been corrected now. Nothing changed about the content. Apologies for the back and forth.



  • @peterp Is this beta release still active?
    I thought I would attempt to use it and contribute back with my experience.

    I tried with xome lora code that has previously worked but I now get Errorno. 122 EMSGIZE problems on a message that is less than 12bytes!!!!!!

    Here is an extract from the output log from my code as well as an extract of the code around where the error is being reported. Previously this line of code has successfully sent data via TTN.

    2020/12/07 18:44:06: HW init done
    init NV vars
    init lora
    RegionAU915ComputeRxWindowParameters
    DR: 10, BW: 2
    tSymbol: 2.048000
    RegionAU915ComputeRxWindowParameters
    DR: 8, BW: 2
    tSymbol: 8.192000
    2020/12/07 18:44:09: Trying to join TTN Network!
    2020/12/07 18:44:12: Trying to join TTN Network!
    2020/12/07 18:44:14: Trying to join TTN Network!
    LoRa network joined!!!!!
    2020/12/07 18:44:16: lora parameters appear to have saved successfully
    date/time =  20 12 3 9 27
    sending LoRa data
    RegionAU915ComputeRxWindowParameters
    DR: 13, BW: 2
    tSymbol: 0.256000
    RegionAU915ComputeRxWindowParameters
    DR: 8, BW: 2
    tSymbol: 8.192000
    Traceback (most recent call last):
      File "main.py", line 90, in <module>
      File "DipBoot.py", line 31, in BootMain
      File "DipApp.py", line 906, in AppMain
      File "DipApp.py", line 714, in CommsCheck
    OSError: [Errno 122] EMSGSIZE
    2020/12/07 18:44:18: Pycom MicroPython 1.20.3.b0 [v1.11-db33be7] on 2020-07-01; FiPy with ESP32
    Type "help()" for more information.
    >>> 
    

    Here is the code snipet.

    		# create a LoRa socket
    		LoRaSock = socket.socket(socket.AF_LORA, socket.SOCK_RAW)
    
    		# set the LoRaWAN data rate
    		LoRaSock.setsockopt(socket.SOL_LORA, socket.SO_DR, 5)
    
    		# make the socket blocking
    		# (waits for the data to be sent and for the 2 receive windows to expire)
    		# this should take about 2 seconds.
    		LoRaSock.setblocking(True)
    
    		# IF THERE IS SOMETHING WRONG WITH THE SETUP WE WILL PROBABLY HANG IN HERE.
    		# send some data
    		# Cayenne, LPP style data format
    		# channel 1 = level data, analogue input, 2 bytes
    		# channel 2 = battery, analogue input, 2 bytes
    		print('sending LoRa data')
    		LoRaSock.send(bytes([0x01, 0x02])+pack('>h',nvvar['Level']&0xffff)+bytes([0x02, 0x02])+pack('>h',nvvar['Batt']&0xffff))
    
    		# make the socket non-blocking
    		# (because if there's no data received it will block forever...)
    		LoRaSock.setblocking(False)
    
    		# get any data received (if any...)
    		LoRaRxdata = LoRaSock.recv(64)
    		print("data received = ", LoRaRxdata)
    		lora.nvram_save()
    		LoRaSock.close()
    
    

    The error message ocurs on the LoRaSock.send line.

    Any suggestions????

    Peter.



  • So It would need to be added in this folder I assume?
    https://github.com/pycom/pycom-esp-idf/tree/idf_v4.0/components

    Just adding https://github.com/espressif/esp-dsp as an "esp-dsp" folder in "/components"

    What else is needed?



  • How hard would it be to include the small esp-dsp library in the Pycom ESP-IDF?
    https://github.com/espressif/esp-dsp

    "ESP-DSP is intended to be used as an ESP-IDF component."

    Edit: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/build-system.html



  • Any change log of "Firmware Updater" 1.16.4 & 1.16.5 ?

    I see a new feature to erase config and nvram.

    Does this mean that :

    $ pycom-fwtool-cli -p /dev/ttyACM0 erase_all    
    

    isn't needed anymore ? (To avoid bugs migrating from firmware v1.18.x)



  • ok, about the filesizes:

    I hope this clarifies it!



  • @rcolistete Good questions. We should improve our labelling/linking of releases. All three are with Pybytes. This shouldn't have a big impact though, since now there are easy ways to disable Pybytes: check box in the FW Updater tool, and pycom.pybytes_on_boot(). So it will only consume storage. None of them have anything to do specific with "downgrading". About the sizes, I'm not sure. I can check tomorrow.



  • Some doubts. The link :
    https://docs.pycom.io/advance/downgrade/
    points to "Legacy and previous development firmware - LoPy4" :
    https://software.pycom.io/downloads/LoPy4.html
    where there :


Log in to reply
 

Pycom on Twitter