(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!