Stufin
Home Quick Cart Profile

ESP32 WROOM CHIP

Buy Now

Component Name

ESP32 WROOM CHIP

Description

The ESP32 WROOM CHIP is a system on a chip (SoC) designed for IoT applications, developed by Espressif Systems. It is a powerful, low-power, and highly integrated microcontroller unit (MCU) that combines Wi-Fi, Bluetooth, and Bluetooth Low Energy (BLE) capabilities with a rich set of peripherals.

Functionality

The ESP32 WROOM CHIP is designed to provide a comprehensive solution for IoT applications, including

Wireless communication

Wi-Fi, Bluetooth, and BLE protocols for seamless connectivity

Microcontroller capabilities

Execute software applications and handle peripherals

Peripheral interfaces

Interact with various devices and sensors

Key Features

### Processor and Memory

Dual-core 32-bit LX6 microprocessor, operating at up to 240 MHz

520 KB of SRAM, 448 KB of ROM, and 4 MB of flash memory

Supports external flash memory and SD cards

### Wireless Connectivity

Wi-Fi802.11 b/g/n, supports both infrastructure and ad-hoc modes

Bluetooth

BR/EDR and BLE 5.0, supports dual-mode operation

Wireless performance

+ Wi-Fiup to 150 Mbps
+ Bluetoothup to 2 Mbps

### Peripherals and Interfaces

SPI, I2S, I2C, UART, and SDIO interfaces

18x ADC channels, 2x DAC channels, and 3x SPI interfaces

3x UART interfaces, including one with infrared (IR) capabilities

2x I2C interfaces, 1x I2S interface, and 1x SDIO interface

16x PWM channels, 2x DAC channels, and 2x TWAI interfaces

Supports external interfaces, such as Ethernet, USB, and CAN

### Security Features

Advanced encryption and decryption engines for secure data transmission

Supports secure boot, flash encryption, and TrustZone architecture

Implements WPA2, WPA3, and WAPI security protocols

### Power Management

Operating voltage

2.2 V to 3.6 V

Low-power modesdeep sleep, hibernate, and shutdown

Supports power-saving features, such as dynamic voltage and frequency scaling

### Operating System and Software

Supports various operating systems, including Espressif's MicroPython, Lua, and C

Compatible with popular IoT development platforms, such as Arduino and ESP-IDF

Applications

The ESP32 WROOM CHIP is suitable for a wide range of IoT applications, including

Smart home devices and appliances

Wearables and fitness trackers

Industrial automation and control systems

Robotics and autonomous systems

Medical devices and healthcare applications

Smart cities and infrastructure projects

Conclusion

The ESP32 WROOM CHIP is a powerful, versatile, and highly integrated SoC designed for IoT applications. Its rich set of peripherals, wireless connectivity options, and advanced security features make it an ideal choice for developing innovative and connected devices.

