Skip to content

Board Comparison

This page is meant to help you choose a board, not just list every technical detail.

Start Here

If you are new to MeshCore hardware and just want a sensible starting point, first decide whether the device is a companion or a repeater.

For companions, think Wi-Fi-connected automation endpoint:

  • use companion Wi-Fi builds when another system, such as Home Assistant, RemoteTerm, or your own tooling, needs to connect to MeshCore over Wi-Fi
  • these are usually not hands-on daily devices, so a screen is optional rather than a must-have
  • headless or simple boards are often fine when the companion will sit near power and be managed from another app or automation system
  • check the companion tables below when you do want a display, GPS, or a more complete board package

For MQTT/web repeaters, think Wi-Fi, broker visibility, and enough headroom for the local web panel:

  • common starting points are Heltec_v3 and heltec_v4
  • heltec_v4_repeater_observer is a strong all-round observer choice with GPS, PSRAM, and 16 MB flash
  • choose boards with more flash and PSRAM when you want MQTT plus the local web panel, stats, or more room for future features
  • screens are not a major requirement because observers have the local web panel for setup and troubleshooting
  • headless repeaters are often the cleanest choice when the device will live in a roof, box, or fixed install and you will configure it from the web panel, serial console, or app

For bridge repeaters, think local radio linking between nearby repeaters:

  • use bridge firmware when two local repeaters need to exchange traffic across different MeshCore radio configs, such as Australia (Narrow) and Australia (Mid)
  • pure ESP-NOW bridge repeaters do not need MQTT, the EastMesh web panel, or a screen
  • prioritise stable power, suitable antennas, and placement over display features
  • use observer-eastmesh-bridge-espnow only when the same repeater also needs MQTT uplink; otherwise repeater-bridge-espnow keeps the role simpler

Other notes:

  • screens matter more for companions or bench/field devices than fixed repeaters
  • if you do want an onboard screen people will actually use, prefer TFT boards
  • if you want a low-power status screen, prefer e-paper boards
  • if location-aware or mobile use matters, prefer GPS-capable boards such as the T-Beam family, heltec_tracker_v2, Heltec_v3, heltec_v4, or ThinkNode_M5
  • if you want the most conservative, older radio family choices, the SX1276 boards are LilyGo_TLora_V2_1_1_6, Tbeam_SX1276, and Heltec_v2

About The Tables

The tables below are built from the repo's PlatformIO board metadata and variant build flags.

  • Target is the short board name used in this comparison page. Release filenames and local build commands still use the full env names such as heltec_v4_repeater_observer.
  • MCU shows the chip family only. Actual runtime clock can vary by env and board configuration.
  • RAM is the MCU's built-in RAM.
  • PSRAM is extra memory on some boards. More PSRAM usually means more headroom for UI, MQTT, and future features.
  • GPS uses โœ… when present and is blank when absent.
  • SD uses โœ… when the board is currently known to support the SD-backed archive path in EastMesh, ๐Ÿงช when the hardware likely supports TF/microSD but the board-specific integration still needs validation, and is blank when there is no current SD/archive support note.

Track Notes

  • companion-wifi boards are for app-connected companion devices.
  • observer-eastmesh boards are for Wi-Fi repeaters that publish to MQTT.
  • repeater-bridge-espnow and observer-eastmesh-bridge-espnow boards are for local ESP-NOW bridge use between nearby repeaters on different MeshCore radio configs.

Bridge firmware is not MQTT-over-WAN or VPN bridging. Use it when two local repeaters need to exchange traffic across radio configs such as Australia (Narrow) and Australia (Mid).

Additional Signals

If you are deciding between otherwise similar boards, these target-level settings often matter more than flash alone.

  • CPU cfg is the runtime clock MeshCore sets for that target. default means MeshCore does not override the board's default clock.
  • TX cfg is MeshCore's configured LORA_TX_POWER, not guaranteed antenna output. Boards with a PA or RF front-end may radiate much more than the configured value suggests.
  • Power is how the target exposes power in the repo: ADC batt, PMU, custom 2S, fixed/ext, or none.
  • Extras lists notable RF or peripheral extras exposed by the target, such as PA/FEM, RF switch, BME280, NeoPixel, or ext ant.
