Heltec WiFi LoRa 32 V3: Your Gateway to Long-Range IoT with ESP32
A compact and versatile development board combining an ESP32 microcontroller with an integrated LoRa radio for long-range wireless communication.
The Heltec WiFi LoRa 32 V3 is a popular development board designed for makers, students, and embedded engineers looking to build Internet of Things (IoT) projects that require long-range communication capabilities. It integrates the powerful Espressif ESP32-S3 System-on-Chip (SoC) with a Semtech SX1262 LoRa radio transceiver, offering a compelling solution for applications where Wi-Fi and Bluetooth are insufficient due to range limitations. This board is an evolution of previous Heltec LoRa 32 models, bringing the latest ESP32-S3 features to the LoRa ecosystem.
At its heart, the Heltec WiFi LoRa 32 V3 features the ESP32-S3, a dual-core Tensilica LX7 microprocessor running at up to 240 MHz. The ESP32-S3 is an advanced variant of the ESP32 family, offering enhanced performance, more GPIO pins, and crucially, native USB OTG support, which simplifies programming and debugging. It also includes built-in Wi-Fi (802.11 b/g/n) and Bluetooth 5 (LE) connectivity, providing a versatile wireless communication suite alongside the LoRa module.
The integrated Semtech SX1262 LoRa chip enables long-range, low-power communication, making it ideal for applications like remote sensor monitoring, asset tracking, and smart agriculture where devices may be deployed far from gateways or power sources. The board typically includes a small OLED display, often an SSD1306, for displaying status information or sensor readings, further enhancing its standalone capabilities. Its compact form factor and accessible pin headers make it easy to prototype with, fitting well into breadboard projects or custom enclosures.
This board is particularly well-suited for makers interested in exploring the world of LoRaWAN networks, point-to-point LoRa communication, or building custom IoT solutions that prioritize range and low power consumption. Its combination of Wi-Fi, Bluetooth, and LoRa, powered by the capable ESP32-S3, makes it a flexible platform for a wide array of wireless projects, from simple sensor nodes to more complex gateway devices.
Watch
Related video, embedded from YouTube.
Specifications
| Microcontroller / SoC | Espressif ESP32-S3FN4R2 |
| Architecture | Dual-core Tensilica LX7 |
| Clock speed | Up to 240 MHz |
| Flash / Storage | 4MB (typically) |
| RAM / SRAM | 512KB SRAM |
| Operating voltage | 3.3V |
| Digital I/O pins | 34 (configurable) |
| Analog / ADC | 14 (12-bit ADC channels) |
| PWM | Up to 16 channels |
| Connectivity | Wi-Fi 802.11 b/g/n, Bluetooth 5 (LE), LoRa (SX1262) |
| USB | USB Type-C (for power, programming, and serial communication via ESP32-S3's native USB OTG) |
| Power input | USB Type-C (5V), 3.7V LiPo battery connector (JST PH 2.0) |
| Dimensions | Approx. 68mm x 20mm |
Pinout & pin functions
| Pin | Function |
|---|---|
| 3V3 | 3.3V Power Output |
| GND | Ground |
| EN | Enable (Reset) |
| IO0 | Boot mode selection (Low during reset for bootloader) |
| IO1 | UART0 TXD |
| IO2 | UART0 RXD |
| IO3 | ADC1_CH6 |
| IO4 | GPIO |
| IO5 | GPIO |
| IO6 | SPI0 CS |
| IO7 | SPI0 MOSI |
| IO8 | SPI0 MISO |
| IO9 | SPI0 SCK |
| IO10 | ADC1_CH10 |
| IO11 | ADC1_CH11 |
| IO12 | GPIO |
| IO13 | GPIO |
| IO14 | GPIO |
| IO15 | GPIO |
| IO16 | I2C0 SDA |
| IO17 | I2C0 SCL |
| IO18 | GPIO |
| IO19 | GPIO |
| IO20 | ADC1_CH12 |
| IO21 | ADC1_CH13 |
| IO26 | GPIO |
| IO27 | GPIO |
| IO28 | GPIO |
| IO29 | GPIO |
| IO30 | GPIO |
| IO31 | GPIO |
| IO32 | GPIO |
| IO33 | GPIO |
| IO34 | ADC1_CH14 |
| IO35 | ADC1_CH15 |
| IO36 | ADC1_CH16 |
| IO37 | ADC1_CH17 |
| IO38 | ADC1_CH18 |
| IO39 | ADC1_CH19 |
| VBAT | Battery Input (3.7V LiPo) |
| 5V | 5V Power Input (from USB) |
| OLED_SDA | OLED Display SDA (often IO16) |
| OLED_SCL | OLED Display SCL (often IO17) |
| LoRa_RST | LoRa Module Reset (connected to an ESP32-S3 GPIO) |
| LoRa_DIO1 | LoRa Module DIO1 (interrupt pin, connected to an ESP32-S3 GPIO) |
| LoRa_CS | LoRa Module Chip Select (connected to an ESP32-S3 GPIO) |
| LoRa_SCK | LoRa Module SPI Clock (connected to an ESP32-S3 GPIO) |
| LoRa_MISO | LoRa Module SPI MISO (connected to an ESP32-S3 GPIO) |
| LoRa_MOSI | LoRa Module SPI MOSI (connected to an ESP32-S3 GPIO) |
Wiring & circuit basics
The Heltec WiFi LoRa 32 V3 operates at a logic level of 3.3V. Connecting 5V components directly to its GPIO pins can cause permanent damage. When interfacing with 5V devices, a logic level converter is essential. Powering the board can be done via the USB Type-C port, which supplies 5V. Alternatively, a 3.7V LiPo battery can be connected to the JST PH 2.0 connector; the board includes a charging circuit for the battery when powered via USB.
For a simple output, like an LED, connect the anode (longer leg) of the LED to a digital GPIO pin (e.g., IO27) through a current-limiting resistor (typically 220-470 ohms). Connect the cathode (shorter leg) of the LED to a GND pin. This allows you to control the LED's state (ON/OFF) via software.
For an I2C sensor, such as a BME280 environmental sensor, connect its VCC pin to the board's 3V3 pin, its GND pin to a GND pin, its SDA pin to the board's I2C0 SDA pin (typically IO16), and its SCL pin to the board's I2C0 SCL pin (typically IO17). Ensure your code uses the correct I2C address for the sensor and the appropriate libraries.
Programming & getting started
The Heltec WiFi LoRa 32 V3 is well-supported by the Arduino IDE, MicroPython, and CircuitPython, making it accessible to a wide range of users. For Arduino IDE, you'll need to install the ESP32 board package via the Board Manager. For MicroPython/CircuitPython, you will need to flash the appropriate firmware onto the ESP32-S3 chip, typically using a tool like esptool.py or the Thonny IDE.
To upload your first program using the Arduino IDE: 1. Select the correct board (e.g., 'ESP32-S3 Dev Module' or a specific Heltec board if available in the package). 2. Connect the board to your computer via USB. 3. Select the correct COM port. 4. Write your code (e.g., a simple 'Blink' sketch or a LoRa sender/receiver example). 5. Click the 'Upload' button. The ESP32-S3's native USB will handle the flashing process without requiring a manual reset or boot button press for most setups.