# MeshCore Hardware

Supported hardware platforms, compatibility requirements, and the RAK WisBlock ecosystem for MeshCore deployments.

# Supported Hardware for MeshCore

MeshCore supports a range of LoRa transceivers, including SX1262/SX1268, SX1276/SX1278, LLCC68, LR1110, and STM32WLx radios. The most important practical distinction is firmware availability: **the official MeshCore web flasher offers prebuilt binaries mainly for SX126x boards**. Boards built around the older SX1276/SX1278 chipset are also supported (the source tree ships a `CustomSX1276Wrapper` and dedicated SX1276 variants such as `lilygo_tbeam_SX1276`), but they typically require building firmware from source rather than flashing a prebuilt image. On older ESP32 boards the real limiting factor is usually MCU/flash size, not the radio chip.

## Compatibility Quick Reference

<table id="bkmrk-boardmcuradiofirmwar"><tr><th>Board</th><th>MCU</th><th>Radio</th><th>Firmware Variants</th><th>Flash Method</th><th>Status</th></tr><tr><td>RAK4631 (WisBlock)</td><td>nRF52840</td><td>SX1262</td><td>Companion, Repeater, Room Server, Sensor</td><td>UF2 drag-and-drop / WebSerial</td><td>Gold standard</td></tr><tr><td>T-Beam v1.2+</td><td>ESP32 (WROOM)</td><td>SX1262</td><td>Companion, Repeater, Room Server</td><td>WebSerial (Chrome/Edge)</td><td>Supported</td></tr><tr><td>T-Beam Supreme</td><td>ESP32-S3</td><td>SX1262</td><td>Companion, Repeater, Room Server</td><td>WebSerial (Chrome/Edge)</td><td>Supported</td></tr><tr><td>Heltec WiFi LoRa 32 V3</td><td>ESP32-S3</td><td>SX1262</td><td>Companion, Repeater</td><td>WebSerial (Chrome/Edge)</td><td>Supported</td></tr><tr><td>T114 (WisBlock-compatible)</td><td>nRF52840</td><td>SX1262</td><td>Companion, Repeater, Room Server, Sensor</td><td>UF2 drag-and-drop / WebSerial</td><td>Supported</td></tr><tr><td>Heltec HT-n62</td><td>nRF52840</td><td>SX1262</td><td>Companion, Repeater</td><td>UF2 drag-and-drop</td><td>Supported</td></tr></table>

*Per-board firmware-variant lists above follow MeshCore's real firmware types (Companion, Repeater, Room Server, Sensor). Confirm the exact variants published for a given board against the live [flasher board list](https://flasher.meshcore.io) and the firmware release artifacts before planning a deployment.*

## Supported Boards - Detailed Profiles

### RAK4631 (RAKwireless WisBlock Core) - Gold Standard

The RAK4631 module combines a Nordic nRF52840 microcontroller with a Semtech SX1262 radio and is mounted on a RAK WisBlock base board (most commonly the RAK19007 or RAK19003).

