This is the documentation for the latest (main) development branch of Zephyr. If you are looking for the documentation of previous releases, use the drop-down menu on the left and select the desired version.

MikroElektronika WIFI and BLE Shield

Overview

This shield contains an Espressif Systems ESP32 which is responsible to offload the WIFI and Bluetooth tasks from the host processor. It uses the standard MikroBus interface with UART pins plus its Espressif AT command set. Alternatively, the Zephyr modem driver can be used, configuring the module as a native WIFI networking interface.

MikroE WIFI BLE Click

Pins Assignment of the Shield

Shield Connector Pin

Function

RST#

Reset pin, in most of the boards it should be disconnected because its tied to GND

TX

UART TX communication pin

RX

UART RX communication pin

Requirements

This shield requires a board which provides a configuration that allows an UART interface. (see Shields for more details).

Note

Sometimes boards declare standard headers like Arduino R3 but don’t define all connections. Make sure that the board you are using includes all required definitions to avoid build errors.

This shield should be loaded with the ESP32 AT Bin 1 software which is available at Espressif Systems web site. This version is command compatible with ESP32 AT Bin 2.0.0, after getting the binary from Espressif site, connect the J1 of the board to a serial-to-USB converter of your preference, or to one Espressif programming boards like ESP-Prog. Install the ESP-Tool 2, extract the folder, navigate inside the binaries location and type the following command to flash the device:

esptool.py --chip auto \
--before default_reset \
--after hard_reset write_flash \
--flash_mode dio \
--flash_freq 40m \
--flash_size detect \
0x10000 ota_data_initial.bin \
0x1000 bootloader/bootloader.bin \
0x20000 at_customize.bin \
0x21000 customized_partitions/ble_data.bin \
0x24000 customized_partitions/server_cert.bin \
0x26000 customized_partitions/server_key.bin \
0x28000 customized_partitions/server_ca.bin \
0x2a000 customized_partitions/client_cert.bin \
0x2c000 customized_partitions/client_key.bin \
0x2e000 customized_partitions/client_ca.bin \
0x30000 customized_partitions/factory_param.bin \
0xf000 phy_init_data.bin \
0x100000 esp-at.bin \
0x8000 partitions_at.bin

If necessary, you can indicate a specific port and the baud rate via --port <Selected PORT> and --baud 115200.

Once flashed, it is possible to verify the module. While connected, open your preferred terminal configured as 115200, 8, N, 1 and perform a board reset. You should see an initial log and last message should be the version of the AT firmware flashed.

Note

Boards that already have a network interface: Check the network documentation to understand how to properly configure both interfaces. To keep things simple, make sure WiFi is the only interface enabled in Networking -> Link Layer Options. This will avoid problems running Zephyr samples.

Build and Programming

Set -DSHIELD=<shield designation> when you invoke west build.

See the example below for lpcxpresso55s69 board using Mikrobus serial:

# From the root of the zephyr repository
west build -b lpcxpresso55s69_cpu0 samples/net/wifi -- -DSHIELD=mikroe_wifi_bt_click_mikrobus
west flash

And this example for the b_u585i_iot02a development kit, using the Arduino connector for the UART pins:

# From the root of the zephyr repository
west build -b b_u585i_iot02a samples/net/wifi -- -DSHIELD=mikroe_wifi_bt_click_arduino
west flash

References

1

https://docs.espressif.com/projects/esp-at/en/latest/esp32/AT_Binary_Lists/ESP32_AT_binaries.html

2

https://github.com/espressif/esptool