Minimum required for ESP32

Hey guys,
I need advices for the design of my PCB. Could you please tell me if this is enough for me to use my bare ESP32. I've added switches for RESET and BOOT, plus pin sockets for communication with the ESP32 (RX and TX). Note that I already have a USB-to-UART TTL. Also, there are a few GPIOs connected to different stuff but this is not important here.
I took infos at different places but I just wanted to double check with you if this is fine to you.

Thanks a lot!

The uart should be able to reset your esp.
There are so much schematics for this chip. Just use one you find on the espressif page.

It doesn't help, if you ask to check schematics if you provide only the IC as scheme :wink:

Edit: you should not use the first 15gpio if possible. On booting they have other functionality:

1 Like

Thanks Adriano,

I bought these
https://www.aliexpress.com/item/4000120687489.html?spm=a2g0o.order_list.order_list_main.27.4d7e5e5bqhaiU5&gatewayAdapt=glo2fra
Is that good? :frowning:

I thought it would be enough. It was just to check the switches and to know if I will be able to communicate with my ESP32. Please tell me what do you need.

Except for the GPIO0 (BOOT), 1 (TX) and 3 (RX), I've already tested the rest with an ESP32 NodeMCU (and mini D1 ESP32) and it seems to be fine for me.

Thanks for your help

It make it difficult for you, as you have to press boot and reset manually.
If you buy one with DTR and RTS, you can program your esp without press manually and at the right moment the buttons.

You have the reset signal on an output that generates a pwm at beginning (see link on first post). This will reset your lora many times on each start (400 resets on 1 second). It will probably work, but is not what you want and maybe you get strange effects. You are using the wroom module, right?

Official documentation :
https://store.comet.bg/download-file.php?id=17786

1 Like

Yes, I have the ESP32 WROOM.
oh I see. So do you suggest to plug the BOOT to another GPIO like the 25? I think it's a good idea to get the one with DTR and RTS. I will draw another scheme and show it to you if you don't mind.

If you don't have other pins, it is ok. But if you have many free pins, use the pins from 16 to 30 first :slight_smile:

And add a good capacitor of 470uF from vcc to gnd. This will make it more stable (3.3V)

Great! Will add it.
Yeah, I will move it to pin IO25.

Ok, back to house after a walk with the dogs and wife. I'm working on the scheme and show it you :+1:t3:

Ok, just added the DTR / CTS. I left the BOOT at GPIO0 since I've seen that in other schematic.
I will use this FTDI adaptor ... hope it will be fine
image

Ive searched trough the documentation and its little confusing..
Btw, there is EN pin on my classic wroom dev.board, and I have to insert 10uF between EN pin and gnd, to be able to flash the chip. You used the EN pin for reset, so I guess it`s not the same pin?

I noticed you have a pin for Battery level. If you are planning on using a LiPo battery you are going to need a voltage divider circuit to read the voltage on the battery. The pins on an ESP32 are only 3.3v tolerant. A LiPo is going to be a lot higher. Also, the ESP32 is notorious for really only being able to read up to 3.0V reliably. So, you'll want to divide your circuit to something lower than that. I'd recommend using two, matching, high value resistors. Then you just have to multiply by 2.

Minimum explained w/ schematics:
arduino - ESP32 with FTDI programmer - Electrical Engineering Stack Exchange

Now you can expand to something like a Dev Board, but you asked about minimum.

3 Likes

Yes Ryan. No worries about that. I put a voltage divider with 2 x 220k. I just wanted to focus on the ESP32 part here (switches and UART communication) :+1:t3:

Thanks MrBurnette. I've seen this one too. It helped me to start and develop my final Dev board. I added a few capacitors...

Sorry. I didn't mean that you should move the boot pin. The ESP need the boot pin (GPIO0) and the EN-pin to start in programming mode.

I mean all other pins. You are connecting the Lora-rst pin to the GPIO14. This pin generates a PWM on boot. I don't know what the frequency (1kHz?) is. Do you really want to reset your LoRa module 1000 times on each boot?
If it is ok, you can leave it on GPIO14.
I would not use the first 15 GPIO if possible. Also for future projects.
Of course: boot, RX, TX are ESP-IOs. They must stay there :wink:

Where did you got the Wroom component on this schematic? pin15 and pin38 are missing (GND).

Definetly one to avoid if possible.

You might not have a issue with the current setup, but there could potentially be circumstances when you want the LoRa registers (and hence setup or received packets) to survive a boot\reset\power down.

And whatever pin is used for NRESET, you would of course need to checking in a breadboard mock-up that nothing 'odd' happened to the chosen pin if deep sleep etc were used.

You're both right. I will definitely change that. Actually, I just followed instructions from randomnerdtutorials.com.
So I guess I should also change DIO0 (IO2), DIO1 (IO4) and NSS (IO5).

No worries, they are not there in the symbol of KiCad, but they are present in the footprint. And both grounded.

Maybe.

What happens when you test those connections ?

Why do you need DIO1 ?

I never had any problem before. Saying that, I'm just starting :slight_smile:

You know, probably no reason. I will take it out.

Are you saying you have actually tested a LoRa module, on an ESP32, with those exact pin numbers ?

I only tested the LoRa Ra-02 433MHz (which has the uFL connector) with the ESP32 NodeMCU (or the mini D1 ESP32). Never the RFM95 868 with a bare ESP32. And it was with these exact pin nb.