Is the ESP32-S3 the right choice - Page 1
Forum section: electronics / general

author: viper
author_rank: Regular Contributor
timestamp: August 07, 2025, 03:32:43 am
content: Parameters.1. Wifi connection as a station. Need to continuously send sensor data to cloud in packets at set intervals.2. Flash mem. If no connection, default RAM to flash. 4mb is fine.3. Reading of 3 sensors with adaptive interval strategies, but monitoring 24/7. 2 acoustic sensors using FFT, one simple voltage sensor.4. Additional captures are basic such as time stamp.5. Normal sensor reads would be about 1 read/min but will adapt to much lower in sleep modes.6. When I select a 'live mode', I need no more than 1 sample/sec, probably less than that. Nothing crazy. Data needs to go direct to phone or similar device.Expectations.1. Would like to minimize power needs to run on battery but full plan to supplement with solar or charger.2. Like to run on single 18650 but adding another is not a killer.3. Most expectation is 300ft of wifi signal with external omni antenna, but will add yagi when needed.Concerns.1. As this project requires no audio or video, are there any concerns with the ESP32 setup in processing or RAM?2. Is the ESP32 considered a "decent" device even for a commercial adventure?3. Would it be largely wise to adapt to the same processor, but develop a specific PCB for my needs?Close.What I see with these project devices is they hit like 75% of the need, but the other 25% is a bunch of other boards and complexity that can be properly covered in a single board. The problem is once you go down the path of custom PCBs and assembly, the costs get out of hand in the USA real quick!

author: brucehoult
author_rank: Super Contributor
timestamp: August 07, 2025, 07:34:04 am
content: Only that it's a 5 year old chip and they have a number of successor chips that are probably better?

author: SiliconWizard
author_rank: Super Contributor
timestamp: August 07, 2025, 01:59:41 pm
content: Given your stated requirements, you can use a newer, less power-hungry, slightly less "powerful" (but still way more than enough for this) in the -C series (-C3, -C6). I think they are also cheaper.I'd recommend going for a -MINI module with external antenna connection, it's cheap, it's ready to integrate on a PCB without requiring to be careful with RF. These modules don't expose all pins though, so you'll have to check whether they have enough GPIOs for your project.

author: viper
author_rank: Regular Contributor
timestamp: August 07, 2025, 03:21:04 pm
content: Thank you guys for the advice. Yes, I will eval the newer models. I am still trying to predict where I could run into bottlenecks and at least build in some expansion if needed. Would be very good to have some spare I/Os.I was also generally asking if the ESP was even the right lane to drive down when considering a more commercial product? I know STM has some great MCUs, but will take more more as I'm not sure if theirs support wifi. Simply trying to narrow down my options and feel good with the path. The design life of the device is 10y so quality is important.

author: SiliconWizard
author_rank: Super Contributor
timestamp: August 07, 2025, 03:40:40 pm
content: If you need more GPIOs than what the MINI modules offer, you can go for a WROOM module - for instance the ESP32-C6-WROOM. It's a bit more expensive.The benefit of the -C6 is that it supports WiFi 6, which I think would be a benefit in terms of power consumption if you need to be "constantly" connected via WiFi, and it also supports ZigBee, BLE and I think Thread?The Espressif MCUs are widely used and offer a very decent path at a low cost for supporting WiFi in a product. In terms of performance, the -C6 is RISC-V-based at up to 160 MHz and is in the territory of a Cortex-M4 (which would run at a slightly lower frequency). Should be more than enough for what you describe, although we don't know exactly what you'd do with the acoustic sensors.

author: viper
author_rank: Regular Contributor
timestamp: August 07, 2025, 04:39:50 pm
content: Quote from: SiliconWizard on August 07, 2025, 03:40:40 pmThank you for the detailed reply. I am evaluating the actual need to be 'constantly' connected to wifi. Technically probably not as I just need to collect sensor readings periodically. However, when prompted, like during what I call "live mode", I would want to retain connectivity to read the sensors in real time with high than normal read intervals. But in general, Probably just wake up 1x/hr, send packet, go back to sleep.Regarding acoustics, one of them is using sonar for distance measurement so I need the best DSP features to achieve good filtering and capture. Basically send out a programmed chirp and time the return. I've never done it so this will probably get deep for me.

author: bentyler
author_rank: Contributor
timestamp: August 07, 2025, 05:52:43 pm
content: The "is ESP suitable for commercial applications" question surfaces yet again. The answer is yes.The S3 is the best ESP32 for DSP applications.

author: tooki
author_rank: Super Contributor
timestamp: August 07, 2025, 06:01:41 pm
content: Quote from: brucehoult on August 07, 2025, 07:34:04 amI don't think 5 years is that much in the MCU world.Espressif doesn't have dozens and dozens of models like STM or Microchip do. They release one or two per year.

author: tooki
author_rank: Super Contributor
timestamp: August 07, 2025, 06:19:03 pm
content: Quote from: viper on August 07, 2025, 03:32:43 amLow power is not the ESP32 platform's strength.In particular, it's very important to realize that its deep sleep mode essentially shuts down the CPU, meaning that when a wake event happens, it essentially reboots. This is very different from most MCUs, where deep sleep still preserves state. Only the "light sleep" mode preserves execution state, allowing quick resume.Quote from: viper on August 07, 2025, 03:32:43 amDefine "specific PCB". In a product, it's normal to design a PCB.In ESP32-speak, there are a few ways to use their products:1. Chip. You buy the bare chip, and design the entire RF section and minimal support components yourself. This means you're responsible for ALL certifications, including FCC and equivalents.2. Module. They sell you a little tiny castellated PCB with the chip and all minimal support components onboard. The modules are already certified, so you don't have to deal with that headache. They exist with built-in PCB antennas, or with a U.FL antenna jack. You solder the module onto your PCB.3. Dev Kit. This is a little board containing an ESP32 module, USB-serial converter chip, 3.3V LDO regulator, with a USB jack for programming (two jacks for ESP32 models that have on-chip USB, like the -S3: one jack for the native USB, one for the USB-serial chip) and pin headers. These are commonly used by hobbyists, but rarely in commercial products because you normally don't need the LDO and serial converter in a commercial product.So, with terminology handled, back to your question: would I design a module myself, or design your board to accept the bare chip? No. Let someone else deal with the hassle of RF design and certification. I'd probably just design your PCB to accept an ESP32 module. (And I have done this before, it's not that hard.)If you want an ESP32 module from a company with a bit more of a reputation in the western commercial market, look at u-blox.