Target CPU cfg TX cfg Power Extras
Ebyte_EoRa-S3 default 22 dBm cfg ADC batt
Generic_E22_sx1262 default 22 dBm cfg ADC batt RF switch
Generic_E22_sx1268 default 22 dBm cfg ADC batt RF switch
Heltec_E213 default 22 dBm cfg ADC batt
Heltec_E290 default 22 dBm cfg ADC batt
Heltec_T190 default 22 dBm cfg ADC batt
heltec_tracker_v2 160 MHz 9 dBm cfg* ADC batt PA/FEM
Heltec_v2 default 20 dBm cfg ADC batt
Heltec_v3 80 MHz 22 dBm cfg ADC batt
heltec_v4 80 MHz 10 dBm cfg* ADC batt PA/FEM
heltec_v4_tft 80 MHz 10 dBm cfg* ADC batt PA/FEM
Heltec_Wireless_Paper default 22 dBm cfg ADC batt
Heltec_Wireless_Tracker 80 MHz 22 dBm cfg none
Heltec_WSL3 80 MHz 22 dBm cfg ADC batt
LilyGo_T3S3_sx1262 default 22 dBm cfg ADC batt
LilyGo_T3S3_sx1276 default 20 dBm cfg ADC batt RF switch
LilyGo_TBeam_1W default 22 dBm cfg* custom 2S PA/FEM
LilyGo_TDeck default 22 dBm cfg ADC batt
LilyGo_Tlora_C6 default 22 dBm cfg none RF switch
LilyGo_TLora_V2_1_1_6 default 20 dBm cfg ADC batt
M5Stack_Unit_C6L default 22 dBm cfg none RF switch
Meshadventurer_sx1262 default 22 dBm cfg ADC batt RF switch
Meshadventurer_sx1268 default 22 dBm cfg ADC batt RF switch
Meshimi default 22 dBm cfg none ext ant
nibble_screen_connect default 22 dBm cfg none NeoPixel
RAK_3112 80 MHz 22 dBm cfg ADC batt
Station_G2 default 7 dBm cfg* fixed/ext PA/FEM
Station_G2_logging default 7 dBm cfg* fixed/ext PA/FEM
T_Beam_S3_Supreme_SX1262 default 22 dBm cfg PMU BME280
Tbeam_SX1262 default 22 dBm cfg PMU
Tbeam_SX1276 default 20 dBm cfg PMU
ThinkNode_M2 default 22 dBm cfg ADC batt
ThinkNode_M5 default 22 dBm cfg ADC batt
WHY2025_badge default 22 dBm cfg none
Xiao_C6 default 22 dBm cfg none RF switch
Xiao_S3_WIO default 22 dBm cfg none RF switch

* These targets use a PA or RF front-end, so effective output can be much higher than the configured LORA_TX_POWER.

repeater_observer Boards

This table includes all observer targets currently defined in variants/eastmesh_mqtt/platformio.ini.

