| .. _module_esp_8266: |
| |
| ESP-8266 Modules |
| ################ |
| |
| Overview |
| ******** |
| |
| ESP-8266 radio is a cost-effective Wi-Fi SOC module which allows any |
| microcontrollers to easily access to WiFi network. This module supports |
| the standard IEEE802.11 b/g/n protocol, built-in complete TCP/IP protocol |
| stack. Users can use this series of modules to add networking capabilities |
| to existing devices. |
| |
| The simplest module that uses ESP-8266 is ESP-01. This is a generic shield |
| configuration that allows any ESP-8266 module variation including ESP-12E/F. |
| |
| .. image:: esp-01.jpg |
| :align: center |
| :alt: ESP-01 |
| |
| Pins Assignment of the ESP-01 Module |
| ==================================== |
| |
| +---------------+-------------------------------------+ |
| | Connector Pin | Function | |
| +===============+=====================================+ |
| | GND | POWER GND | |
| +---------------+-------------------------------------+ |
| | GPIO1 | U0_TXD | |
| +---------------+-------------------------------------+ |
| | GPIO2 | | |
| +---------------+-------------------------------------+ |
| | CHIP_EN | ENABLE (VDD = RUN, GND = LOW POWER) | |
| +---------------+-------------------------------------+ |
| | GPIO0 | | |
| +---------------+-------------------------------------+ |
| | EXT_RST | | |
| +---------------+-------------------------------------+ |
| | GPIO3 | U0_RXD | |
| +---------------+-------------------------------------+ |
| | VDD | POWER +3.3V | |
| +---------------+-------------------------------------+ |
| |
| Requirements |
| ************ |
| |
| This shield requires a board which provides a configuration that allows an |
| UART interface. (see :ref:`shields` for more details). |
| |
| .. note:: |
| Sometimes boards declare standard headers like Arduino R3 but not define |
| all connections. Make sure that the board you are using have all |
| definitions to avoid build errors. |
| |
| The ESP-8266 should be loaded with the `ESP8266 AT Bin`_ software which is |
| available at Espressif Systems web site. The ESP-01 module have up to 1MB of |
| flash and the last available stack that fits on this device is ESP8266 AT Bin |
| V1.6.2. This version is command compatible with ESP8266 AT Bin 1.7.x which is |
| the minimal version supported by the ESP WIFI driver. |
| |
| The ESP-8266 Modules that have 2MB or more is highly recommended upgrade to |
| version 1.7.x for better future compatibility. |
| |
| This tutorial won't explain how firmware must be upgraded. However, it will |
| present some tips to easily success. The ESP WIFI was tested with an ESP-01 |
| with 1MB flash using Boot Mode and with Flash size 8Mbit: 512KB + 512KB. The |
| ESP8266 AT Bin 1.7.x available requires the following partition configuration |
| to works: |
| |
| .. image:: esp_at_173.jpg |
| :align: center |
| :alt: ESP8266 AT Bin V1.7.3 |
| |
| - Tips |
| |
| - Don't forget to erase Flash before upgrade |
| - Upgrade all binaries at same time. |
| - ESP-8266 bootloader won't send garbage. Try connect at 74880 bps if |
| you module have 26MHz crystal to detect boot fails. |
| |
| .. note:: |
| Boards that already have a network interface: Check network |
| documentation to understand how properly configure both interfaces. |
| To keep simple, make sure WiFi is the only interface enabled at |
| Networking -> Link Layer Options. This will avoid problems running |
| Zephyr samples. |
| |
| Supported variations |
| ==================== |
| |
| The below table suggests shield variation accordingly with end user |
| application. When a standard connector (arduino, mikrobus) is available on |
| board, user should select the matching shield configuration. When esp_8266 |
| shield is used with a board that doesn't feature a standard connector, a |
| dedicated <board>.overlay file should be provided. The remaining |
| configurations should be used based on the board standard headers available. |
| |
| +-----------------------------+------------------------------+-----------+ |
| | Connector Standard | Shield Designation | Variation | |
| +=============================+==============================+===========+ |
| | Without standard (overlay) | `esp_8266`_ | 1 | |
| +-----------------------------+------------------------------+-----------+ |
| | Arduino | `esp_8266_arduino`_ | 2 | |
| +-----------------------------+------------------------------+-----------+ |
| | MikroBus | `esp_8266_mikrobus`_ | 3 | |
| +-----------------------------+------------------------------+-----------+ |
| |
| |
| Build and Programming |
| ********************* |
| |
| Set ``-DSHIELD=<shield designation>`` when you invoke ``west build``. |
| |
| To build shield with specific overlay: |
| |
| .. zephyr-app-commands:: |
| :zephyr-app: samples/net/wifi |
| :board: sam4e_xpro |
| :shield: esp_8266 |
| :goals: build flash |
| |
| To build shield with standard headers: |
| |
| .. zephyr-app-commands:: |
| :zephyr-app: samples/net/wifi |
| :board: [disco_l475_iot1 | frdm_k64f | lpcxpresso55s69_ns | nucleo_f767zi] |
| :shield: [esp_8266_arduino | esp_8266_mikrobus] |
| :goals: build flash |
| |
| References |
| ********** |
| |
| .. target-notes:: |
| |
| .. _ESP8266 AT Bin: |
| https://www.espressif.com/en/support/download/at |
| |
| .. _esp_8266: |
| https://github.com/zephyrproject-rtos/zephyr/blob/master/boards/shields/esp_8266/esp_8266.overlay |
| |
| .. _esp_8266_arduino: |
| https://github.com/zephyrproject-rtos/zephyr/blob/master/boards/shields/esp_8266/esp_8266_arduino.overlay |
| |
| .. _esp_8266_mikrobus: |
| https://github.com/zephyrproject-rtos/zephyr/blob/master/boards/shields/esp_8266/esp_8266_mikrobus.overlay |