7

There are lots of examples on the internet on how to build Arduino from scratch such as IN THIS LINK. I will like to do the same but with the esp32.

I have this development board:

enter image description here

And I am able to program it with the Arduino framework/IDE thanks to THIS VIDEO.


Now the question

How can I flash my code and run it on a standalone ESP-WROOM-32 chip like this one:

enter image description here

I do not want to use voltage regulator etc as I am planning to run it from a 3.3V battery.

Before asking this question this was my research:

  1. In this video (https://www.youtube.com/watch?v=n43rHugPbTg) Hugatry does exactly what I am looking for but he does not explain what pins he is using. Moreover what happens if I connect my 5v serial to the chip? will it burn?

  2. I went directly to espressif website and looked for the schematics (https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32d_esp32-wroom-32u_datasheet_en.pdf). It is hard to understand I just want to do something simple.

  3. This blog (http://blogs.oregonstate.edu/copaps/resources/programming-esp32-on-custom-pcb/) explains how but the pins are different than my esp-wroom-32 chip.

Looking more on the internet/youtube everyone explains how to solder it. But I haven't found a diagram that will enable me to flash it and run my code. Also will I have to burn a bootloader like with arduino?

What I am about to try is to buy a 5V to 3.3V serial converter connecting TX with RX and RX with TX. Providing 3.3V power to the 3.3V pin and connect the last cable to ground. If I try that will it work?

asked Sep 23, 2020 at 22:42
3
  • It looks like you need to increase your general level of understanding of electronics. There is no "really simple" way except for buying a ready-made board. Look at the schematics of a standard ESP32 board to see what you need for support circuitry. As for your questions: 1) Yes, it will burn at 5V. 2) See my first comment. 3) See my first comment. Commented Sep 24, 2020 at 7:49
  • The development board is basically the minimum circuit plus a USB to UART interface and a 3.3V regulator. Once you remove the regulator and its capacitors, and the USB interface and the few components for that, what you are left with is the bare minimum. You can't get much simpler than those development boards. Commented Sep 24, 2020 at 10:08
  • The third link from the Oregon State University is unfortunately no longer available. It would be interesting to know what they wrote there. Commented Sep 14, 2022 at 19:34

4 Answers 4

8

This is what I was looking for. The development board is not the minimum as @Majenko and @StarCat stated on their comments. This is exactly what I need as I plan to run my project from a battery. Moreover, the development board consumes a lot more energy when in sleep mode. I will even remove the LED that shows on this diagram:

enter image description here

So basically use a programming board like @KenVanHoelandt stated to program the board and then wire the esp32 like in the diagram above.

I got that diagram from this link:

https://www.14core.com/wiring-and-flashing-programming-esp-32-esp32s-with-usb-ttl-uart/

answered Sep 28, 2020 at 16:03
3
  • 2
    you don't really need the buttons either Commented Sep 29, 2020 at 5:56
  • Is this recognized as a programmer board by Arduino software (like the IDE or some plugin)? Commented Apr 17, 2022 at 11:30
  • I am not sure what the exact minimum voltage esp32 requires, but make sure it is at least 3.6v that will be able to support it when wifi is being used . Also if you dont have a cut off circuitry for low voltage it might mess up your memory when the voltage is too low as the battery discharges. Commented Feb 28, 2023 at 8:03
2

There are programming boards available to which you can plug one of these SOCs into them. There are different boards for different types of ESP SOCs. You can find them at popular Chinese vendors, and probably elsewhere too.

They look like this:

ESP32 flash burner tool

answered Sep 28, 2020 at 11:13
2

You could use wireless. First, use OTA programming (eg Elegant OTA) to burn a basic OTA uploader. Then, in principle, you can then upload any sketch you want so long as it ALWAYS has the basic OTA sketch included within your program.

answered Apr 10, 2021 at 14:31
1
  • 1
    I don't think this answers the question. You still need support circuitry to auto-update, even if only updating over Wifi. Commented Apr 10, 2021 at 16:23
1

OK, so the answer to the original question, how to upload code to a bare ESP32 that's not on a Development board, is as follows:

  1. Using an FTDI board, connect FTDI ground to ESP32 Ground, connect the FTDI TX pin to the ESP RX pin, then connect the FTDI RX pin to the ESP TX pin.
  2. Make sure you have a decent 3.3v power supply connected to the 3.3v and ground pins of the ESP32, do not use the FTDI power pins, the FTDI board doesn't supply enough power for the WiFi of the ESP32 and it will just keep rebooting.
  3. On the ESP32 connect the D0 pin to Ground to enable Flash mode.
  4. Upload your code.
  5. Disconnect D0 from ground and reboot the ESP32.

Job done.

answered Nov 8, 2024 at 20:20

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.