Difference between revisions of "ESP32"
Blwikiadmin (talk | contribs) |
Blwikiadmin (talk | contribs) |
||
Line 411: | Line 411: | ||
== Programming == | == Programming == | ||
+ | |||
Programming languages, frameworks, platforms, and environments used for ESP32 programming: | Programming languages, frameworks, platforms, and environments used for ESP32 programming: | ||
+ | |||
* [https://github.com/espressif/arduino-esp32 Arduino IDE] with the ESP32 Arduino Core | * [https://github.com/espressif/arduino-esp32 Arduino IDE] with the ESP32 Arduino Core | ||
* [https://docs.espressif.com/projects/esp-idf/en/latest/ Espressif IoT Development Framework (IDF)] – official Espressif development framework for ESP32 | * [https://docs.espressif.com/projects/esp-idf/en/latest/ Espressif IoT Development Framework (IDF)] – official Espressif development framework for ESP32 |
Revision as of 14:07, 12 January 2020
Contents
ESP32
Most of the following is from the ESP32 Wikipedia page
ESP32 is a series of low-cost, low-power system on a chip microcontrollers with integrated Wi-Fi and dual-mode Bluetooth. The ESP32 series employs a Tensilica Xtensa LX6 microprocessor in both dual-core and single-core variations and includes built-in antenna switches, RF balun, power amplifier, low-noise receive amplifier, filters, and power-management modules. ESP32 is created and developed by Espressif Systems.
Features
Features of the ESP32 include the following:
- Processors:
- CPU: Xtensa dual-core (or single-core) 32-bit LX6 microprocessor, operating at 160 or 240 MHz and performing at up to 600 DMIPS
- Ultra low power (ULP) co-processor
- Memory: 520 KiB SRAM
- Wireless connectivity:
- Wi-Fi: IEEE 802.11 b/g/n
- Bluetooth: v4.2 BR/EDR and BLE
- Peripheral interfaces:
- 12-bit successive approximation ADC up to 18 channels
- 2 × 8-bit digital-to-analog converter
- 10 × touch sensors (capacitive sensing GPIOs)
- 4 × Serial Peripheral Interface Bus
- 2 × I²S interfaces
- 2 × I²C interfaces
- 3 × universal asynchronous receiver/transmitter
- Secure Digital/SDIO/CE-ATA/MultiMediaCard/MultiMediaCard/eMMC host controller
- SDIO/SPI slave controller
- Ethernet MAC interface with dedicated DMA and IEEE 1588 Precision Time Protocol support
- CAN bus 2.0
- Infrared remote controller (TX/RX, up to 8 channels)
- Motor Pulse-width modulation
- LED Pulse-width modulation (up to 16 channels)
- Hall effect sensor
- Ultra low power analog pre-amplifier
- Security:
- IEEE 802.11 standard security features all supported, including WFA, WPA/WPA2 and WLAN Authentication and Privacy Infrastructure
- Secure boot
- Flash encryption
- 1024-bit OTP, up to 768-bit for customers
- Cryptographic hardware acceleration: Advanced Encryption Standard AES, SHA-2, RSA (cryptosystem), elliptic curve cryptography (ECC), random number generator (RNG)
- Power management:
- Internal low-dropout regulator
- Individual power domain for RTC
- 5μA deep sleep current
- Wake up from GPIO interrupt, timer, ADC measurements, capacitive touch sensor interrupt
Printed circuit boards
Surface-mount module boards
ESP32 based Surface-mount technology printed circuit board modules directly contain the ESP32 System on a chip and are designed to be easily integrated onto other circuit boards. Meandered inverted-F antenna designs are used for the PCB trace antennas on the modules listed below. In addition to flash memory, some modules include pseudostatic RAM (pSRAM).
Vendor | Name | Antenna | Flash memory (MiB) | pSRAM (MiB) | Description |
---|---|---|---|---|---|
Espressif | ESP-WROOM-03 | Template:Nowrap | 4 | 0 | Discontinued. Limited distribution, pre-production module created by Espressif for beta testing purposes; this module used the ESP31B, the beta testing chip for the ESP32 series.<ref name="SparkfunFristImpressions">Template:Cite web</ref><ref name="AdafruitVideoESP32BetaModule">Template:Cite AV media</ref><ref name="HarizanovESP32BetaModule">Template:Cite web</ref><ref name="HackadayESP32BetaUnits">Template:Cite news</ref><ref name="MarkusUlsassESP32Beta">Template:Cite news</ref> FCC Part 15.247 tested (FCC ID: 2AC7Z-ESP32).<ref name="ESPWROOM03FCCTestReport">Template:Cite web</ref> |
ESP32-WROOM-32 | PCB trace | 4 | 0 | First publicly available ESP32 module board created by Espressif.<ref name="EspressifESPWROOM32Datasheet">Template:Cite web</ref> FCC Part 15.247 tested (FCC ID: 2AC7Z-ESPWROOM32).<ref name="ESPWROOM32FCCTestReport">Template:Cite web</ref> Based on ESP32-D0WDQ6 chip. Originally named "ESP-WROOM-32". | |
ESP32-WROOM-32D | PCB trace | 4 | 0 | Revision of the ESP-WROOM-32 module which uses an ESP32-D0WD chip instead of an ESP32-D0WDQ6 chip.<ref name="EspressifESPWROOM32DUDatasheet">Template:Cite web</ref> Originally named "ESP-WROOM-32D". | |
ESP32-SOLO-1 | PCB trace | 4 | 0 | Similar to the ESP32-WROOM-32D module, but uses the single-core ESP32-S0WD chip instead of the dual-core ESP32-D0WD. | |
Template:Nowrap | U.FL socket | 4 | 0 | Alternative to the ESP-WROOM-32D module which has a U.FL connector for external antenna in lieu of a PCB trace antenna.<ref name="EspressifESPWROOM32DUDatasheet" /> | |
Template:Nowrap | PCB trace | 4 | 4 | ESP32 module board with 4 MiB pSRAM created by Espressif. FCC part 15.247 tested (FCC ID 2AC7Z-ESP32WROVER). Uses 40 MHz crystal oscillator. Does not include U.FL connector. Based on ESP32-D0WDQ6 chip. Since June 2018, new modules have been upgraded to 8 MiB pSRAM. | |
Template:Nowrap | U.FL socket, PCB trace | 4 | 4 | Variation of ESP32-WROVER module configured to use an on-board U.FL compatible connector. PCB trace antenna not connected by default. | |
Template:Nowrap | PCB trace | 4 | 8 | Revision of ESP32-WROVER module with 8 MiB pSRAM (instead of 4 MiB pSRAM) operating at 3.3V (instead of 1.8V in previous versions) and ESP32-D0WD (instead of ESP32-D0WDQ6). FCC part 15.247 tested (FCC ID 2AC7Z-ESP32WROVERB). Does not include U.FL connector. (Custom order option for flash capacity of 8 MiB or 16 MiB also available.) | |
Template:Nowrap | U.FL socket, PCB trace | 4 | 8 | Variation of ESP32-WROVER-B module configured to use an on-board U.FL compatible connector. PCB trace antenna not connected by default. | |
Ai-Thinker | ESP32-S | PCB trace | 4 | 0 | Ai-Thinker's equivalent to Espressif's ESP-WROOM-32 module. (Same form factor and general specifications.)<ref name="AIThinkerESP32SModule">Template:Cite web</ref> Previously branded as "ESP-32S" with the hyphen before "32S", the initial release of the ESP-32S module replaced the previously announced, but never released, ESP3212 module. |
ESP32-A1S | U.FL socket, PCB trace | 4 | 4 | Ai-Thinker's equivalent to Espressif's ESP32-WROVER series module. | |
AnalogLamb | ESP-32S-ALB | PCB trace | 4 | 0 | Clone of the ESP-32S module (ESP-WROOM-32 compatible footprint). Seen with a green solder mask coating.<ref name="AnalogLambCloneModule">Template:Cite web</ref> |
ALB-WROOM | PCB trace | 16 | 0 | Variation of ESP-32S-ALB with 16 MiB of flash memory.<ref name="AnalogLambCloneModule" /> | |
ALB32-WROVER | PCB trace | 4 | 4 | ESP32 module board with 4 MiB pSRAM with the same footprint as the ESP-WROOM-32 module.<ref>Template:Cite web</ref> | |
DFRobot | ESP-WROOM-32 | PCB trace | 4 | 0 | Module board similar to Espressif Systems's ESP-WROOM-32, but is not FCC certified, and uses 26 MHz or 32 kHz crystal oscillator.<ref>Template:Cite web</ref> |
eBox & Widora | ESP32-Bit | Ceramic, U.FL socket | 4 | 0 | Module has a ceramic antenna and an U.FL antenna connector. This module has a different footprint than the ESP-WROOM-32/ESP-32S modules. |
Goouuu Tech | ESP-32F | PCB trace | 4 | 0 | Module board similar to Espressif Systems's ESP-WROOM-32. FCC certified (ID 2AM77-ESP-32F). |
IntoRobot | W32 | PCB trace | 4 | 0 | Module similar in appearance to Espressif's ESP-WROOM-32, but footprint pinout differs.<ref>Template:Cite web</ref> |
W33 | Ceramic, U.FL socket | 4 | 0 | Differs from IntoRobot W32 module in its antenna configuration. | |
ITEAD | PSH-C32 | PCB trace | 1<ref name="IteadPSHC32Schematic">Template:Cite web</ref> | 0 | Module has unusually small flash memory on board. Also, footprint is unique and differs from all other ESP32 modules.<ref name="IteadPSHC32">Template:Cite web</ref> |
Pycom<ref name="PycomOEMProducts">Template:Cite web</ref> | W01 | (Not included.) | 8 | 4 | OEM module version of the WiPy 2.0. Supports Wi-Fi and Bluetooth. FCC ID 2AJMTWIPY01R. |
L01 | (Not included.) | 8 | 4 | OEM module version of the LoPy. Supports Wi-Fi, Bluetooth, and LoRa. FCC ID 2AJMTLOPY01R. | |
L04 | (Not included.) | 8 | 4 | OEM module version of the LoPy4. Supports Wi-Fi, Bluetooth, LoRa, and Sigfox. | |
S01 | (Not included.) | 8 | 4 | Discontinued. OEM module version of the SiPy. Supported Wi-Fi, Bluetooth, and Sigfox (14 dBm and 22 dBm). | |
G01 | (Not included.) | 8 | 4 | OEM module version of the GPy. Supports Cellular LTE-CAT M1/NB1, Wi-Fi and Bluetooth. | |
u-blox | NINA-W131 | (Not included.) | 2 | 0 | Belongs to the u-blox NINA-W13 series of Wi-Fi modules.<ref name="ublox_NINA-W13-series">Template:Cite web</ref> |
NINA-W132 | PIFA | 2 | 0 | Belongs to the u-blox NINA-W13 series of Wi-Fi modules.<ref name="ublox_NINA-W13-series" /> On board planar inverted-F antenna (PIFA) is shaped (cut & bent) metal, not a PCB trace. |
Development and other boards
Development & break-out boards extend wiring and may add functionality, often building upon ESP32 module boards and making them easier to use for development purposes (especially with breadboards).
Vendor | Name | Surface-mount module used | Description |
---|---|---|---|
Espressif | ESP_Module_Testboard | ESP-WROOM-03 | Break-out board included with ESP-WROOM-03 beta modules.<ref name="SparkfunFristImpressions" /><ref name="AdafruitVideoESP32BetaModule" /> |
Template:Nowrap | Template:Nowrap | Development & demonstration board created by Espressif.<ref name="WilliamHooiESP32DemoBoardV2">Template:Cite web</ref><ref name="AdyESP32DemoBoardV2">Template:Cite web</ref> | |
ESP32-DevKitC | ESP-WROOM-32 | Compact development board created by Espressif.<ref name="EspressifWROOM32DevBoard">Template:Cite web</ref> Silkscreen labeling on PCB reads "Core Board". | |
ESP-WROVER-KIT | ESP-WROOM-32 or ESP32-WROVER | Large development board created by Espressif.<ref name="EspressifESPWROVERKIT">Template:Cite web</ref> Previously named ESP32-DevKitJ.<ref name="IgrrESP32CameraDemo">Template:Cite web</ref> | |
ESP32-PICO-KIT | ESP32-PICO-D4 | Small development board created by Espressif. FCC ID 2AC7Z-ESP32PICOKIT. | |
Adafruit | HUZZAH32 | ESP-WROOM-32 | Also referred to as the "ESP32 Feather Board", the HUZZAH32 is a compact development board/module that is compatible with the Adafruit Feather family of products. |
Banana pi | BPI:bit | ESP-32S | a development for Webduino and arduino |
BPI-UNO32 | ESP32-S | a development board for arduino | |
Ai-Thinker | NodeMCU-32S | ESP-32S | NodeMCU-like development board.<ref name="AiThinkerNodeMCU32S">Template:Cite web</ref> |
ESP32-CAM | ESP32-S | Compact development board with SD card slot and ribbon cable interface intended for camera connection. | |
AnalogLamb | ESP32 Development Board | ESP-32S-ALB or ALB-WROOM | Development board similar to Espressif's ESP32-DevKitC with on board a CP2102 USB/serial bridge. 4 MiB variation uses ESP-32S-ALB; 16 MiB variation uses ALB-WROOM module.<ref>Template:Cite web</ref> |
Maple ESP32 | ESP-32S-ALB | Development board with Arduino-style connections and CP2104 USB/serial interface.<ref>Template:Cite web</ref> | |
April Brother | ESPea32 | † | Development board with perfboard area that may be optionally cut-off. |
ArduCAM | ESP32 UNO | ESP-32S | Arduino Uno-like development board based on ESP32 IoT UNO framework with support for SPI ArduCAM, Battery pins and uSD card slot.<ref>Template:Cite web</ref> |
DoIT | ESPduino32 | ESP-WROOM-32 | Full-featured Arduino Uno-like development board compatible with Arduino Shields. It also adds additional SPI & IO pins. |
EzSBC | ESP32-01 Breakout and Development Board | ESP-WROOM-32 | Full-featured development board with two tri-color LEDs and fits on a breadboard. |
Gravitech & MakerAsia | Nano32 | † | Development board that directly incorporates the ESP32 chip. |
HydraBus | HydraESP32 | ESP-WROOM-32 or ESP-32S | HydraESP32 HydraBus v1.1 Rev1 shield/breakout board for ESP-WROOM-32 or ESP-32S. This shield can be used with or without a HydraBus board. |
Noduino | Quantum | † | Arduino-style development board that directly incorporates the ESP32 chip. |
Pycom | WiPy | † | MicroPython programmable Wi-Fi & Bluetooth IoT development platform with a 1 km Wi-Fi range. WiPy versions 2.0 and 3.0 use ESP32. |
LoPy | † | Triple network Pycom board featuring LoRa, Wi-Fi (1 km range), and BLE. | |
LoPy4 | ? | Quadruple network Pycom board featuring LoRa, Sigfox, Wi-Fi (1 km range), and BLE. | |
SiPy | † | Triple network Pycom board featuring Sigfox, Wi-Fi (1 km range), and BLE. | |
GPy | † | Triple network Pycom board featuring LTE-M, Wi-Fi (1 km range), and BLE. | |
FiPy | † | Quintuple network Pycom board featuring LTE-M, LoRa, Sigfox, Wi-Fi (1 km range), and BLE. | |
SparkFun | ESP32 Thing | † | Compact development board with FTDI FT231x USB/serial interface and LiPo charger built-in. |
SunDUINO | ESP32 MiniBoard | ESP-WROOM-32 | Breakout compatible with the Espressif ESP32-DevKitC. Lacks on-board USB-UART. |
ESP32 MiniBoard v2 | ESP32-Wrover-B/IB | Breakout Board with Silabs CP2102 , baterry charger. Compatybile witch ESpressif DEVkit. | |
ESP32 SunDUINO | ESP-WROOM-32 or ESP-32S | Arduino-style development board. Lacks on-board USB-UART. | |
SwitchDoc Labs | BC24 | ESP-WROOM-32 | ESP32 Breakout with 24 SK6812RGBW LEDs with Grove Connectors for easy prototyping. Comes with USB-UART and Feather compatible pinout. <ref>Template:Cite web</ref> |
Watterott | ESP-WROOM32-Breakout | ESP-WROOM-32 | Breakout which is compatible with the Espressif ESP32-DevKitC. |
WEMOS<ref name="WEMOSProducts">Template:Cite web</ref> | LOLIN32 [Retired]<ref>Template:Cite web</ref> | ESP-WROOM-32 | |
LOLIN32 Lite [Retired]<ref>Template:Cite web</ref> | † | ESP32-D0WDQ6 | |
LOLIN32 Pro [Retired]<ref>Template:Cite web</ref> | ESP32-WROVER | MicroSD card slot (supports SD and SPI mode) | |
LOLIN D32<ref>Template:Cite web</ref> | ESP-WROOM-32 | ||
LOLIN D32 Pro<ref>Template:Cite web</ref> | ESP32-WROVER | I2C port, TFT port and Micro SD Card slot (support SPI mode) | |
Widora | Air | † | Compact ESP32 development board. |
† ESP32 SoC incorporated directly onto development board; no module board used.
Programming
Programming languages, frameworks, platforms, and environments used for ESP32 programming:
- Arduino IDE with the ESP32 Arduino Core
- Espressif IoT Development Framework (IDF) – official Espressif development framework for ESP32
- MicroPython A lean implementation of Python 3 for microcontrollers
- Espressif Mesh Development Framework
- Espruino – JavaScript SDK and firmware closely emulating Node.js
- Lua RTOS for ESP32
- Mongoose OS – an operating system for connected products on microcontrollers; programmable with JavaScript or C.
- mruby for the ESP32
- .NET nanoFramework - Coding in .NET C#, deploy and debug from Visual Studio
- NodeMCU – Lua (programming language) -based firmware
- PlatformIO Ecosystem and IDE
- Simba Embedded Programming Platform
- Whitecat Ecosystem Blockly Based Web IDE
- Zerynth – Python for IoT and microcontrollers, including the ESP32