Hacker News new | ask | show | jobs
by paul_funyun 786 days ago
A useful gizmo but bang for your buck seems esp32 is the way to go
7 comments

Biggest advantage of the ESP32 for me is that it can connect to WiFi networks with enterprise encryption with X.509 certificates. ESP8266 doesn't have the CPU horsepower to manage this.
The other big advantage is nonvolatile storage. The ESP32 can store the state of modules between restarts.
Every ESP8266 module I've ever used had a chunk of flash memory you could use for persistent storage that survived reboots/poweroff too. It's used to store WiFi credentials in a lot of frameworks, but you can stick other data in there. I guess it's not integrated into the chip, but don't most people use the integrated modules even in custom designs? All mine have.

Also IIRC it's not as well known, but the RTC also has a very tiny amount of memory you can use to pass state between deep sleep cycles. That one won't survive a power loss, but it's handy when sleeping and doesn't wear out like the flash memory.

I’ve used both, and I’m actually more productive with the ESP8266 because it is so limited - I can usually squeeze in a minimal implementation of one or two things and that’s it. With the ESP32 there’s always other options, and it means I have to make more decisions, so I end up getting bogged down in irrelevant stuff
ESPHome completely solves that for me.
The ESP32 line is the natural progression. Specifically the ESP32-C3 is the successor to the 8266.
If you're looking for a "successor" for the ESP8266, then it's clearly the ESP8684, part of the C2 line - even Espressif says so.
The ESP32-C is a RISC-V, unlike the others.
All the new ESP32 parts are RISC-V
Isn't the C3 the only one so far?
ESP32-C2, ESP32-C5, ESP32-C6, ESP32-H2, ESP32-H4 and ESP32-P4 are also RISC-V. Xtensa are ESP8266, ESP32, ESP32-S2 and ESP32-S3.
i reach for an esp8266 for the same reasons i try to design a 2 layer pcb instead of 4 layer: the challenge

and maybe just maybe if i have to make a thousand, i'll be ahead of the game

This guide is from 2017, before the ESP32 essentially took over.
It totally depends on the usecase, but I find that esp32 is so powerful, it's not power efficient. Al lot of IoT application run on batteries with a single task usually, and this where ESP8266 shines.
The ESP32 has series tailored for different purposes: https://www.espressif.com/en/products/socs (eg. the ESP32-H is for low-powered applications). I don't know how it fares against the ESP8266 in power consumption but as a hobbyist I would pick an appropriate ESP32-XX first and only look at alternatives if it's really lacking.

See also: https://products.espressif.com/#/product-comparison

It's almost problematic how many variants there are these days. I'm sure they all have their particular application but I sure don't know the difference anymore without spending a lot of time comparing. I feel like a few years ago you just went for an Esp8266 with x amount of flash. I thought the only difference was that and the form factor, but I might just have been oblivious of all variants back then.
I used to work for an engineering services company, and by default, our quotes would include a minimum of 40 hours just for finding and sourcing appropriate components.

Even for an experienced EE, it can be ridiculously time consuming. And it's one of those "hidden tasks" that has to be done but is rarely explicitly accounted for.

I mean, if it's for a task where I know my program will fit in 512K flash and 80K ram, then an ESP8266 is still cheaper. One of those is powering my DIY thermostat right now :)
I have to imagine that in most hobby (as in, one off) use cases the $1-$2 difference makes no real difference.

And at one point (years ago) I was able to buy ESP32s for practically the same price on Aliexpress.

Space and power savings shouldn't be discounted either. Especially if you're going to run it off a battery ;)
Any resources on how you made your diy thermostat? :)
If you've done any basic electronics before it would be relatively straightforward. I didn't follow any specific guides, just spent a lot of time reading the datasheets for components that sounded like they might work. My ESP8266 is connected to a GPIO expansion board from Adafruit over I²C, which controls 3 TRIACs through TRIAC opto-isolators. HVAC control wires use 24VAC so TRIACs are the silent option for switching, although relays would have probably worked just as well. After that I just programmed the ESP8266 in Arduino to listen to the MQTT broker on my network to send the values from its temperature probe (also an I²C board from Adafruit) and receive commands. It also has a basic thermostat mode programmed in if it stops receiving commands for too long.
Unfortunately it relies on an outdated GCC 5 toolchain that will never get an update