# 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:

<table id="bkmrk-boarddisplay-typesiz"><thead><tr><th>Board</th><th>Display Type</th><th>Size</th><th>Power Draw</th><th>Sunlight Readable</th></tr></thead><tbody><tr><td>Heltec WiFi LoRa 32 V3</td><td>OLED (SSD1306)</td><td>0.96" 128x64</td><td>+15-20 mA when on</td><td>Poor</td></tr><tr><td>T-Beam (most versions)</td><td>OLED (SSD1306, commonly an add-on module)</td><td>0.96" 128x64</td><td>+15-20 mA when on</td><td>Poor</td></tr><tr><td>T-Echo</td><td>E-Ink (1.54")</td><td>1.54" 200x200</td><td>~0 mA when static</td><td>Excellent</td></tr><tr><td>RAK WisBlock + RAK14000</td><td>E-Ink (2.13")</td><td>2.13" 250x122</td><td>~0 mA when static</td><td>Excellent</td></tr></tbody></table>

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:

1. Identify I2C pins on your board (SDA, SCL, 3.3V, GND) from the board's pinout documentation
2. Connect a 0.96" SSD1306 OLED module: VCC to 3.3V, GND to GND, SDA to SDA, SCL to SCL
3. 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
4. The display should activate after reboot