pythoncoder wrote: ↑Sun May 31, 2020 5:46 pm
cgtan2020 wrote: ↑Sat May 30, 2020 1:13 pm
...
Any reasons PyBoard D Series is better than ESP32? more reliable wifi? Did you manage to test out the PyBoard D Series?...
I have done a lot of work with the D series. It is streets ahead of ESP32 because WiFi is devolved to a separate chip. This means that MicroPython runs on bare metal and has a fast and deterministic response to events such as hard IRQ's. It is serious professional class hardware with accurate ADC's and DAC's. The SF6W even has a 64 bit FPU for those that need it. On all variants the WiFi handles TLS with ease.
By contrast the ESP suffers huge latencies and DAC and ADC linearity is poor. It's cheap and cheerful, and great for some jobs, but not in the same class in terms of performance. E-type or Morris Minor? The choice is yours.
Just to provide a different PoV than Peter, who seems to take every opportunity to bash the esp32
.
The PYBD costs at least 5x more than an esp32 module with equivalent features (voltage regulator, USB interface, LiPO charging). The good news is that you get something for that extra money. The bad news is that it may not matter or you may be able to get something equivalent for less money.
For example, the biggest non-deterministic response I've run into on the esp32 is when mbedtls does the crypto to establish a TLS connection. That can introduce a 800ms or thereabouts hiccup if you use a cipher suite with perfect forward secrecy (e.g. like all the ones supported by TLS 1.3). I haven't actually tested the equivalent on the pybd, but despite "devolving Wifi to an external chip" the mbedtls code still runs on the main uC, thus I don't see how that hiccup would be any different on the PYBD (with the exception of hard interrupt handlers in Py). In fact, on the esp32 it is possible to perform the TLS on the other core thereby eliminating this hiccup altogether.
Some other aspects: the esp32 supports adding a large amount of external PSRAM and modules that have it integrated for a very small addition cost are abundant. What is the equivalent on the PYBD? How about connecting a camera to the PYBD? I have not looked into this, but I don't think it's nearly as easy as with an esp32 and even if the HW supports it I didn't find code out there when I searched (maybe I overlooked the obvious).
The peripherals on the esp32 are not great, the ADC is perhaps one of the worst. Again, the good news is that you get something for the money you pay for a PYBD. You can add a good external I2C ADC chip to the esp32, which adds a comparatively small amount to the BOM.
So overall if money is no object, the PYBD often is a better platform, but not always. If money is an object, YMMV greatly...
To come back to the OP question, having fixed some of the non-blocking socket issues that Peter often refers to I find the esp32 perfectly stable, but I do avoid all boards that have an AMS1117 regulator because it has a very high drop-out voltage.
NB: I'm not trying to bash the PYBD, it's a very neat design, I'm just trying to provide a different PoV than "the pybd is superior to the esp32 in all respects" that Peter wrote.