Target MCU RAM PSRAM Flash LoRa Display GPS SD
Ebyte_EoRa-S3 ESP32S3 512 KB 2 MB 4 MB SX1262 OLED (SSD1306)
Generic_E22_sx1262 ESP32 520 KB No 4 MB SX1262 None
Generic_E22_sx1268 ESP32 520 KB No 4 MB SX1268 None
Heltec_E213 ESP32S3 512 KB 8 MB 16 MB SX1262 E-paper (2.13")
Heltec_E290 ESP32S3 512 KB 8 MB 16 MB SX1262 E-paper (2.9")
Heltec_T190 ESP32S3 512 KB 8 MB 16 MB SX1262 TFT (ST7789)
heltec_tracker_v2 ESP32S3 512 KB No 8 MB SX1262 TFT (ST7735) โœ…
Heltec_v2 ESP32 520 KB No 8 MB SX1276 OLED (SSD1306)
Heltec_v3 ESP32S3 512 KB No 8 MB SX1262 OLED (SSD1306) โœ…
heltec_v4 ESP32S3 512 KB 2 MB 16 MB SX1262 OLED (SSD1306) โœ…
heltec_v4_tft ESP32S3 512 KB 2 MB 16 MB SX1262 TFT (ST7789) โœ…
Heltec_Wireless_Paper ESP32S3 512 KB No 8 MB SX1262 E-paper (2.13")
Heltec_Wireless_Tracker ESP32S3 512 KB No 8 MB SX1262 TFT (ST7735) โœ…
Heltec_WSL3 ESP32S3 512 KB No 8 MB SX1262 None โœ…
LilyGo_T3S3_sx1262 ESP32S3 512 KB 2 MB 4 MB SX1262 OLED (SSD1306) ๐Ÿงช
LilyGo_T3S3_sx1276 ESP32S3 512 KB 2 MB 4 MB SX1276 OLED (SSD1306) ๐Ÿงช
LilyGo_TBeam_1W ESP32S3 512 KB 8 MB 16 MB SX1262 OLED (SH1106) โœ… โœ…
LilyGo_TDeck ESP32S3 512 KB No 16 MB SX1262 TFT (ST7789) โœ… ๐Ÿงช
LilyGo_Tlora_C6 ESP32C6 512 KB No 4 MB SX1262 None
M5Stack_Unit_C6L ESP32C6 512 KB No 4 MB SX1262 None โœ…
Meshadventurer_sx1262 ESP32 520 KB No 4 MB SX1262 OLED (SSD1306) โœ…
Meshadventurer_sx1268 ESP32 520 KB No 4 MB SX1268 OLED (SSD1306) โœ…
Meshimi ESP32C6 512 KB No 4 MB SX1262 None
nibble_screen_connect ESP32S3 512 KB No 4 MB SX1262 OLED (SSD1306)
RAK_3112 ESP32S3 512 KB No 8 MB SX1262 None โœ…
Station_G2 ESP32S3 512 KB 8 MB 16 MB SX1262 OLED (SH1106) โœ…
Station_G2_logging ESP32S3 512 KB 8 MB 16 MB SX1262 OLED (SH1106) โœ…
T_Beam_S3_Supreme_SX1262 ESP32S3 512 KB 8 MB 8 MB SX1262 OLED (SH1106) โœ… โœ…
Tbeam_SX1262 ESP32 520 KB No 4 MB SX1262 OLED (SSD1306) โœ…
Tbeam_SX1276 ESP32 520 KB No 4 MB SX1276 OLED (SSD1306) โœ…
ThinkNode_M2 ESP32S3 512 KB No 4 MB SX1262 OLED (SH1106)
ThinkNode_M5 ESP32S3 512 KB No 4 MB SX1262 E-paper (GxEPD) โœ…
WHY2025_badge ESP32C6 512 KB No 4 MB SX1262 None
Xiao_C6 ESP32C6 512 KB No 4 MB SX1262 None
Xiao_S3_WIO ESP32S3 512 KB No 8 MB SX1262 None โœ…

SD notes:

  • โœ… means the board is currently known to work with the SD-backed archive path in EastMesh.
  • ๐Ÿงช means the board hardware likely supports TF/microSD, but the EastMesh board-specific integration still needs validation before it should be treated as supported.
  • For the current stats archive, a 4 GB FAT32 microSD card is more than sufficient. Larger cards are also supported.

companion_radio_wifi Boards With A Display

These are the Wi-Fi companion targets that have a display configured for local status, setup help, or occasional direct interaction.

Target MCU RAM PSRAM Flash LoRa Display GPS
Heltec_v2 ESP32 520 KB No 8 MB SX1276 OLED (SSD1306)
Heltec_v3 ESP32S3 512 KB No 8 MB SX1262 OLED (SSD1306) โœ…
heltec_tracker_v2 ESP32S3 512 KB No 8MB SX1262 TFT (ST7735) โœ…
heltec_v4 ESP32S3 512 KB 2 MB 16MB SX1262 OLED (SSD1306) โœ…
heltec_v4_tft ESP32S3 512 KB 2 MB 16MB SX1262 TFT (ST7789) โœ…
LilyGo_TBeam_1W ESP32S3 512 KB 8 MB 16MB SX1262 OLED (SH1106) โœ…
LilyGo_TLora_V2_1_1_6 ESP32 520 KB No 4 MB SX1276 OLED (SSD1306) โœ…
nibble_screen_connect ESP32S3 512 KB No 4MB SX1262 OLED (SSD1306)
Station_G2 ESP32S3 512 KB 8 MB 16MB SX1262 OLED (SH1106) โœ…
T_Beam_S3_Supreme_SX1262 ESP32S3 512 KB 8 MB 8MB SX1262 OLED (SH1106) โœ…
ThinkNode_M2 ESP32S3 512 KB No 4MB SX1262 OLED (SH1106)
ThinkNode_M5 ESP32S3 512 KB No 4MB SX1262 E-paper (GxEPD) โœ…

companion_radio_wifi Headless Boards

These are the Wi-Fi companion targets that rely on the companion app as the primary interface. For many users, this is the best everyday option.

Target MCU RAM PSRAM Flash LoRa GPS
Heltec_WSL3 ESP32S3 512 KB No 8 MB SX1262 โœ…
RAK_3112 ESP32S3 512 KB No 8 MB SX1262 โœ…
Xiao_S3_WIO ESP32S3 512 KB No 8 MB SX1262 โœ…

Practical Picks

  • Best all-round observer with screen and overall headroom: heltec_v4_repeater_observer, heltec_v4_tft_repeater_observer, Station_G2_repeater_observer, LilyGo_TBeam_1W_repeater_observer.
  • Best observer if you want a simple headless install: RAK_3112_repeater_observer, Generic_E22_sx1262_repeater_observer, Meshimi_repeater_observer, Xiao_C6_repeater_observer.
  • Best low-power display observer builds: Heltec_E213_repeater_observer, Heltec_E290_repeater_observer, Heltec_Wireless_Paper_repeater_observer, ThinkNode_M5_Repeater_observer.
  • Best companion choices if you want the richest local UI: heltec_v4_tft_companion_radio_wifi and heltec_tracker_v2_companion_radio_wifi.
  • Best companion choices if you want maximum memory headroom: T_Beam_S3_Supreme_SX1262_companion_radio_wifi, Station_G2_companion_radio_wifi, LilyGo_TBeam_1W_companion_radio_wifi.
  • Best companion choices if you are happy with an app-first, mostly headless setup: RAK_3112_companion_radio_wifi, Xiao_S3_WIO_companion_radio_wifi, Station_G2_companion_radio_wifi.
  • Best companion choices if you prefer OLED over TFT: T_Beam_S3_Supreme_SX1262_companion_radio_wifi, heltec_v4_companion_radio_wifi, LilyGo_TBeam_1W_companion_radio_wifi.