
Created by Espressif Systems, ESP32 is a low-cost, low-power system on a chip (SoC) series with Wi-Fi & dual-mode Bluetooth capabilities! The ESP32 family includes the chips ESP32-D0WDQ6 (and ESP32-D0WD), ESP32-D2WD, ESP32-S0WD, and the system in package (SiP) ESP32-PICO-D4. At its heart, there's a dual-core or single-core Tensilica Xtensa LX6 microprocessor with a clock rate of up to 240 MHz. ESP32 is highly integrated with built-in antenna switches, RF balun, power amplifier, low-noise receive amplifier, filters, and power management modules. Engineered for mobile devices, wearable electronics, and IoT applications, ESP32 achieves ultra-low power consumption through power saving features including fine resolution clock gating, multiple power modes, and dynamic power scaling.
👉 For news and information, follow @ESP32net on Twitter! 👈
Features & Specifications
See the ESP32 Datasheet for information on ESP32 chips and the ESP32-PICO-D4 Datasheet for information on the SiP module.
- Processors:
- Main processor: Tensilica Xtensa 32-bit LX6 microprocessor
- Cores: 2 or 1 (depending on variation)
All chips in the ESP32 series are dual-core except for ESP32-S0WD, which is single-core.
- Clock frequency: up to 240 MHz
- Performance: up to 600 DMIPS
- Cores: 2 or 1 (depending on variation)
- Ultra low power co-processor: allows you to do ADC conversions, computation, and level thresholds while in deep sleep.
- Main processor: Tensilica Xtensa 32-bit LX6 microprocessor
- Wireless connectivity:
- Wi-Fi: 802.11 b/g/n/e/i (802.11n @ 2.4 GHz up to 150 Mbit/s)
- Bluetooth: v4.2 BR/EDR and Bluetooth Low Energy (BLE)
- Memory:
- Internal memory:
- ROM: 448 KiB
For booting and core functions.
- SRAM: 520 KiB
For data and instruction.
- RTC fast SRAM: 8 KiB
For data storage and main CPU during RTC Boot from the deep-sleep mode.
- RTC slow SRAM: 8 KiB
For co-processor accessing during deep-sleep mode.
- eFuse: 1 Kibit
Of which 256 bits are used for the system (MAC address and chip configuration) and the remaining 768 bits are reserved for customer applications, including Flash-Encryption and Chip-ID.
- Embedded flash:
Flash connected internally via IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 and SD_DATA_1 on ESP32-D2WD and ESP32-PICO-D4.
- 0 MiB (ESP32-D0WDQ6, ESP32-D0WD, and ESP32-S0WD chips)
- 2 MiB (ESP32-D2WD chip)
- 4 MiB (ESP32-PICO-D4 SiP module)
- ROM: 448 KiB
- External flash & SRAM: ESP32 supports up to four 16 MiB external QSPI flashes and SRAMs with hardware encryption based on AES to protect developers' programs and data. ESP32 can access the external QSPI flash and SRAM through high-speed caches.
- Up to 16 MiB of external flash are memory-mapped onto the CPU code space, supporting 8-bit, 16-bit and 32-bit access. Code execution is supported.
- Up to 8 MiB of external flash/SRAM memory are mapped onto the CPU data space, supporting 8-bit, 16-bit and 32-bit access. Data-read is supported on the flash and SRAM. Data-write is supported on the SRAM.
ESP32 chips with embedded flash do not support the address mapping between external flash and peripherals.
- Internal memory:
- Peripheral input/output: Rich peripheral interface with DMA that includes capacitive touch, ADCs (analog-to-digital converter), DACs (digital-to-analog converter), I²C (Inter-Integrated Circuit), UART (universal asynchronous receiver/transmitter), CAN 2.0 (Controller Area Network), SPI (Serial Peripheral Interface), I²S (Integrated Inter-IC Sound), RMII (Reduced Media-Independent Interface), PWM (pulse width modulation), and more.
- Security:
- IEEE 802.11 standard security features all supported, including WFA, WPA/WPA2 and WAPI
- Secure boot
- Flash encryption
- 1024-bit OTP, up to 768-bit for customers
- Cryptographic hardware acceleration: AES, SHA-2, RSA, elliptic curve cryptography (ECC), random number generator (RNG)
Clarification note: In this context, "RTC" is a bit of an "Espressifism" because it's used as shorthand for the low-power and analog subsystem which is separate from the CPU and the main "digital" peripherals ("digital" is another Espressifism). There is some real time clock functionality as part of the RTC subsystem, but there's also a lot of other stuff.
For most questions, it's probably best to submit a post in the forums for widest community visibility and easily writing out the nitty-gritty details of your situational context — for example, including example code and detailing the relevant configuration of your software, firmware, and hardware. Alternatively, real-time chat via IRC is a great way to converse with others, learn new things, and sometimes get answers to questions on the spot. But, having said that, the main drawback to online chat is that not everyone is active or looking at the channel (chat room) at the same moment — people work at different hours and live in different parts of the world — so timing can be hit-or-miss. So, if you ask a question in the IRC channel, try to stick around, as it might take someone awhile to respond.
Readings & Videos
- News
- Projects
- Readings & Documentation
- Getting Started
- Official Espressif Resources
- Documentation on ESP32.com Forums
- Ethernet on ESP32 using LAN8720
- JTAG Debugging
- Watson IoT Platform
- Luca Dentella's ESP32 Blog Posts
- ESP32 Tutorials from TechTutorialsX
- Arduino: hello world, uploading a program, Wi-Fi network connection, Wi-Fi getting started, Wi-Fi soft AP, MQTT publishing, MQTT subscribing, JSON parsing, JSON message creation, JSON message sending over MQTT, HTTP GET, HTTP POST, LED PWM fading, buzzer PWM, HTTP POST to bottle application, external interrupts, timer interrupts, aREST library, creating a class, auto keyword, MFRC522 RFID, WebSocket client, WebSocket server, WebSocket server over soft AP, WebSocket server receiving & parsing JSON, socket server, HTTPS GET request, async HTTP webserver, async HTTP server, async HTTP server serving a HTML from PROGMEM, HTTP server getting query parameters, HTTP server multiple instances, HTTP server serving HTML & JavaScript, HTTP server over SoftAP, HTTP server external & internal redirects, HTTP server route not found handling, software reset, SSD1306 OLED display, SSD1306 OLED redraw string, Base64 encoding, SSD1306 OLED drawing QR code, free heap, random number generation (RNG), pthreads library, basic authentication, HMAC SHA-256
- Arduino & ESP-IDF: FreeRTOS functions, task creation, task argument variable passing, task priority, task execution core ID, task execution on specific core, dual-core execution speed-up, queues, queue insertion, queue messages waiting & empty spaces, task communication using queues, queue performance test
- ESP-IDF: Wi-Fi soft AP
- MicroPython: setup & flashing, JSON parsing, JSON encoding, Wi-Fi network connection, Wi-Fi automatic connection, script execution from computer, file writing, file reading, file upload to file system, script execution from file system, HTTP POST, SHA-256, uPyCraft IDE getting started, uPyCraft script execution, lists, lambda functions, map function with lists, filter function with lists, dictionaries, string split method, simple URL query string parser, thread creation, thread function argument passing, timer interrupts, external interrupts
- MicroPython & Picoweb: web server, HTTP content-type, HTTP response code, obtaining HTTP request method, serving HTML, serving JSON, Picoweb app query parameters
- Espruino JavaScript: getting started, Wi-Fi network scan, Wi-Fi connection, array map, SHA1 hash, number to string conversion, array every method, objects
- Bluetooth: BTstack library, finding device with Python & BTStack, receiving data through RFCOMM, advertising SPP service with SDP
- Other: serial communication with Python
- Random Nerd Tutorials
- IoT Bits ESP32 Articles
- Notable Videos
- Engineers.SG
- Linux.conf.au 2017 & Open Hardware Mini-Conference
- Microcontroller Hardware & Software(Angus Gratton, 2017 Jan 17, 23 min.)
- IoTuz Hardware Design, Manufacturing, Working with KiCad(Bob Powers, 2017 Jan 17, 40 min.)
- IoTuz Software Design Challenges and ESP-IDF(Mark Wolfe, 2017 Jan 17, 28 min.)
- MicroPython for ESP32(Nick Moore, 2017 Jan 17, 28 min.)
- Development Example Using IoTuz(Andy Gelme, 2017 Jan 17, 29 min.)
- MicroPython for ESP32(Nick Moore, PyCon Australia, 2017 Aug 4, 25 min.)
- How to add Wi-Fi control to any project — ESP32 beginner's guide(GreatScott, 2017 Oct 1, 11 min.)
- Wi-Fi Range Testing with ESP32 & Webcam: 10 km Using Directional Antenna(Florian Euchner, 2017 Apr 8, 5¾ min.)
- Small Fruit: Disembiggening (Miniaturizing) the Mac Plus(Jeroen Domburg, Hackaday Superconference, 2017 Nov 12, 31.4 min.) — see also: close-up video
- Andreas Spiess's ESP32 Videos
- ESP32 tutorial, Arduino IDE, tests, and comparison with ESP8266
- Huge mailbag with ESP32 boards, capacitive LED switches, power supplies, and more
- Introduction into ESP32 with first tests: PWM, servo, web, touch sensors — "ESP32: it's not as difficult as you think"
- Deep Sleep, RTC Memory, "Secret" LoLin Pins
- Which ESP32 revision? Including "fake news", fuses, and bit-logic
- Quickie: additional ESP32 serial channels in Arduino IDE
- Big ESP32 boards review and test
- Measuring weight using an ESP32, a strain gauge, and a HX711
- Build your own $50 connected Geiger counter
- KRACK Wi-Fi attack: how to protect our ESP8266 and ESP32?
- Dual Core on Arduino IDE including data passing and task synchronization
- Enhanced Nextion HMI tutorial including ESP32, ESP8266, and Arduino support
- Arduino guide to infrared (IR) communication
- ESP32 and ESP8266 point-to-point (ESP-Now) and comparison with LoRa
- BLE with Arduino IDE (part 1)
- BLE with Arduino IDE (part 2)
- BLE human presence detector (Arduino IDE)
- USB cable testing; esp. for power supply
- BLE current draw
- LoRa boards: what you need to know before you buy; incl. antenna knowledge
- PCBReflux's ESP32 Videos (Repository)
- ESP32 Arduino and ESP-IDF installation
- Worst solder adapter ever (but great music)
- Arduino tutorial: getting to blinky
- ESP-IDF: playing with BLE/Bluetooth
- BLE/Bluetooth Eddystone implementation
- BLE/Bluetooth iBeacon implementation
- Arduino port with ILI9341 TFT LCD
- APA102 RGB LED strip controlled by Arduino sketch
- MAX6675 IoT Wi-Fi temp. sensor & ThingSpeak
- DIY Wi-Fi emergency button with SSL Gmail
- Weather station with Si7021 and OLED
- DIY Wi-Fi connected radar intrusion detector
- Bluetooth client reading from nRF51822 server
- HTTPS secure web server & Wi-Fi GPIO remote control
- Adapter, breadboard, UART, USB and more
- Wi-Fi enabled beacon tracker (a.k.a. the sheep counter)
- MQTT secure HTTPS TLS/SSL WebSocket ThingSpeak publish
- Deep sleep API and wake up
- MQTT secure HTTPS TLS/SSL WebSocket CloudMQTT subscribe
- FreeRTOS inter-task communication: queues
- ESP32-AT: playing with ESP32 AT commands
- ESP32-AT: Arduino Nano connected ESP32
- Current consumption
- IoT BLE MQTT gateway
- FreeRTOS inter-task communication: event groups
- "Atomic clock" using U-Blox GPS module
- External Hall effect switch and GPIO interrupts
- Internal Hall effect sensor
- Portable luxmeter with BH1750FVI
- Switching heavy loads with solid state relays (SSR)
- Playing sound / MQTT sound
- Smart LED prototype using AC solid state relays (SSR)
- RFID read & write with MFRC522 module
- Mosquitto + SSL/TLS, openHAB2, MQTT Dash
- Smart LED prototype 2, openHAB2, MQTT Dash
- Play MP3 with DFPlayer Mini
- Arduino/Eclipse crossover
- NeoPixel (WS2812B) library contest
- Bluetooth server tutorial & code walk
- IR remote (AX-1838HS)
- Touch sensor (300 LED NeoPixel skin detector)
- Arduino multitasking (WS2812 octo-tasking)
- Arduino multitasking (DRV8825 stepstick stepper motor driver)
- Arduino AP + web server + file upload
- 100 ways to buy an ESP32 board
- Eclipse Oxygen installation & configuration
- Temperature measurement
- Bluetooth logging multimeter with INA219 & SSD1306
- On the bench (fake mailbag)
- Heart rate / ECG monitor with AD8232
- Battery monitor
- PushBullet push notifications
- Latch circuit
- ESP32 IoT, VPS, MQTT, Cloud DataStore
- $2 prototype PCBs
- ESP32 timers & changing timer
- ESP32 Arduino speed comparison
- Playing with Blynk
- MOSFET tutorial
- ESP32 vs ESP8266 speed comparison
- MOSFET level shifter
- Camera demo using OV2640
- Micro SD card (SDHC)
- GPI[O]
- ePaper
- ePaper u8g2 interface
- ULP & ADC
- KiCad ESP32-WROVER adapter
- ESP-NOW simplex & duplex
- Mains power with HLK-PM03
- Arduino BLE robot buggy with L298
- Kolban's ESP32 Technical Tutorials (Repository)
Note: the YouTube playlist is in reverse-chronological order.
- G6EJD's ESP32 Videos
- ESP32 X1 board, 0.96″ OLED, DHT22 temperature/humidity sensor
- Weather station with ESP32 X1 OLED (code)
- ESP32 1.3″ OLED weather station using scrolling frames (code)
- ILI9341 TFT displays (code)
- ESP32 ILI9341 TFT and hardware SPI for ultra fast graphics
- Connecting SSD1331 color OLED (code)
- DS18B20 temperature sensor (water proof) (code)
- MH-ET LIVE ESP32 MiniKit (code)
- ESP-WROVER-KIT review and weather forecaster demo
- Weather forecaster using local sensors (code)
- Thingspeak upload and deep sleep (code)
- SSD1351 1.5″ color OLED
- Wi-Fi survey tool; interpreting RSSI and conducting a survey (code)
- Thinkspeak channel data reading (code)
- ePaper SPI displays
- ePaper weather station using serial (UART) communication (code)
- ESP32 ultra low power test results
- Time services (simple approach)
- More advanced time services (code)
- WEMOS LOLIN32 Lite (review and differences)
- WEMOS LOLIN32 (low power demands when powered by 3.3 V)
- Connect and get I²C devices working
- Connect SPI devices and get them working
- Bosch BME680 environmental sensor: air quality, temperature, pressure, and humidity (code)
- Arduino IDE pin mapping: determining, changing, or adding definitions
- ADC and some of its more advanced functions
- Adding a new board definition to the Arduino IDE
- Digital to analog converter (code)
- Novelty X-mas and new year count down timer (code)
- How to connect and get I²C devices working (code)
- Audio spectrum analyser using FFT (code)
- 8-octave audio spectrum display (code)
- Real time Morse decoder (code)
- General purpose web server (code)
- Data logging web server (code)
- Hardware serial ports
- Over-the-air (OTA) updating (code)
- Sensor server & clients for DHT, SHT, BMP085, BMP180, DS18B20, etc. (code)
- Hints and tips (code)
- File downloads via HTTP with web interface
- File uploads via HTTP with web interface (code)
- Download, upload, delete, stream and directory services
- Adel Kassah's TUNIOT ESP32 Programming Videos
- Mongoose OS Videos
See also: user guide tutorial videos playlist.
- Simba Embedded Programming Platform Videos
Brief demo videos; see YouTube description for links to source code and documentation. (Videos not using ESP32 have been omitted; see uploads playlist for all Simba & Pumbaa videos.)
- First Impressions with ESP32 Units
- Miscellaneous Discussions
Development
Development software, tools, environments, languages, platforms, frameworks, libraries, code, and other resources:
- ESP-IDF (Espressif IoT Development Framework)
- Other Espressif Projects
- Arduino (C++)
- Simba Embedded Programming Platform
See also: Pumbaa (MicroPython on Simba)
- Zephyr Project
A scalable real-time operating system (RTOS) supporting multiple hardware architectures, optimized for resource constrained devices, and built with security in mind.
- Mongoose OS
- NuttX RTOS
- MicroPython
- Hybrid C/Python
- Lua
- JavaScript
- mruby (Carson McDonald & Yamamoto Masaya)
- Forth
- BASIC
- Other Code & Libraries
- ESP32-OTA-HTTPS: Secure Over-The-Air Updates (Article)
- Lightweight HTTP client for ESP32.
- Example of using with ESP32 (Forum Post)
- MQTT
- LibWebSockets
Lightweight C library built to use minimal CPU and memory resources, providing fast throughput in both directions as client or server.
- ESP32 (ESP-IDF) Wi-Fi connect and resolve DNS
- Template for Connecting to the AWS IoT Platform
- Rudi's Standalone HTTP Server
(Forum Post 1, 2; Video 1, 2)
- Pre-built ESP8266 & ESP32 Toolchains for NodeMCU Development & CI Use
- Neil Kolban's ESP32 Code Snippets
- FeelFreeLinux's ESP32 Repository
- Ring Log (Edmund Huber)
An on-disk ring buffer for persistent, fixed-sized logs.
- Temperature/Humidity Sensors
- Cameras
- LEDs
- Robotics
- Gaming
- Wi-Fi
- Bluetooth
- Audio
- CAN Driver (Thomas Barth)
See also: A CAN driver for the ESP32, Hackaday.io project, and forum thread.
- Displays & Graphics
- DAC-Cosine (Krzysztof)
API to operate cosine waveform generator inside ESP32.
- ESP32_BadAppleBad: SSD1306 OLED & RLE video data (Lutz Lisseck)
Bad Apple video by Touhou on ESP32 with SSD1306 OLED; uses the Heatshrink compression library to decompress the RLE encoded video data.
- Audio Spectrum Visualization
- Development Tools and Environments
- PCB Design Resources
Hardware
Hardware listed below includes the Quad-Flat No-Leads (QFN) packaged ESP32 chips and system-in-package module, various surface-mount printed circuit board modules, a large variety of development boards, and industrial, commercial, and general consumer devices.
QFN Packaged Chips
The ESP32 SoC (system on a chip) is housed in surface-mount, Quad-Flat No-leads (QFN) packages in either 6×6 mm² or 5×5 mm² sizes with 48+1 connection pads (48 pads along the sides and one large thermal pad connected to ground on the bottom). Physical package footprint/dimensions can be found in chapter 6 of the ESP32 Datasheet. All ESP32 chips thus far have been manufactured using TSMC's ultra-low power 40 nm process.
The Processor Cores column above lists number of cores for the central processor; this number excludes the ULP co-processor. See ECO (Engineering Change Order) and Workarounds for Bugs in ESP32 for differences between revision 0 and revision 1. For information on the ESP31B prototype/beta chip, visit the Historical page.
QFN Packaged Module
ESP32-PICO-D4 SiP (system in package) module is housed in a 7×7 mm² Quad-Flat No-leads (QFN) package with 48+1 connection pads (48 pads along the sides and one large thermal pad connected to ground on the bottom). Package footprint/dimensions can be found in the ESP32-PICO-D4 Datasheet.
Identifier | Processor Cores | Embedded Flash Mem. | Package Size | Notes | ||||||
---|---|---|---|---|---|---|---|---|---|---|
ESP32-PICO-D4 |
|
ESP32-PICO-D4 has been included on the following boards:
- Espressif: ESP32-ZERO V2 (surface-mount PCB module), ESP32-PICO Core Board V2, ESP32-PICO-KIT (ESP32-PICO Core Board) V3 & V4
- Microwavemont: ESP32-PICO Motherboard, ESP32-PICO-ADB, ESP32-PICO Double Decker, ESP32-PICO-CAM, ESP32-PICO-tinyCAM
Compact Surface-Mount PCB Modules
The ESP32-based Wi-Fi/Bluetooth communication modules in the table below are surface-mount devices (SMD). Each module is a small printed circuit board upon which chips and other components are soldered and treated as an inseparable assembly to be integrated onto another PCB. All the modules listed below contain an ESP32 chip, a 40 MHz crystal (clock), and a flash memory chip, but vary in features such as antenna configuration, capacity of the flash memory chip, and EM shielding. Because these wireless communication module boards are designed for incorporation into final products (unlike development boards), they lack development components which are unnecessary or undesirable in final products — e.g., typically no USB-to-UART nor programming/reset buttons — minimizing both cost and physical size.
Note that the pSRAM column refers to inclusion of additional on-board pseudostatic RAM; this figure does not include the SRAM within the ESP32 chip itself.
Maker | Model | Flash Memory | pSRAM | Antenna | EM Shield | Notes |
---|---|---|---|---|---|---|
Espressif📌 | ESP-WROOM-32 | GD25Q32CSIG | 0 MiB |
| ||
ESP32-WROOM-32D previously ESP-WROOM-32D | 0 MiB |
| ||||
ESP32-WROOM-32U | 0 MiB |
| ||||
ESP32-SOLO-1 | ? | ? | ? | ? |
| |
ESP32-WROVER | IS25WP032 | 4 MiB |
| |||
ESP32-WROVER-I | IS25WP032 | 4 MiB | (MIFA disabled) | |||
ESP32-ZERO | from SiP module | 0 MiB | PRO-OB-440 |
| ||
Ai-Thinker | ESP-32S | W25Q32FVSIG | 0 MiB |
| ||
AnalogLamb | ESP-32S-ALB | 0 MiB |
| |||
ALB-WROOM | 0 MiB |
| ||||
ALB32-WROVER | 4 MiB and 16 MiB variations planned | 4 MiB |
| |||
DFRobot | ESP-WROOM-32 | 0 MiB |
| |||
eBox & Widora | ESP32-Bit | 0 MiB |
| |||
Freematics | ESP32 Module | (also 16 MiB in future variation) | 0 MiB |
| ||
Guoyun Technology 果云科技; a.k.a. Goouuu Tech | ESP-32F | (speculative) | 0 MiB |
| ||
IntoRobot | W32 | 0 MiB | ||||
W33 | 0 MiB | |||||
ITEAD | PSH-C32 IM160913001 | PN25F08 | 0 MiB |
| ||
LIFX Lifi Labs | LCM3T | ? | ? |
| ||
LCM3C | ? | ? |
| |||
Pycom | W01 | 4 MiB | ||||
L01 | 4 MiB | |||||
L04 | 4 MiB |
| ||||
G01 | 4 MiB |
| ||||
SKYLAB | WG215 | ? | 0 MiB | |||
U-Blox | NINA-W131 | 0 MiB |
| |||
NINA-W132 | 0 MiB |
| ||||
United Technologies | WB_MODE_V1 | 25Q32A | 0 MiB |
|
Visit the Historical page for information on Espressif's ESP-WROOM-03 beta module, Ai-Thinker's ESP3201, ESP3207, ESP3212, and ESP-32E modules, and Pycom's S01 module.
Small & Medium Development Boards/Modules (Not Using PCB Module)
These small and medium sized development boards have USB-to-UART interfaces, but the ESP32 chip is directly incorporated into the board (instead of using a ESP32-based surface-mount module).
Maker | Model | Flash Memory | Antenna | EM Shield | USB⇔UART | Notes |
---|---|---|---|---|---|---|
Espressif📌 | ESP32-PICO-KIT V4 | from SiP module | PRO-OB-440 | SiLabs CP2102 |
| |
Electronic Sweet Peas | ESP320 | (tentative) | SiLabs CP2104 | |||
Gravitech & MakerAsia | Nano32 | or | FTDI FT231XQ | |||
Heltec Automation | WIFI Kit 32 | ? | SiLabs CP2102 |
| ||
WIFI LoRa 32 | ? | U.FL for LoRa | SiLabs CP2102 |
| ||
Microwavemont | ESP32-PICO Motherboard | from SiP module | SiLabs CP2102N (previously used CP2102) |
| ||
ESP32-PICO-ADB | from SiP module | SiLabs CP2102 | ||||
ESP32-PICO Double Decker | from SiP module | SiLabs CP2102N |
| |||
ESP32-PICO-CAM | from SiP module | SiLabs CP2102N |
| |||
ESP32-PICO-tinyCAM | from SiP module | SiLabs CP2102 |
| |||
Pesky Products Kris "onehorse" Winer | ESP32 Development Board | N25Q032A | FTDI FT230XQ |
| ||
Pycom | WiPy 2.0 and 3.0 versions | (None) | ||||
LoPy | (None) |
| ||||
LoPy4 | (None) | |||||
SiPy | (None) |
| ||||
GPy | (None) | |||||
FiPy | (None) | |||||
SparkFun | ESP32 Thing | W25Q32FVSIG | FTDI FT231XS | |||
WEMOS | LOLIN32 Lite | WCH CH340C |
| |||
"WeMos" / Lily GO (not WEMOS.cc group) | Pro ESP32 | FTDI FT231XS |
| |||
Pro ESP32 OLED | ? |
| ||||
TTGO LoRa | U.FL for LoRa | ? |
| |||
TTGO LoRa32 | U.FL for LoRa | ? |
| |||
TTGO T7 | ? |
| ||||
Whitecat | ESP32 N1 | (None) |
| |||
ESP32 N1 LORA | (None) |
| ||||
Widora | Air | SiLabs CP2104 |
Small & Medium Development Boards/Modules (Using PCB Module)
Development boards are designed to be easily worked with for the purpose prototyping and development. Typically this means connections are broken out with 0.1″ spaced headers (in contrast to the more tightly spaced connections seen on the compact surface-mount module boards). Furthermore, development boards often contain on-board components to aid in easy prototyping & programming — e.g., power-supply/regulation, USB-to-UART, and buttons for flashing & resetting.
Maker | Model | Surface-Mount Module | USB⇔UART | Notes |
---|---|---|---|---|
Espressif📌 | ESP32-DevKitC V2 ESP32 Core Board V2 | ESP-WROOM-32 | SiLabs CP2102 |
|
ESP32-DevKitC V4 | ESP-WROOM-32 or ESP32-WROVER | SiLabs CP2102N | ||
Adafruit | HUZZAH32 ESP32 Feather Board | ESP-WROOM-32 | SiLabs CP2104 | |
Ai-Thinker | NodeMCU-32S | ESP-32S | SiLabs CP2102 | |
AnalogLamb | ESP32 Development Board | ESP-32S-ALB or ALB-WROOM | SiLabs CP2102 |
|
ESP32 WROVER Mini | ESP32-WROVER | SiLabs CP2104 |
| |
AprilBrother | ESPea32 | ESP-32S | SiLabs CP2104 |
|
Ayarafun/LamLoei | Node32S | ESP-WROOM-32 | FTDI FT231XS | |
Baoshi | JESP32 | ESP-WROOM-32 or ESP32-WROVER | FTDI FT2232HL | |
CambrianRobotics Yuki Sato, Kohei Kido, Sho Suzuki | Obniz | ESP-WROOM-32 | ? | |
DFRobot | FireBeetle ESP32 | DFRobot ESP-WROOM-32 (clone module) | ? | |
DOIT/SmartArduino | ESP32 DevKit | ESP-WROOM-32 | SiLabs CP2102 | |
Dongsen Technology Travis Lin | D-duino-32 V1–V2.5 | ESP-WROOM-32 | SiLabs CP2102 |
|
D-duino-32 V3 WiFi Packet Monitor V3 | ESP32-WROVER or ESP32-WROVER-I | SiLabs CP210? |
| |
Pocket 32 | ESP-WROOM-32 | SiLabs CP2102 |
|
ESP32
This document introduces the Simple-Pair technology developed by Espressif. The document focuses on Simple-Pair features, their uses and the demo code.
This document provides examples of using ESP32 for Bluetooth Networking for IoT devices, and introduces APIs related to networking development.
This document introduces the flash encryption feature of ESP32.
This document is the ESP-IDF getting started guide.
This document provides a guide to installing OpenOCD for ESP32 and debugging using GDB.
This document introduces the ESP32 Bluetooth architecture.
This document introduces the ESP32 BT&BLE dual-mode bluetooth.
This document provides introduction to the Espressif HomeKit SDK.
This document provides the specs of ESP-PSRAM64 & ESP-PSRAM64H.
The ESP32-MeshKit-Sense Hardware Design Guidelines introduces the block diagram, PCB layout and function modules of the development board ESP32-MeshKit-Sense.
This guide mainly describes the production testing schemes available for Espressif Wi-Fi products (Wi-Fi module/Chip Onboard), thus providing reference for the production testing of customer products.
This guide provides the parameter configuration for ESP32 phy init bin.
The guidelines outline recommended design practices when developing Audio products based on the ESP32.
This document describes differences between V3 and previous ESP32 silicon wafer revisions.
This is the documentation for Espressif IoT Development Framework (ESP-IDF). ESP-IDF is the official development framework for the ESP32 chip.
This is the documentation for Espressif IoT Development Framework (ESP-IDF). ESP-IDF is the official development framework for the ESP32 chip.
ESP-DSP is the official DSP library for the ESP32 chip.
This document details the bugs in the ESP32.
This document provides the specifications of ESP32 family of chips.
The manual provides detailed and complete information on how to use the ESP32 memory and peripherals.
This document introduces the ESP32 AT commands, explains how to use them and provides examples of several common AT commands.
The guidelines outline recommended design practices when developing standalone or add-on systems based on the ESP32 series of products, including ESP32 SoCs, ESP32 modules and ESP32 development boards.
This document introduces the specifications of ESP32-WROOM-DA hardware, including overview, pin definitions, functional description, peripherals, and electrical characteristics, etc.
ESP32 Libraries Location
Robin2:
Thanks That was very useful
You're welcome. It's not everyday that I post something Robin2 didn't know about already!
Robin2:
My question is, isn't there an easy way to do this, just by downloading a zip file, extracting it and copying the contents to the "hardware" folder?
It's not quite that simple, but yes you can do that by following the "Using Arduino IDE with the development repository " instructions here:

