11 Comments
6dEdited

Thank you for this amazing tutorial. One question regarding the pull-ups you added to Boot and EN/RST. There seems to be a pull-up on EN in the ESP32 schematic and another one in the buttons schematic. Do I really need both?

Similarly, there are two pairs of decoupling capacitors, one in the ESP32 schematic and one in the voltage regulator schematic (on the 3V3 side). Are both needed?

And secondly, can I leave away the reset button and just push the boot button and after that connect USB power to go into boot mode?

Expand full comment

Hi Lorenz,

I’m so glad you liked it! To answer your question, you do not need both. I mistakenly added an extra 10k that is unnecessary. Just one 10k and a 10k on the BOOT should be fine! Holding boot from power up may work but the datasheet always specified the boot sequence so I would probably recommend that.

Best,

Justin

Expand full comment

Thank you so much for the fast reply. Subscribing already paid out. ;-)

Does this also apply to the decoupling capacitors, which are on the ESP32 side and also on the voltage regulator (3V3) side? Sorry if asking the obvious...

Expand full comment

Hi Lorenz,

No worries at all! My apologies that I missed that part of your previous question. To answer it, both actually are necessary! Though it may seem redundant, the location of the placement of the capacitors are dependent on each IC as they need to be placed close to it. Even though the same decoupling capacitors may be on the same trace, it could pick up interference that will need to be decoupled before going into the input of the IC (so more than one may be needed to decouple output and input).

Hope this helps! :)

Justin

Expand full comment

Thank you for the great help!

Expand full comment

Hello,

many thanks for writing this great tutorial. This is really helpful getting into building your own ESP32 boards.

A question on programming the board: do you need to press the boot and reset buttons to set your custom board into programming mode?

You simplified the design by removing the CP2102N USB-to-UART bridge. In the ESP32 S3 DevKitC 1 v1.1 reference schematic the CP2102N drives the DTR and RTS lines to set the ESP32 chip into programming mode.

By removing the USB-to-UART bridge, I wonder if you now have to press the buttons to get into programming mode.

Thanks again for your great work!

Expand full comment

Hi Stefan!

Thank you for your kind words, I am glad this has been a useful tutorial. :) I also plan on making one for STM32 in the near future.

To answer your question - yes. Whenever working with a newly assembled board (that hasn't been flashed before), you will need to put it into bootloader mode by holding boot > pressing reset > releasing reset > releasing boot. However, once the chip has been flashed at least once, you normally will not need to put it into bootloader mode again to upload code unless the program that was uploaded is broken and is not allowing the chip to be flashed. (An example of this can be spamming USB CDC serial.print requests). If that is ever the case, you can put it back into bootloader mode with the buttons to upload new code (bootloader mode freezes the active program).

I hope this answers your question!

Expand full comment

Hey,

I just want to let you know I love the detail in this. Also, if I wanted to add a battery (with a charger) would I need two voltage regulators? One from the USB-in to the battery charger/esp and another from the battery to the esp?

Expand full comment

Hello! Thanks for the kind words. I’m glad you liked it!

If you wanted to add a battery charger circuit (typically for a LiPo-type battery) you would need a separate charger IC to regulate voltage input to the battery (USB -> battery). This is kind of like adding a regulator but does much more such as monitoring current flow, charging, temperature, etc.

So in total, you would only need one regulator to convert the USB/battery voltage to the 3.3V for the ESP32, then also a charger circuit (“regulator”) to step down the USB voltage for battery charging. (Typically 4.2V)

Hope this helps!

Expand full comment

For an even smaller board, is it possible to remove the buttons and LED as well?

Expand full comment

You can definitely remove the LED, but I’d probably recommend keeping the two buttons since they’re needed to set the board into boot loader mode. If you really need them gone, you can create some boot logic instead to set the needed pins low. Hope this helps!

Expand full comment