1
\$\begingroup\$

We designed a custom PCB which has ESP32-WROOM-32E.

We first pushed our code onto a normal ESP32 DevKit commercial board to validate our code. There is no issue with the code. But when we push it to our custom PCB, the code gets uploaded but doesn't execute. The code that we are running is a simple script that sends "Hello world" over UDP.

In our schematic we had not grounded GPIO12, so we have to ground it manually while pushing the code for it to get uploaded. We are using an ESP32 Programmer to upload the code over RX/TX.

Voltage Levels across each pin after upload: https://docs.google.com/spreadsheets/d/1AA_lTx20qFXUZxxS0GDzUBGCM-w9KIyeTWfhpximsV0/edit#gid=0

ESP32WROOM 32E Datasheet:https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32e_esp32-wroom-32ue_datasheet_en.pdf

Attaching schematic.
enter image description here

\$\endgroup\$
18
  • 1
    \$\begingroup\$ Welcome! What have you verified so far? Are all voltages present and of right value? Is your ESP32 enabled and set to boot? \$\endgroup\$
    – winny
    Aug 17, 2023 at 9:20
  • \$\begingroup\$ the code does get uploaded without any errors on the IDE, so we are assuming the booting part is not the issue. \$\endgroup\$ Aug 17, 2023 at 9:22
  • \$\begingroup\$ Don't assume. Measure and be sure. \$\endgroup\$
    – winny
    Aug 17, 2023 at 9:23
  • \$\begingroup\$ who do you reckon we measure specifically ? \$\endgroup\$ Aug 17, 2023 at 9:33
  • 1
    \$\begingroup\$ You said you had to pull GPIO12 to GND to be able to program the device. This means VDD_SDIO has to be configured for 3.3V. Does the firmware configure VDD_SDIO for 3.3V? \$\endgroup\$
    – Velvet
    Aug 17, 2023 at 10:00

1 Answer 1

1
\$\begingroup\$

The issue was happening because R3 resistor connected to SDA was pulled up. It prevented ESP from entering execution mode because SDA is connected to IO12 which is MTDI (It's a strapping pin supposed to be left floating).

Using another SDA pin should fix it.

\$\endgroup\$
1
  • \$\begingroup\$ It's not necessary to use another SDA pin. You just have to configure VDD_SDIO appropriately within the firmware (as I commented on your question). See i.stack.imgur.com/nvH4E.png. \$\endgroup\$
    – Velvet
    Aug 18, 2023 at 7:01

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.