Opens in a new tab

Heltec WiFi LoRa 32 V3 Pinout

Heltec WiFi LoRa 32 V3 is the most widespread board for Meshtastic and MeshCore: an ESP32-S3 chip with Wi-Fi and Bluetooth LE, a LoRa SX1262 radio for the 868 MHz band, a 0.96″ OLED display and Li-Po cell charging.

Versions V3.1 and V3.2 have the same pin layout and differ in the power and charger circuitry. The successor, V4, is pin-compatible with the V3.

Specifications

  • ESP32-S3FN8: 2× Xtensa LX7 up to 240 MHz, 512 kB SRAM, 8 MB flash, no PSRAM
  • LoRa SX1262 (863–928 MHz), up to 21 dBm output, IPEX antenna connector
  • Wi-Fi 4 and Bluetooth LE 5 (spring antenna on the board)
  • 0.96″ OLED 128 × 64 (SSD1306, I2C on GPIO17/18)
  • 2 × 18 pins, 28 of them GPIO
  • USB-C with a CP2102 converter, Li-Po cell charging (SH1.25 connector)
  • 51.7 × 25.4 mm

The display is powered from the switched Ve supply – set GPIO36 to logic 0 before using it. The battery voltage is measured on GPIO1 through a divider enabled by GPIO37; on version V3.2 its polarity is inverted. The LoRa chip internally uses GPIO8–14.

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.

Heltec WiFi LoRa 32 V3 – pinoutHeltec WiFi LoRa 32 V3 – pinoutchiptron.eu · CC BY 4.0USB-CRSTPRGV3 1 GND 2 5V ↔ 5 V from USB, or 5 V power input 3 Ve ← Switched 3.3 V for the OLED – enabled by GPIO36 (logic 0) 4 Ve ← 5 GPIO44 RX 6 GPIO43 TX 7 RST → Reset (RST button) – connecting to GND restarts the chip 8 GPIO0 PRG button 9 GPIO36 Vext_Ctrl 10 GPIO35 LED 11 GPIO34 12 GPIO33 13 GPIO47 14 GPIO48 15 GPIO26 16 GPIO21 OLED RST 17 GPIO20 ADC2_CH9 18 GPIO19 ADC2_CH8 1 GND 2 3V3 → 3.3 V output from the regulator 3 3V3 → 4 GPIO37 ADC_Ctrl 5 GPIO46 6 GPIO45 7 GPIO42 SCL 8 GPIO41 SDA 9 GPIO40 10 GPIO39 11 GPIO38 12 GPIO1 ADC1_CH0 T1 VBAT_Read 13 GPIO2 ADC1_CH1 T2 14 GPIO3 ADC1_CH2 T3 15 GPIO4 ADC1_CH3 T4 16 GPIO5 ADC1_CH4 T5 17 GPIO6 ADC1_CH5 T6 18 GPIO7 ADC1_CH6 T7 GPIO UART I2C ADC (analog) Touch Power Ground (GND) Control / reset Strapping pin
Download:PNGSVG
Pin table – Heltec WiFi LoRa 32 V3
PinNameDirectionUARTI2CSPIADCTouchNote
J2-1GND–
J2-25Vinput/output5 V from the USB connector (on V3/V3.1 after the 500 mA fuse, on V3.2 before the 2 A fuse). It can also power the board – ideally connect the supply through a diode so voltage does not flow back into USB.
J2-3VeoutputSwitched 3.3 V (max. 350 mA) for the OLED and peripherals. Enabled by GPIO36 at logic 0 – without it the display stays dark.
J2-4VeoutputSwitched 3.3 V (max. 350 mA) for the OLED and peripherals. Enabled by GPIO36 at logic 0 – without it the display stays dark.
J2-5GPIO44input/outputRXUART0 RX – CP2102 converter (USB)
J2-6GPIO43input/outputTXUART0 TX – CP2102 converter (USB)
J2-7RSTinputReset (RST button) – connecting to GND restarts the chip
J2-8GPIO0input/outputPRG button. Strapping pin – logic 0 at boot = download mode
J2-9GPIO36input/outputVext_Ctrl – logic 0 enables the Ve rail (OLED and peripherals)
J2-10GPIO35input/outputWhite LED (LED_BUILTIN), lit at logic 1
J2-11GPIO34input/output
J2-12GPIO33input/output
J2-13GPIO47input/output
J2-14GPIO48input/output
J2-15GPIO26input/outputFree GPIO (the board has no PSRAM)
J2-16GPIO21input/outputReset displeje OLED
J2-17GPIO20input/outputADC2_CH9Chip USB D+ – not connected to USB-C (R29 not fitted), free GPIO
J2-18GPIO19input/outputADC2_CH8Chip USB D− – not connected to USB-C (R3 not fitted), free GPIO
J3-1GND–
J3-23V3output3.3 V output from the regulator
J3-33V3output3.3 V output from the regulator
J3-4GPIO37input/outputADC_Ctrl – enables the divider for measuring battery voltage on GPIO1. Active at logic 0 on V3 and V3.1, at logic 1 on V3.2 (Meshtastic detects the polarity itself). Cell voltage = 4.9 × voltage on GPIO1.
J3-5GPIO46input/outputStrapping pin – logic 0 at boot (pull-down)
J3-6GPIO45input/outputStrapping pin (VDD_SPI voltage) – logic 0 at boot
J3-7GPIO42input/outputSCLDefault I2C SCL (Wire) in Arduino. JTAG MTMS
J3-8GPIO41input/outputSDADefault I2C SDA (Wire) in Arduino. JTAG MTDI
J3-9GPIO40input/outputJTAG MTDO
J3-10GPIO39input/outputJTAG MTCK
J3-11GPIO38input/output
J3-12GPIO1input/outputADC1_CH0T1Battery voltage measurement (390k/100k divider, enable with GPIO37)
J3-13GPIO2input/outputADC1_CH1T2
J3-14GPIO3input/outputADC1_CH2T3Strapping pin (JTAG source selection) – has no effect unless set in eFuse
J3-15GPIO4input/outputADC1_CH3T4
J3-16GPIO5input/outputADC1_CH4T5
J3-17GPIO6input/outputADC1_CH5T6
J3-18GPIO7input/outputADC1_CH6T7
test padGPIO17input/outputADC2_CH6Pad T1 underneath – OLED display I2C SDA
test padGPIO18input/outputADC2_CH7Pad T2 underneath – OLED display I2C SCL