Pin Configuration

  • ESP32 WROOM CHIP Pinout Guide
  • The ESP32 WROOM chip is a powerful and popular microcontroller unit (MCU) used in various IoT applications. It has a total of 48 pins, each with specific functions and uses. Here's a detailed explanation of each pin, grouped by category, to help you understand how to connect and utilize them effectively.
  • Power Pins (5)
  • 1. VCC (Pin 1): Power supply pin, typically connected to a 3.3V power source.
  • 2. VCC3V3 (Pin 2): Internal 3.3V power rail, used for powering internal components.
  • 3. VIN (Pin 3): External power supply pin, can be connected to a battery or an external power source.
  • 4. GND (Pin 4): Ground pin, connected to the negative leg of the power source or the ground plane.
  • 5. GND_ISO (Pin 48): Isolated ground pin, used for noise reduction and EMI shielding.
  • GPIO Pins (34)
  • These pins can be used as general-purpose input/output (GPIO) pins, digital-to-analog converters (DAC), analog-to-digital converters (ADC), or other specialized functions.
  • GPIO 0-3
  • 6. GPIO0 (Pin 5): GPIO pin, can be used as an input or output.
  • 7. GPIO1 (Pin 6): GPIO pin, can be used as an input or output.
  • 8. GPIO2 (Pin 7): GPIO pin, can be used as an input or output. (Boot mode selection pin)
  • 9. GPIO3 (Pin 8): GPIO pin, can be used as an input or output.
  • GPIO 4-11
  • 10. GPIO4 (Pin 9): GPIO pin, can be used as an input or output.
  • 11. GPIO5 (Pin 10): GPIO pin, can be used as an input or output.
  • 12. GPIO6 (Pin 11): GPIO pin, can be used as an input or output.
  • 13. GPIO7 (Pin 12): GPIO pin, can be used as an input or output.
  • 14. GPIO8 (Pin 13): GPIO pin, can be used as an input or output.
  • 15. GPIO9 (Pin 14): GPIO pin, can be used as an input or output.
  • 16. GPIO10 (Pin 15): GPIO pin, can be used as an input or output.
  • 17. GPIO11 (Pin 16): GPIO pin, can be used as an input or output.
  • GPIO 12-21
  • 18. GPIO12 (Pin 17): GPIO pin, can be used as an input or output.
  • 19. GPIO13 (Pin 18): GPIO pin, can be used as an input or output.
  • 20. GPIO14 (Pin 19): GPIO pin, can be used as an input or output.
  • 21. GPIO15 (Pin 20): GPIO pin, can be used as an input or output.
  • 22. GPIO16 (Pin 21): GPIO pin, can be used as an input or output.
  • 23. GPIO17 (Pin 22): GPIO pin, can be used as an input or output.
  • 24. GPIO18 (Pin 23): GPIO pin, can be used as an input or output.
  • 25. GPIO19 (Pin 24): GPIO pin, can be used as an input or output.
  • 26. GPIO20 (Pin 25): GPIO pin, can be used as an input or output.
  • 27. GPIO21 (Pin 26): GPIO pin, can be used as an input or output.
  • SPI and I2S Pins
  • 28. SPI_CS (Pin 27): Chip select pin for SPI interface.
  • 29. SPI_CLK (Pin 28): Clock pin for SPI interface.
  • 30. SPI_MOSI (Pin 29): Master-out-slave-in pin for SPI interface.
  • 31. SPI_MISO (Pin 30): Master-in-slave-out pin for SPI interface.
  • 32. I2S_BCK (Pin 31): Bit clock pin for I2S interface.
  • 33. I2S_WS (Pin 32): Word select pin for I2S interface.
  • 34. I2S_SD (Pin 33): Serial data pin for I2S interface.
  • UART and JTAG Pins
  • 35. UART_RX (Pin 34): Receiver pin for UART interface.
  • 36. UART_TX (Pin 35): Transmitter pin for UART interface.
  • 37. JTAG_TDI (Pin 36): Test data in pin for JTAG interface.
  • 38. JTAG_TDO (Pin 37): Test data out pin for JTAG interface.
  • 39. JTAG_TCK (Pin 38): Test clock pin for JTAG interface.
  • 40. JTAG_TMS (Pin 39): Test mode select pin for JTAG interface.
  • 41. JTAG_TRST (Pin 40): Test reset pin for JTAG interface.
  • ADC and DAC Pins
  • 42. ADC1_0 (Pin 41): Analog-to-digital converter channel 0.
  • 43. ADC1_1 (Pin 42): Analog-to-digital converter channel 1.
  • 44. ADC1_2 (Pin 43): Analog-to-digital converter channel 2.
  • 45. ADC1_3 (Pin 44): Analog-to-digital converter channel 3.
  • 46. DAC1 (Pin 45): Digital-to-analog converter channel 1.
  • 47. DAC2 (Pin 46): Digital-to-analog converter channel 2.
  • Other Pins
  • 48. EN (Pin 47): Chip enable pin, active low.
  • When connecting the pins, ensure that you:
  • Use a 3.3V power supply and connect it to VCC and GND pins.
  • Connect GPIO pins to external components, such as sensors, LEDs, or buttons, as required.
  • Use the correct communication protocol pins (SPI, I2S, UART, JTAG) for your application.
  • Configure the ADC and DAC pins according to your analog-to-digital and digital-to-analog conversion needs.
  • Keep in mind the ESP32 WROOM chip's pinout and electrical characteristics when designing your project.
  • Remember to consult the ESP32 WROOM datasheet and relevant documentation for more information on each pin's specific usage and restrictions.

