Heltec WiFi LoRa 32 V4

Heltec Automation

868 MHz 915 MHz SX1262 ESP32-S3R2 28 dBm
DIY Modules High-Performance

Neueste Generation des klassischen Heltec-Boards. ESP32-S3R2 mit 2 MB PSRAM und 16 MB Flash. TX-Leistung bis 28 dBm (High-Power-Version). Verbesserte RF-Abschirmung, Solar- und GNSS-Anschluss. Community-Firmware: Companion BLE/USB, Repeater, Room Server. Pin-kompatibel mit V3.

Revisionen: Ab V4.3.1 FEM-Chip auf KCT8103L aktualisiert (zuvor GC1109) – ermöglicht softwaregesteuerte Kontrolle des RX-LNA-Pfads für verbesserte Empfangsempfindlichkeit. MeshCore v1.15.0 unterstützt LNA-Steuerung via radio.rxgain.

Hardware Spezifikationen

MCU

ESP32-S3R2

RAM

2 MB

Flash

16 MB

Display

OLED (0.96" 128x64)

Anzahl Tasten

1

LEDs vorhanden

ja

Gewicht

12 g

Abmessungen

51 x 26 x 11

LoRa Spezifikationen

LoRa-Chip

SX1262

Frequenzband

868 MHz, 915 MHz

Max. Sendeleistung

28 dBm

Antennentyp

Onboard FPC 2.4G + U.FL für LoRa

Typische Reichweite

18 km

Konnektivität

WLAN

ja

Bluetooth

ja

GPS

nein

Stromversorgung

USB-Typ

USB-C

Akkuanschluss

SH1.25-2P

Solar-Unterstützung

ja

Stromverbrauch (Standby)

20 mA

Stromverbrauch (Senden)

120 mA

Firmware-Unterstützung

Room Server v1.16.0 28.09.2025 Release

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

Repeater v1.16.0 28.09.2025 Release

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

BLE Companion v1.16.0 28.09.2025 Release

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

USB Companion v1.16.0 28.09.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

For beta testing, in progress...

Internal testing done. Beta testings with friends around the world. Flash Instruction: Download upgrade.bin to upgrade existing devices or freshInstall-merged.bin for new devices. Then Flash Custom Firmware.
  • Source code: https://github.com/IoTThinks/MeshCore/tree/PowerSaving-v16
Based on MeshCore 1.16: https://blog.meshcore.io/2026/06/06/release-1-16-0 Plus:
  • Repeaters and room servers for both ESP32 and NRF52: CLI powersaving on
  • 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>. hours is 0-255. 0 is default and disabled.
  • [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 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
Notes:
  • Heltec v4 bin files is for both Heltec v4.2 and v4.3
  • Heltec v4.3 bin files is for Heltec v4.3 only

Found issues:

  • BLE companions seem can not sleep at all due to new code in MeshCore 1.16. Wio Tracker L1 is at 35mA instead of 7.5mA as in PowerSaving 15. Will investigate and fix.
  • CMDSENDRAW_PACKET errors accumulate memory:
https://github.com/meshcore-dev/MeshCore/issues/2721. Fixed: https://github.com/meshcore-dev/MeshCore/pull/2722
Room Server PowerSaving15 13.03.2026 Release

Based on MeshCore v1.15 plus the below features:

Developed by IoTThinks and tested by our supportive friends and MeshCore community. Current Contribution to Meshcore: By IoTThinks%20is%3Apr%20author%3A%40IoTThinks). You may feedback there to get them merged faster to MeshCore main stream. If you want us to compile for your boards or have question, please comment in GITHUB or DISCORD

Updates:

15 May 2026: PS v15.0.2: Fixed boot loop due to flash mode for Xiao C6
10 May 2026: PS v15.0.2: Fixed FEM Off version for T096 BLE companions. The external LNA was fixed to off properly to reach -115 dbm noise floor.
04 May 2026: [BLE Companions for ESP32] PS v15.0.1: Skipped sleep when BLE read is busy and reduced sleep period from 50ms to 10ms.
27 April 2026: [Heltec v4 repeaters and room servers] PS v15.0.1: Applied latest changes in https://github.com/meshcore-dev/MeshCore/pull/2140. Fixed missing get radio.fem.rxgrain and not persisted radio.fem.rxgrain accross reboots.

Support Us

Enjoying our work? Support us via ![Sponsor](https://www.paypal.com/ncp/payment/6FGWJJVC572VL) or ![Sponsor](https://github.com/sponsors/IoTThinks).
STAR Features:
  • ESP32 BLE Companions: Officially support PowerSaving for ALL ESP32/S3/C3 BLE Companions. Fast loading of channels and contacts. Fixed hibernation mode for Heltec v3 and v4. ESP32C6 (including Xiao C6) is not supported yet.
| Board | Power Consumption | | ------------- | ------------- | | Heltec v3 | 100 mA => 19.6 mA | | Heltec v4.2 and v4.3 (FEM ON) | 120mA => 24.9mA | | Heltec v4.3 (FEM Off) | 120mA => 18mA | | Xiao S3 | 7x mA => 16.3 mA | | Xiao C3 | 7xmA => 15.1mA |
  • [BETA] Repeater and room servers: No time drift by applying a time adjustment offset during "powersaving on"
Power Saving:
Latest Power Saving to Repeater, Room Server and BLE Companion. One 3000mAh battery can last an ESP32 repeaters, room servers and BLE companions for a week.

| Role | NRF52 | ESP32 | CLI Commands |
| ------------- | ------------- | ------------- | ------------- |
| Repeater / Room Server | 8mA => 5.8mA | 50+mA => 10-13mA | powersaving on, powersaving off, powersaving |
| BLE Companion | 12mA => 5.8mA | 120mA => 15-20mA | Enabled by default |

Extra Features:
Merged to add CLI control to LoRa's FEM LNA: https://github.com/meshcore-dev/MeshCore/pull/2140. CLI: set radio.fem.rxgrain on/off and get radio.fem.rxgrain Added CLI "powerlog" to list the last reset reason, last shutdown reason (NRF52 only) and last boot voltage (NRF52 only). This is to help debugging why the boards were reset due to software fault or low voltage (brownout). Included sensor CLI to list I2C and UART GPIOs: sensor Merged to keep date after crash/watchdog/brownout reset on ESP32: https://github.com/meshcore-dev/MeshCore/pull/1896 Automatically selected I2C address 0x76 and 0x77 for BME280/BME680/BMP280 Added i2c probe for sensors to start only in-use sensors. Added variant Xiao S3 (non-Wio) and Wio SX1262 (Initial support): SDA=D6, SCL=D7 https://github.com/meshcore-dev/MeshCore/pull/2383

Instruction:

Please upgrade your easy to access devices first. Download: Download upgrade.bin to upgrade existing devices or freshInstall-merged.bin for new devices. Instruction to Flash Custom Firmware. Please read the instruction in Add sensors to repeaters Source code for PowerSaving 15

Demo

Power Saving
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" />

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 CLI
Enter CLI "powerlog" to see last reset/shutdown reason and the battery voltage during last boot. <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" />
Sensor CLI
  • Enter CLI "sensor" to check I2C and GPS Serial pins
<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" />
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_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.
Room Server 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 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

Automatischer Sync von verschiedenen Repositories