Pins used on the board

These chip pins are used by parts on the board and are not broken out:

PinFunction on the board
GPIO8LoRa SX1262 – NSS (CS)
GPIO9LoRa SX1262 – SCK
GPIO10LoRa SX1262 – MOSI
GPIO11LoRa SX1262 – MISO
GPIO12LoRa SX1262 – RESET
GPIO13LoRa SX1262 – BUSY
GPIO14LoRa SX1262 – DIO1 (interrupt)
GPIO15Krystal 32,768 kHz
GPIO16Krystal 32,768 kHz

What to watch out for

  • The GPIO are not 5V tolerant.
  • Do not transmit without an antenna – the LoRa power amplifier may be damaged.
  • The display stays dark until GPIO36 (Vext_Ctrl) is at logic 0.
  • On early V3 units, the charger overheats (resistor R9 1 kΩ) – V3.1 and later have this fixed.
  • GPIO19/20 are not connected to USB-C (programming goes through the CP2102), so they can be used as regular GPIO.
  • Strapping pins GPIO0 (PRG button), GPIO45 and GPIO46 must be at the correct level at boot.

Heltec and Meshtastic on chiptron.eu/

Projects and guides on chiptron.eu/:

  • MeshCore – setup, firmware and a network map of the Czech Republic, Heltec V3 among the supported boards
  • Heltec LoRa 32 V4 – what the V3’s successor brings (higher output power, GNSS, solar charging)

More pinouts

See all pinouts on the Pinouts page.

Related Articles