- Reliability of MicroPython itself. We have an extensive testsuite with more than 90% code coverage, which can run on a device itself. All these traits are much more than you usually find in other embedded languages, or just embedded projects. And yet the issues are known too, the biggest being memory fragmentation. It's not specific to MicroPython, but to any language, or application, using dynamic memory allocation. Python as a language goes farther than most scripting languages in alleviating this problem my supporting in-place buffer operations, and in MicroPython, we go even further by exploring additional ways of no-allocation operations.
- Reliability of a wireless network. This itself depends on many things, which roughly can be broke down to: a) how well your particular ESP8266 board is designed regarding RF part (antenna, RF part screening, etc.); b) how well your router/access point works; c) how well ESP8266 and your router work together - they can work pretty well on their own, and yet "not like" each other; d) what kind of WiFi signal propagation and interference you get. All these parameters are hard to quantify. Everyone has a different router. You can't rely that a particular board model will always work well - you particular examplar may have soldering problem in RF part or degraded component. And signal interference picture just changes every second and most people have no idea what it's like at all.
- Reliability of ESP8266 chip. ESP8266 literally popped out from nowhere, from a company nobody knew, and using obscure architecture. Nobody knows how well it *can* work. Maybe there're hardware bugs and after executing a billion of instructions CPU crashes. Sounds not very plausible, but maybe there's no enough frequency interference protection and CPU may crash with some probability when WiFi signal is active. Even if CPU is ok (it likely is of course, but try to prove that), WiFi firmware has many issues. It's known that it has dozens of "asserts" which cause ESP8266 to hang (and then hopefully to be reset by WDT). So, ESP8266 itself is only as much reliable as you can expect from two-dollar thingy.
With all that in mind, everyone wonders - how reliable ESP8266 running MicroPython can be? Well I have mine running for some 15 or so hours, and have been downloading more than 1GB of data over this time. There's a detailed log below. What it specifically does is downloading a pretty large file (23MB) and checking its SHA1 checksum. As you can see, there's no checksum failures. However, some attempts to download fail, but the script just retries (such partial downloads aren't counted towards 1GB figure, so actually there're more bytes pumped thru, 1GB is fully successfully downloaded total amount):
Code: Select all
Size : 24267216
Speed: 23541.09 bytes/s
Elapsed: 1030.845
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 23M
Size : 24267216
Speed: 25311.88 bytes/s
Elapsed: 958.728
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 46M
Size : 24267216
Speed: 24325.42 bytes/s
Elapsed: 997.6069
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 69M
Size : 24267216
Speed: 24243.5 bytes/s
Elapsed: 1000.978
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 92M
Traceback (most recent call last):
File "<stdin>", line 70, in main
File "<stdin>", line 51, in dl
File "<stdin>", line 36, in dl
OSError: [Errno 110] ETIMEDOUT
ESP bufs: tx:7 rx:7
Size : 24267216
Speed: 24045.56 bytes/s
Elapsed: 1009.218
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 115M
Size : 24267216
Speed: 22934.12 bytes/s
Elapsed: 1058.127
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 138M
Size : 24267216
Speed: 25274.63 bytes/s
Elapsed: 960.1408
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 162M
Size : 24267216
Speed: 25673.66 bytes/s
Elapsed: 945.218
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 185M
Traceback (most recent call last):
File "<stdin>", line 70, in main
File "<stdin>", line 51, in dl
File "<stdin>", line 36, in dl
OSError: [Errno 110] ETIMEDOUT
ESP bufs: tx:8 rx:7
Size : 24267216
Speed: 23118.81 bytes/s
Elapsed: 1049.674
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 208M
Size : 24267216
Speed: 24269.18 bytes/s
Elapsed: 999.9189
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 231M
Size : 24267216
Speed: 24255.59 bytes/s
Elapsed: 1000.479
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 254M
Size : 24267216
Speed: 24148.48 bytes/s
Elapsed: 1004.917
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 277M
Traceback (most recent call last):
File "<stdin>", line 70, in main
File "<stdin>", line 51, in dl
File "<stdin>", line 36, in dl
OSError: [Errno 110] ETIMEDOUT
ESP bufs: tx:8 rx:7
Size : 24267216
Speed: 25642.33 bytes/s
Elapsed: 946.3728
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 300M
Size : 24267216
Speed: 23244.39 bytes/s
Elapsed: 1044.003
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 324M
Size : 24267216
Speed: 24581.73 bytes/s
Elapsed: 987.2048
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 347M
Traceback (most recent call last):
File "<stdin>", line 70, in main
File "<stdin>", line 51, in dl
File "<stdin>", line 36, in dl
OSError: [Errno 110] ETIMEDOUT
ESP bufs: tx:7 rx:7
Traceback (most recent call last):
File "<stdin>", line 70, in main
File "<stdin>", line 51, in dl
File "<stdin>", line 36, in dl
OSError: [Errno 110] ETIMEDOUT
ESP bufs: tx:8 rx:7
Size : 24267216
Speed: 23450.12 bytes/s
Elapsed: 1034.844
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 370M
Size : 24267216
Speed: 24156.14 bytes/s
Elapsed: 1004.598
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 393M
Size : 24267216
Speed: 22709.67 bytes/s
Elapsed: 1068.585
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 416M
Size : 24267216
Speed: 23077.93 bytes/s
Elapsed: 1051.533
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 439M
Traceback (most recent call last):
File "<stdin>", line 70, in main
File "<stdin>", line 51, in dl
File "<stdin>", line 36, in dl
OSError: [Errno 110] ETIMEDOUT
ESP bufs: tx:8 rx:7
Size : 24267216
Speed: 23226.08 bytes/s
Elapsed: 1044.826
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 462M
Size : 24267216
Speed: 24413.42 bytes/s
Elapsed: 994.0109
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 486M
Size : 24267216
Speed: 24258.38 bytes/s
Elapsed: 1000.364
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 509M
Size : 24267216
Speed: 23165.12 bytes/s
Elapsed: 1047.575
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 532M
Traceback (most recent call last):
File "<stdin>", line 70, in main
File "<stdin>", line 51, in dl
File "<stdin>", line 36, in dl
OSError: [Errno 110] ETIMEDOUT
ESP bufs: tx:8 rx:7
Size : 24267216
Speed: 24408.46 bytes/s
Elapsed: 994.2129
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 555M
Size : 24267216
Speed: 24790.73 bytes/s
Elapsed: 978.8818
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 578M
Size : 24267216
Speed: 24598.1 bytes/s
Elapsed: 986.5479
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 601M
Size : 24267216
Speed: 23867.01 bytes/s
Elapsed: 1016.768
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 624M
Traceback (most recent call last):
File "<stdin>", line 70, in main
File "<stdin>", line 51, in dl
File "<stdin>", line 36, in dl
OSError: [Errno 110] ETIMEDOUT
ESP bufs: tx:6 rx:6
Size : 24267216
Speed: 23957.37 bytes/s
Elapsed: 1012.933
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 648M
Size : 24267216
Speed: 24363.49 bytes/s
Elapsed: 996.0478
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 671M
Size : 24267216
Speed: 25075.26 bytes/s
Elapsed: 967.7749
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 694M
Size : 24267216
Speed: 23274.35 bytes/s
Elapsed: 1042.659
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 717M
Traceback (most recent call last):
File "<stdin>", line 70, in main
File "<stdin>", line 51, in dl
File "<stdin>", line 36, in dl
OSError: [Errno 110] ETIMEDOUT
ESP bufs: tx:7 rx:7
Size : 24267216
Speed: 24284.19 bytes/s
Elapsed: 999.301
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 740M
Size : 24267216
Speed: 23966.59 bytes/s
Elapsed: 1012.543
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 763M
Size : 24267216
Speed: 25720.49 bytes/s
Elapsed: 943.4968
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 786M
Size : 24267216
Speed: 22991.51 bytes/s
Elapsed: 1055.486
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 810M
Traceback (most recent call last):
File "<stdin>", line 70, in main
File "<stdin>", line 51, in dl
File "<stdin>", line 36, in dl
OSError: [Errno 110] ETIMEDOUT
ESP bufs: tx:8 rx:7
Size : 24267216
Speed: 24140.11 bytes/s
Elapsed: 1005.265
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 833M
Size : 24267216
Speed: 24635.71 bytes/s
Elapsed: 985.042
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 856M
Size : 24267216
Speed: 23011.41 bytes/s
Elapsed: 1054.573
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 879M
Size : 24267216
Speed: 23369.26 bytes/s
Elapsed: 1038.424
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 902M
Traceback (most recent call last):
File "<stdin>", line 70, in main
File "<stdin>", line 51, in dl
File "<stdin>", line 36, in dl
OSError: [Errno 110] ETIMEDOUT
ESP bufs: tx:8 rx:6
Size : 24267216
Speed: 24192.55 bytes/s
Elapsed: 1003.086
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 925M
Size : 24267216
Speed: 25541.69 bytes/s
Elapsed: 950.1018
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 948M
Size : 24267216
Speed: 24125.42 bytes/s
Elapsed: 1005.877
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 972M
Size : 24267216
Speed: 25575.28 bytes/s
Elapsed: 948.854
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 995M
Traceback (most recent call last):
File "<stdin>", line 70, in main
File "<stdin>", line 51, in dl
File "<stdin>", line 36, in dl
OSError: [Errno 110] ETIMEDOUT
ESP bufs: tx:8 rx:7
Size : 24267216
Speed: 16359.03 bytes/s
Elapsed: 1483.414
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 1018M
Size : 24267216
Speed: 15363.08 bytes/s
Elapsed: 1579.58
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 1041M
Size : 24267216
Speed: 20283.23 bytes/s
Elapsed: 1196.418
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 1064M
Traceback (most recent call last):
File "<stdin>", line 70, in main
File "<stdin>", line 51, in dl
File "<stdin>", line 36, in dl
OSError: [Errno 110] ETIMEDOUT
ESP bufs: tx:7 rx:7
Size : 24267216
Speed: 24370.77 bytes/s
Elapsed: 995.751
SHA1 : 9602e52394ac820c3121bb394ad92520e1a7bc0a
Total downloaded so far: 1087M
16858K