Popular Board Build Guides
Step-by-step build guides for the most common LoRa mesh hardware platforms.
T-Beam Build Guide (TTGO/LilyGO)
Overview
The TTGO/LilyGO T-Beam is one of the most popular all-in-one LoRa mesh boards available. A single PCB integrates an ESP32 microcontroller, an SX1262 LoRa radio, a GPS module, and an 18650 Li-ion cell holder with onboard charging - making it an excellent starting point for a portable or fixed mesh node.
Versions & Variants
- T-Beam v1.1 - The most common variant. Uses the AXP192 power management IC. The radio fitted varies by production run: many v1.1 boards historically shipped with the SX1276/SX1278, while later units use the SX1262 — confirm the radio from the chip markings on your board before flashing, since the wrong firmware variant will not work. (Per the LILYGO GitHub hardware repository; the later v1.2 revision uses the AXP2101 PMIC.) Available in 868 MHz (EU) and 915 MHz (US/AU) versions.
- T-Beam Supreme - Upgraded to ESP32-S3 with the SX1262 radio (the SX1268 is the ~470 MHz China-band variant, not the part on the Supreme). More processing power and improved RF performance. Uses AXP2101 PMIC. Confirm the exact radio on your board revision before flashing.
- T-Beam M8N vs M10 GPS - Refers to the GPS module fitted. The M10 (ublox M10) acquires faster and has better cold-start performance. Check the board revision markings or product listing to confirm which GPS module your unit has.
Bill of Materials
- T-Beam board (select your frequency band: 868 or 915 MHz)
- 18650 Li-ion cell, 2500 mAh or greater, up to ~3500 mAh for current high-capacity cells (e.g. Samsung 25R, LG MH1, Panasonic NCR18650B). Use a flat-top, unprotected cell — button-top and protected cells are physically longer and will not fit the onboard holder.
- SMA antenna matched to your frequency band
- USB-C or Micro-USB cable (varies by board version) for flashing and charging
- Optional: IP67 waterproof enclosure (Hammond 1554 series or equivalent — note only the polycarbonate 1554 is rated IP67/68; the ABS version is ~IP66), cable gland for SMA pigtail
Flashing Meshtastic Firmware
- Open Chrome or Edge (Web Serial API is required - Firefox is not supported).
- Navigate to flasher.meshtastic.org.
- Connect the T-Beam to your computer via USB.
- In the flasher, select the device family: TTGO T-Beam. Choose the correct sub-variant (v1.1, Supreme, etc.) if prompted.
- Click Flash. The flasher will erase and write firmware automatically. Do not disconnect during the process.
- Once flashing completes, the device will reboot. Use the Meshtastic app (Android/iOS) or the web client at client.meshtastic.org to complete initial configuration (region, node name, channel).
Flashing MeshCore Firmware
Critical Gotcha: Power Management IC Mismatch
The T-Beam uses a Power Management IC (PMIC) to control battery charging and power rails. The T-Beam v1.1 uses the AXP192, while the T-Beam Supreme uses the AXP2101. Firmware must include drivers for the correct PMIC.
Matching firmware to your exact board variant matters in two ways. Wrong radio variant: the radio (and often the screen) will not come up at all. Wrong PMIC variant: the board may boot and appear to work but exhibit power-management problems such as failing to charge the battery. Always confirm your board hardware revision before selecting firmware. The revision is usually silkscreened on the PCB (look for "V1.1", "SUPREME", etc.). Both Meshtastic and MeshCore flashers list variants - match the label carefully.
Outdoor Deployment Tips
- Use an IP67-rated enclosure - Hammond 1554 series polycarbonate boxes are widely used and available in sizes that fit the T-Beam comfortably (only the polycarbonate variant carries the IP67/68 rating; the ABS version is ~IP66). Bud Industries and Fibox TEMPO are good alternatives.
- Drill a hole for an SMA bulkhead connector or a waterproof SMA pigtail using a cable gland rated IP68. The antenna should mount outside the enclosure.
- Add a silica gel desiccant pack inside the enclosure to absorb moisture. Replace annually. Consider a Gore-Tex breather vent to equalise pressure without admitting moisture.
- Avoid mounting in direct sun if possible - in a dark, sealed plastic enclosure in direct summer sun the internal temperature can exceed 70°C (lighter/white enclosures run considerably cooler). Use a UV-resistant box and shade the enclosure where feasible.
Power Notes: Extended Battery Capacity
The T-Beam's onboard 18650 holder limits you to a single cell (~3,000 - 3,500 mAh maximum with a current high-capacity cell). For permanent fixed installations requiring multi-day autonomy or solar charging:
- The T-Beam exposes battery pads (B+ and B-) accessible on the PCB.
- You can connect an external LiFePO4 battery pack, but you must not simply wire the LiFePO4 cell to the B+/B- pads — the onboard AXP charger is configured for the Li-ion voltage curve and will charge to 4.2V, overcharging a LiFePO4 cell. Instead, charge the LiFePO4 pack with a dedicated LiFePO4-rated charge controller and feed the board from a regulated supply (e.g. through the 5V/USB input) rather than connecting the cell to the onboard charger. Simply attaching LiFePO4 to the battery pads still lets the AXP charge it to 4.2V, so that path must be avoided.
- An alternative is to power the board through the 5V input pin with a regulated supply from a solar charge controller, bypassing battery charging entirely.
- For simpler builds, a large-capacity Li-ion power bank with pass-through charging can be used to power the USB input.
- Cell sourcing and cold-weather note: use a quality 18650 from a reputable source (counterfeit cells are common and a fire risk), insert it with correct polarity, and do not rely on onboard charging below 0°C — no lithium chemistry (Li-ion or LiFePO4) should be charged below 0°C without a charger that has a low-temperature charge cutoff.
Heltec LoRa 32 Build Guide
Overview
The Heltec LoRa 32 is a compact, low-cost development board combining an ESP32-family microcontroller, a LoRa radio, and a small 0.96" OLED display on a single board. The radio and MCU differ by version: the current V3/V4 boards pair an ESP32-S3 with an SX1262, while the earlier, widely-distributed V2 used an ESP32 (ESP32-D0) with an SX1276. Confirm your board's exact version and radio chip before flashing, since the radio determines the firmware target. Its built-in display makes it particularly useful for field deployment and diagnostics without requiring a companion phone or laptop.
Versions
- V2 - Micro-USB, ESP32-D0, 3.3V GPIO logic, and the SX1276 LoRa radio (SX127x family). The older, widely-distributed variant. The SX1262 is only found on V3 and later - the V2 did not ship with an SX1262.
- V3 - USB-C connector, ESP32-S3, revised GPIO pinout, SX1262 radio, improved power management. V2 and V3 are different firmware targets - do not flash V2 firmware on V3 hardware or vice versa.
- V3.1 - Minor revision to V3 with small hardware corrections. Uses V3 firmware.
Bill of Materials
- Heltec LoRa 32 board (V2 or V3 - confirm your frequency band: 868 or 915 MHz)
- LiPo battery (check your board - Heltec boards have shipped with both JST 1.25mm and JST 2.0mm connectors, so verify the pitch on your specific board; many common LiPo packs use JST 2.0mm or PH2 connectors and may require an adapter or re-pinning)
- SMA antenna matched to your frequency band
- USB cable for flashing (Micro-USB for V2, USB-C for V3)
- Optional: weatherproof enclosure (IP65+), SMA bulkhead, cable glands
Why the Heltec LoRa 32 Is Popular
- Price - Among the cheapest capable LoRa mesh boards available, often around $15-20 USD (volatile; check a current vendor listing, as of 2026-06-08).
- Built-in OLED - The 0.96" display shows useful real-time information without any extra hardware.
- Wide firmware support - Both Meshtastic and MeshCore support Heltec LoRa 32 V2 and V3 as first-class targets.
- Compact form factor - Easier to fit into small enclosures than boards with GPS modules attached.
Flashing Firmware
The flashing procedure follows the same web-flasher approach as other ESP32 boards:
- Open Chrome or Edge.
- For Meshtastic: navigate to flasher.meshtastic.org. For MeshCore: navigate to flasher.meshcore.io (the canonical MeshCore web flasher run by the MeshCore core team).
- Connect the Heltec board via USB.
- Select the correct device: Heltec LoRa 32 V2 or Heltec LoRa 32 V3 - these are separate firmware images. Selecting the wrong version is a common mistake.
- Click Flash and wait for the process to complete. The device will reboot automatically.
- Complete initial configuration via the Meshtastic or MeshCore companion app.
OLED Display Information
When running Meshtastic or MeshCore firmware, the OLED display shows useful runtime information:
- Number of nodes seen on the mesh
- Battery voltage and approximate charge level
- The last received message (truncated)
- GPS coordinates (if a GPS fix is available - note the base Heltec LoRa 32 has no onboard GPS; a GPS fix requires an external GPS module connected via UART)
- Channel and region settings
The display cycles through screens automatically. This makes it ideal for non-headless deployments where you want a quick visual status check without connecting a phone.
Power Notes
- The onboard LiPo charge current is set by the charger IC's PROG resistor and varies by board revision (community/Heltec sources indicate a low default, on the order of ~100 mA on some V2/V3 boards rather than a fixed 500 mA). Check your board's charger IC and PROG resistor for the exact value. A depleted battery can take several hours to fully charge over USB.
- Polarity caution: Heltec LiPo connector polarity is not standardized across cells - connecting a battery with reversed polarity can destroy the board and ignite the cell. Verify polarity with a multimeter before connecting, use a protected LiPo, and never charge a swollen cell or charge any lithium cell below 0 °C (32 °F).
- The OLED display draws on the order of 10-20 mA depending on displayed content (per the SSD1306 datasheet). For power-constrained installs (solar or small battery), disable the display in firmware settings to extend battery life significantly.
- Max TX power: the SX1276 on the V2 has a native maximum of about +20 dBm (100 mW) in the typical PA_BOOST configuration. Total active power consumption with OLED enabled is typically 80 - 120 mA during transmit and 30 - 50 mA idle (figures vary with WiFi/BLE state). With OLED disabled, idle drops to approximately 20 - 30 mA.
Enclosure Options
- Heltec waterproof / solar enclosure - Heltec sells a waterproof enclosure / solar kit intended for its dev boards, available from Heltec's store and some distributors. Confirm the exact product name and its stated IP rating on Heltec's product page before relying on a specific rating or an OLED-window feature.
- DIY PVC junction box - A standard 80×50×26mm or 100×68×40mm PVC electrical junction box works well. Use an SMA bulkhead connector and a proper cable gland through the box wall for the cable entry, and mount the board on standoffs inside. Do not rely on silicone RTV alone to seal cable entries - use a proper cable gland; if RTV is used as a secondary seal, use neutral-cure RTV (not acetic-cure, which corrodes electronics).
- If the OLED display needs to be visible, use a clear-lid polycarbonate box (Hammond 1591 series or equivalent) and verify the lid provides adequate weatherproofing for your environment.
RAK4631 WisBlock Build Guide
Overview
The RAK WisBlock system is a modular hardware platform built around small snap-together modules. For LoRa mesh applications, the core build consists of:
- RAK4631 Core Module - Contains a Nordic Semiconductor nRF52840 microcontroller and a Semtech SX1262 LoRa radio on a compact daughter board.
- RAK19007 Base Board - The main carrier board with USB, battery connector, sensor slots, and IO headers. The RAK4631 plugs into the core slot.
Optional expansion modules (GPS, sensors, displays) plug into the modular slots on the base board without soldering.
Why Choose RAK WisBlock Over ESP32-Based Boards?
The nRF52840 microcontroller used in the RAK4631 has dramatically lower power consumption than the ESP32:
- nRF52840 approximate average node current: 8 - 12 mA - this is an approximate duty-cycled average, not a single datasheet figure. The RAK4631 datasheet lists discrete mode currents: BT Tx ~9 mA, BT Rx ~11.5 mA, LoRa Rx ~17 mA.
- ESP32 approximate average node current: 40 - 80 mA - also an approximate operating average; the Espressif datasheet rates active-mode current around 95-380 mA peak, with WiFi/BLE TX bursts at the high end.
- nRF52840 sleep current: ~2-3 µA
This difference makes the RAK4631 the preferred choice for:
- Solar-powered remote repeaters where power budget is tight
- Battery-only deployments requiring multi-week operation
- Installations where charging infrastructure is unavailable or unreliable
The trade-off is that RAK WisBlock is more expensive than Heltec or T-Beam, and the modular ecosystem can be initially confusing.
Bill of Materials
- RAK19007 Base Board (or RAK5005-O for older builds)
- RAK4631 Core Module (nRF52840 + SX1262)
- RAK1910 GPS Module - optional, plugs into Slot A on the base board; uses a u-blox GPS module (check the current RAK1910 datasheet for the exact part).
- LiPo/Li-ion battery with a JST PHR-2 2.0 mm pitch connector (the connector used on the RAK19007 and RAK5005-O base boards).
- SMA antenna matched to your frequency band (868 or 915 MHz). Use the band legal for your region - in the US/Canada only 902-928 MHz (915 MHz) is permitted for unlicensed operation.
- Optional: RAKBox-B2 weatherproof enclosure, or any IP65+ electronics enclosure
Build Assembly
One of the significant advantages of WisBlock is that a basic build requires no soldering:
- Align the RAK4631 core module with the core slot on the RAK19007 base board (the slot is keyed - it only fits one way).
- Press down firmly until the module clicks into place. The board-to-board connectors are friction-fit.
- If using the RAK1910 GPS module, slot it into Slot A (the larger expansion slot) on the base board in the same way.
- Connect the antenna to the IPEX/u.FL RF connector on the RAK4631 (or to the SMA bulkhead if your base board/enclosure routes the u.FL out to one). For permanent outdoor installs, use a pigtail routed to an external SMA bulkhead connector. As good practice, connect the antenna before powering or transmitting.
- Connect the LiPo/Li-ion battery to the battery connector on the RAK19007.
The board is now physically assembled and ready for firmware flashing.
Flashing Firmware
Meshtastic
The RAK4631 is supported by the Meshtastic web flasher:
- Connect the RAK19007 base board via USB to a computer running Chrome or Edge.
- Navigate to flasher.meshtastic.org.
- Select RAK WisBlock RAK4631 from the device list.
- Click Flash and wait for completion.
MeshCore
MeshCore firmware for RAK4631 is available as a UF2 file for drag-and-drop flashing:
- Download the latest RAK4631 firmware from the official MeshCore project releases (confirm you are on the official MeshCore repository before downloading - repo URLs change over time; cross-check against the MeshCore website / flasher at flasher.meshcore.io, as of 2026-06-08). Select the correct UF2 file for your role (Repeater, Client, etc.).
- Double-press the reset button on the RAK4631 to enter bootloader mode. The board will appear as a USB mass storage device named RAK4631 (or similar).
- Drag and drop the UF2 file onto the mounted drive. The board will flash and reboot automatically.
- Alternatively, flash using the Arduino IDE with the appropriate BSP (Board Support Package) for nRF52840.
Power & Battery Notes
- The RAK19007 and RAK5005-O base boards include an onboard charger that is fixed for standard Li-ion/LiPo cells (charge termination around 4.2 V, board max ~4.3 V).
- WARNING - do not connect LiFePO4 (or any non-Li-ion chemistry) directly to the base board. LiFePO4 charges to a lower voltage (~3.6 V/cell). The RAK base-board charger is set for Li-ion (4.2 V) and there is no documented user-configurable LiFePO4 charge setting (no solder jumper or register for this is published in the RAK datasheets). Connecting a LiFePO4 cell to the stock charger will overcharge it, which can cause the cell to vent or catch fire. If you want LiFePO4 for its temperature performance and cycle life, charge it with a dedicated external LiFePO4-rated charger (3.6 V/cell) - do not rely on the base-board charger. Use standard Li-ion/LiPo with the RAK19007/RAK5005-O.
- Cold-charging caution: never charge any lithium chemistry - including LiFePO4 - below 0 °C (32 °F). The low-temperature figures sometimes quoted for lithium cells are discharge/storage limits, not charge limits. For outdoor installs, use a charger or charge controller with a low-temperature charge cutoff.
- The nRF52840 supports aggressive sleep modes. Ensure your firmware is configured to use deep sleep between transmit/receive windows for maximum battery life.
Enclosure Options
- RAKBox-B2 - RAK's own weatherproof enclosure, designed to fit the WisBlock base boards with mounting points. Available with and without a solar panel lid option. Rated IP67.
- Any IP65 or better electronics enclosure that fits your base board dimensions. The RAK4631 core module is 20×30 mm and the RAK19007 base board is roughly 30×60mm (the core module adds some height), so a 100×68×40mm or larger box works comfortably.
- Cable management is simpler than ESP32 boards due to the lower current draw - thinner wiring and smaller connectors are sufficient.