Whats with the love of the ESP32?

Hi all
Just wondering... I know people that just love ESP32's and lever them into literally every project they do.
I find them temperamental as *%&#. Half the pins seem to have issues attached to them.... can't be high at boot, can't be low. goes high at boot, stops boot when low etc.

I literally spend half my project time swapping pins around until I find a layout that kinda works as I expected.

Just wondered. I seem to fall back to Nano's and Micros (unless I need WiFi).
Maybe I am missing something.

Scroll down for the list of pins and what their special condition is here: https://randomnerdtutorials.com/esp32-pinout-reference-gpios/
Problem solved :smiley:

Planning ahead, perhaps

Are these real "issues", or just documented behaviour?

Yea yea... I do plan well ahead which is why it's annoying.
I find that certain pins that are NOT listed as 'special', do influence the operation of the processor.

That list you posted above is indeed the one I used, yet I had to bin pin 25 for example, as it was preventing my ESP32 booting when held high by a resistor, yet that list shows it as fine in all aspects.

Today I am having issues with pins 34 and 35 on an interrupt driven encoder. That list shows them as input only and fine, yet my encoder doesn't read off them correctly (Testing it with an ESP32 encoder library example).
Had to move them to other pins for it to work.

Oh well.... clearly it's me

Where are you looking?

Have you checked the actual datasheet?

I am using this exact board

The Board (ESP-WROOM-32) that you are using has 30-pin in the header; where, only 25 pins can be used as GPIO lines and NOT 48.

I am agree with OP.
Esp32 at least not so good as you could to expect based on mcu specs. Despite the gpio problem I could mentioned a overcomplicated non-free API, that restrict access to hardware. Using a rtos on mcu is not a good idea at all, I think. SPI DMA can't run a truly asinchronous.. And so on

But then all generalisations are bad! :stuck_out_tongue_winking_eye:

Remember that this is a powerful 32-bit multicore MCU, running a full WiFi comms stack - which sounds like quite a good place for an RTOS...

Well I realise that!

Would be quite painful without it!

My love for the ESP32 comes from the fact that I can stop worrying about CPU speed, or having enough RAM or Flash for the most part. This is 2023, we really shouldn't be trying to shoehorn programs into tiny little devices unless we're building at 100,000 quantity. And, TBH, the last project I was involved in that was building in those quantities (a wearable item) was also using a 32-bit device!

The high-level products I like, such as M5Stack, LilyGo, the boards with built-in OLED displays and now the huge 5" and 7" TFTs are all ESP32 based. I do a lot of "arduino" freelance building work and using boards like those, I can get stuff out the door quickly and cheaply.

YMMV :slight_smile: but I feel your pain. The first ESP32 device I put on a PCB had to have a second version board because it wasn't until after I built it that I ran across some of the same problems. BTW: I use pins 25 & 26 to drive an I2S audio DAC with no problem!

I found this to be useful

and for the newer chips

Did you forget about stm32 ? Most "smart" TFT displays are equipped with STM32 on board.
As for me - it is a much "right way" to build mcu than esp32

No.

A multi-core STM32 with WiFi stack would be a pretty good candidate for an RTOS.

Even a single-core STM32 where you're trying to juggle a large graphic display and network stack - not to mention your own application code!

Not at all. I use STM32 and FreeRTOS a lot in my day job. What I wrote above is more about what's easily available in the Arduino ecosystem, and here the ESP32 boards have far more support than STM32.

I had the same thing. Built a lovely, sexy breakout board for my Esp32 with lots of features.
THOUGHT I had breadboard checked it entirely, but during PCB design I changed a couple of pins for ease of routing... thinking I was fine (after checking the list).
By this time the breadboard had been dismantled.

Only to find my nice new PCB didn't quite work correctly because of the pin changes I thought should have been fine (one of them being pin 25)

BTW, just checked my schematic. It's pins 26 & 28 that I use for the DAC, not 25 & 26. I have pin 25 marked as No Connect.

Yarp...

That is why this hobbyist chump keeps coming unstuck....

The ESP32 onboard Bluetooth eliminates all the HC05 hassles.
Many "Arduino" sketches are far from being a simple Copy&Paste proposition with ESP-xx.
And the ESP-dealio isn't as "carefree" for n00bs for sure. I wouldn't rush anyone into ESPworld.

(I tried getting an Adafruit TFT running with one and couldn't get the I2C and SPI to coexist. Separately, yes; concurrently, no.)