Heltec WiFi Kit 32: Your Wi-Fi Enabled ESP32 Development Board
An affordable and feature-rich ESP32 development board with integrated Wi-Fi and Bluetooth, perfect for IoT projects.
The Heltec WiFi Kit 32 is a popular and cost-effective development board based on Espressif's powerful ESP32 System-on-Chip (SoC). Released around 2018, it quickly became a favorite among makers, students, and hobbyists due to its compact size, integrated Wi-Fi and Bluetooth capabilities, and a generous array of onboard peripherals. This board provides a robust platform for learning about microcontrollers, wireless communication, and embedded systems development.
At its heart, the WiFi Kit 32 features the ESP32-WROOM-32 module, which houses the ESP32-D0WDQ6 chip. The ESP32 is a highly integrated, low-power SoC designed for Wi-Fi and Bluetooth applications. It boasts a dual-core Tensilica Xtensa LX6 microprocessor, running at up to 240 MHz, making it significantly more powerful than many other microcontrollers in its class. The chip also includes a host of peripherals like ADCs, DACs, I2C, SPI, UART, and PWM controllers, all accessible through the board's pin headers.
Positioned as an accessible entry point into the ESP32 ecosystem, the Heltec WiFi Kit 32 offers a compelling balance of features and price. While Espressif offers various development boards, Heltec's iteration is known for its straightforward design, often including a USB-to-serial converter for easy programming and debugging, and sometimes an onboard battery charging circuit for portable applications. This makes it an excellent choice for those looking to build connected devices, smart home gadgets, or sensor networks without a steep learning curve.
This board is particularly well-suited for makers and students who want to dive into the world of IoT. Its integrated wireless connectivity means you can build projects that communicate over Wi-Fi or Bluetooth right out of the box, without needing external modules. Whether you're prototyping a weather station, a remote control system, or a simple web server, the WiFi Kit 32 provides the necessary hardware and flexibility to bring your ideas to life.
Watch
Related video, embedded from YouTube.
Specifications
| Microcontroller / SoC | ESP32-WROOM-32 (based on ESP32-D0WDQ6) |
| Architecture | 32-bit Tensilica Xtensa LX6 Dual-Core |
| Clock speed | Up to 240 MHz |
| Flash / Storage | 4MB (typically) |
| RAM / SRAM | 520 KB SRAM |
| Operating voltage | 3.3V |
| Digital I/O pins | 36 (many are multiplexed) |
| Analog / ADC | 12-bit, up to 18 channels (ESP32 chip) |
| PWM | Yes, on most GPIO pins |
| Connectivity | Wi-Fi 802.11 b/g/n, Bluetooth v4.2 BR/EDR and BLE |
| USB | Micro-USB for power and programming (via CP2102 or similar) |
| Power input | 5V via Micro-USB or VIN pin; LiPo battery connector (often 2-pin JST) |
| Dimensions | 68.6mm x 25.6mm (approximate) |
Pinout & pin functions
| Pin | Function |
|---|---|
| 3V3 | 3.3V Power Output |
| GND | Ground |
| EN | Enable Pin (active high) |
| VP / GPIO34 | Analog Input (ADC1_CH6) |
| VN / GPIO35 | Analog Input (ADC1_CH7) |
| G36 / VP | Analog Input (ADC1_CH0) - Note: Often labeled VP |
| G34 / VN | Analog Input (ADC1_CH3) - Note: Often labeled VN |
| G39 | Analog Input (ADC3_CH3) |
| G38 | Analog Input (ADC3_CH2) |
| G37 | Analog Input (ADC3_CH1) |
| G33 | GPIO33 (ADC1_CH4) |
| G32 | GPIO32 (ADC1_CH5) |
| G4 | GPIO4 (ADC1_CH10) |
| G2 | GPIO2 (ADC1_CH8) |
| G15 | GPIO15 (ADC1_CH15) |
| G13 | GPIO13 (ADC1_CH11) |
| G12 | GPIO12 (ADC1_CH14) |
| G14 | GPIO14 |
| G27 | GPIO27 (ADC1_CH13) |
| G26 | GPIO26 (ADC1_CH12) |
| G25 | GPIO25 (ADC1_CH11) |
| G23 | GPIO23 (ADC2_CH9) |
| G22 | GPIO22 (ADC2_CH8) |
| G21 | GPIO21 (ADC2_CH7, I2C SDA) |
| G19 | GPIO19 (ADC2_CH6, I2C SCL) |
| G18 | GPIO18 (ADC2_CH5) |
| G5 | GPIO5 (ADC2_CH4) |
| G17 | GPIO17 (SPIHD) |
| G16 | GPIO16 (SPIWP) |
| TXD0 / GPIO1 | UART0 TX |
| RXD0 / GPIO3 | UART0 RX |
| G1 | GPIO1 (UART0 TX) - Note: Often shared with TXD0 |
| G3 | GPIO3 (UART0 RX) - Note: Often shared with RXD0 |
| G0 | GPIO0 (Boot Pin) |
| G9 | GPIO9 (SPI flash) |
| G10 | GPIO10 (SPI flash) |
| G11 | GPIO11 (SPI flash) |
Wiring & circuit basics
Powering the Heltec WiFi Kit 32 is straightforward. The primary method is via the Micro-USB port, which supplies a stable 5V. You can also use the VIN pin, which should also be connected to a 5V source. The board contains an onboard voltage regulator that steps this down to the 3.3V required by the ESP32 chip and most peripherals. Be mindful of current draw; while the ESP32 itself can consume significant current during Wi-Fi transmission (up to 300-400mA), the onboard regulator and USB port can typically handle this for most projects. If using a LiPo battery, connect it to the dedicated JST connector; the board usually includes charging circuitry.
Crucially, the Heltec WiFi Kit 32 operates at a 3.3V logic level. This means you cannot directly connect 5V components (like many standard LEDs, buttons, or sensors) to its GPIO pins without risking damage. For components requiring 5V, you'll need a level shifter. When connecting 3.3V components, ensure they are compatible with the ESP32's output voltage. For example, to safely blink an LED, connect its anode to a 3.3V pin (like 3V3) through a current-limiting resistor (typically 220-330 ohms) and its cathode to a GPIO pin (e.g., GPIO2). Alternatively, connect the GPIO pin to the anode, the cathode to ground, and the resistor between the GPIO pin and the anode (or between the GPIO pin and 3.3V, depending on pull-up/down configuration).
For connecting sensors, I2C is a common choice. The ESP32 has dedicated pins for I2C: GPIO21 typically serves as SDA (Serial Data) and GPIO19 as SCL (Serial Clock). To connect an I2C sensor like a BME280 (temperature, humidity, pressure), you would connect the sensor's VCC to the board's 3V3 pin, GND to GND, SDA to GPIO21, and SCL to GPIO19. Some I2C sensors might require pull-up resistors on the SDA and SCL lines, often in the range of 4.7k ohms, connected to the 3.3V pin. Always consult the sensor's datasheet for specific wiring requirements.
Programming & getting started
The Heltec WiFi Kit 32 is well-supported by several popular development environments. The most common is the Arduino IDE, which offers a vast library ecosystem and a familiar programming interface. To use it, you'll need to install the ESP32 board support package via the Arduino Board Manager. Other excellent options include PlatformIO (an extension for VS Code, offering advanced features and project management) and MicroPython/CircuitPython for Python-based development. For more advanced control and direct hardware access, Espressif's own ESP-IDF framework is the most powerful choice.
Uploading your first program, often a simple 'Blink' sketch adapted for the ESP32, is typically done via the Micro-USB port. With the Arduino IDE, select the correct ESP32 board (e.g., 'ESP32 Dev Module' or a specific Heltec model if available in the list), choose the corresponding COM port, and click the Upload button. The board usually enters bootloader mode automatically, but some older versions or specific configurations might require you to hold down the BOOT (or FLASH) button while pressing the RESET button, then releasing BOOT when the upload starts.