mDot reliability
- This topic has 4 replies, 3 voices, and was last updated 8 years, 7 months ago by
Darrik Spaude.
-
AuthorPosts
-
August 22, 2016 at 4:38 pm #14587
Andrew Lindsay
ParticipantHi,
Looking at the trace output, the mDots look to be repeatedly reading from and writing to the flash chip. After a couple of hours of this I’m seeing:
[ERROR] SPIFFS_read failed -10004
[DEBUG] Session saved to flash
[ERROR] SPIFFS_write failed -10015
[DEBUG] file size: 256 bytes
[TRACE] 0 : 76035
[TRACE] 1 : 0
[TRACE] 2 : 0
[TRACE] 3 : 0
[TRACE] save timers: 0 75920 0 0 0 0
[INFO] entering deepsleep (standby) mode 00000037The mDot is basically being waken up on an interrupt, checking if its time to send any data, if not its immediately going back into deep sleep.
Why would it need to write to the flash if nothing has changed? Surely this is reducing the life of the chip as it has a limited number of writes before it fails.
Thanks
Andrew
August 23, 2016 at 9:12 am #14598Mike Fiore
BlockedAndrew,
I’m guessing your mDot is in AUTO_OTA mode. In this mode, the mDot will save the session every time it goes into deepsleep so that the session can be restored after waking up (saving you a join). You can put your mDot into OTA mode instead and manage saving and restoring the session yourself if you desire. The saveNetworkSession() and restoreNetworkSession() functions can be used to save and restore your session.
That being said, it sounds like your mDot may have a bad flash part. Please open a support ticket on our portal.
Cheers,
Mike
August 23, 2016 at 9:53 am #14600Andrew Lindsay
ParticipantThanks Mike.
I have tried the OTA mode and the mDot still saves session before sleeping and loading it again after waking.I already have the instructions and firmware for fixing the bad flash as this has happened to a number of mDots now.
Thanks
Andrew
August 25, 2016 at 3:10 pm #14627Mike Fiore
BlockedAndrew,
I tested on a mDot with vanilla AT firmware revision 11:
https://developer.mbed.org/teams/MultiTech/code/mDot_AT_firmware/
I wasn’t able to reproduce the issue. When I joined the network in OTA mode and went to sleep, I didn’t see any evidence of anything getting saved to flash.
at+join Successfully joined network OK at+sleep=0 OK at+sleep=0 OK at+sleep=1 OK [DEBUG] mDotEvent - JoinAccept [TRACE] Event: OK [TRACE] Flags Tx: 0 Rx: 0 RxData: 0 RxSlot: 0 LinkCheck: 0 JoinAccept: 1 [TRACE] Info: Status: 0 ACK: 0 Retries: 0 TxDR: 0 RxPort: 0 RxSize: 0 RSSI: 0 SNR: 0 Energy: 0 Margin: 0 Gateways: 0 [INFO] Packet RSSI: -79 dB SNR: 67 cB [DEBUG] mDotEvent - RxDone [TRACE] configuring RTC Alarm A to wakeup 10 seconds from now [TRACE] save timers: 0 0 0 0 0 0 0 [INFO] entering deepsleep (standby) mode 00000037[INFO] mDot Ready [TRACE] configuring RTC Alarm A to wakeup 10 seconds from now [TRACE] save timers: 0 0 0 0 0 0 0 [INFO] entering deepsleep (standby) mode 00000037[INFO] mDot Ready [TRACE] configuring RTC Alarm A to wakeup 10 seconds from now [INFO] entering sleep (stop) mode 00000037��
However when I set my join mode to AUTO_OTA, the session gets saved and restored.
at+join=1 Successfully joined network OK at+sleep=0 OK Joining network... Network Joined OK at+sleep=0 OK Joining network... Network Joined OK at+sleep=1 OK [DEBUG] mDotEvent - JoinAccept [TRACE] Event: OK [TRACE] Flags Tx: 0 Rx: 0 RxData: 0 RxSlot: 0 LinkCheck: 0 JoinAccept: 1 [TRACE] Info: Status: 0 ACK: 0 Retries: 0 TxDR: 4 RxPort: 0 RxSize: 0 RSSI: 0 SNR: 0 Energy: 0 Margin: 0 Gateways: 0 [INFO] Packet RSSI: -79 dB SNR: 67 cB [DEBUG] mDotEvent - RxDone [DEBUG] Session saved to flash [DEBUG] wrote 256 bytes [DEBUG] file size: 256 bytes [TRACE] configuring RTC Alarm A to wakeup 10 seconds from now [TRACE] save timers: 0 0 0 0 0 0 0 [INFO] entering deepsleep (standby) mode 00000037[INFO] mDot Ready [TRACE] Initiating join... [TRACE] Join Network - Auto OTA [INFO] Restoring network session.. [DEBUG] Session restored from flash [DEBUG] set mask 0 0000 [DEBUG] set mask 1 0000 [DEBUG] set mask 2 0000 [DEBUG] set mask 3 0000 [DEBUG] set mask 4 0020 [DEBUG] Session saved to flash [DEBUG] wrote 256 bytes [DEBUG] file size: 256 bytes [TRACE] configuring RTC Alarm A to wakeup 10 seconds from now [TRACE] save timers: 0 0 0 0 0 0 0 [INFO] entering deepsleep (standby) mode 00000037[INFO] mDot Ready [TRACE] Initiating join... [TRACE] Join Network - Auto OTA [INFO] Restoring network session.. [DEBUG] Session restored from flash [DEBUG] set mask 0 0000 [DEBUG] set mask 1 0000 [DEBUG] set mask 2 0000 [DEBUG] set mask 3 0000 [DEBUG] set mask 4 0020 [DEBUG] Session saved to flash [DEBUG] wrote 256 bytes [DEBUG] file size: 256 bytes [TRACE] configuring RTC Alarm A to wakeup 10 seconds from now [INFO] entering sleep (stop) mode 00000037��[DEBUG] Session restored from flash [DEBUG] set mask 0 0000 [DEBUG] set mask 1 0000 [DEBUG] set mask 2 0000 [DEBUG] set mask 3 0000 [DEBUG] set mask 4 0020
I wonder if the issue was related to the corrupted flash. Can you reproduce the issue on a unit with functional flash?
Cheers,
Mike
September 21, 2016 at 10:17 am #14818Darrik Spaude
KeymasterHi Andrew,
I’m dredging up this old case to ask a question. When you were seeing this problem, were you always using Deep Sleep? Or were you seeing it in both Sleep and Deep Sleep?
-
AuthorPosts
- You must be logged in to reply to this topic.