- **MCU:** nRF52840 - 64 MHz ARM Cortex-M4F, 1 MB flash, 256 KB RAM, hardware AES, BLE 5.0
- **Radio:** SX1262 - supports LoRa, FSK, up to +22 dBm TX power
- **Flash method:** UF2 drag-and-drop (double-tap reset button, copy .uf2 to the RAK4631 USB drive) or via the MeshCore Web Flasher at [flasher.meshcore.io](https://flasher.meshcore.io)
- **Available firmware types:** Companion, Repeater, Room Server, Sensor

### T-Beam v1.2 and later

The TTGO T-Beam v1.2 and subsequent revisions use an ESP32 MCU with an SX1262 radio module.

- **MCU:** ESP32 WROOM
- **Radio:** SX1262
- **Flash method:** WebSerial via Chrome or Edge at [flasher.meshcore.io](https://flasher.meshcore.io)
- **Available firmware types:** Companion, Repeater, Room Server
- **Note:** Older SX1276-based T-Beams (v0.7, v1.0, v1.1) are supported via the upstream `lilygo_tbeam_SX1276` source variant (companion / repeater / room\_server build environments), but prebuilt binaries for them may not be on the web flasher, so they typically require building from source.

## Limited / Source-Build-Only Hardware

The boards below use the older SX1276/SX1278 chipset. SX1276 itself *is* a supported MeshCore radio (via `CustomSX1276Wrapper`), so these are not "incompatible" at the chipset level. The practical caveat is that prebuilt binaries are generally not offered on the web flasher, so support may require building from source, and on the oldest boards MCU/flash limits can be a constraint. Verify upstream variant coverage for a specific board before relying on it.

<table id="bkmrk-boardradioreason-inc"><tr><th>Board</th><th>Radio</th><th>Notes</th></tr><tr><td>T-Beam v0.7 / v1.0 / v1.1</td><td>SX1276</td><td>Supported via the `lilygo_tbeam_SX1276` source variant; not on the prebuilt web flasher.</td></tr><tr><td>Heltec WiFi LoRa 32 V2</td><td>SX1276</td><td>SX1276 chipset is supported; no prebuilt flasher binary - confirm whether an upstream variant exists / build from source.</td></tr><tr><td>TTGO LoRa32 V1 / V2</td><td>SX1276</td><td>SX1276 chipset is supported; board-variant coverage upstream is limited - verify before use.</td></tr><tr><td>Heltec WiFi LoRa 32 V1</td><td>SX1276</td><td>SX1276 chipset is supported; no prebuilt flasher binary - confirm upstream variant / build from source.</td></tr></table>

*For the authoritative and up-to-date list of supported hardware, refer to the MeshCore firmware repository at github.com/meshcore-dev/MeshCore*

# Choosing Hardware for MeshCore vs Meshtastic

MeshCore and Meshtastic are both LoRa mesh networking platforms. They run on largely the same hardware, but differ in firmware features and which boards are best suited to each role. This guide helps you decide which firmware to run based on the hardware you already own, or which hardware to buy if you are starting fresh.

## The Fundamental Hardware Difference

The biggest practical difference is not the radio chipset — both platforms support the common LoRa radios. The real constraint is the MCU and its flash/RAM size, which determines which firmware roles a board can run:

- **Meshtastic** supports the SX1276, SX1278, SX1262, and SX1268, plus the SX1280 and LR111x families. Its hardware support surface is broad. The vast majority of currently manufactured Meshtastic hardware uses SX126x chips, which the project recommends; SX1276/SX1278 are the older generation (see the [Meshtastic devices page](https://meshtastic.org/docs/hardware/devices/)).
- **MeshCore** supports both SX126x (SX1262/SX1268) and SX127x (SX1276/SX1278) radios. SX126x is preferred for new boards, but SX1276 boards such as the Heltec LoRa32 V2 and LilyGo T-Beam SX1276 are officially supported via dedicated firmware variants (which build with `RADIO_CLASS=CustomSX1276`). See the [MeshCore variants list](https://github.com/meshcore-dev/MeshCore/tree/main/variants).

This means the decision tree starts at the MCU and how much flash/RAM it has — not the radio chipset. On older ESP32 boards the limiting factor is the ESP32's flash size and RAM, not the radio.

## MCU Considerations

Both platforms run on ESP32 and nRF52840 MCUs, but with different trade-offs:

<table id="bkmrk-mcumeshcore-supportm" style="border-collapse:collapse;width:100%;"> <thead style="background:#f0f0f0;"> <tr><th>MCU</th><th>MeshCore Support</th><th>Meshtastic Support</th><th>Key Advantage</th></tr> </thead> <tbody> <tr> <td>nRF52840</td> <td>Runs all MeshCore firmware roles (Companion, Repeater, Room Server, Sensor)</td> <td>Fully supported</td> <td>Hardware AES (128-bit), Bluetooth 5 (BLE 5.0), very low sleep current (~1–3 µA System ON idle; ~1.5 µA per the Nordic nRF52840 datasheet), UF2 flashing.</td> </tr> <tr> <td>ESP32 (original)</td> <td>Supported (companion/repeater/room server; sensor builds are limited on memory-constrained 4 MB boards)</td> <td>Fully supported</td> <td>WiFi support (Meshtastic uses WiFi for MQTT bridging). Higher power draw than nRF52840.</td> </tr> <tr> <td>ESP32-S3</td> <td>Supported (e.g. Xiao S3 WIO variant)</td> <td>Supported</td> <td>Faster CPU, native USB. Generally higher power than nRF52840.</td> </tr> <tr> <td>ESP32-classic + SX1276 (e.g. Heltec V1/V2, T-Beam SX1276)</td> <td>Supported (SX1276 boards run MeshCore via dedicated variants)</td> <td>Supported</td> <td>SX1276 is supported on both platforms; on these older boards the constraint is the ESP32's flash/RAM, not the radio. SX1276 wakes the MCU on DIO0 rather than DIO1.</td> </tr> </tbody></table>

## If You Already Own Hardware

Use this decision guide based on what you currently have:

### T-Beam v0.7 / v1.0 / v1.1 (SX1276)

**You can run either.** These boards use the SX1276 radio, which is supported by both platforms. They work well with Meshtastic, and they also run MeshCore via the `lilygo_tbeam_SX1276` firmware build — no board replacement is needed.

### T-Beam v1.2 or later (SX1262)

**You can run either.** Both platforms support this hardware. Choose MeshCore if you want path-based routing and lower channel utilization at scale (this benefit applies to stable, repeated unicast traffic, not to group/broadcast or high-churn networks). Choose Meshtastic if you need WiFi/MQTT bridging, the [Meshtastic app](https://wiki.meshamerica.com/books/hardware-guide/page/meshtastic-app) ecosystem, or channel encryption compatibility with an existing Meshtastic network.

### T-Beam Supreme (ESP32-S3 + SX1262)

**You can run either.** Same guidance as T-Beam v1.2+. The Supreme is a newer, more capable board and works well with both. On MeshCore it runs the Companion, Repeater, and Room Server firmware variants.

### Heltec WiFi LoRa 32 V1 or V2 (SX1276)

**You can run either.** The Heltec WiFi LoRa 32 V2 runs MeshCore via the `heltec_v2` build (SX1276 is supported, with a DIO0-wake hot-fix). Both V1 and V2 are also supported by Meshtastic, though Meshtastic's V1 support is increasingly constrained by the board's limited flash size.

### Heltec WiFi LoRa 32 V3 (ESP32-S3 + SX1262)

**You can run either.** The V3 is a small, capable board. Because of the ESP32's limited flash/RAM, hosting a Room Server on this board is not recommended; choose an nRF52840 board (such as the RAK4631) for a room server.

### RAK4631 / RAK WisBlock with SX1262

**You can run either.** Many users consider the RAK4631 (nRF52840 + SX1262) a flagship MeshCore board: it runs the full set of firmware roles, including Sensor, with low power draw and UF2 flashing. It is also a fully supported Meshtastic target if needed.

### Heltec HT-n62

**MeshCore supported (Companion and Repeater firmware).** This matches the [Supported Hardware for MeshCore](https://wiki.meshamerica.com/books/meshcore/page/supported-hardware-for-meshcore) page. Check Meshtastic's hardware compatibility list for current support status on this board.

## If You Are Buying New Hardware

If you are purchasing hardware specifically to run MeshCore, the recommendation is:

1. **RAK4631 on a RAK19007 base board** - best flexibility, runs all firmware roles, lowest power, UF2 flashing. Recommended for repeaters, room servers, and sensor nodes.
2. **T-Beam Supreme** - good choice if you want onboard GPS and a slightly more integrated form factor. Runs the Companion, Repeater, and Room Server firmware variants.
3. **Heltec WiFi LoRa 32 V3** - smallest and cheapest option for companion/client or repeater nodes. Hosting a room server on it is not recommended.

## Feature Comparison: MeshCore vs Meshtastic

<table id="bkmrk-featuremeshcoremesht" style="border-collapse:collapse;width:100%;"> <thead style="background:#f0f0f0;"> <tr><th>Feature</th><th>MeshCore</th><th>Meshtastic</th></tr> </thead> <tbody> <tr><td>Routing model</td><td>Flood-first, then learned direct path</td><td>Flood-based (rebroadcast to all)</td></tr> <tr><td>Channel utilization at scale</td><td>Lower for stable repeated unicast (targeted forwarding)</td><td>Higher (all nodes rebroadcast)</td></tr> <tr><td>SX1276 support</td><td>Yes (e.g. Heltec V2, T-Beam SX1276)</td><td>Yes</td></tr> <tr><td>SX1262 support</td><td>Yes</td><td>Yes</td></tr> <tr><td>WiFi / MQTT bridging</td><td>WiFi client supported; MQTT bridging via community gateways (not a built-in core feature)</td><td>Yes (core feature)</td></tr> <tr><td>Room server (group chat infrastructure)</td><td>Yes (dedicated firmware)</td><td>N/A (different model)</td></tr> <tr><td>Sensor node firmware</td><td>Yes (Simple Sensor example; typically nRF52840 boards)</td><td>Yes (broader support)</td></tr> <tr><td>Mobile app</td><td>MeshCore app (Android/iOS)</td><td>Meshtastic app (Android/iOS)</td></tr> <tr><td>BLE configuration</td><td>Yes</td><td>Yes</td></tr> <tr><td>Community size</td><td>Smaller, growing</td><td>Larger, mature</td></tr> </tbody></table>

## Summary: Key Decision Rule

> **Both MeshCore and Meshtastic run on SX1276 and SX1262 boards.**  
>  The radio chipset is rarely the deciding factor — the real constraint on older ESP32 boards is the MCU's flash/RAM size, which limits which firmware roles (especially Room Server and Sensor) a board can run. Choose MeshCore for better scaling with flood-first/direct-path routing on stable networks, or Meshtastic for its broader app and ecosystem maturity. For room servers and sensor nodes, an nRF52840 board such as the RAK4631 is the most capable choice.

# RAK WisBlock System for MeshCore

The RAKwireless WisBlock ecosystem is a modular hardware platform built around stackable boards connected by standardized slot connectors. For MeshCore deployments, WisBlock is the most flexible and field-proven hardware option available. This page explains the WisBlock architecture, the relevant modules, and recommended configurations for different MeshCore node roles.

## WisBlock Architecture Overview

A WisBlock node combines a Base board, a Core module, and one or more IO/Sensor modules. RAK categorizes WisBlock modules as Core, Sensor, and IO/Interface:

1. **Base Board** - provides power management (LiPo connector, solar input on some variants), USB, and slot connectors for the Core module and the sensor/IO modules.
2. **Core Module** - the RAK4631, containing the nRF52840 MCU and SX1262 radio. This is the "brain" of the node.
3. **IO/Sensor Modules** - plug into the sensor/IO slots on the base board to add GPS, environmental sensors, displays, and other peripherals.

## Base Boards

### RAK19007 (Full-size Base Board)

- Dimensions: 30 × 60 mm
- One Core slot, one IO slot, and four sensor module slots (A-D). Slots A-C take 10 mm modules; slot D takes up to 23 mm (e.g. GNSS).
- LiPo battery connector: JST PHR-2, 2 mm pitch (the solar input uses JST ZHR-2, 1.5 mm pitch)
- USB Type-C for charging and programming
- Solar input via separate connector
- **Recommended for:** Fixed repeaters, room servers, sensor nodes - any node where size is not constrained.

### RAK19003 (Mini Base Board)

- Dimensions: 30 × 35 mm (per the RAK19003 datasheet; as of 2026)
- One Core slot and a single module slot (Slot A)
- LiPo battery connector
- USB Type-C
- No solar input connector
- **Recommended for:** Portable client nodes, installations where size matters. Not ideal for sensor nodes requiring multiple IO modules.

### RAK5005-O (Legacy Full-size Base Board)

- Older variant, still widely used in the community.
- Full-size form factor with sensor/IO slots and solar input.
- Uses Micro-USB instead of USB-C.
- Broadly compatible with WisBlock Core and IO modules; note that the Slot D pinout differs from the 2nd-generation boards.

## Core Module: RAK4631

The RAK4631 (nRF52840 + SX1262) is the primary WisBlock core module used for MeshCore. It is not the only RAK device that runs MeshCore - check the [MeshCore flasher](https://meshcore.io/flasher) for the current supported RAK device list rather than assuming a single board. Key specifications:

- **MCU:** Nordic nRF52840 - ARM Cortex-M4F @ 64 MHz, 1 MB flash, 256 KB RAM
- **Radio:** Semtech SX1262 - LoRa/FSK, up to +22 dBm TX power. The SX1262 silicon spans 150 - 960 MHz, but the RAK4631 is sold in band-specific variants (e.g. 868 MHz for EU, 915 MHz for North America) with front-end matching for its rated band - you cannot move a single RAK4631 across bands, so buy the variant matching your region. (EIRP note: at +22 dBm conducted with a 5 dBi antenna, EIRP is ~27 dBm, well within the US 36 dBm EIRP limit; verify EIRP if using higher-gain antennas.)
- **Connectivity:** BLE 5.0 (used for MeshCore app connection and CLI access), NFC (tag mode)
- **Interfaces:** SPI, I2C, UART, GPIO - all exposed on WisBlock connector and routed to the sensor/IO slots
- **Power:** Operates from 3.3 V; integrates with the base board's power management
- **Antenna:** IPEX/U.FL connector on module; the base board/enclosure routes the antenna to an external connector (SMA on some, IPEX on others) depending on the base board and enclosure

## LoRa Module: RAK13300

The RAK13300 is a standalone SX1262 LoRa module that plugs into a WisBlock IO slot. It is an alternative radio path for custom builds, but for standard MeshCore use the integrated radio on the RAK4631 is preferred. The RAK13300 is primarily useful for advanced dual-radio or custom PCB integrations.

## Sensor and Peripheral Modules

### RAK1906 - BME680 Environmental Sensor

- **Measures:** Temperature, humidity, barometric pressure, and gas resistance (a proxy for VOC/air quality; a true IAQ index requires the Bosch BSEC library, which MeshCore does not run)
- **Interface:** I2C
- **Connects to:** any WisBlock sensor IO slot (A-F) on the base board
- **MeshCore firmware:** SENSOR variant reads BME680 data and transmits it as a sensor packet over the mesh
- **Use case:** Environmental monitoring node - weather station, air quality sensor, remote temperature logger
- Note: the BME680 (gas) differs from the simpler BME280 (temperature, humidity, pressure only). MeshCore's environmental sensor support may include the BME280 in addition to the BME680 - confirm against your firmware build's sensor support before relying on a specific part.

### RAK12500 - GPS Module (uBlox ZOE-M8Q)

- **Provides:** GPS position, altitude, course, speed, UTC time
- **Interface:** UART or I2C
- **Connects to:** IO Slot A (UART or I2C) or Slot C (I2C only)
- **MeshCore firmware:** GPS data is used for position reporting in the mesh - visible in the MeshCore app map view
- **Use case:** Any node where location tracking or time synchronization is needed
- **Cold start:** Typically ~26-30 s (up to ~60 s) to first fix outdoors. The ZOE-M8Q supports AssistNow A-GNSS, but MeshCore nodes have no network connection to obtain assistance data, so cold-start times apply.

### RAK1921 - 0.96" OLED Display

- **Display:** 128×64 pixel SSD1306 OLED
- **Interface:** I2C
- **Use:** Shows node status, last received message, SNR, and battery level in supported firmware builds
- **Note:** MeshCore repeater firmware typically does not drive a display; Companion firmware may show status information

## Recommended Module Combinations

### Basic Repeater Node

<table id="bkmrk-base-boardrak19007-o" style="border-collapse:collapse;width:100%;"> <tbody> <tr><td>**Base board**</td><td>RAK19007 or RAK19003</td></tr> <tr><td>**Core**</td><td>RAK4631</td></tr> <tr><td>**IO modules**</td><td>None required</td></tr> <tr><td>**Firmware**</td><td>REPEATER</td></tr> <tr><td>**Antenna**</td><td>External antenna for your region (the US ISM band is 902-928 MHz, commonly called "915 MHz"; EU is 868 MHz) via SMA connector on base board. A gain antenna (3 - 5 dBi fiberglass) is strongly recommended for fixed installs. Note: under FCC 15.247, antenna gains above 6 dBi trigger conducted-power-reduction rules, so a 3-5 dBi antenna stays within the no-reduction zone.</td></tr> <tr><td>**Power**</td><td>LiPo + solar panel (connected to base board solar input) for off-grid deployment</td></tr> </tbody></table>

### Sensor Node (Environmental Monitoring)

<table id="bkmrk-base-boardrak19007-c" style="border-collapse:collapse;width:100%;"> <tbody> <tr><td>**Base board**</td><td>RAK19007</td></tr> <tr><td>**Core**</td><td>RAK4631</td></tr> <tr><td>**IO Slot A**</td><td>RAK1906 (BME680 environmental sensor)</td></tr> <tr><td>**Firmware**</td><td>SENSOR</td></tr> <tr><td>**Antenna**</td><td>Region-appropriate external antenna (902-928 MHz in the US / 868 MHz in the EU) via SMA</td></tr> <tr><td>**Power**</td><td>LiPo battery; sensor firmware uses a very low duty cycle, so battery life can reach weeks to months depending on battery capacity (mAh) and transmit interval. Treat runtimes as estimates - actual life depends on TX interval, spreading factor, and battery size.</td></tr> </tbody></table>

### GPS-Equipped Companion Node (with Position)

<table id="bkmrk-base-boardrak19007-c-1" style="border-collapse:collapse;width:100%;"> <tbody> <tr><td>**Base board**</td><td>RAK19007</td></tr> <tr><td>**Core**</td><td>RAK4631</td></tr> <tr><td>**IO Slot A**</td><td>RAK12500 (GPS)</td></tr> <tr><td>**IO Slot B**</td><td>RAK1921 (OLED display, optional)</td></tr> <tr><td>**Firmware**</td><td>Companion</td></tr> <tr><td>**Use case**</td><td>Field node for search and rescue, event operations, or any scenario requiring node position on the map</td></tr> </tbody></table>

## Enclosures

RAKwireless sells several official enclosures for WisBlock nodes:

- **RAK Unify Enclosure** - IP67-rated weatherproof enclosure, available in multiple sizes, with a pre-mounted RP-SMA antenna bulkhead and an M8 connector for 5V/solar power input. Ideal for permanent repeater installations.
- **RAK5804 IO Extension Module** - a WisBlock interface extension board that adds more IO slots, useful for custom form-factor builds requiring additional IO. Pair it with a custom enclosure as needed.
- Third-party 3D-printable enclosure designs are available in the RAK community forums and on Printables for the RAK19007 base board.

## Why WisBlock is the Most Flexible MeshCore Platform

The WisBlock system's modular design means you can build exactly the node you need:

- **Upgrade in the field:** Add a GPS module to a repeater without changing the core or base board.
- **Cost efficiency:** Buy base boards in bulk and swap core modules between development and production nodes.
- **Expandability:** RAKwireless offers dozens of WisBlock sensor and IO modules covering sensors, displays, motor drivers, cellular, and more - broadly compatible with the same base board (some modules require specific slots or base boards).
- **Low power:** The nRF52840 SoC draws as little as ~0.4 µA in System OFF (deep sleep); a complete WisBlock node typically idles around a few µA, making solar/battery deployments practical for months.
- **Production-ready:** Many WisBlock modules carry FCC and/or CE certification; check the RAK product-compliance page for the specific module before deploying, and note that final-product compliance (especially antenna/EIRP) is the deployer's responsibility.