1.. zephyr:board:: esp_wrover_kit
2
3Overview
4********
5
6ESP-WROVER-KIT is an ESP32-based development board produced by `Espressif <https://www.espressif.com/>`_.
7
8ESP-WROVER-KIT features the following integrated components:
9
10- ESP32-WROVER-E module
11- LCD screen
12- MicroSD card slot
13
14Its another distinguishing feature is the embedded FTDI FT2232HL chip - an advanced multi-interface
15USB bridge. This chip enables to use JTAG for direct debugging of ESP32 through the USB interface
16without a separate JTAG debugger. ESP-WROVER-KIT makes development convenient, easy, and
17cost-effective.
18
19Most of the ESP32 I/O pins are broken out to the board's pin headers for easy access.
20
21.. note::
22
23   ESP32's GPIO16 and GPIO17 are used as chip select and clock signals for PSRAM. By default, the two
24   GPIOs are not broken out to the board's pin headers in order to ensure reliable performance.
25
26For more information, check `ESP32-WROVER-E Datasheet`_ and `ESP32 Datasheet`_.
27
28Functionality Overview
29**********************
30
31The block diagram below shows the main components of ESP-WROVER-KIT and their interconnections.
32
33.. image:: img/esp-wrover-kit-block-diagram.jpg
34     :align: center
35     :alt: ESP-WROVER-KIT
36
37Functional Description
38**********************
39
40The following two figures and the table below describe the key components, interfaces, and controls
41of the ESP-WROVER-KIT board.
42
43.. figure:: img/esp_wrover_kit.jpg
44     :align: center
45     :alt: esp wrover front
46
47     ESP-WROVER-KIT board layout - front
48
49.. _esp wrover back:
50
51.. figure:: img/esp-wrover-kit-v4.1-layout-back.jpg
52     :align: center
53     :alt: esp wrover back
54
55     ESP-WROVER-KIT board layout - back
56
57The table below provides description in the following manner:
58- Starting from the first picture's top right corner and going clockwise
59- Then moving on to the second picture
60
61+------------------+-------------------------------------------------------------------------+
62| Key Component    | Description                                                             |
63+==================+=========================================================================+
64| FT2232           | The FT2232 chip serves as a multi-protocol USB-to-serial bridge         |
65|                  | which can be programmed and controlled via USB to provide               |
66|                  | communication with ESP32. FT2232 also features USB-to-JTAG              |
67|                  | interface which is available on channel A of the chip, while USB-to-    |
68|                  | serial is on channel B. The FT2232 chip enhances user-friendliness in   |
69|                  | terms of application development and debugging. See `ESP-WROVER-KIT     |
70|                  | V4.1 schematic                                                          |
71|                  | <https://dl.espressif.com/dl/schematics/ESP-WROVER-KIT_V4_1.pdf>`_.     |
72+------------------+-------------------------------------------------------------------------+
73| 32.768 kHz       | External precision 32.768 kHz crystal oscillator serves as a clock with |
74|                  | low-power consumption while the chip is in Deep-sleep mode.             |
75+------------------+-------------------------------------------------------------------------+
76| 0R               | Zero-ohm resistor intended as a placeholder for a current shunt, can    |
77|                  | be desoldered or replaced with a current shunt to facilitate the        |
78|                  | measurement of ESP32’s current consumption in different modes.          |
79+------------------+-------------------------------------------------------------------------+
80| ESP32-WROVER-E   | This ESP32 module features 64-Mbit PSRAM for flexible extended          |
81| module           | storage and data processing capabilities.                               |
82+------------------+-------------------------------------------------------------------------+
83| Diagnostic LEDs  | Four red LEDs connected to the GPIO pins of FT2232. Intended for        |
84|                  | future use.                                                             |
85+------------------+-------------------------------------------------------------------------+
86| UART             | Serial port. The serial TX/RX signals of FT2232 and ESP32 are broken    |
87|                  | out to the inward and outward sides of JP2 respectively. By default,    |
88|                  | these pairs of pins are connected with jumpers. To use ESP32’s serial   |
89|                  | interface, remove the jumpers and connect another external serial       |
90|                  | device to the respective pins.                                          |
91+------------------+-------------------------------------------------------------------------+
92| SPI              | By default, ESP32 uses its SPI interface to access flash and PSRAM      |
93|                  | memory inside the module. Use these pins to connect ESP32 to            |
94|                  | another SPI device. In this case, an extra chip select (CS) signal is   |
95|                  | needed. Please note that the voltage of this interface is 3.3 V.        |
96+------------------+-------------------------------------------------------------------------+
97| CTS/RTS          | Serial port flow control signals: the pins are not connected to the     |
98|                  | circuitry by default. To enable them, short the respective pins of JP14 |
99|                  | with jumpers.                                                           |
100+------------------+-------------------------------------------------------------------------+
101| JTAG             | JTAG interface. JTAG signals of FT2232 and ESP32 are broken out to      |
102|                  | the inward and outward sides of JP2 respectively. By default, these     |
103|                  | pairs of pins are disconnected. To enable JTAG, short the respective    |
104|                  | pins with jumpers as shown in Section                                   |
105|                  | :ref:`Setup Options<setup options>`                                     |
106+------------------+-------------------------------------------------------------------------+
107| USB Port         | USB interface. Power supply for the board as well as the                |
108|                  | communication interface between a computer and the board.               |
109+------------------+-------------------------------------------------------------------------+
110| EN Button        | Reset button.                                                           |
111+------------------+-------------------------------------------------------------------------+
112| BOOT Button      | Download button. Holding down Boot and then pressing EN initiates       |
113|                  | Firmware Download mode for downloading firmware through the             |
114+------------------+-------------------------------------------------------------------------+
115| Power Switch     | Power On/Off Switch. Toggling toward the Boot button powers the         |
116|                  | board on, toggling away from Boot powers the board off.                 |
117+------------------+-------------------------------------------------------------------------+
118| Power Selector   | Power supply selector interface. The board can be powered either via    |
119|                  | USB or via the 5V Input interface. Select the power source with a       |
120|                  | jumper. For more details, see Section Setup Options, jumper header      |
121|                  | JP7.                                                                    |
122+------------------+-------------------------------------------------------------------------+
123| 5V input         | 5V power supply interface for a standard coaxial power connector,       |
124|                  | 5.5 x 2.1 mm, center positive. This interface can be more convenient    |
125|                  | when the board is operating autonomously (not connected to a            |
126|                  | computer).                                                              |
127+------------------+-------------------------------------------------------------------------+
128| 5V Power On LED  | This red LED turns on when power is supplied to the board, either       |
129|                  | from USB or 5V Input.                                                   |
130+------------------+-------------------------------------------------------------------------+
131| LDO              | NCP1117(1A). 5V-to-3.3V LDO. NCP1117 can provide a maximum              |
132|                  | current of 1A. The LDO on the board has a fixed output voltage.         |
133|                  | Although, the user can install an LDO with adjustable output voltage.   |
134|                  | For details, please refer to `ESP-WROVER-KIT V4.1 schematic             |
135|                  | <https://dl.espressif.com/dl/schematics/ESP-WROVER-KIT_V4_1.pdf>`_.     |
136+------------------+-------------------------------------------------------------------------+
137| Camera Connector | Camera interface, a standard OV7670 camera module.                      |
138+------------------+-------------------------------------------------------------------------+
139| RGB LED          | Red, green and blue (RGB) light emitting diodes (LEDs), can be          |
140|                  | controlled by pulse width modulation (PWM).                             |
141+------------------+-------------------------------------------------------------------------+
142| I/O Connector    | All the pins on the ESP32 module are broken out to pin headers. You     |
143|                  | can program ESP32 to enable multiple functions, such as PWM, ADC,       |
144|                  | DAC, I2C, I2S, SPI, etc.                                                |
145+------------------+-------------------------------------------------------------------------+
146| MicroSD Card     | Useful for developing applications that access MicroSD card for data    |
147| Slot             | storage and retrieval.                                                  |
148+------------------+-------------------------------------------------------------------------+
149| LCD              | Support for mounting and interfacing a 3.2” SPI (standard 4-wire        |
150|                  | Serial Peripheral Interface) LCD, as shown on figure                    |
151|                  | :ref:`ESP-WROVER-KIT board layout - back<esp wrover back>`              |
152+------------------+-------------------------------------------------------------------------+
153
154.. _setup options:
155
156Setup Options
157*************
158
159There are three jumper blocks available to set up the board functionality. The most frequently
160required options are listed in the table below.
161
162.. |jmpextpwr| image:: img/esp-wrover-kit-v4.1-jp7-ext_5v.jpg
163
164.. |jmpusbpwr| image:: img/esp-wrover-kit-v4.1-jp7-usb_5v.jpg
165
166.. |jmpjtag| image:: img/esp-wrover-kit-v4.1-jp2-jtag.jpg
167
168.. |jmpuart| image:: img/esp-wrover-kit-v4.1-jp2-tx-rx.jpg
169
170.. |jmpctrl| image:: img/esp-wrover-kit-v4.1-jp14.jpg
171
172+------------------+--------------------------------------------------------------+
173| Header | Jumper Setting | Description of Functionality                          |
174+========+================+=======================================================+
175| JP7    | |jmpextpwr|    | Power ESP-WROVER-KIT via an external power supply     |
176+--------+----------------+-------------------------------------------------------+
177| JP7    | |jmpusbpwr|    | Power ESP-WROVER-KIT via USB                          |
178+--------+----------------+-------------------------------------------------------+
179| JP2    | |jmpjtag|      | Enable JTAG functionality                             |
180+--------+----------------+-------------------------------------------------------+
181| JP2    | |jmpuart|      | Enable UART communication                             |
182+--------+----------------+-------------------------------------------------------+
183| JP14   | |jmpctrl|      | Enable RTS/CTS flow control for serial communication  |
184+--------+----------------+-------------------------------------------------------+
185
186Allocation of ESP32 Pins
187************************
188
189Some pins / terminals of ESP32 are allocated for use with the onboard or external hardware. If
190that hardware is not used, e.g., nothing is plugged into the Camera (JP4) header, then these
191GPIOs can be used for other purposes.
192
193Some of the pins, such as GPIO0 or GPIO2, have multiple functions and some of them are shared
194among onboard and external peripheral devices. Certain combinations of peripherals cannot work
195together. For example, it is not possible to do JTAG debugging of an application that is using
196SD card, because several pins are shared by JTAG and the SD card slot.
197
198In other cases, peripherals can coexist under certain conditions. This is applicable to, for
199example, LCD screen and SD card that share only a single pin GPIO21. This pin is used to provide
200D/C (Data / Control) signal for the LCD as well as the Card Detect signal read from the SD card
201slot. If the card detect functionality is not essential, then it may be disabled by removing R167,
202so both LCD and SD may operate together.
203
204For more details on which pins are shared among which peripherals, please refer to the table in
205the next section.
206
207Main I/O Connector / JP1
208************************
209
210The JP1 connector consists of 14x2 male pins whose functions are shown in the middle two “I/O”
211columns of the table below. The two “Shared With” columns on both sides describe where else on
212the board a certain GPIO is used.
213
214+-------------------+------+------+----------------------+
215| Shared With       | I/O  | I/O  | Shared With          |
216+===================+======+======+======================+
217| n/a               | 3.3V | GND  | n/a                  |
218+-------------------+------+------+----------------------+
219| NC/XTAL           | IO32 | IO33 | NC/XTAL              |
220+-------------------+------+------+----------------------+
221| JTAG, MicroSD     | IO12 | IO13 | JTAG, MicroSD        |
222+-------------------+------+------+----------------------+
223| JTAG, MicroSD     | IO14 | IO27 | Camera               |
224+-------------------+------+------+----------------------+
225| Camera            | IO26 | IO25 | Camera, LCD          |
226+-------------------+------+------+----------------------+
227| Camera            | IO35 | IO34 | Camera               |
228+-------------------+------+------+----------------------+
229| Camera            | IO39 | IO36 | Camera               |
230+-------------------+------+------+----------------------+
231| JTAG              | EN   | IO23 | Camera, LCD          |
232+-------------------+------+------+----------------------+
233| Camera, LCD       | IO22 | IO21 | Camera, LCD, MicroSD |
234+-------------------+------+------+----------------------+
235| Camera, LCD       | IO19 | IO18 | Camera, LCD          |
236+-------------------+------+------+----------------------+
237| Camera, LCD       | IO5  | IO17 | PSRAM                |
238+-------------------+------+------+----------------------+
239| PSRAM             | IO16 | IO4  | LED, Camera, MicroSD |
240+-------------------+------+------+----------------------+
241| Camera, LED, Boot | IO0  | IO2  | LED, MicroSD         |
242+-------------------+------+------+----------------------+
243| JTAG, MicroSD     | IO15 | 5V   |                      |
244+-------------------+------+------+----------------------+
245
246Legend:
247
248  - NC/XTAL - 32.768 kHz Oscillator
249  - JTAG - JTAG / JP2
250  - Boot - Boot button / SW2
251  - Camera - Camera / JP4
252  - LED - RGB LED
253  - MicroSD - MicroSD Card / J4
254  - LCD - LCD / U5
255  - PSRAM - ESP32-WROVER-E's PSRAM
256
25732.768 kHz Oscillator
258*********************
259
260+---+-----------+
261| . | ESP32 Pin |
262+===+===========+
263| 1 | GPIO32    |
264+---+-----------+
265| 2 | GPIO33    |
266+---+-----------+
267
268.. note::
269
270   Since GPIO32 and GPIO33 are connected to the oscillator by default, they are not connected to
271   the JP1 I/O connector to maintain signal integrity. This allocation may be changed from the
272   oscillator to JP1 by desoldering the zero-ohm resistors from positions R11 / R23 and re-soldering
273   them to positions R12 / R24.
274
275SPI Flash / JP2
276***************
277
278+---+--------------+
279| . | ESP32 Pin    |
280+===+==============+
281| 1 | CLK / GPIO6  |
282+---+--------------+
283| 2 | SD0 / GPIO7  |
284+---+--------------+
285| 3 | SD1 / GPIO8  |
286+---+--------------+
287| 4 | SD2 / GPIO9  |
288+---+--------------+
289| 5 | SD3 / GPIO10 |
290+---+--------------+
291| 6 | CDM / GPIO11 |
292+---+--------------+
293
294.. important::
295   The module's flash bus is connected to the jumper block JP2 through zero-ohm resistors R140 ~
296   R145. If the flash memory needs to operate at the frequency of 80 MHz, for reasons such as
297   improving the integrity of bus signals, you can desolder these resistors to disconnect the
298   module's flash bus from the pin header JP2.
299
300JTAG / JP2
301**********
302
303+---+---------------+-------------+
304| . | ESP32 Pin     | JTAG Signal |
305+===+===============+=============+
306| 1 | EN            | TRST_N      |
307+---+---------------+-------------+
308| 2 | MTMS / GPIO14 | TMS         |
309+---+---------------+-------------+
310| 3 | MTDO / GPIO15 | TDO         |
311+---+---------------+-------------+
312| 4 | MTDI / GPIO12 | TDI         |
313+---+---------------+-------------+
314| 5 | MTCK / GPIO13 | TCK         |
315+---+---------------+-------------+
316
317Camera / JP4
318************
319
320+----+-----------+-----------------------------+
321| .  | ESP32 Pin | Camera Signal               |
322+====+===========+=============================+
323| 1  | n/a       | 3.3V                        |
324+----+-----------+-----------------------------+
325| 2  | n/a       | Ground                      |
326+----+-----------+-----------------------------+
327| 3  | GPIO27    | SIO_C / SCCB Clock          |
328+----+-----------+-----------------------------+
329| 4  | GPIO26    | SIO_D / SCCB Data           |
330+----+-----------+-----------------------------+
331| 5  | GPIO25    | VSYNC / Vertical Sync       |
332+----+-----------+-----------------------------+
333| 6  | GPIO23    | HREF / Horizontal Reference |
334+----+-----------+-----------------------------+
335| 7  | GPIO22    | PCLK / Pixel Clock          |
336+----+-----------+-----------------------------+
337| 8  | GPIO21    | XCLK / System Clock         |
338+----+-----------+-----------------------------+
339| 9  | GPIO35    | D7 / Pixel Data Bit 7       |
340+----+-----------+-----------------------------+
341| 10 | GPIO34    | D6 / Pixel Data Bit 6       |
342+----+-----------+-----------------------------+
343| 11 | GPIO39    | D5 / Pixel Data Bit 5       |
344+----+-----------+-----------------------------+
345| 12 | GPIO36    | D4 / Pixel Data Bit 4       |
346+----+-----------+-----------------------------+
347| 13 | GPIO19    | D3 / Pixel Data Bit 3       |
348+----+-----------+-----------------------------+
349| 14 | GPIO18    | D2 / Pixel Data Bit 2       |
350+----+-----------+-----------------------------+
351| 15 | GPIO5     | D1 / Pixel Data Bit 1       |
352+----+-----------+-----------------------------+
353| 16 | GPIO4     | D0 / Pixel Data Bit 0       |
354+----+-----------+-----------------------------+
355| 17 | GPIO0     | RESET / Camera Reset        |
356+----+-----------+-----------------------------+
357| 18 | n/a       | PWDN / Camera Power Down    |
358+----+-----------+-----------------------------+
359
360- Signals D0 .. D7 denote camera data bus
361
362RGB LED
363*******
364
365+----+-----------+---------+
366| .  | ESP32 Pin | RGB LED |
367+====+===========+=========+
368| 1  | GPIO0     | Red     |
369+----+-----------+---------+
370| 2  | GPIO2     | Green   |
371+----+-----------+---------+
372| 3  | GPIO4     | Blue    |
373+----+-----------+---------+
374
375MicroSD Card
376************
377
378+---+---------------+----------------+
379| . | ESP32 Pin     | MicroSD Signal |
380+===+===============+================+
381| 1 | MTDI / GPIO12 | DATA2          |
382+---+---------------+----------------+
383| 2 | MTCK / GPIO13 | CD / DATA3     |
384+---+---------------+----------------+
385| 3 | MTDO / GPIO15 | CMD            |
386+---+---------------+----------------+
387| 4 | MTMS / GPIO14 | CLK            |
388+---+---------------+----------------+
389| 5 | GPIO2         | DATA0          |
390+---+---------------+----------------+
391| 6 | GPIO4         | DATA1          |
392+---+---------------+----------------+
393| 7 | GPIO21        | Card Detect    |
394+---+---------------+----------------+
395
396LCD / U5
397********
398
399+---+-----------+------------+
400| . | ESP32 Pin | LCD Signal |
401+===+===========+============+
402| 1 | GPIO18    | RESET      |
403+---+-----------+------------+
404| 2 | GPIO19    | SCL        |
405+---+-----------+------------+
406| 3 | GPIO21    | D/C        |
407+---+-----------+------------+
408| 4 | GPIO22    | CS         |
409+---+-----------+------------+
410| 5 | GPIO23    | SDA        |
411+---+-----------+------------+
412| 6 | GPIO25    | SDO        |
413+---+-----------+------------+
414| 7 | GPIO5     | Backlight  |
415+---+-----------+------------+
416
417Start Application Development
418*****************************
419
420Before powering up your ESP-WROVER-KIT, please make sure that the board is in good
421condition with no obvious signs of damage.
422
423Initial Setup
424*************
425
426Please set only the following jumpers shown in the pictures below:
427
428- Select USB as the power source using the jumper block JP7.
429- Enable UART communication using the jumper block JP2.
430
431+------------------------+---------------------------+
432| Power up from USB port | Enable UART communication |
433+========+===============+===========================+
434|       |jmpusbpwr|      |         |jmpuart|         |
435+------------------------+---------------------------+
436
437Do not install any other jumpers.
438
439Turn the Power Switch to ON, the 5V Power On LED should light up.
440
441Supported Features
442==================
443
444Current Zephyr's ESP32-Wrover-Kit board supports the following features:
445
446+------------+------------+-------------------------------------+
447| Interface  | Controller | Driver/Component                    |
448+============+============+=====================================+
449| UART       | on-chip    | serial port                         |
450+------------+------------+-------------------------------------+
451| GPIO       | on-chip    | gpio                                |
452+------------+------------+-------------------------------------+
453| PINMUX     | on-chip    | pinmux                              |
454+------------+------------+-------------------------------------+
455| USB-JTAG   | on-chip    | hardware interface                  |
456+------------+------------+-------------------------------------+
457| SPI Master | on-chip    | spi                                 |
458+------------+------------+-------------------------------------+
459| Timers     | on-chip    | counter                             |
460+------------+------------+-------------------------------------+
461| Watchdog   | on-chip    | watchdog                            |
462+------------+------------+-------------------------------------+
463| TRNG       | on-chip    | entropy                             |
464+------------+------------+-------------------------------------+
465| LEDC       | on-chip    | pwm                                 |
466+------------+------------+-------------------------------------+
467| MCPWM      | on-chip    | pwm                                 |
468+------------+------------+-------------------------------------+
469| PCNT       | on-chip    | qdec                                |
470+------------+------------+-------------------------------------+
471| SPI DMA    | on-chip    | spi                                 |
472+------------+------------+-------------------------------------+
473| TWAI       | on-chip    | can                                 |
474+------------+------------+-------------------------------------+
475| ADC        | on-chip    | adc                                 |
476+------------+------------+-------------------------------------+
477| DAC        | on-chip    | dac                                 |
478+------------+------------+-------------------------------------+
479| Wi-Fi      | on-chip    |                                     |
480+------------+------------+-------------------------------------+
481| Bluetooth  | on-chip    |                                     |
482+------------+------------+-------------------------------------+
483
484System requirements
485===================
486
487Prerequisites
488-------------
489
490Espressif HAL requires WiFi and Bluetooth binary blobs in order work. Run the command
491below to retrieve those files.
492
493.. code-block:: console
494
495   west blobs fetch hal_espressif
496
497.. note::
498
499   It is recommended running the command above after :file:`west update`.
500
501Building & Flashing
502*******************
503
504Simple boot
505===========
506
507The board could be loaded using the single binary image, without 2nd stage bootloader.
508It is the default option when building the application without additional configuration.
509
510.. note::
511
512   Simple boot does not provide any security features nor OTA updates.
513
514MCUboot bootloader
515==================
516
517User may choose to use MCUboot bootloader instead. In that case the bootloader
518must be built (and flashed) at least once.
519
520There are two options to be used when building an application:
521
5221. Sysbuild
5232. Manual build
524
525.. note::
526
527   User can select the MCUboot bootloader by adding the following line
528   to the board default configuration file.
529
530   .. code:: cfg
531
532      CONFIG_BOOTLOADER_MCUBOOT=y
533
534Sysbuild
535========
536
537The sysbuild makes possible to build and flash all necessary images needed to
538bootstrap the board with the ESP32 SoC.
539
540To build the sample application using sysbuild use the command:
541
542.. zephyr-app-commands::
543   :tool: west
544   :zephyr-app: samples/hello_world
545   :board: esp_wrover_kit
546   :goals: build
547   :west-args: --sysbuild
548   :compact:
549
550By default, the ESP32 sysbuild creates bootloader (MCUboot) and application
551images. But it can be configured to create other kind of images.
552
553Build directory structure created by sysbuild is different from traditional
554Zephyr build. Output is structured by the domain subdirectories:
555
556.. code-block::
557
558  build/
559  ├── hello_world
560  │   └── zephyr
561  │       ├── zephyr.elf
562  │       └── zephyr.bin
563  ├── mcuboot
564  │    └── zephyr
565  │       ├── zephyr.elf
566  │       └── zephyr.bin
567  └── domains.yaml
568
569.. note::
570
571   With ``--sysbuild`` option the bootloader will be re-build and re-flash
572   every time the pristine build is used.
573
574For more information about the system build please read the :ref:`sysbuild` documentation.
575
576Manual build
577============
578
579During the development cycle, it is intended to build & flash as quickly possible.
580For that reason, images can be built one at a time using traditional build.
581
582The instructions following are relevant for both manual build and sysbuild.
583The only difference is the structure of the build directory.
584
585.. note::
586
587   Remember that bootloader (MCUboot) needs to be flash at least once.
588
589Build and flash applications as usual (see :ref:`build_an_application` and
590:ref:`application_run` for more details).
591
592.. zephyr-app-commands::
593   :zephyr-app: samples/hello_world
594   :board: esp_wrover_kit/esp32/procpu
595   :goals: build
596
597The usual ``flash`` target will work with the ``esp_wrover_kit`` board
598configuration. Here is an example for the :zephyr:code-sample:`hello_world`
599application.
600
601.. zephyr-app-commands::
602   :zephyr-app: samples/hello_world
603   :board: esp_wrover_kit/esp32/procpu
604   :goals: flash
605
606Open the serial monitor using the following command:
607
608.. code-block:: shell
609
610   west espressif monitor
611
612After the board has automatically reset and booted, you should see the following
613message in the monitor:
614
615.. code-block:: console
616
617   ***** Booting Zephyr OS vx.x.x-xxx-gxxxxxxxxxxxx *****
618   Hello World! esp_wrover_kit
619
620Debugging
621*********
622
623ESP32 support on OpenOCD is available at `OpenOCD ESP32`_.
624
625On the ESP-WROVER-KIT board, the JTAG pins are connected internally to
626a USB serial port on the same device as the console.  These boards
627require no external hardware and are debuggable as-is.  The JTAG
628signals, however, must be jumpered closed to connect the internal
629controller (the default is to leave them disconnected).  The jumper
630headers are on the right side of the board as viewed from the power
631switch, next to similar headers for SPI and UART.  See
632`ESP-WROVER-32 V3 Getting Started Guide`_ for details.
633
634Here is an example for building the :zephyr:code-sample:`hello_world` application.
635
636.. zephyr-app-commands::
637   :zephyr-app: samples/hello_world
638   :board: esp_wrover_kit/esp32/procpu
639   :goals: build flash
640   :gen-args: -DOPENOCD=<path/to/bin/openocd> -DOPENOCD_DEFAULT_PATH=<path/to/openocd/share/openocd/scripts>
641
642You can debug an application in the usual way. Here is an example for the :zephyr:code-sample:`hello_world` application.
643
644.. zephyr-app-commands::
645   :zephyr-app: samples/hello_world
646   :board: esp_wrover_kit/esp32/procpu
647   :goals: debug
648
649References
650**********
651
652.. target-notes::
653
654.. _`ESP32 Datasheet`: https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf (PDF)
655.. _`ESP32-WROVER-E Datasheet`: https://www.espressif.com/sites/default/files/documentation/esp32-wrover-e_esp32-wrover-ie_datasheet_en.pdf (PDF)
656.. _`OpenOCD ESP32`: https://github.com/espressif/openocd-esp32/releases
657.. _`ESP-WROVER-32 V3 Getting Started Guide`: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-wrover-kit.html
658