# Initial Setup Walkthrough

## Prerequisites

- A Meshtastic-compatible device (T-Beam, Heltec, RAK WisBlock, etc.) flashed with current firmware - use the official flasher at [flasher.meshtastic.org](https://flasher.meshtastic.org).
- A phone with the [Meshtastic app](https://wiki.meshamerica.com/books/hardware-guide/page/meshtastic-app) (iOS or Android) **or** a Chrome-based browser for the web client.
- An antenna connected *before* powering the device.

## Step 0 - Set the Region (do this first)

**Config → LoRa → Region** - set this to your country (e.g. `US`) before transmitting. The region is the master legal control: it determines both your authorized frequency band *and* the maximum power the firmware will permit. The device should not be used to transmit until the region is set correctly - in the US, only 902-928 MHz is available for these unlicensed Part 15 devices, and an incorrect region will transmit out-of-band on frequencies you are not authorized to use. Leave `lora.tx_power` at its default of `0` so the firmware applies the region-legal maximum.

## Step 1 - Connect to the Device

**Via Bluetooth:** Open the Meshtastic app, tap the **+** button, and scan for your device. Pair when prompted.

**Via USB:** Navigate to [client.meshtastic.org](https://client.meshtastic.org) in Chrome, click **New connection → Serial**, and select the device's COM/serial port.

## Step 2 - Set the Device Name

Navigate to **Config → Device**:

- **Long Name:** Your full identifier for this node, e.g. `KD9XYZ-Hilltop-1`. This appears in message headers and node lists.
- **Short Name:** Up to 4 bytes (typically 4 ASCII characters), shown on the map, e.g. `H1`. Note that multi-byte UTF-8 characters such as emoji or non-ASCII text consume more than one byte each, so fewer than 4 will fit.

## Step 3 - Set the Device Role

**Config → Device → Role.** Use **ROUTER** when you want the infrastructure node to stay visible in the Nodes list and topology (the recommended choice for most infrastructure); use **REPEATER** for a pure relay that is invisible in the Nodes list and originates no NodeInfo, Position, or Telemetry. Note that **REPEATER is deprecated as of firmware ~2.7.x**, so ROUTER is preferred for new deployments; for ordinary non-infrastructure nodes the official guidance is CLIENT. Both ROUTER and REPEATER are infrastructure relay roles - neither is specifically a "monitoring point." See the *Router vs. Repeater Role* page for guidance.

## Step 4 - Configure the Channel

The default channel (*LongFast* or *Default*) works for joining the public mesh. To match a local community's private channel:

1. Navigate to **Channels → Channel 0**.
2. Set the **Name** and **PSK** to match the local standard. The **PSK** (pre-shared key) is the channel's encryption key - all nodes that share a channel must use the same key to read each other's messages. Your local community provides this key, usually as a shared QR code or channel URL that imports the name and key together; you rarely need to type a raw key by hand. A PSK can be 0 bytes (no encryption), 16 bytes (AES-128), or 32 bytes (AES-256). See the channel-configuration page for details.
3. Contact your local Meshtastic community (Discord, or a local club) for the channel name and key.

## Step 5 - Set the Modem Preset

**Radio Config → LoRa → Modem Preset** - select the preset your local network uses (typically *Long Fast* or *Medium Slow*). **Critical: all nodes on the same network must use the same modem preset or they cannot hear each other.**

## Step 6 - Configure a Fixed Position

For an unattended repeater without GPS, set a fixed position so the node can report its location:

1. **Config → Position → Fixed Position → Enable**.
2. Enter the latitude, longitude, and altitude of the deployment site (look up coordinates with any map app).
3. Set **Position Broadcast Interval** to a long value for a static node - `43200` seconds (12 hours) or `86400` seconds (24 hours) is appropriate, since a fixed node's position never changes and frequent rebroadcasts waste airtime.

## Step 7 - Power Optimisations (Battery / Solar)

- **Config → Power** - set sleep and minimum wake intervals to the lowest practical values.
- Automatic forced power-saving is tied to the **ROUTER** role (ESP32 only), not REPEATER - the firmware enables it for ROUTER and it cannot be turned off. The REPEATER role does not force power-saving sleep; tune power settings manually where the platform supports it.
- **Screen Timeout** (`display.screen_on_secs`) controls how long the display stays on after activity. Lowering it reduces draw, but note that a value of `0` selects the firmware default (about 10 minutes), *not* "always off" - set a small non-zero value if you want the screen to turn off quickly.

## Step 8 - Disable Bluetooth (Optional)

**Config → Bluetooth → Enabled → false.** This saves power and removes an attack surface on unattended nodes. **Note:** once Bluetooth is disabled, you will need a USB/serial connection or remote admin (PKC admin keys, firmware ≥2.5) to re-enable it.

## Step 9 - Verify Operation

- Watch the node list for other nearby nodes appearing - this confirms receive is working.
- Send a test message and verify it is received on another device.
- If the node is uplinked to MQTT through an internet gateway, it may also appear on the third-party community map [meshmap.net](https://meshmap.net). Note that meshmap.net is not an official Meshtastic property and only shows nodes whose data reaches it via an MQTT gateway - a node with no internet gateway may never appear there, and appearance timing is not guaranteed.