You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To be able to upload the sketch via serial interface, the ESP32 must be in the download mode. The download mode allows you to upload the sketch over the serial port and to get into it, you need to keep the **GPIO0** in LOW while a resetting (**EN** pin) cycle.
47
+
To be able to upload the sketch via the serial interface, the ESP32 must be in the download mode. The download mode allows you to upload the sketch over the serial port, and to get into it, you need to keep the **GPIO0** in LOW while resetting (**EN** pin) the cycle.
48
48
If you are trying to upload a new sketch and your board is not responding, there are some possible reasons.
49
49
50
50
Possible fatal error message from the Arduino IDE:
@@ -54,23 +54,26 @@ Possible fatal error message from the Arduino IDE:
54
54
Solution
55
55
^^^^^^^^
56
56
57
-
Here are some steps that you can try to:
57
+
Here are some steps that you can try:
58
58
59
-
* Check your USB cable and try a new one.
60
-
* Change the USB port.
59
+
* Check your USB cable and try a new one (some cables are only for charging and there is no data connection).
60
+
* Change the USB port - prefer direct connection to the computer and avoid USB hubs. Some USB ports may share the power source with other ports used, for example, for charging a phone.
61
61
* Check your power supply.
62
+
* Make sure that nothing is connected to pins labeled **TX** and **RX**. Please refer to the pin layout table - some TX and RX pins may not be labeled on the dev board.
62
63
* In some instances, you must keep **GPIO0** LOW during the uploading process via the serial interface.
63
-
* Hold down the **“BOOT”** button in your ESP32 board while uploading/flashing.
64
+
* Hold down the **“BOOT”** button on your ESP32 board while uploading/flashing.
65
+
* Solder a **10uF** capacitor in parallel with **RST** and **GND**.
66
+
* If you are using external power connected to pins, it is easy to confuse pins **CMD** (which is usually next to the 5V pin) and **GND**.
64
67
65
-
In some development boards, you can try adding the reset delay circuit, as described in the *Power-on Sequence* section on the `ESP32 Hardware Design Guidelines <https://www.espressif.com/sites/default/files/documentation/esp32_hardware_design_guidelines_en.pdf>`_ in order to get into the download mode automatically.
68
+
In some development boards, you can try adding the reset delay circuit, as described in the *Power-on Sequence* section on the `ESP32 Hardware Design Guidelines <https://www.espressif.com/sites/default/files/documentation/esp32_hardware_design_guidelines_en.pdf>`_ to get into the download mode automatically.
Try enforcing format on fail in your code by adding ``true`` in the ``begin`` method such as this:
136
+
137
+
.. code-block:: c++
138
+
139
+
SPIFFS.begin(true);
140
+
141
+
See the method prototype for reference: ``bool begin(bool formatOnFail=false, const char * basePath="/spiffs", uint8_t maxOpenFiles=10, const char * partitionLabel=NULL);``
142
+
143
+
SD card mount fail
144
+
------------------
145
+
Even though you made sure that the pins are correctly connected, and not using restricted pins, you may still get an error such as this:
146
+
147
+
.. code-block:: shell
148
+
149
+
[ 1065][E][sd_diskio.cpp:807] sdcard_mount(): f_mount failed: (3) The physical drive cannot work
150
+
151
+
Most of the problems originate from a poor connection caused by prototyping cables/wires, and one of the best solutions is to **solder all the connections** or use good quality connectors.
152
+
153
+
Note that with SD_MMC lib all the data pins need to be pulled up with an external 10k to 3.3V. This applies especially to card's D3 which needs to be pulled up even when using 1-bit line connection and the D3 is not used.
154
+
155
+
If you want to try the software approach before soldering, try manually specifying SPI pins, like this:
156
+
157
+
.. code-block:: c++
158
+
159
+
int SD_CS_PIN = 19;
160
+
SPI.begin(18, 36, 26, SD_CS_PIN);
161
+
SPI.setDataMode(SPI_MODE0);
162
+
SD.begin(SD_CS_PIN);
163
+
164
+
165
+
ESP32-S3 is rebooting even with a bare minimum sketch
Some ESP32-S3 boards are equipped with Quad SPI (QSPI) or Octal SPI (OPI) PSRAM. If you upload such a board with default settings for ESP32-S3, it will result in rebooting with a message similar to this:
To fix the issue, you will need to find out the precise module you are using and set **PSRAM** in the Arduino IDE Tools according to the following table.
192
+
193
+
How to determine the module version:
194
+
------------------------------------
195
+
196
+
* First determine if you have a `WROOM-1 <https://www.espressif.com/sites/default/files/documentation/esp32-s3-wroom-1_wroom-1u_datasheet_en.pdf>`_ or `WROOM-2 <https://www.espressif.com/sites/default/files/documentation/esp32-s3-wroom-2_datasheet_en.pdf>`_ module - this is written on the module shielding almost at the top, right under the ESP logo and company name (Espresif) right after the ESP32-S3 - for example ESP32-S3-WROOM-2.
197
+
* Then locate the version code on left bottom corner on the module shielding. The markings are very small and it might be really difficult to read with naked eyes - try using a camera with careful lighting.
198
+
199
+
With this knowledge find your module in the table and note what is written in the **PSRAM** column.
200
+
201
+
- If the results is empty (-) you don't need to change anything
202
+
- For QSPI go to Tools > PSRAM > QSPI PSRAM
203
+
- For OPI go to Tools > PSRAM > OPI PSRAM
204
+
205
+
Note that WROOM-2 has always OPI.
206
+
207
+
+---------+--------+------------+-------+
208
+
| Module | Code | Flash Mode | PSRAM |
209
+
+=========+========+============+=======+
210
+
| WROOM-1 | N4 | QSPI | - |
211
+
+---------+--------+------------+-------+
212
+
| WROOM-1 | N8 | QSPI | - |
213
+
+---------+--------+------------+-------+
214
+
| WROOM-1 | N16 | QSPI | - |
215
+
+---------+--------+------------+-------+
216
+
| WROOM-1 | H4 | QSPI | - |
217
+
+---------+--------+------------+-------+
218
+
| WROOM-1 | N4R2 | QSPI | QSPI |
219
+
+---------+--------+------------+-------+
220
+
| WROOM-1 | N8R2 | QSPI | QSPI |
221
+
+---------+--------+------------+-------+
222
+
| WROOM-1 | N16R2 | QSPI | QSPI |
223
+
+---------+--------+------------+-------+
224
+
| WROOM-1 | N4R8 | QSPI | OPI |
225
+
+---------+--------+------------+-------+
226
+
| WROOM-1 | N8R8 | QSPI | OPI |
227
+
+---------+--------+------------+-------+
228
+
| WROOM-1 | N16R8 | QSPI | OPI |
229
+
+---------+--------+------------+-------+
230
+
| WROOM-2 | N16R8V | OPI | OPI |
231
+
+---------+--------+------------+-------+
232
+
| WROOM-2 | N16R8V | OPI | OPI |
233
+
+---------+--------+------------+-------+
234
+
| WROOM-2 | N32R8V | OPI | OPI |
235
+
+---------+--------+------------+-------+
236
+
237
+
238
+
Further Help
239
+
------------
240
+
241
+
If you encounter any other issues or need further assistance, please consult the `ESP32 Arduino Core <https://github.com/espressif/arduino-esp32>`_ documentation or seek help from the `ESP32 community forums <https://esp32.com>`_.
Copy file name to clipboardExpand all lines: docs/source/tutorials/cdc_dfu_flash.rst
+1-1
Original file line number
Diff line number
Diff line change
@@ -23,7 +23,7 @@ ESP32-S3 CDC and DFU
23
23
24
24
It's important that your board includes the USB connector attached to the embedded USB from the SoC. If your board doesn't have the USB connector, you can attach an external one to the USB pins.
25
25
26
-
These instructions it will only work on the supported devices with the embedded USB peripheral. This tutorial will not work if you are using an external USB-to-serial converter like FTDI, CP2102, CH340, etc.
26
+
These instructions will only work on the supported devices with the embedded USB peripheral. This tutorial will not work if you are using an external USB-to-serial converter like FTDI, CP210x, CH340, etc.
27
27
28
28
For a complete reference to the Arduino IDE tools menu, please see the `Tools Menus <../guides/tools_menu.html>`_ reference guide.
Copy file name to clipboardExpand all lines: docs/source/tutorials/io_mux.rst
+1
Original file line number
Diff line number
Diff line change
@@ -35,6 +35,7 @@ To use this functionality, we must be aware of some precautions:
35
35
* Some of the GPIOs are **INPUT** only.
36
36
* Some peripherals have output signals and must be used on GPIO's capable to be configured as **OUTPUT**.
37
37
* Some peripherals, mostly the high speed ones, ADC, DAC, Touch, and JTAG use dedicated GPIOs pins.
38
+
* Some pins are used to connect flash memory on the module - this prevents them from any other use - if a peripheral is routed to one of these pins the device will not be able to boot.
38
39
39
40
.. warning::
40
41
Before assigning the peripheral pins in your design, double check if the pins you're using are appropriate.
Copy file name to clipboardExpand all lines: docs/source/tutorials/partition_table.rst
+15-1
Original file line number
Diff line number
Diff line change
@@ -131,7 +131,21 @@ Here is an example you can use for a custom partition table:
131
131
132
132
This partition will use about 12MB of the 16MB flash. The offset will be automatically calculated after the first application partition and the units are in K and M.
133
133
134
-
A alternative is to create the new partition table as a new file in the `tools/partitions <https://github.com/espressif/arduino-esp32/tree/master/tools/partitions>`_ folder and edit the `boards.txt <https://github.com/espressif/arduino-esp32/tree/master/boards.txt>`_ file to add your custom partition table.
134
+
An alternative is to create the new partition table as a new file in the `tools/partitions <https://github.com/espressif/arduino-esp32/tree/master/tools/partitions>`_ folder and edit the `boards.txt <https://github.com/espressif/arduino-esp32/tree/master/boards.txt>`_ file to add your custom partition table.
135
+
136
+
Another alternative is to create the new partition table as a new file, and place it in the `variants <https://github.com/espressif/arduino-esp32/tree/master/variants>`_ folder under your boards folder, and edit the `boards.txt <https://github.com/espressif/arduino-esp32/tree/master/boards.txt>`_ file to add your custom partition table, noting that in order for the compiler to find your custom partition table file you must use the '.build.custom_partitions=' option in the boards.txt file, rather than the standard '.build.partitions=' option. The '.build.variant=' option has the name of the folder holding your custom partition table in the variants folder.
137
+
138
+
An example of the PartitionScheme listing using the ESP32S3 Dev Module as a reference, would be to have the following:
139
+
140
+
**Custom Partition - CSV file in /variants/custom_esp32s3/ folder**
141
+
142
+
.. code-block::
143
+
144
+
esp32s3.build.variant=custom_esp32s3
145
+
--
146
+
esp32s3.menu.PartitionScheme.huge_app=Custom Huge APP (3MB No OTA/1MB SPIFFS)
0 commit comments