Code Examples

ESP32 WROOM CHIP Documentation
Overview
The ESP32 WROOM chip is a highly integrated Wi-Fi system-on-a-chip (SoC) designed for low-power, low-cost, and compact wireless connectivity solutions. It is a popular choice for IoT applications due to its versatility, performance, and ease of use.
Features
Dual-core 32-bit LX6 microprocessor
 Integrated Wi-Fi 802.11 b/g/n
 Bluetooth 4.2
 On-chip memory: 520 KB SRAM, 448 KB ROM
 Supports multiple interfaces: SPI, I2S, I2C, UART, GPIO
 Operating voltage: 2.2 V to 3.6 V
 Operating temperature: -40C to 85C
Code Examples
### Example 1: Wi-Fi Connection and HTTP Request
This example demonstrates how to connect to a Wi-Fi network and send an HTTP request using the ESP32 WROOM chip.
```c
#include <WiFi.h>
#include <HTTPClient.h>
const char ssid = "your_wifi_ssid";
const char password = "your_wifi_password";
const char url = "http://example.com";
WiFiClient client;
HTTPClient http;
void setup() {
  Serial.begin(115200);
// Connect to Wi-Fi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }
  Serial.println("Connected to WiFi");
  Serial.println("Initializing HTTP client...");
http.begin(url);
}
void loop() {
  int httpCode = http.GET();
  if (httpCode > 0) {
    Serial.println("HTTP response code: " + String(httpCode));
    String response = http.getString();
    Serial.println(response);
  } else {
    Serial.println("Error sending HTTP request");
  }
  http.end();
  delay(5000);
}
```
### Example 2: Bluetooth Low Energy (BLE) Advertising
This example demonstrates how to use the ESP32 WROOM chip as a Bluetooth Low Energy (BLE) peripheral device and advertise a service.
```c
#include <BLE.h>
BLEServer server;
BLEService service;
BLEAdvertising advertising;
void setup() {
  Serial.begin(115200);
// Initialize BLE
  BLE.begin();
// Create a BLE service
  service = server->createService("180F"); // Generic Access Profile
// Create a BLE characteristic
  BLECharacteristic characteristic = service->createCharacteristic("2A19", BLECharacteristic::PROPERTY_READ);
  characteristic->setValue("ESP32 WROOM");
// Start advertising
  advertising = server->getAdvertising();
  advertising->start();
  Serial.println("Advertising started...");
}
void loop() {
  delay(2000);
}
```
### Example 3: GPIO Control and UART Communication
This example demonstrates how to use the ESP32 WROOM chip's GPIO pins to control an external device and communicate with it using UART.
```c
#include <WiFi.h>
#include <UART.h>
const int ledPin = 21; // ESP32 WROOM GPIO 21
const int uartTx = 17; // ESP32 WROOM GPIO 17 (UART TX)
const int uartRx = 16; // ESP32 WROOM GPIO 16 (UART RX)
void setup() {
  Serial.begin(115200);
// Initialize UART
  UART.begin(9600, SERIAL_8N1, uartRx, uartTx);
// Initialize GPIO
  pinMode(ledPin, OUTPUT);
}
void loop() {
  // Toggle LED
  digitalWrite(ledPin, HIGH);
  delay(500);
  digitalWrite(ledPin, LOW);
  delay(500);
// Send UART command
  UART.print("Hello, UART!");
  UART.println();
// Receive UART response
  if (UART.available() > 0) {
    String response = UART.readStringUntil('
');
    Serial.println("UART response: " + response);
  }
  delay(1000);
}
```
Note: These examples are just a few demonstrations of the ESP32 WROOM chip's capabilities. You can explore more features and libraries in the Arduino IDE or using the ESP-IDF framework.