Olimex ESP32-EVB

Support for Olimex ESP32-EVB and ESP32-GATEWAY. More...

Detailed Description

Support for Olimex ESP32-EVB and ESP32-GATEWAY.

Author
Gunar Schorcht gunar.nosp@m.@sch.nosp@m.orcht.nosp@m..net

<a name="toc"> Table of Contents </a>

  1. Overview
  2. Hardware
    1. MCU
    2. Board Configuration
    3. Board Pinout
    4. Optional Hardware Configurations
  3. Flashing the Device

<a name="overview"> Overview </a>    [<a href="#toc">TOC</a>]

Olimex ESP32-EVB and Olimex ESP32-GATEWAY are open source hardware boards which use the ESP32-WROOM module. The key features of the boards are:

Using the UEXT connector, a lot of off-board hardware modules can be connected to Olimex ESP32-EVB to extend the hardware without the need for soldering iron or breadboards.

Because of the differences in the on-board hardware, it is necessary to add the following line to the makefile of the application to use the according configuration for Olimex ESP32-GATEWAY:

USEMODULE += olimex_esp32_gateway
Olimex ESP32-EVB (left) and Olimex ESP32-GATEWAY (right)

<a name="hardware"> Hardware </a>    [<a href="#toc">TOC</a>]

This section describes

<a name="mcu"> MCU </a>    [<a href="#toc">TOC</a>]

Most features of the board are provided by the ESP32 SoC. For detailed information about the ESP32, see section MCU ESP32.

<a name="board_configuration"> Board Configuration </a>    [<a href="#toc">TOC</a>]

Olimex ESP32-EVB and Olimex ESP32-GATEWAY have the following on-board components:

The following table shows the default board configuration, which is sorted according to the defined functionality of GPIOs. This configuration can be overridden by application-specific configurations.

Pin Configuration*
ESP32-EVB
Configuration*
ESP32-GATEWAY
Remarks / Prerequisites Configuration
GPIO13 I2C_DEV(0):SDA SDCARD_CS on ESP32-EVB available at [UEXT1] I2C Interfaces
GPIO16 I2C_DEV(0):SCL I2C_DEV(0):SCL on ESP32-EVB available at [UEXT1] I2C Interfaces
GPIO14 SPI_DEV(0):CLK SDCARD_CLK on ESP32-EVB available at [UEXT1] SPI Interfaces
GPIO2 SPI_DEV(0):MISO SDCARD_MISO on ESP32-EVB available at [UEXT1] SPI Interfaces
GPIO15 SPI_DEV(0):MOSI SDCARD_MOSI on ESP32-EVB available at [UEXT1] SPI Interfaces
GPIO17 SPI_DEV(0):CS0 I2C_DEV(0):SDA on ESP32-EVB available at [UEXT1] SPI Interfaces
GPIO1 UART_DEV(0):TxD UART_DEV(0):TxD Console (cannot be changed) UART interfaces
GPIO3 UART_DEV(0):RxD UART_DEV(0):RxD Console (cannot be changed) UART interfaces
GPIO4 UART_DEV(1):TxD N/A ESP32-EVB [UEXT1] UART interfaces
GPIO36 UART_DEV(1):RxD ADC_LINE(2) on ESP32-EVB available at [UEXT1] UART interfaces
GPIO32 Relais 1 ADC_LINE(0) ADC Channels
GPIO33 Relais 2 LED0
GPIO34 BUTTON0 BUTTON0
GPIO9 PWM_DEV(0):0 PWM_DEV(0):0 PWM Channels
GPIO10 PWM_DEV(0):1 PWM_DEV(0):1 PWM Channels
GPIO5 CAN_DEV(0):TX CAN Interfaces
GPIO35 CAN_DEV(0):RX ADC_LINE(1) ADC Channels
GPIO12 IR_DEV(0):TX N/A IR is not yet supported
GPIO39 IR_DEV(0):RX ADC_LINE(3) IR is not yet supported ADC Channels
GPIO18 EMAC_SMI:MDIO EMAC_SMI:MDIO LAN interface Ethernet MAC
GPIO23 EMAC_SMI:MDC EMAC_SMI:MDC LAN interface Ethernet MAC
GPIO0 EMAC_RMII:TX_CLK EMAC_RMII:TX_CLK LAN interface Ethernet MAC
GPIO21 EMAC_RMII:TX_EN EMAC_RMII:TX_EN LAN interface Ethernet MAC
GPIO19 EMAC_RMII:TXD0 EMAC_RMII:TXD0 LAN interface Ethernet MAC
GPIO22 EMAC_RMII:TXD1 EMAC_RMII:TXD1 LAN interface Ethernet MAC
GPIO25 EMAC_RMII:RXD0 EMAC_RMII:RXD0 LAN interface Ethernet MAC
GPIO26 EMAC_RMII:RXD1 EMAC_RMII:RXD1 LAN interface Ethernet MAC
GPIO27 EMAC_RMII:RX_DV EMAC_RMII:RX_DV LAN interface Ethernet MAC
Note
  • To use the board configuration for Olimex-ESP32-GATEWAY, it is necessary to add the following line to makefile of the application:

    USEMODULE += olimex_esp32_gateway
  • GPIO9 and GIOP10 can only be used in dout and dio flash modes.
  • It might be necessary to remove the SD card or the peripheral hardware attached to the SPI_DEV(0) interface for flashing RIOT. Reason is that the SPI_DEV(0) interface uses the HSPI interface with the GPIO2 pin as the MISO signal, which has bootstrapping functionality.

