Skip to main content

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) → GPIO 39
Encoder DT (B) → GPIO 40
Encoder SW (button) → GPIO 41
Encoder VCC → 3.3V
Encoder GND → GND

GPIO pin numbers are board-specific. 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 39
meshtastic --set canned_message.inputbroker_pin_b 40
meshtastic --set canned_message.inputbroker_event_press MSG_INPUT_EVENT_SELECT
meshtastic --set canned_message.messages "OK|On my way|At destination|Need help|ETA 5 min"

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
  • Built-in 2000 mAh battery; approximately 8-12 hours active use
  • Price: approximately $50-70
  • Limitation: higher power consumption than OLED nodes; not ideal for solar/battery long-term deployment

WisBlock Input Module (RAK14001/RAK14004)

For WisBlock-based nodes, RAKwireless offers input modules that provide RGB LEDs and push buttons in a standardized form factor. The RAK14004 includes a 4x4 keypad interface. These mount directly to the WisBlock base board without wiring.

Simple Button for Alert Sending

A momentary push button connected to a user-accessible GPIO pin can trigger the Meshtastic alert feature - pressing the button sends a preset alert message to the channel. Useful for panic buttons, check-in buttons, or man-down alerts in safety applications.

meshtastic --set canned_message.send_bell true

With this setting and the button wired to the configured GPIO, one button press sends the first canned message immediately, without needing to scroll through the list.