jameshart
4 days ago
The range of difference in capabilities of different boards branded ESP32 is getting larger. Makes it tricky to figure out when someone says ‘you can run this on an ESP32’ what level of hardware investment is required.
philipallstar
4 days ago
I am really struggling to understand what ESP32 is. I've got into adjacent things a bit recently, but haven't figured that one out yet.
the__alchemist
4 days ago
It's a family of microcontrollers by Espressif. A microcontroller (MCU) is a type of integrated circuit (IC: physical appearance: Black rectangle of epoxy with exposed metal tabs). It has, in the same IC, a CPU, RAM, non-volatile FLASH memory, and a collection of peripherals which vary depending on the MCU. These usually include I/O protocols, ADCs, DACs, DMA controllers, math processors etc.
Stated another way: An MCU, like the ESP32, is a tiny computer, sans the hardware you physically interface with it.
The computing power, and memory is much lower than your desktop or laptop PC (or mobile phone), but if you are using it to run a dedicated task, instead of using a big OS like Linux or Windows, it can complete the tasks really fast (often microseconds) and with minimal power use. This is because it's easy to program to do exactly what you need, with nothing competing for the hardware.
A note on ESP in particular compared to other MCUs: It's one of the only (Or was?) options which has Wi-Fi integrated into the MCU itself. It's a good default if you want that.
swiftcoder
4 days ago
> I's one of the only (Or was?) options which has Wi-Fi integrated into the MCU itself. It's a good default if you want that.
Indeed. The closest direct competitor is likely the Nordic nRF52840, which does bluetooth + thread, but can't talk actual wifi
tredre3
4 days ago
The closest direct competitor is Bouffalo Lab's BL6xx chips, which do bluetooth and wifi and have an open SDK. Their documentation is very poor unfortunately (at least in English).
Otherwise NXP recently released their RW6xx line with wifi/bt/thread/zigbee. But as with any other western maker, the documentation and SDK aren't as easily accessible to mere mortals (but I think NXP in particular has gotten better with this).
mrheosuper
3 days ago
There are a lot of competitors, in fact, in term of value the ESP32 is really bad.
The only thing Espressif does good is SDK support.
trklausss
3 days ago
That’s crazy to me: they already have to go through certification for the 2.4GHz stuff, why not include a lower wifi standard in there (for the 2.4GHz band)…
brokenmachine
3 days ago
It's probably for power reasons, the nrf series are really great on power consumption.
swiftcoder
3 days ago
Yeah, if you look at a flagship nRF52840 board like the Xiao Seed, it ships with an integrated lithium charge controller, and just 5 μA power draw in deep sleep. If you are building any small battery-operated device, it's a no-brainer
m-p-3
2 days ago
I had to choose between an ESP-based and nRF-based MCU for my MeshCore node, the power consumption between the two made it obvious the nRF one was the way to go for a solar-powered repeater.
trklausss
3 days ago
I’d say as well, that a huge difference is a microcontroller has direct access memory (I.e. without translation), and a bigger computers CPU/SoC has an MMU (memory management unit) that does address translation. This is a key hardware difference for isolation of multiple processes, which you don’t typically have in a microcontroller (you _could_ have an MPU to give you some partitioning, but that’s further down the road).
SideQuark
3 days ago
Lots of microcontrollers have MMUs, such as some Esp32, some microchip flavors, some stms, nxp, ti siara, renesas and Infineon flavors.
So I wouldn’t claim this is a hard and fast rule. Lots of mcu lines have added mmus on some variants.
yencabulator
2 days ago
The article literally has a section heading
> Espressif put a real MMU in the ESP32-S31
_fizz_buzz_
3 days ago
I think their point was more: is an ESP32 more like a arduino (or any other MCU) running bare metal or some thine RTOS or more like a raspberry pi which is more like a mini computer running a full fledged Linux. And I guess the answer it kind of always sat in between a little bit and now the family kind of spreads out across this whole spectrum.
jameshart
3 days ago
To date ESP32s have been best thought of as arduino-like things, albeit with some fancy hardware available like WiFi and Bluetooth stacks. But very much microcontroller boards where you compile firmware and push it to the board over USB.
pseudohadamard
3 days ago
You can actually do an awful lot of stuff with an ESP32, which often comes as a surprise to people who think you need a full Linux system just to turn a light on and off. For example Goodwe solar inverters/controllers are controlled by ESP32s and do a great job while Enphase controllers use Linux SBCs and are flaky, bug-riddled garbage.
pjmlp
2 days ago
People still have no idea that ESP32 is much better than most MS-DOS PCs we had at the time, no need for Linux.
BadBadJellyBean
3 days ago
> is an ESP32 more like a arduino (or any other MCU) running bare metal or some thine RTOS or more like a raspberry pi which is more like a mini computer running a full fledged Linux
Espressif's answer: yes
bradfa
3 days ago
Arduino have muddied this water now, too, as some newer ones come with a full fledged Qualcomm SOC, multiple GB of RAM, and power consumption which requires quite a beefy heatsink.
nkozyra
4 days ago
They're all just single board computers, generally low-powered (literally and in the sense of capability, particularly memory)
They're generally intended to run flashed firmware and be single-purpose. They usually come bundled with peripheral components and typically have breakouts to add more (pots, sensors, etc).
They're great for doing one thing (though some support firmware switching), and you can build the 'software' for them pretty easily using Python or C-like variants.
So for hobbyists they're perfect. You want a quick LED christmas display you can toggle between Rudolph and Santa from a quick network call? You want a humidity sensor in your bedroom? You want to create a networked security camera? These are the types of use cases for MCUs.
atonse
4 days ago
BTW, I was just researching this last week (the christmas display) and ESP32 has a matter compatible chip now... so you an control all this from Apple Home and the other Smart Home platforms.
Absolutely mind blowing. What a fun time to do side projects.
0x457
3 days ago
I think you're confusing Matter and Thread. ESP32-H* have Thread radio, but every esp32 that has wifi is able to talk Matter over WiFi.
I have virtual power outlets and fans that actually just some process on linux.
atonse
2 days ago
Ahhh good point. here are the details I found after reading your reply: https://docs.espressif.com/projects/esp-matter/en/latest/esp...
Muromec
3 days ago
esp32 has wifi so it it's trivial to hook it to mqtt which then exposes it to home assistant
ckocagil
4 days ago
They're not single board computers. They're microcontrollers. Or rather they were until this new chip was introduced.
serf
4 days ago
>they're not single board computers.
what's the meaningful distinction now? It isn't all SoC anymore and it has had a linux capable MMU since S3, even if it required a lot of work.
The only real difference at this point is pure numbers, and i'm not that keen on defining microcontrollers as "those things with less ram than an SBC.", and if it's a microcontroller because it requires bare-metal flashes; well then I point to the older S3 MMU boards running busybox.
MobiusHorizons
4 days ago
A single board computer contains an application processor, not a microcontroller. They have very different design goals.
A microcontroller is a type of processor that offers very fast startup, predictable timing and direct access to hardware peripherals. In contrast to application processors that are intended to run an operating system, a microcontroller will not have OoO execution, multiple tiers memory (eg cache and dram). Usually they also lack an mmu and multiple privilege levels of execution (although that seems more common on riscv microcontrollers). All this means microcontrollers aren’t designed to run Linux (even if someone does figure out how to do that) or clock in the gigahertz, but instead provide very predictable low latency execution required for managing real time systems. For example they might need to operate a set of mosfets with microsecond accuracy to efficiently and safely control a motor.
mrheosuper
3 days ago
> a microcontroller will not have OoO execution
Similar to a lot of old cortex-A soc.
>multiple tiers memory
The S31 also has cache and sram, with inpackage psram.
> Usually they also lack an mmu
The S31 has mmu.
MobiusHorizons
2 days ago
I feel like you are deliberately misunderstanding me. I’m not saying that these define a microcontroller vs application processor, but rather that they stem from differing design goals. Presence or absence of features is illustrative not proof. All you need to do is look up what the A in cortex A stands for, or look at the data sheet of the S31 to see it is classified as an MCU by the manufacturer. I do admit that the feature set of this MCU blurs the lines somewhat at 500mhz with cache hierarchy and psram, but the ability to run from on-chip sram with dedicated performance budget keeps this from losing suitability for true realtime tasks.
the__alchemist
4 days ago
> what's the meaningful distinction now?
SBC is a PCB which includes ports for power, I/O, often other parts like sensors on it. Esp32 is a MCU. You can put an Esp32 on a PCB and call it an SBC. (Although semantically SBC usually refers to something that runs a GPOS, but perhaps that's flexible or changing)
horsawlarway
4 days ago
It's much more difficult to buy the ESP32 as an MCU than it is to buy it as a SBC, with ports for power and I/O already on a PCB (often with through pins, to land on another PCB, like the arduino hats). And I don't mean "it's difficult because you have to solder" - I mean "it's difficult to find many places that sell it".
Ex - go check amazon, they're all the "dev kit" versions of ESP32.
Hell - even Alibaba has an overwhelming majority of the kits in the SBC form, rather than the straight MCU (although they at least exist in that form there, unlike amazon).
Even on digikey... there are like 4 listing for the straight MCU, and hundreds of listings for PCB board versions.
So I think for most consumers purchasing these... functionally they end up buying a form factor that is much closer to SBC than MCU.
---
From my perspective... I'm old enough to remember when Arduinos were the hot shit in this space, and now ESP32 is basically the same value prop at 1/10 the price point (or better, if you are actually willing to solder it to the PCB yourself... then you get down to 1/50th the price point).
petsfed
3 days ago
>It's much more difficult to buy the ESP32 as an MCU than it is to buy it as a SBC, with ports for power and I/O already on a PCB (often with through pins, to land on another PCB, like the arduino hats). And I don't mean "it's difficult because you have to solder" - I mean "it's difficult to find many places that sell it".
1. Go to mouser.com
2. Type ESP32 into the search bar
3. There's your part.
Its difficult to buy a very specific nut or bolt from Amazon (their nut/bolt search interface doing precisely nothing it appears to be intended to do). That doesn't mean McMaster-Carr doesn't exist. You're just going to the wrong store.
If you're in particular referring to how hard it is to find a PDIP package (that is, a through-hole package) for an ATMEGA MCU, that's because they don't make them anymore. Insofar as I'm aware, Espressif has never made a through-hole ESP32 module, but maybe they made one with castellated edges?
But an ESP32 module is as easy to come by as a surface-mount ATMEGA328P. Which is to say, very easy.
0x457
3 days ago
A few notes: if you buy non-module package (i.e MCU itself) then you would need to certify it with FCC (or you local FCC alternative) yourself, so most of vendors buy modules. Those vendors don't go to amazon to buy those because these make sense only if they manufacturing their own boards.
Last time I checked digikey had every module version avaiable for every version. You get hundreds of other versions because there are more variations of those.
lopper4
3 days ago
It's not "difficult" at all if you aren't looking in the wrong places. Espressif has sold billions of them so apparently everyone else is figuring it out just fine.
ckocagil
4 days ago
The tangible hardware difference is the MMU. S3 didn't have a proper one. This new chip does. But the biggest difference is the intent. Microcontrollers focus on peripherals and are used for interfacing, data conversion and signal processing. They're meant to run either bare metal firmware or small RTOS. OTOH microprocessors have in addition to an MMU big caches, high IPC numbers, wide bus lanes, everything you need to run different workloads as fast as possible.
Technically a chip can excel at both.
pdpi
3 days ago
Perhaps the most straightforward difference is right in the name — a single-board computer is a whole board. A microcontroller refers to just the IC itself. The thing that's on the article's picture is a dev board for an MCU, not the MCU alone. That's just the chip at the top with the Espressif branding.
Now, if you want to argue that the difference between a dev board and an SBC is kind of vague, I agree on that front. I'd argue that the distinction is mostly the vendor's intent. E.g. if I sell the ICs in bulk and _also_ sell a board with that IC, it's probably a dev board. If I source the ICs from somebody else, only sell the assembled boards, and ship a general-purpose OS with it, it's probably an SBC. With sufficiently powerful hardware (like this thing seems to be), you could use a dev board as an SBC, and that is basically what this article is all about.
user
4 days ago
m00dy
4 days ago
you can also use Rust.
the__alchemist
4 days ago
Yea - I think this is one of Rust's core use cases.
ckocagil
4 days ago
Originally it was the more capable successor to ESP8266, the super cheap chip containing a high speed core with wifi and an IP stack. At one point it powered a huge chunk of all smart devices on the market. Then the original ESP32 was introduced as the successor, with BLE and two cores which were even faster. That made it a very capable chip for tasks demanding compute. After the original ESP32 they decided to add variety and make a whole "ESP32 family" and yes there's quite a lot of variety these days. Even the ISA and cores changed.
mrheosuper
3 days ago
The OG ESP32 also has bluetooth classic, which only recently comes back to S31.
pornel
4 days ago
ESP32 boards are small and cheap adapters between Wifi (network APIs) and I/O pins for small electronics like LEDs and relays.
If you want a web API for something in the physical world, make ESP32 do it.
leptons
3 days ago
"ESP32" is a brand name. It covers devices with different CPU cores - Tensilica Xtensa and more recently RISC-V.
Each type of device has different capabilities. Most have Wifi, some don't. Some have extra RAM and ROM, and some don't.
The main thing that ties all the different devices together is the ESP-IDF software stack.
atwrk
3 days ago
At its core those all ESP32 are microcontrollers with RISC-V cores[0] and integrated wifi. There's a plethora of peripheral configurations, hence all those ESP32-* variations. This one even has Gbit ethernet and audio, bit still, at it's core (hah), RISC-V with only a few hundred MHz and 512kB RAM. So the peripherals are now similar to a Raspberry Pi, but not the CPU part itself.
[0] older versions had Xtensa cores, not RISC-V.
Rohansi
3 days ago
The most common ESP32 boards now are still the Xtensa ones. Not all of the variants have WiFi. Some only have one core. A lot more variants than many would expect.
Comparisons to a Raspberry Pi are a stretch IMO. It is not a single board computer. You can't hook it up to a monitor/TV, plug a mouse and keyboard in, and use it as a Linux PC. However, there are people who use Raspberry Pis like a microcontroller because of its GPIOs... but they should all be using microcontrollers instead.
pseudohadamard
3 days ago
Does it matter whether the Ethernet interface on an ESP32 is 100 or 1000Mbps? Would it even matter if it was 10Mbps? What could you possibly do with an ESP32 that would require gigabit Ethernet? It seems like advertising the fact that there's a four-line highway running to your fishing shack.
rpcope1
3 days ago
It's worth noting that just because it says ESP32, doesn't mean it has WiFi (see the P4), and yeah not just RISC-V but also xtensa. I think it's more synonymous with "has a very shitty ADC" imo.
amelius
3 days ago
I have an ESP32 here, it can do wifi, but only like 2 requests per second or so, with 50kB of data (I didn't measure it, but that's approximately what it can do).
ThrowawayTestr
4 days ago
I use an esp8266 to control a relay attached to a lava lamp. Every 5 minutes it pings an NTP server and closes the relay if it's the evening.
thenthenthen
3 days ago
To put ut bluntly: An arduino with wifi.
user
3 days ago
m463
3 days ago
> hardware investment
Isn't it like $2 vs $6?
:)