GitHub - espressif/arduino-esp32: Arduino core for the ESP32
Arduino core for the ESP32. Contribute to espressif/arduino-esp32 development by creating an account on GitHub.
This installation method is primarily intended for beta testers and developers so it's going to install the beta core from the tip of the master branch. If you prefer to run the core at its release state then you can run the command:
at the step of the instructions after the command:
1.0.2 happens to be the latest stable release currently. You can see the releases listed here:

Releases · espressif/arduino-esp32
Arduino core for the ESP32. Contribute to espressif/arduino-esp32 development by creating an account on GitHub.
There is a release candidate available 1.0.3-rc1 that is perhaps good for those who want cutting edge, but with a bit more likelihood of stability.
Robin2:
That's all I had to do to install the other cores that I have.
Yes, but likely those were simple AVR cores that were able to share the tools that come installed with the Arduino IDE for Arduino AVR Boards. It's more complicated for ESP32 because it needs a complete toolchain installed along with the hardware definitions and libraries. It's also a bit more complicated because ESP32 developers used some submodules in their repository (actually I think it might be down to only one submodule now). Luckily, the ESP32 developers made the manual installation process super easy by providing excellent instructions and a Python script that handles the installation of the toolchain.
Robin2:
Somewhat separately, I believe there is an option to create a "portable" folder in the folder that contains the IDE code and (I believe) the IDE will put cores and the sketchbook in there. But I presume that makes everything specific to one version of the IDE, whereas with my existing system the same sketchbook is used by my different versions of the IDE.
Yes. When the Arduino IDE is in portable mode the cores you install via Boards Manager are installed to the portable/packages subfolder of the Arduino IDE installation folder. It does configure the sketchbook folder to be inside the portable folder by default, but you can set any sketchbook location you like via File > Preferences > Sketchbook location. So you can easily share the same sketchbook between multiple portable installations of the Arduino IDE if you like. However, the cores installed via Boards Manager are more specific to that particular Arduino IDE installation (though I suppose you could work around that with symlinks).
There’s an add-on for the Arduino IDE that allows you to program the ESP32 using the Arduino IDE and its programming language. In this tutorial we’ll show you how to install the ESP32 board in Arduino IDE whether you’re using Windows, Mac OS X or Linux.
Watch the Video Tutorial
This tutorial is available in video format (watch below) and in written format (continue reading this page).
If you have any problems during the installation procedure, take a look at the ESP32 Troubleshooting Guide.
If you like the ESP32, enroll in our course: Learn ESP32 with Arduino IDE.
Prerequisites: Arduino IDE Installed
Before starting this installation procedure, make sure you have the latest version of the Arduino IDE installed in your computer. If you don’t, uninstall it and install it again. Otherwise, it may not work.
Having the latest Arduino IDE software installed from arduino.cc/en/Main/Software, continue with this tutorial.
Do you need an ESP32 board? You can buy it here.
Installing ESP32 Add-on in Arduino IDE
To install the ESP32 board in your Arduino IDE, follow these next instructions:
In your Arduino IDE, go to File> Preferences
Enter https://dl.espressif.com/dl/package_esp32_index.json into the “Additional Board Manager URLs” field as shown in the figure below. Then, click the “OK” button:
Note: if you already have the ESP8266 boards URL, you can separate the URLs with a comma as follows:
https://dl.espressif.com/dl/package_esp32_index.json, http://arduino.esp8266.com/stable/package_esp8266com_index.jsonOpen the Boards Manager. Go to Tools > Board > Boards Manager…
Search for ESP32 and press install button for the “ESP32 by Espressif Systems“:
That’s it. It should be installed after a few seconds.
Testing the Installation
Plug the ESP32 board to your computer. With your Arduino IDE open, follow these steps:
1. Select your Board in Tools > Board menu (in my case it’s the DOIT ESP32 DEVKIT V1)