For detailed information about the configuration of ESP32 boards, see section Common Peripherals.

<a name="optional_hardware"> Optional Hardware Configurations </a>    [<a href="#toc">TOC</a>]

MRF24J40-based IEEE 802.15.4 radio modules have been tested with the board. You could use the following code in your application-specific configuration to use such modules:

#ifdef BOARD_ESP32_OLIMEX_EVB && !MODULE_ESP32_OLIMEX_GATEWAY
#if MODULE_MRF24J40
#define MRF24J40_PARAM_CS GPIO9 /* MRF24J40 CS signal */
#define MRF24J40_PARAM_RESET GPIO10 /* MRF24J40 RESET signal */
#define MRF24J40_PARAM_INT GPIO34 /* MRF24J40 INT signal */
#endif
#endif

For other parameters, the default values defined by the drivers can be used.

Note
  • Since the Olimex-ESP32-GATEWAY does not break out the GPIO of the HSPI interface SPI_DEV(0), it is not possible to connect such module to Olimex-ESP32-GATEWAY.
  • Since the Olimex-ESP32-EVB has a lot of on-board hardware, only a few GPIOs are available for external hardware.
  • The RESET signal of MRF24J40 based modules can also be connected to the RST pin of the board (see pinout) to keep the configured GPIO free for other purposes.

<a name="pinout"> Board Pinout </a>    [<a href="#toc">TOC</a>]

The following pictures shows the pinout of Olimex ESP32-EVB and Olimex ESP32-GATEWAY boards as defined by the default board configuration. The light green GPIOs are not used by configured on-board hardware components and can be used for any purpose. However, if optional off-board hardware modules are used, these GPIOs may also be occupied, see optional functions in table board configuration.

The corresponding board schematics can be found on GitHub for Olimex ESP32-EVB board and for Olimex ESP32-GATEWAY.

Olimex ESP32-EVB pinout
Olimex ESP32-GATEWAY pinout

<a name="flashing"> Flashing the Device </a>    [<a href="#toc">TOC</a>]

Flashing RIOT is quite easy. The board has a Micro-USB connector with reset/boot/flash logic. Just connect the board to your host computer and type using the programming port:

make flash BOARD=esp32-olimex-evb ...

For detailed information about ESP32 as well as configuring and compiling RIOT for ESP32 boards, see RIOT-OS on ESP32 boards.

Files

file  arduino_board.h
 Board specific configuration for the Arduino API.
 
file  arduino_pinmap.h
 Mapping from MCU pins to Arduino pins.
 
file  board.h
 Board specific definitions for Olimex ESP32-EVB (ESP32-GATEWAY)
 
file  gpio_params.h
 Board specific configuration of direct mapped GPIOs.
 
file  periph_conf.h
 Peripheral MCU configuration for Olimex ESP32-EVB (ESP32-GATEWAY)