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?
- 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.
So It would need to be added in this folder I assume?
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?
"ESP-DSP is intended to be used as an ESP-IDF component."
rcolistete last edited by rcolistete
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:
- older firmwares in https://software.pycom.io/downloads/LoPy4.html were without pybytes
- 1.20.2.rc9 and rc10 in this page are the pygate firmwares, so they are bigger (pygate also includes pybytes)
- 1.20.3.b0 is based on IDF4.0. It has pybytes included (no pygate)
- everything in https://software.pycom.io/downloads/pybytes/LoPy4.html is regular FW (ie. with pybytes and without pygate, recent ones based on IDF 3.3.1)
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.
rcolistete last edited by
- is 'LoPy4-1.20.3.b0.tar.gz'. Is it without Pybytes ?
- are ''LoPy4-1.20.2.rc9.tar.gz" and ''LoPy4-1.20.2.rc10.tar.gz". Are they without Pybytes ? Because they have different size compared to the ones found in :