Files
ratdeck/docs/QUICKSTART.md
DeFiDude 9c48530ec8 Fix incorrect radio preset values in QUICKSTART docs
Preset table and inline reference had wrong BW and TX power values
that didn't match the actual firmware presets.
2026-03-09 15:43:30 -06:00

162 lines
5.2 KiB
Markdown

# Ratdeck — Quick Start
## Hardware Required
- **LilyGo T-Deck Plus** (ESP32-S3, 16MB flash, 8MB PSRAM, integrated SX1262 LoRa)
- **microSD card** (optional, recommended — FAT32, any size)
- **USB-C cable** (data-capable)
## Build & Flash
```bash
# Install PlatformIO
pip install platformio
# Clone and build
git clone https://github.com/ratspeak/ratdeck.git
cd Ratdeck
python3 -m platformio run
# Flash
python3 -m platformio run --target upload
```
> If `pio` is not on your PATH, use `python3 -m platformio` instead. See [BUILDING.md](BUILDING.md) for esptool instructions and troubleshooting.
### Web Flash (No Build Required)
Visit [ratspeak.org/download](https://ratspeak.org/download.html) to flash directly from your browser using WebSerial.
### USB Port
The T-Deck Plus uses USB-Serial/JTAG — port appears as `/dev/cu.usbmodem*` (macOS) or `/dev/ttyACM*` (Linux).
## First Boot
1. Power on the T-Deck Plus
2. Boot animation plays with progress bar
3. SX1262 radio initializes (915 MHz, Balanced preset)
4. SD card checked — auto-creates `/ratputer/` directories
5. Reticulum identity generated (Ed25519 keypair, saved to flash + SD + NVS)
6. Name input screen — type a display name or press Enter to auto-generate one
7. Home screen shows your name, LXMF address, connection status, and online node count
## Navigation
The T-Deck Plus has a QWERTY keyboard, trackball, and touchscreen (touch currently disabled):
| Input | Action |
|-------|--------|
| Trackball up/down | Scroll lists |
| Trackball left/right | Cycle tabs |
| Trackball click | Select / confirm |
| Trackball long-press (1.2s) | Context menu |
| `,` / `/` | Previous / next tab |
| Enter | Select / send message |
| Esc or Backspace | Back / cancel |
| Ctrl+H | Show hotkey help overlay |
### Tabs
| Tab | Name | Contents |
|-----|------|----------|
| 1 | Home | Your name, LXMF address, connection status, online nodes |
| 2 | Friends | Saved contacts with display names |
| 3 | Msgs | Conversations sorted by most recent, with preview and unread dots |
| 4 | Peers | All discovered nodes — contacts section + online section |
| 5 | Setup | Device, Display, Radio, Network, Audio, Info, System |
## Sending Your First Message
1. Wait for another node to appear in the **Peers** tab (or connect via WiFi)
2. Navigate to the node and press **Enter** to open a chat
3. Type your message on the keyboard
4. Press **Enter** to send
5. Message status: yellow (sending) -> green (delivered) or red (failed)
## Connecting Two Ratdecks Over LoRa
1. Power on both devices
2. Ensure both use the same radio settings (defaults work out of the box)
3. Wait ~30 seconds for announces to propagate
4. The other device appears in the **Peers** tab with RSSI and SNR
5. Select the node and press Enter to start chatting
Both devices must use the same frequency, spreading factor, bandwidth, and coding rate. Default: 915 MHz, SF9, BW 125 kHz, CR 4/5 (Balanced preset).
## WiFi Setup
Default WiFi mode is **STA** (client). Change in Settings -> Network.
### STA Mode (Connect to Your WiFi)
1. Go to Setup -> Network
2. Enter your WiFi SSID and password
3. Add a TCP endpoint (e.g., `rns.beleth.net:4242`)
4. Ratdeck connects and bridges LoRa <-> TCP automatically
### AP Mode (Ratdeck as Hotspot)
1. Set WiFi Mode to AP in Settings -> Network
2. Connect your laptop to `ratdeck-XXXX` (password: `ratspeak`)
3. Add to `~/.reticulum/config`:
```ini
[[ratdeck]]
type = TCPClientInterface
target_host = 192.168.4.1
target_port = 4242
```
4. Your desktop is now bridged to the LoRa mesh
### WiFi OFF
Select OFF in Settings -> Network to disable WiFi entirely (saves power).
## SD Card
Insert a microSD card (FAT32) before powering on. The firmware auto-creates:
```
/ratputer/
config/ Settings backup
messages/ Message archives (up to 100 per conversation)
contacts/ Saved friends
identity/ Identity key backup
transport/ Routing table backup
```
## Managing Friends
- **Peers tab**: Navigate to a node, press `s` to toggle friend status, or long-press to add/delete
- **Messages tab**: Long-press a conversation for context menu (Add Friend / Delete Chat / Cancel)
- Friends are saved to flash + SD and persist across reboots
- Friends are never auto-evicted from the node list
## Radio Presets
Three presets available in Setup -> Radio:
| Preset | SF | BW | CR | TX | Use Case |
|--------|----|----|----|----|----------|
| **Balanced** (default) | 9 | 125 kHz | 4/5 | 17 dBm | General use |
| Long Range | 12 | 62.5 kHz | 4/8 | 22 dBm | Maximum range, slow |
| Fast | 7 | 250 kHz | 4/5 | 14 dBm | Short range, fast |
All parameters are individually configurable. Changes apply immediately.
## Serial Diagnostics
Connect at 115200 baud for debug output:
```bash
python3 -m platformio device monitor -b 115200
```
- **Ctrl+D** on device: full diagnostics dump (identity, radio, heap, uptime)
- **Ctrl+T** on device: send radio test packet
- **Ctrl+R** on device: 5-second RSSI sampling
## Transport Mode
By default, Ratdeck runs as an **Endpoint** (handles its own traffic only). Enable **Transport Node** in Setup -> Network to relay packets for other nodes in the mesh. Requires reboot.