Heltec WiFi LoRa 32 V4 combines an ESP32-S3 with an SX1262 LoRa chip, a 0.96″ OLED display and a Li-Po charger. Compared to the V3, it has a more powerful transmitter (up to 28 dBm), a connector for a GNSS module and a solar panel input.
It is one of the most popular boards for Meshtastic and MeshCore networks.
Specifications
- ESP32-S3R2: 2× Xtensa LX7 240 MHz, 2 MB PSRAM, 16 MB flash
- LoRa SX1262 with amplifier, up to 28 dBm output
- 0.96″ OLED 128 × 64 (SSD1315)
- Wi-Fi 4 and Bluetooth 5 (LE)
- USB-C, Li-Po charger, solar panel input
- GNSS module connector
- LED on GPIO35, PRG (GPIO0) and RST buttons
The V4 comes in R2 (2 MB PSRAM) and R8 (8 MB PSRAM) versions. On the R8, some control signals are on different pins because of the octal PSRAM – the pinout above corresponds to the R2 version.
Pinout and pin table
Hover over a pin in the diagram or a table row; use the filter to highlight a bus. You can download the pinout as PNG or SVG.
| Pin | Name | Direction | UART | I2C | SPI | ADC | Touch | Note |
|---|---|---|---|---|---|---|---|---|
| J2-1 | GND | – | ||||||
| J2-2 | 5V | input/output | 5 V from the USB connector. It can also power the board – ideally connect the supply through a diode so voltage does not flow back into USB. | |||||
| J2-3 | Ve | output | Switched 3.3 V for peripherals – enabled by GPIO36 (logic 0) | |||||
| J2-4 | Ve | output | Switched 3.3 V for peripherals – enabled by GPIO36 (logic 0) | |||||
| J2-5 | GPIO44 | input/output | RX | UART0 RX | ||||
| J2-6 | GPIO43 | input/output | TX | UART0 TX | ||||
| J2-7 | RST | input | Reset (RST button) – connecting to GND restarts the chip | |||||
| J2-8 | GPIO0 | input/output | PRG button. Strapping pin – logic 0 at boot = download mode | |||||
| J2-9 | GPIO36 | input/output | Vext_Ctrl – logic 0 enables the Ve rail (OLED and peripherals) | |||||
| J2-10 | GPIO35 | input/output | Onboard LED (LED_BUILTIN) | |||||
| J2-11 | GPIO34 | input/output | VGNSS_Ctrl – switches on GNSS module power (logic 0 = on) | |||||
| J2-12 | GPIO33 | input/output | ||||||
| J2-13 | GPIO47 | input/output | ||||||
| J2-14 | GPIO48 | input/output | ||||||
| J2-15 | GPIO26 | input/output | Used by PSRAM (SPICS1) – do not use | |||||
| J2-16 | GPIO21 | input/output | Reset displeje OLED | |||||
| J2-17 | GPIO20 | input/output | ADC2_CH9 | USB D+ (native USB) – usable as GPIO only without USB | ||||
| J2-18 | GPIO19 | input/output | ADC2_CH8 | USB D− (native USB) – usable as GPIO only without USB | ||||
| J3-1 | GND | – | ||||||
| J3-2 | 3V3 | output | 3.3 V output from the regulator | |||||
| J3-3 | 3V3 | output | 3.3 V output from the regulator | |||||
| J3-4 | GPIO37 | input/output | ADC_Ctrl – enables the battery voltage measurement divider | |||||
| J3-5 | GPIO46 | input/output | Strapping pin – logic 0 at boot (pull-down); amplifier control (CPS) in version V4.2 | |||||
| J3-6 | GPIO45 | input/output | Strapping pin (VDD_SPI voltage) – logic 0 at boot | |||||
| J3-7 | GPIO42 | input/output | GNSS: reset modulu | |||||
| J3-8 | GPIO41 | input/output | GNSS: PPS output (pulse every second) | |||||
| J3-9 | GPIO40 | input/output | GNSS: module wake-up | |||||
| J3-10 | GPIO39 | input/output | GNSS: data to the module (board TX) | |||||
| J3-11 | GPIO38 | input/output | GNSS: data from the module (board RX) | |||||
| J3-12 | GPIO1 | input/output | ADC1_CH0 | T1 | Battery voltage measurement (via divider, enable with GPIO37) | |||
| J3-13 | GPIO2 | input/output | ADC1_CH1 | T2 | FEM_EN – enables the LoRa RF amplifier | |||
| J3-14 | GPIO3 | input/output | SDA | ADC1_CH2 | T3 | Default I2C SDA in Arduino. Strapping pin (JTAG source select) – has no effect unless set in eFuse | ||
| J3-15 | GPIO4 | input/output | SCL | ADC1_CH3 | T4 | |||
| J3-16 | GPIO5 | input/output | ADC1_CH4 | T5 | PA_CTX – LoRa RF amplifier control (V4.3) | |||
| J3-17 | GPIO6 | input/output | ADC1_CH5 | T6 | ||||
| J3-18 | GPIO7 | input/output | ADC1_CH6 | T7 | VFEM_Ctrl – LoRa RF amplifier power | |||
| pad | GPIO15 | input/output | ADC2_CH4 | Header P4 near the antenna | ||||
| pad | GPIO16 | input/output | ADC2_CH5 | Header P4 near the antenna | ||||
| pad | GPIO17 | input/output | ADC2_CH6 | Header P5 near the antenna; OLED display I2C SDA | ||||
| pad | GPIO18 | input/output | ADC2_CH7 | Header P5 near the antenna; OLED display I2C SCL | ||||
| GNSS | GND | – | ||||||
| GNSS | VGNSS | output | Switched 3.3 V power for the GNSS module (enabled by GPIO34 at logic 0) | |||||
| GNSS | 3V3 | output | 3.3 V output from the regulator | |||||
| GNSS | GPIO39 | input/output | GNSS: data to the module (board TX) | |||||
| GNSS | GPIO38 | input/output | GNSS: data from the module (board RX) | |||||
| GNSS | GPIO40 | input/output | GNSS: module wake-up | |||||
| GNSS | GPIO41 | input/output | GNSS: PPS output (pulse every second) | |||||
| GNSS | GPIO42 | input/output | GNSS: reset modulu |
Pins used on the board
These chip pins are used by parts on the board and are not broken out:
| Pin | Function on the board |
|---|---|
| GPIO8 | LoRa SX1262 – NSS (CS) |
| GPIO9 | LoRa SX1262 – SCK |
| GPIO10 | LoRa SX1262 – MOSI |
| GPIO11 | LoRa SX1262 – MISO |
| GPIO12 | LoRa SX1262 – RESET |
| GPIO13 | LoRa SX1262 – BUSY |
| GPIO14 | LoRa SX1262 – DIO1 (interrupt) |
What to watch out for
- Never turn on the LoRa transmitter without an antenna – the amplifier may be destroyed.
- The Ve supply for the OLED and peripherals is switched on by GPIO36 (logic 0) – without it, the display stays dark.
- The GNSS module is powered via GPIO34 (logic 0 = on).
- The battery voltage is measured on GPIO1 through a divider that is enabled by GPIO37.
- The LoRa chip uses GPIO8–14, GPIO26 is taken by the PSRAM and GPIO19/20 are USB – better not to use them on the headers.
- The GPIO are not 5V tolerant.
Heltec and LoRa networks on chiptron.eu/
Projects and guides on chiptron.eu/:
- Heltec LoRa 32 v4 – ESP32-S3 and SX1262 with higher output power, a GPS connector and solar charging
- MeshCore – setting up an off-grid LoRa network, firmware for Heltec and a network map of the Czech Republic
- Heltec Wireless Tracker V2 – ESP32-S3, LoRa and GNSS with MeshCore and Meshtastic support
More pinouts
See all pinouts on the Pinouts page.