Heltec WiFi LoRa 32 V3

Heltec Automation

868 MHz 915 MHz SX1262 ESP32-S3FN8 22 dBm
DIY Modules Budget

A very popular ESP32-S3-based LoRa board featuring the SX1262 and an integrated 0.96" OLED display. Community firmware: Companion BLE/USB, Repeater, Room Server. The best balance of price, performance, and community support. 22 dBm transmit power.

Hardware Specifications

MCU

ESP32-S3FN8

RAM

512 KB

Flash

8 MB

Display

OLED (0.96" 128x64)

Button Count

1

Has LEDs

true

Weight

12 g

Dimensions

51 x 26 x 11

LoRa Specifications

LoRa Chip

SX1262

Frequency Band

868 MHz, 915 MHz

Max. TX Power

22 dBm

Antenna Type

U.FL connector

Typical Range

15 km

Connectivity

WiFi

true

Bluetooth

true

GPS

false

Power

USB Type

USB-C

Battery Connector

JST 1.25mm 2-pin

Solar Support

true

Power Consumption (Idle)

45 mA

Power Consumption (TX)

120 mA

Firmware Support

BLE Companion v1.16.0 05.03.2025 Release

Release notes: https://blog.meshcore.io/2026/06/06/release-1-16-0

USB Companion v1.16.0 05.03.2025 Release

Release notes: https://blog.meshcore.io/2026/06/06/release-1-16-0

Repeater v1.16.0 05.03.2025 Release

Release notes: https://blog.meshcore.io/2026/06/06/release-1-16-0

Room Server v1.16.0 05.03.2025 Release

Release notes: https://blog.meshcore.io/2026/06/06/release-1-16-0

Repeater v1.15.0-evo_0.1.21 14.01.2026 Release

⚠️ Check that radio.rxgain(on) and flood.advert.base (0.308) are set correctly after flashing! ⚠️

This build is based on official MeshCore 1.15.0 dev branch (as of 25-May-2026 and additionally includes the following unmerged upstream PRs/changes:

Additional changes:
  • Flood adverts are disabled (flood.advert.interval set to 0) by default
  • :new: modified PR1810 to not block flood adverts but only PAYLOADTYPEGRPTXT and PAYLOADTYPEGRPDATA so that some limited flood advert distribution can be managed via PR2553 to support e.g. observer maps.
Changelog:
  • Based on dev v1.15.0 as of 25-May-2026
Full Changelog: https://github.com/mattzzw/MeshCore-Evo/compare/v1.15.0-evo0.1.20...v1.15.0-evo0.1.21
Repeater PowerSaving16 02.01.2026 Release

Keep making 1-2W solar repeaters and 5-day BLE companions possible:

  • Developed by IoTThinks and tested by our supportive MeshCore friends.
  • Contribution to MeshCore: By IoTThinks%20is%3Apr%20author%3A%40IoTThinks).
  • Source code: https://github.com/IoTThinks/MeshCore/tree/PowerSaving-v16
IMPORTANT NOTICES
  • For repeaters / room servers, after upgrade to PowerSaving 16, you need to check and set the default values again set flood.max 64 (default value) , set flood.max.unscoped 64 (default value) and set radio.fem.rxgain on/off (Heltec v4.3 and T096 only, if you set "off" before) https://github.com/meshcore-dev/MeshCore/pull/2140#issuecomment-4677295983
The power consumption of common boards is measured at battery cable. Ping us if your boards are not low power as expected. | Board | Repeaters / Room Servers | BLE Companions | Power Off for BLE Companions | | ------------- | ------------- | ------------- | ------------- | | Heltec v3 | 9mA | 19.6mA | ~16uA | | Heltec v4.2 and v4.3 (FEM ON) | 16mA | 28.6mA | ~16uA | | Heltec v4.3 (FEM Off) | 13mA | 24.9 mA | ~16uA | | Xiao S3, C3 | 7mA | 15 mA | ~16uA | | Xiao C6 | 7mA | C6 is not supported yet | ~16uA | | RAK 4631, Heltec T114, Xiao NRF52 | 5.8mA | 5.8mA | ~16uA | | Heltec T096 (FEM Off) | 8.7mA | 8.6 mA | ~16uA | | Heltec T096 (FEM On) | 16mA | 16 mA | ~16uA |

Support Us

Enjoying our work? Support us via ![Sponsor](https://www.paypal.com/ncp/payment/6FGWJJVC572VL) or ![Sponsor](https://github.com/sponsors/IoTThinks).
Updates:
  • v16.0.3: Fixed T-Echo lite to hibernate at 1mA instead 6mA. We will cut power more in PowerSaving 17 to reduce to 10uA.
  • v16.0.2: Fixed GPS time sync for Heltec T114. It will sync after boot and GPS lock. It will sync time every 30 minutes or by manual "gps sync"
  • v16.0.1: Wio Tracker L1 BLE companion has high power consumption is at 35mA in PowerSaving 16 instead of 7.5mA as in PowerSaving 15. This issue might affect a few NRF52 boards with GPS modules attached.
Instruction:
  • Scroll down to bottom to download uf2 / upgrade.bin to upgrade or freshInstall-merged.bin for new devices.
  • Heltec v4 bin files is for both Heltec v4.2 and v4.3. Heltec v4.3 bin files is for Heltec v4.3 only
  • Heltec v4.3 and T096 have two options FEM RXgain on and FEM Rxgain off.
  • Flash Custom Firmware as in INSTRUCTION.
  • If your board is not at the bottom section, please request us at GITHUB
  • Fast support: Discord

Features:

Based on MeshCore 1.16, plus PowerSaving features and more:
  • Repeaters and room servers for both ESP32 and NRF52: CLI powersaving on, powersaving off and powersaving
  • BLE companions for both ESP32 and NRF52: Enabled by default
  • [NEW] Hibernate mode for ESP32 BLE Companions now work properly and at 16uA
  • [NEW] Optimize Heltec T096 from 12mA down to 8.7mA
  • [NEW] Repeaters for both ESP32 and NRF52: CLI set reboot.interval <hours> and get reboot.interval. hours is 0-255. 0 is default and disabled. This helps to recover repeaters due to unknown hang.
  • [NEW] Set return path for repeaters: https://github.com/meshcore-dev/MeshCore/pull/2586
  • [NEW] Add time keeping for NRF52 across resets: https://github.com/meshcore-dev/MeshCore/pull/2704
  • FEM LNA for Heltec v4.3, Heltec T096, Heltec TrackerV2: CLI set radio.fem.rxgain on/off and get radio.fem.rxgain. https://github.com/meshcore-dev/MeshCore/pull/2140
  • Automatically select I2C address (0x76 or 0x77) for BME280, BME680 and BMP680.
  • Fixed boot loop for Xiao C6: https://github.com/meshcore-dev/MeshCore/pull/2570
  • Check reset reasons for repeaters: CLI powerlog
  • Check I2C and GPS GPIOs: for repeaters: CLI sensor
Hot fixes:
  • For BLE companions, possible hang after a while due to CMDSENDRAW_PACKET errors accumulate memory:
https://github.com/meshcore-dev/MeshCore/issues/2721. Fixed: https://github.com/meshcore-dev/MeshCore/pull/2722

Demo

Power Saving for Hibernate mode in BLE Companion
Heltec v4.2 Companion can enter Hibernate mode at 16.4uA <img height="512" alt="image" src="https://github.com/user-attachments/assets/08c5c0d6-9960-4cb4-bcaf-a1d2d1ba78a0" />
Power Saving for repeaters
Enter powersaving mode (CLI > powersaving on), 5.5mA for Heltec v4.3 with FEM and rxgain off, 5.8mA if FEM off and rxgain on. 13mA for Heltec v4.2 or Heltec V4.3 with FEM and rxgain on. 5.0mA for RAK4631

<img height="384" alt="image" src="https://github.com/user-attachments/assets/be6e298d-4931-4e83-8220-0d072f8aeefd" />
<img height="384" alt="image" src="https://github.com/user-attachments/assets/924aa3a5-64d0-4112-aa66-6ff72178d3ac" />
<img height="384" alt="image" src="https://github.com/user-attachments/assets/903d899d-66c4-4d88-bf61-e9601797009f" />

Power Saving for BLE companions
Default PowerSaving for ESP32 companion BLE. Reduced from 120mA down to 15-25mA. <img height="384" alt="image" src="https://github.com/user-attachments/assets/bcae8449-4646-4a98-852f-312582686ad6" /> <img height="384" alt="image" src="https://github.com/user-attachments/assets/2fc5bee1-fe89-4c8f-8097-2db181d89f4a" /> <img height="384" alt="image" src="https://github.com/user-attachments/assets/656fcd90-3211-4044-832b-a63f30c2fb4a" /> <img height="384" alt="image" src="https://github.com/user-attachments/assets/7611ebb5-d2d1-42b7-8845-6016e838b0cf" />
PowerLog and Sensor CLI
Enter CLI "powerlog" to see last reset/shutdown reason and the battery voltage during last boot. Enter CLI "sensor" to check I2C and GPS Serial pins <img height="384" alt="image" src="https://github.com/user-attachments/assets/79a31bf6-a0c2-46d3-bf7e-d63ca27e3014" /> <img height="384" alt="image" src="https://github.com/user-attachments/assets/1870c4e7-5942-466e-af0c-66e7567c7aae" /> <img height="384" alt="image" src="https://github.com/user-attachments/assets/060dd847-5984-4dc2-a5fe-cfe81180dc6c" /> <img height="384" alt="image" src="https://github.com/user-attachments/assets/49f25de7-a122-480f-a54a-a7176ec25f26" />

Enjoy the long battery life. 👯‍♂️ 👯‍♂️ 👯‍♂️

Room Server PowerSaving16 13.03.2026 Release

Keep making 1-2W solar repeaters and 5-day BLE companions possible:

  • Developed by IoTThinks and tested by our supportive MeshCore friends.
  • Contribution to MeshCore: By IoTThinks%20is%3Apr%20author%3A%40IoTThinks).
  • Source code: https://github.com/IoTThinks/MeshCore/tree/PowerSaving-v16
IMPORTANT NOTICES
  • For repeaters / room servers, after upgrade to PowerSaving 16, you need to check and set the default values again set flood.max 64 (default value) , set flood.max.unscoped 64 (default value) and set radio.fem.rxgain on/off (Heltec v4.3 and T096 only, if you set "off" before) https://github.com/meshcore-dev/MeshCore/pull/2140#issuecomment-4677295983
The power consumption of common boards is measured at battery cable. Ping us if your boards are not low power as expected. | Board | Repeaters / Room Servers | BLE Companions | Power Off for BLE Companions | | ------------- | ------------- | ------------- | ------------- | | Heltec v3 | 9mA | 19.6mA | ~16uA | | Heltec v4.2 and v4.3 (FEM ON) | 16mA | 28.6mA | ~16uA | | Heltec v4.3 (FEM Off) | 13mA | 24.9 mA | ~16uA | | Xiao S3, C3 | 7mA | 15 mA | ~16uA | | Xiao C6 | 7mA | C6 is not supported yet | ~16uA | | RAK 4631, Heltec T114, Xiao NRF52 | 5.8mA | 5.8mA | ~16uA | | Heltec T096 (FEM Off) | 8.7mA | 8.6 mA | ~16uA | | Heltec T096 (FEM On) | 16mA | 16 mA | ~16uA |

Support Us

Enjoying our work? Support us via ![Sponsor](https://www.paypal.com/ncp/payment/6FGWJJVC572VL) or ![Sponsor](https://github.com/sponsors/IoTThinks).
Updates:
  • v16.0.3: Fixed T-Echo lite to hibernate at 1mA instead 6mA. We will cut power more in PowerSaving 17 to reduce to 10uA.
  • v16.0.2: Fixed GPS time sync for Heltec T114. It will sync after boot and GPS lock. It will sync time every 30 minutes or by manual "gps sync"
  • v16.0.1: Wio Tracker L1 BLE companion has high power consumption is at 35mA in PowerSaving 16 instead of 7.5mA as in PowerSaving 15. This issue might affect a few NRF52 boards with GPS modules attached.
Instruction:
  • Scroll down to bottom to download uf2 / upgrade.bin to upgrade or freshInstall-merged.bin for new devices.
  • Heltec v4 bin files is for both Heltec v4.2 and v4.3. Heltec v4.3 bin files is for Heltec v4.3 only
  • Heltec v4.3 and T096 have two options FEM RXgain on and FEM Rxgain off.
  • Flash Custom Firmware as in INSTRUCTION.
  • If your board is not at the bottom section, please request us at GITHUB
  • Fast support: Discord

Features:

Based on MeshCore 1.16, plus PowerSaving features and more:
  • Repeaters and room servers for both ESP32 and NRF52: CLI powersaving on, powersaving off and powersaving
  • BLE companions for both ESP32 and NRF52: Enabled by default
  • [NEW] Hibernate mode for ESP32 BLE Companions now work properly and at 16uA
  • [NEW] Optimize Heltec T096 from 12mA down to 8.7mA
  • [NEW] Repeaters for both ESP32 and NRF52: CLI set reboot.interval <hours> and get reboot.interval. hours is 0-255. 0 is default and disabled. This helps to recover repeaters due to unknown hang.
  • [NEW] Set return path for repeaters: https://github.com/meshcore-dev/MeshCore/pull/2586
  • [NEW] Add time keeping for NRF52 across resets: https://github.com/meshcore-dev/MeshCore/pull/2704
  • FEM LNA for Heltec v4.3, Heltec T096, Heltec TrackerV2: CLI set radio.fem.rxgain on/off and get radio.fem.rxgain. https://github.com/meshcore-dev/MeshCore/pull/2140
  • Automatically select I2C address (0x76 or 0x77) for BME280, BME680 and BMP680.
  • Fixed boot loop for Xiao C6: https://github.com/meshcore-dev/MeshCore/pull/2570
  • Check reset reasons for repeaters: CLI powerlog
  • Check I2C and GPS GPIOs: for repeaters: CLI sensor
Hot fixes:
  • For BLE companions, possible hang after a while due to CMDSENDRAW_PACKET errors accumulate memory:
https://github.com/meshcore-dev/MeshCore/issues/2721. Fixed: https://github.com/meshcore-dev/MeshCore/pull/2722

Demo

Power Saving for Hibernate mode in BLE Companion
Heltec v4.2 Companion can enter Hibernate mode at 16.4uA <img height="512" alt="image" src="https://github.com/user-attachments/assets/08c5c0d6-9960-4cb4-bcaf-a1d2d1ba78a0" />
Power Saving for repeaters
Enter powersaving mode (CLI > powersaving on), 5.5mA for Heltec v4.3 with FEM and rxgain off, 5.8mA if FEM off and rxgain on. 13mA for Heltec v4.2 or Heltec V4.3 with FEM and rxgain on. 5.0mA for RAK4631

<img height="384" alt="image" src="https://github.com/user-attachments/assets/be6e298d-4931-4e83-8220-0d072f8aeefd" />
<img height="384" alt="image" src="https://github.com/user-attachments/assets/924aa3a5-64d0-4112-aa66-6ff72178d3ac" />
<img height="384" alt="image" src="https://github.com/user-attachments/assets/903d899d-66c4-4d88-bf61-e9601797009f" />

Power Saving for BLE companions
Default PowerSaving for ESP32 companion BLE. Reduced from 120mA down to 15-25mA. <img height="384" alt="image" src="https://github.com/user-attachments/assets/bcae8449-4646-4a98-852f-312582686ad6" /> <img height="384" alt="image" src="https://github.com/user-attachments/assets/2fc5bee1-fe89-4c8f-8097-2db181d89f4a" /> <img height="384" alt="image" src="https://github.com/user-attachments/assets/656fcd90-3211-4044-832b-a63f30c2fb4a" /> <img height="384" alt="image" src="https://github.com/user-attachments/assets/7611ebb5-d2d1-42b7-8845-6016e838b0cf" />
PowerLog and Sensor CLI
Enter CLI "powerlog" to see last reset/shutdown reason and the battery voltage during last boot. Enter CLI "sensor" to check I2C and GPS Serial pins <img height="384" alt="image" src="https://github.com/user-attachments/assets/79a31bf6-a0c2-46d3-bf7e-d63ca27e3014" /> <img height="384" alt="image" src="https://github.com/user-attachments/assets/1870c4e7-5942-466e-af0c-66e7567c7aae" /> <img height="384" alt="image" src="https://github.com/user-attachments/assets/060dd847-5984-4dc2-a5fe-cfe81180dc6c" /> <img height="384" alt="image" src="https://github.com/user-attachments/assets/49f25de7-a122-480f-a54a-a7176ec25f26" />

Enjoy the long battery life. 👯‍♂️ 👯‍♂️ 👯‍♂️

BLE Companion MeshCore-low-power-v1.16.dev_0607 19.04.2026 Release
v1.16_0607
  • Companion UI: Native multilingual display on Heltec T096 (ST7735S)
Node names and messages now render natively on the T096 color TFT — characters are displayed as-is instead of being converted to ASCII equivalents. Supported languages include all 31 from v1.14 plus additional scripts:

Latin-based: Catalan, Croatian, Czech, Danish, Dutch, Estonian, Finnish, French, German, Hungarian, Icelandic, Italian, Latvian, Lithuanian, Maltese, Norwegian, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swedish, Turkish, Vietnamese, Welsh

Cyrillic: Belarusian, Bulgarian, Macedonian, Russian, Serbian, Ukrainian

Greek: Greek

  • Companion UI: Contacts screen now includes room servers; request telemetry from any contact.
Room servers appear in the contact list tagged [R]. Selecting any contact — chat node or room server — and long pressing opens an action menu: Send message or Request telemetry. Requesting telemetry displays the node's battery voltage and GPS coordinates (if present); long press to open the GPS Trace screen for that location.

GPS coordinates follow the Pos. Format selected in Settings (DD, UTM, or MGRS).

The message inbox group list now tags group/channel entries with [G] and room server entries with [R] for consistent visual distinction. Each room message shows the original author's name. When viewing a room message, long press to open the popup and select Reply to post back to the room (visible to all subscribers).

> Private room servers: messaging requires a prior login. Public rooms (no password) work without any login. For private rooms, log in once via the MeshCore app — if your account has admin rights on that room server, the session persists across reboots. Regular user sessions are not saved to flash and will require re-login after the room server reboots.

  • Companion: switch the app connection between BLE and USB serial without reflashing.
In USB mode the node behaves like a standard usb build — the PC app connects over the USB serial port directly. Toggle via Settings → Connection Mode on the display, or via TerminalCLI: set conn.mode usb / set conn.mode ble. The setting persists across reboots. BLE toggle is hidden in the Settings menu while USB mode is active.
  • Repeater, Room Sever: hold user button 5 seconds to power off.
Hold the user button for 5 seconds to power off the node — faster than reaching for the CLI when you're standing next to it. The LED blinks 5 times as a warning before shutdown.
  • Repeater, Room Server: advert.hops.max default changed to 8; room server support added; flood.max.advert alias.
advert.hops.max now defaults to 8 instead of flood.max — advert relay limiting is active out of the box without any configuration. Room servers now also enforce this limit (previously repeater-only). The command flood.max.advert is accepted as an alias for compatibility with upstream firmware.
Repeater MeshCore-low-power-v1.16.dev_0719 19.04.2026 Release
v1.160719
  • New: Sensors screen. (Companion — all platforms)
A new Sensors page on the Home screen. Battery shows a 24-hour rolling battery-percentage history as a bar chart, one bar per hour. If an environment sensor is attached, long press cycles through its readings — temperature, humidity, pressure, altitude, voltage, current, power, distance, or gas resistance — as a plain value+unit grid (°C, hPa, V...). The header shows the sensor's actual name (e.g. "BME280") while viewing its page, and precise Vbat voltage while viewing "Battery". With only one sensor attached, the page title just reads "SENSOR"; with more than one, pages are numbered by detection order ("Sensor 1", "Sensor 2"...) rather than the raw LPP channel number.
  • Message Persist setting now available in the WiFi Companion Portal, and included in backup/restore. (Companion — WiFi transport, V3, V4, E213, E290, Wireless Paper, XIAO S3)
The Message Persist toggle (added in v1.16
0714) was previously only reachable via CLI or the on-device UI. It's now also a checkbox under General Settings in the Companion Portal, and its value round-trips through the portal's Backup/Restore.
Room Server MeshCore-low-power-v1.16.dev_0719 19.04.2026 Release
v1.160719
  • New: Sensors screen. (Companion — all platforms)
A new Sensors page on the Home screen. Battery shows a 24-hour rolling battery-percentage history as a bar chart, one bar per hour. If an environment sensor is attached, long press cycles through its readings — temperature, humidity, pressure, altitude, voltage, current, power, distance, or gas resistance — as a plain value+unit grid (°C, hPa, V...). The header shows the sensor's actual name (e.g. "BME280") while viewing its page, and precise Vbat voltage while viewing "Battery". With only one sensor attached, the page title just reads "SENSOR"; with more than one, pages are numbered by detection order ("Sensor 1", "Sensor 2"...) rather than the raw LPP channel number.
  • Message Persist setting now available in the WiFi Companion Portal, and included in backup/restore. (Companion — WiFi transport, V3, V4, E213, E290, Wireless Paper, XIAO S3)
The Message Persist toggle (added in v1.16
0714) was previously only reachable via CLI or the on-device UI. It's now also a checkbox under General Settings in the Companion Portal, and its value round-trips through the portal's Backup/Restore.
Repeater v1.0.1 17.05.2026 Release

Full Changelog: https://github.com/MichTronics/MeshCoreNG/compare/bridge-tcp-v1.0.5...repeater-v1.0.1

BLE Companion v1.0.1 17.05.2026 Release

Full Changelog: https://github.com/MichTronics/MeshCoreNG/compare/bridge-tcp-v1.0.5...companion-v1.0.1

USB Companion v1.0.1 17.05.2026 Release

Full Changelog: https://github.com/MichTronics/MeshCoreNG/compare/bridge-tcp-v1.0.5...companion-v1.0.1

Room Server v1.0.1 17.05.2026 Release

Full Changelog: https://github.com/MichTronics/MeshCoreNG/compare/bridge-tcp-v1.0.5...room-server-v1.0.1

Automatic sync from different repositories