Accessories and Peripherals Displays for LoRa Nodes Adding a display to a LoRa node provides visual feedback on mesh status, incoming messages, and GPS coordinates - without requiring a phone connection. Different display types make different tradeoffs between power consumption, visibility, and cost. Built-in Display Options Many popular LoRa boards ship with or can be fitted with a display: Board Display Type Size Power Draw Sunlight Readable Heltec WiFi LoRa 32 V3 OLED (SSD1306) 0.96" 128x64 +15-20 mA when on Poor T-Beam (most versions) OLED (SSD1306, commonly an add-on module) 0.96" 128x64 +15-20 mA when on Poor T-Echo E-Ink (1.54") 1.54" 200x200 ~0 mA when static Excellent RAK WisBlock + RAK14000 E-Ink (2.13") 2.13" 250x122 ~0 mA when static Excellent Note: the 0.96" SSD1306 OLED is commonly a separate add-on module rather than present on every T-Beam revision - some T-Beam versions ship without a screen. OLED Displays SSD1306-based 0.96" OLED displays are inexpensive and common. They connect via I2C (SDA/SCL pins) and the SSD1306 is a natively supported (selectable) driver in Meshtastic firmware. Advantages - High contrast, works in complete darkness, fast refresh Disadvantages - Poor in direct sunlight; draws roughly 15-20 mA when on (current varies with displayed content - typically under 15 mA - and is significant for battery nodes); OLED panels can also dim or burn in over thousands of hours of continuous use Power tip - Set a short screen timeout to minimize power draw, e.g. meshtastic --set display.screen_on_secs 30. Note: a value of 0 does NOT disable the screen - in Meshtastic, 0 maps to 10 minutes (the default). To minimize screen-on power, set a small positive value (e.g. 1); screen-off behavior on solar/battery nodes is governed by the device's power-saving settings, not by screen_on_secs 0. Adding to a bare board - Many ESP32 boards have I2C headers that accept standard 0.96" OLED modules. On the original (classic) ESP32 the common I2C defaults are SDA = GPIO 21 and SCL = GPIO 22; ESP32-S3 boards (e.g. Heltec V3) use different and remappable I2C pins, so always check your board's pinout. E-Ink Displays Electronic ink displays consume power only when the display content changes. Once updated, the image is held with zero power consumption - ideal for battery-operated nodes. Advantages - Zero standby power, excellent sunlight readability, long battery life, full image visible even when battery is critically low Disadvantages - Slow refresh (1-2 seconds), ghosting artifacts after many refreshes, limited to black/white (no grayscale on basic modules), higher cost than OLED Best use cases - Handheld nodes where you need to read position and messages in direct sunlight; any node where battery life is the priority TFT Color Displays Color TFT displays (ST7789, ILI9341) provide higher resolution and color, but draw significantly more power (30-80 mA with the backlight on). Generally not recommended for battery-powered LoRa nodes but suitable for always-powered room server displays or status panels. T-Deck devices (a complete LoRa device with keyboard and color display) use a ST7789 TFT touchscreen. Adding an External Display to an Existing Node Most ESP32 and nRF52840 LoRa boards support adding an external I2C OLED. Steps: Identify I2C pins on your board (SDA, SCL, 3.3V, GND) from the board's pinout documentation Connect a 0.96" SSD1306 OLED module: VCC to 3.3V, GND to GND, SDA to SDA, SCL to SCL In Meshtastic: the OLED is auto-detected on boot, so no manual "enable" is usually needed. If auto-detect fails, set Config → Display → OLED Definition to the correct controller (SSD1306/SH1106/SH1107) and save The display should activate after reboot GPS Modules for LoRa Nodes GPS provides automatic position reporting for mesh mapping and navigation. Many boards include an integrated GPS; for those that don't, external GPS modules can be added via UART or I2C. Integrated GPS vs External Module Approach Boards Pros Cons Integrated GPS T-Beam, T-Echo, some RAK boards All-in-one, no wiring Higher cost; disabling GPS to save power depends on whether the board provides GPS power gating (some integrated boards switch GPS power via the PMIC/GPIO, others do not) External UART GPS Any board with UART pins Flexible, replaceable, can be positioned for best sky view Wiring required, adds bulk GPS from phone via BLE Any (Meshtastic only) No hardware needed Requires active phone connection; phone must remain near node Popular External GPS Modules Module Interface TTFF (cold) Current Draw Notes u-blox NEO-M8N UART 26s 23 mA Excellent sensitivity; widely supported Quectel L76K UART 30s ~29 mA (acquisition/tracking) Used on the LilyGO T-Echo (and some Wio Tracker L1 boards); compact. The T-Beam Supreme uses a u-blox M10-series module, not the L76K u-blox MAX-M8Q UART 26s 15 mA Compact form factor; patch antenna ATGM336H UART ~35s ~20 mA Inexpensive Chinese alternative; adequate for most uses (figures approximate) GT-U7 (NEO-6M clone) UART 60s+ ~45 mA Very inexpensive; poor sensitivity; not recommended (figures approximate) TTFF = Time To First Fix from a cold start in open sky conditions. Wiring an External UART GPS Most GPS modules use 3.3V logic and UART at 9600 baud. Connect: GPS VCC → 3.3V on LoRa board GPS GND → GND on LoRa board GPS TX → UART RX pin on LoRa board GPS RX → UART TX pin on LoRa board (needed only if sending commands to GPS) Configure in Meshtastic: Config → Position → GPS Mode = Enabled; GPS RX pin = RX pin number from your board's pinout. GPS Power Management GPS is one of the largest power consumers on a LoRa node. For battery-powered nodes: Disable GPS if fixed position is configured - A repeater at a known location doesn't need active GPS Increase GPS update interval - For slow-moving applications, a 60-300 second GPS update interval with smart beaconing works well GPS power gating - Some boards route GPS power through a GPIO-controlled switch. Meshtastic can be configured to power-cycle the GPS between fixes, which can substantially reduce average GPS current; the exact average depends on the module and update interval Almanac caching - After a successful fix, Meshtastic caches almanac data to flash and reloads it on boot, enabling faster warm starts on subsequent power-ups. Meshtastic has no internet/app-based AGPS preload feature; it does not download almanac or ephemeris over WiFi/internet Keyboards, Buttons, and Input Devices Adding physical input to a LoRa node enables sending messages and navigating menus without a phone. Input options range from simple push buttons to full QWERTY keyboards. Canned Messages with a Rotary Encoder The Meshtastic Canned Messages module supports a rotary encoder for scrolling through preset messages and a push button for sending. This is the most practical hardware UI upgrade for a fixed node. Rotary Encoder Wiring (typical) Encoder CLK (A) → choose a free GPIO per your board's schematic Encoder DT (B) → choose a free GPIO per your board's schematic Encoder SW (button) → choose a free GPIO per your board's schematic Encoder VCC → 3.3V Encoder GND → GND GPIO assignment is board-specific and must be chosen from your board's schematic. Do not copy fixed pin numbers from another board: on many boards some GPIOs are input-only or do not exist, and the official Meshtastic docs warn that "GPIO access is fundamentally dangerous because invalid options can physically damage or destroy your hardware." Valid encoder port-A/B pins are in the range 1-39 on ESP32-class boards. Pick free, output-capable GPIOs for the pins you use, and verify against your board's pinout before wiring. The KY-040 rotary encoder module (~$1-2) is the most common choice. Configuration meshtastic --set canned_message.enabled true meshtastic --set canned_message.inputbroker_pin_a meshtastic --set canned_message.inputbroker_pin_b meshtastic --set canned_message.inputbroker_event_press SELECT meshtastic --set-canned-message "OK|On my way|At destination|Need help|ETA 5 min" Note the message list is set with the standalone --set-canned-message flag, not a --set canned_message.messages key, and the press event value is SELECT (an input-event character), not the protobuf enum name. T-Deck: Integrated QWERTY Device The LilyGO T-Deck is a complete Meshtastic/LoRa device with an integrated small QWERTY keyboard, color TFT touchscreen, trackball, LoRa radio, and optional GPS. It's the closest thing to a dedicated LoRa messenger device: Native keyboard input for typing full messages without a phone Color display shows message history, node list, and map Runs Meshtastic firmware with full touchscreen UI Battery: the base T-Deck ships with no battery (you add your own cell). Only the T-Deck Plus has a built-in 2000 mAh battery, giving roughly 8-12 hours of active use Price: approximately $50-70 (as of 2026-06-08; the base T-Deck is often found nearer $45 — verify with a current retailer listing) Limitation: higher power consumption than OLED nodes; not ideal for solar/battery long-term deployment WisBlock Input Modules (RAK14001 / RAK14004) For WisBlock-based nodes, RAKwireless offers two distinct input/output modules that mount directly to the WisBlock base board without wiring. These are separate modules, not one combined unit: the RAK14001 is an RGB LED module (no buttons), and the RAK14004 is a matrix-scan keypad controller (no LEDs). The RAK14004 uses a matrix-scanning technique supporting up to 8x8 = 64 buttons and is paired with separate RAK keypad modules (such as the RAK14009/14010/14011); it is not itself a fixed 4x4 keypad. Simple Button for Alert Sending A momentary push button connected to a user-accessible GPIO pin can be used with the Meshtastic canned-message input to send a message from the node - useful for panic buttons, check-in buttons, or man-down alerts in safety applications. meshtastic --set canned_message.send_bell true Note: send_bell only appends a bell character (ASCII BEL) to a message so receiving nodes can beep on arrival — it does not by itself send a message on a button press. To send with a single press, use a scanAndSelect input source (a long press sends the highlighted message) or configure a single-item canned-message list so the one available message is sent immediately.