author: viper
author_rank: Regular Contributor
timestamp: August 07, 2025, 07:25:39 pm
content: Quote from: tooki on August 07, 2025, 06:19:03 pmI super appreciate such detailed and guided replies!!! To answer your questions, yes indeed, My thoughts on using a 'module' is the WIFI FCC stuff, BTE is already there if we adapt this for other designs, and it sort of short steps some of the basic components. Yes, my general thinking was to use the module as a daughter board, soldered into my custom designed PCB that would support all the other things I will need such as probably a buck/boost, reg, sensor specific components, etc.Would you also agree with @bentyler on the S3 for sonic DSP work? Should I stick with already produced solutions or contact Espressif to see if they have other variants that could be even better suited? I realize in the world mfg, the word "custom" comes with a price tag so.....If there is agreement on the S3, I need to probably review full specs and GPIOs to ensure it has enough for my needs.

author: tooki
author_rank: Super Contributor
timestamp: August 08, 2025, 04:23:25 pm
content: Quote from: viper on August 07, 2025, 07:25:39 pmHonestly I have zero experience with digital signal processing, so I couldn’t begin to give any useful guidance. What comes to mind as someone with said zero experience: it might be worth evaluating whether using the ESP32 (whatever flavor; some have more signal processing functions than others) to do the DSP makes sense, or whether your power budget and performance requirements would be better met with a separate DSP (or FPGA?) and just occasionally waking the ESP32 from deep sleep to do wireless. (It’s not uncommon for an ESP32 to be used just as a Wi-Fi/BT modem, with all other processing done by a separate MCU of some sort.)Limited GPIOs remain a weakness of the entire ESP32 series. For comparatively slow IO, external port expanders and DACs remain good options. (In my big project, I used two MCP23017 port expanders on I2C.)

author: nctnico
author_rank: Super Contributor
timestamp: August 08, 2025, 04:58:06 pm
content: The ESP32-S3 is powerfull enough to do meaningfull signal processing. Especially when the duty cycle is low. SPI or I2S can be used to connect an external ADC to the ESP32. However, if the purpose is sensing only, the internal ADCs can be used as well. Just as long as you stay aware that the ADCs don't work over the entire input range. They work from like 100mV to 1.7V IIRC.

author: viper
author_rank: Regular Contributor
timestamp: August 08, 2025, 06:42:08 pm
content: Just to explain a bit more to ensure I am on a decent design path, here are two of the sensors I will need.1. Sonar or sonic distance/depth measurements by chirping a speaker/sounder with a certain frequency sweep, then having a separate electret to listen for the return chirp and calculate the delay. Obviously Will need to work on bandpass filtering and such to exclude undesired and out of spectrum data. On the fastest setting, I would not need any more than 1 reading per second.2. Acoustic vibration sensor using a ceramic piezo disc, monitoring for a rather specific band of noise. Very narrow bandpass of probably only a few khz.3. Simple CT reading a voltage.

author: nctnico
author_rank: Super Contributor
timestamp: August 09, 2025, 08:41:06 am
content: That is all doable with an ESP32-S3. You can interface a DAC through SPI and use DMA to pump waveforms into the DAC. Alternatively use the I2S interface for a codec (ADC / DAC combination). In terms of filtering, I'd use some form of cross-correlation after a bandpass filter to find the chirp in the received audio fragment. If you are going to use ultrasonic transducers, consider sub-sampling the received signal; this saves you processing power and ADC hardware. You don't need to sample at full speed. Just bandpass filter the received signal and sub-sampling does the rest.

author: brucehoult
author_rank: Super Contributor
timestamp: August 09, 2025, 09:00:01 am
content: Quote from: viper on August 08, 2025, 06:42:08 pmThese are available off the shelf as a module for not much money, with simple interfacing. Even at rip-off hobbyist placeshttps://www.adafruit.com/product/3942

author: viper
author_rank: Regular Contributor
timestamp: August 09, 2025, 09:29:47 pm
content: Quote from: nctnico on August 09, 2025, 08:41:06 amSince you brought up the processing, do you have additional thoughts on the different strategies? I was leaning towards I2S as it sort of seems easier to me, but not sure if I have the full picture yet. And could you better explain 'sub-sampling'? I do have large concerns with getting clean enough signal returns.

author: nctnico
author_rank: Super Contributor
timestamp: August 09, 2025, 11:01:53 pm
content: Quote from: viper on August 09, 2025, 09:29:47 pmI made an ultrasonic distance meter a long time ago. I used a short burst at a fixed frequency (around 40kHz IIRC). For sending I used a timer generated square wave burst which fed an LC tank (piezo transducer + inductor) to get a decent amplitude for transmitting. The LC tank also serves as a bandpass filter. For receiving I used an analog LC bandbpass filter + amplification. The resulting signal is fed into the ADC. By using subsampling, the received signal is aliased and appears at a lower frequency which can then be digitally bandpass filtered. For example: a 40kHz sine sampled at 12kHz will end up being a 40k - 3*12k = 4kHz sine wave.