2. Select the Port (if you don’t see the COM Port in your Arduino IDE, you need to install the CP210x USB to UART Bridge VCP Drivers):

3. Open the following example under File > Examples > WiFi (ESP32) > WiFiScan

4. A new sketch opens in your Arduino IDE:

5. Press the Upload button in the Arduino IDE. Wait a few seconds while the code compiles and uploads to your board.

6. If everything went as expected, you should see a “Done uploading.” message.

7. Open the Arduino IDE Serial Monitor at a baud rate of 115200:

8. Press the ESP32 on-board Enable button and you should see the networks available near your ESP32:

Troubleshooting
If you try to upload a new sketch to your ESP32 and you get this error message “A fatal error occurred: Failed to connect to ESP32: Timed out… Connecting…“. It means that your ESP32 is not in flashing/uploading mode.
Having the right board name and COM por selected, follow these steps:
- Hold-down the “BOOT” button in your ESP32 board

- Press the “Upload” button in the Arduino IDE to upload your sketch:

- After you see the “Connecting….” message in your Arduino IDE, release the finger from the “BOOT” button:

- After that, you should see the “Done uploading” message
That’s it. Your ESP32 should have the new sketch running. Press the “ENABLE” button to restart the ESP32 and run the new uploaded sketch.
You’ll also have to repeat that button sequence every time you want to upload a new sketch. But if you want to solve this issue once for all without the need to press the BOOT button, follow the suggestions in the next guide:
If you experience any problems or issues with your ESP32, take a look at our in-depth ESP32 Troubleshooting Guide.
Wrapping Up
This is a quick guide that illustrates how to prepare your Arduino IDE for the ESP32 on a Windows PC, Mac OS X, or Linux computer. If you encounter any issues during the installation procedure, take a look at the ESP32 troubleshooting guide.
Now, you can start building your own IoT projects with the ESP32!
Thanks for reading.

