So you're a Noob? Post your questions here until you graduate! Don't be shy.
User avatar
By shoelessone
#74578 *tldr*: are there stability benefits to ESP32 vs ESP8266 that warrant using ESP32? Given I want to use Mongoose OS w/ AWS IoT and a solid / reliable "end user" (my family!) experience is critical to me does ESP32 give me anything?

(sorry for the wall of text / thoughts!)

Hey all! I've been in a bit of a project-funk for a while, the last (and my first!) project I worked on was with an ESP8266 (shameless link) and honestly it was probably one of the most difficult and fulfilling projects I've ever worked on.

I'd really like to get back to electronics, and I have a new idea for a project where my primary goal is more about creating a reliable and solid "platform" for future projects. That is not super clear I realize, so a bit more info: I'm a software developer, but very new in general to the EE world so still struggle with basics. My first project I worked on I felt very proud of overall in that I accomplished what i had set out to create, but what I found was that at any sort of scale I was running into a lot of problems with family members not able to reliably configure the WiFi connection on the final product I created. I also found that certain boxes over a period of time started to fail or become unreliable, requiring daily restarts, etc. One of my sisters, even with my phone support, was never actually able to successfully get her box hooked up with her wifi.

So, what I want to build for my next project is basically a custom PCB (for the record, I do realize that I could just using something out of the box... but then this wouldn't be a project for me!) that has a solid circuit that supports a battery charging circuit and power over USB (ideally USB-C). I want the "platform" I'm creating to have as rock solid of an "onboarding" process as possible - that means captive portal, support for mobile, etc. Additionally, I want 100% to standardize on a more established data / network backend, specifically *AWS IoT* (previously I was using mqtt hosted on my own web server). So, technology wise I think that means Mongoose OS.

What the circuit / "thing" actually does ALMOST doesn't matter to me at this point. I have an idea for a simple project to make a box for my little brother that has a single button that when pressed orders a pizza. But the idea is this PCB / circuit design I'd have would be a starting place for any projects I might want. I'd know that the charging / power management circuit was solid. I'd know that I had the correct pull up / downs in place to support the boot modes I need. Ideally also a circuit to handle sleep functions. Etc.

So, the question really is as I get back into this project and try to brush off my very meager Eagle skills, I'm wondering if I should "invest" in the ESP32 instead of the ESP8266. The ESP32 costs a bit more I know, and the ESP8266 has lower / better power management I've heard (partially because of a bug in the ESP32 REV0 or something?). I know the ESP has more features, things like bluetooth 4.x, which I don't currently intend to use but if I'm spending the time to design a "platform" perhaps it would be good to future proof myself a bit.

Basically my initial reaction is to use the latest and greatest, but, on the flip side I'm also already at least somewhat familiar with the ESP8266 and how it works so I hate to make more work for myself simply because I want to use the coolest / newest thing. I really only want to use the ESP32 if it's going to make my overall "platform" more reliable or solid. Just ot use a simple example, there might be a lot of "compute" needed to handle a really nice captive portal type functionality for allowing a family member to configure the device to use their WiFi, if the extra power on the ESP32 is known to make this easier / better this would be a huge reason to use the ESP32 over the ESP8266.

I know this is a lot of random thoughts, and if anybody has any specific questions about what I'm actually thinking let me know. I'd love just some general thoughts / feelings about what I've said and if anybody has a clear recommendation for a specific reason I'd really love to hear it!

Thanks for reading!
User avatar
By btidey
#74591 If you want to settle on 1 only and you want to make sure it can cover all possibilities then It would have to be the ESP-32.

However, although I have used both, > 95% of my usage / deployments have been with esp8266.

Obviously, the ESP32 enjoys significantly more cpu power, memory, IO and peripherals, but I find that most of my usage is for small IoT type devices where these are not a limiting factor. The lower cost of the ESP8266 is one factor for me; I don't like spending money when I don't need to. The connector spacing on the ESP32 raw modules is also much tighter then the ESP8266 making it more difficult to deploy the raw modules. If the modules are mounted on a pcb then that would be less of an issue but I try to go for minimal size / enclosures and so tend to use the raw modules themselves.

Reliability is primarily down to the engineering around the modules (power supply, decoupling, etc.) and the firmware developed (ensuring watchdog doesn't kick in, good error handling and recovery). Both modules can be made reliable and the esp32 is certainly not a magic bullet here.

For user set up things like the wifiManager help a lot and the firmware can be made user friendly if effort is put into the web page design.

I don't have any direct experience of mongoose. It certainly looks like an attractive option for things like AWS IoT.