-
-
Notifications
You must be signed in to change notification settings - Fork 86
Description
Library/API/IoT binding
nanoFramework.Iot.Device
Visual Studio version
VS2022 17.12.1
.NET nanoFramework extension version
2022.12.1.14
Target name(s)
ESP32_BLE_REV3-1
Firmware version
1.12.1.84
Device capabilities
System Information
HAL build info: nanoCLR running @ ESP32 built with ESP-IDF -128-NOTFOUND
Target: ESP32_BLE_REV3
Platform: ESP32
Firmware build Info:
Date: Dec 21 2024
Type: MinSizeRel build, chip rev. >= 3, support for PSRAM, support for BLE
CLR Version: 1.12.1.84
Compiler: GNU ARM GCC v13.2.0
OEM Product codes (vendor, model, SKU): 0, 0, 0
Serial Numbers (module, system):
00000000000000000000000000000000
1000000000C049EF1FF88
Target capabilities:
Has nanoBooter: NO
IFU capable: NO
Has proprietary bootloader: YES
AppDomains:
Assemblies:
LaadpaalWekker, 1.0.0.0
UnitsNet.Ratio, 5.61.0.0
nanoFramework.Hosting, 1.0.55.0
System.Threading, 1.1.32.63105
Iot.Device.Tm1637, 1.2.0.0
nanoFramework.DependencyInjection, 1.1.11.0
Iot.Device.Common.GnssDevice, 1.0.0.0
System.Math, 1.5.43.0
nanoFramework.Runtime.Native, 1.7.1.0
System.Device.I2c, 1.1.16.0
UnitsNet.Speed, 5.61.0.0
UnitsNet.ElectricCurrent, 5.61.0.0
nanoFramework.Device.Bluetooth, 1.1.84.0
nanoFramework.System.Collections, 1.5.45.0
System.Device.Gpio, 1.1.41.0
nanoFramework.Logging, 1.1.120.0
mscorlib, 1.15.6.0
nanoFramework.Runtime.Events, 1.11.18.0
UnitsNet.ElectricPotential, 5.61.0.0
System.IO.Streams, 1.1.59.0
nanoFramework.Hardware.Esp32, 1.6.23.0
UnitsNet.Angle, 5.61.0.0
Iot.Device.Ip5306, 1.2.0.0
nanoFramework.M2Mqtt.Core, 5.1.146.0
System.IO.Ports, 1.1.86.0
nanoFramework.System.Text, 1.2.54.0
Iot.Device.AtModem, 1.0.0.0
Native Assemblies:
mscorlib v100.5.0.19, checksum 0x445C7AF9
nanoFramework.Runtime.Native v100.0.10.0, checksum 0x0EAE898B
nanoFramework.Hardware.Esp32 v100.0.10.0, checksum 0x6A20A689
nanoFramework.Hardware.Esp32.Rmt v100.0.5.0, checksum 0xB97BFDE3
nanoFramework.Device.Bluetooth v100.0.5.0, checksum 0xAA4B0676
nanoFramework.Device.OneWire v100.0.4.0, checksum 0xB95C43B4
nanoFramework.Networking.Sntp v100.0.4.4, checksum 0xE2D9BDED
nanoFramework.ResourceManager v100.0.0.1, checksum 0xDCD7DF4D
nanoFramework.System.Collections v100.0.2.0, checksum 0x40DC251F
nanoFramework.System.Text v100.0.0.1, checksum 0x8E6EB73D
nanoFramework.System.IO.Hashing v100.0.0.1, checksum 0xEBD8ED20
nanoFramework.System.Security.Cryptography v100.0.0.3, checksum 0x343142CA
nanoFramework.Runtime.Events v100.0.8.0, checksum 0x0EAB00C9
EventSink v1.0.0.0, checksum 0xF32F4C3E
System.IO.FileSystem v1.1.0.4, checksum 0x1777E2FE
System.Math v100.0.5.5, checksum 0x9F9E2A7E
System.Net v100.2.0.11, checksum 0xD82C1452
System.Device.Adc v100.0.0.0, checksum 0xE5B80F0B
System.Device.Dac v100.0.0.6, checksum 0x02B3E860
System.Device.Gpio v100.1.0.6, checksum 0x097E7BC5
System.Device.I2c v100.0.0.2, checksum 0xFA806D33
System.Device.I2s v100.0.0.1, checksum 0x478490FE
System.Device.Pwm v100.1.0.4, checksum 0xABF532C3
System.IO.Ports v100.1.6.1, checksum 0xB798CE30
System.Device.Spi v100.1.2.0, checksum 0x3F6E2A7E
System.Runtime.Serialization v100.0.0.0, checksum 0x0A066871
System.Device.Wifi v100.0.6.4, checksum 0x00A058C6
++++++++++++++++++++++++++++++++
++ Memory Map ++
++++++++++++++++++++++++++++++++
Type Start Size
++++++++++++++++++++++++++++++++
RAM 0x3f80087c 0x003b0000
FLASH 0x00000000 0x00400000
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++ Flash Sector Map ++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Region Start Blocks Bytes/Block Usage
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
0 0x00010000 1 0x1B0000 nanoCLR
1 0x001C0000 1 0x1E0000 Deployment
2 0x003C0000 1 0x040000 Configuration
+++++++++++++++++++++++++++++++++++++++++++++++++++
++ Storage Usage Map ++
+++++++++++++++++++++++++++++++++++++++++++++++++++
Start Size (kB) Usage
+++++++++++++++++++++++++++++++++++++++++++++++++++
0x003C0000 0x040000 (256kB) Configuration
0x00010000 0x1B0000 (1728kB) nanoCLR
0x001C0000 0x1E0000 (1920kB) Deployment
Deployment Map
Empty
Description
When I used the LilyGo T-A7670E R2 4G LTE board with an ESP32 and an A7670E Sim module to create a system that POST's lots of messages over a 4G connection with an Azure function app I discovered that the AtModem lib wasn't as stable as I needed it to be.
Diving in I found a couple of bugs that caused Uncaught exception's, NullReferenceExceptions, infinate loops causing the connection to 'hang' and cases of 'resetting' the dataconnection by the mobile provider.
All of them appeared only after running the system for days and sending hundreds of thousands of messages.
This testing session and code analysis will result in a couple of PR's that I want to share.
/
How to reproduce
- Read small messages from a Bluetooth device. About 5 to 10 a second and put them a queue.
- Every second read the messages from the queue and put them in a list
- Http.POST this list to an endpoint in Azure
- Do this for hours, days, weeks, months. Sending hundreds of thousands of messages
After some hours the system will stop sending messages because of Uncaught exception's, NullReferenceExceptions, infinate loops causing the connection to 'hang' and cases of 'resetting' the dataconnection by the mobile provider.
Expected behaviour
The messages wil keep being sent forever.
Screenshots
No response
Sample project or code
No response
Aditional information
No response