Sours: https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/
Libraries esp32
Arduino core for the ESP32
Need help or have a question? Join the chat at 
Contents
ESP32-S2 and ESP32-C3 Support
If you want to test ESP32-S2 and/or ESP32-C3 through the board manager, please use the development release link:
Now you can install the latest 2.0.0 version from the boards manager.
Development Status
Latest Stable Release
Latest Development Release
Documentation
You can use Arduino-ESP32 Online Documentation to get all information about this project.
Decoding exceptions
You can use EspExceptionDecoder to get meaningful call trace.
Issue/Bug report template
Before reporting an issue, make sure you've searched for similar one that was already created. Also make sure to go through all the issues labelled as Type: For reference.
Finally, if you are sure no one else had the issue, follow the issue template while reporting any issue.
Contributing
We welcome contributions to the Arduino ESP32 project!
See contributing in the documentation for more information on how to contribute to the project.
So take a day off at your own expense for the treatment of nerves. And another unsuccessful attempt to get enough sleep. The door opened and the husband entered the bathroom.
Similar news:
- Fantastic vent problems
- Orly nail product
- Locality pay rates
- 1000 watt reflector
- Gangster family tattoos
- Copper flake paint
- Mod dog boutique
- Alx waterproofing system
- Dumawall trim installation
- Wheelhorse forum
- Smyth beetle ute
- Rulu tv
- Dish winegard
Yes, and you are a lighter. Denis said and got out of bed. I Kardashian is to blame for everything. The work of the insurance department was interrupted for a very good reason.