refactor: rename firmware from Plus to Solo
- FIRMWARE_VERSION: v1.15-plus.1 → v1.15-solo.1 - FIRMWARE_PLUS_BUILD → FIRMWARE_SOLO_BUILD in all platformio.ini and UITask.cpp - docs/plus_features/ → docs/solo_features/ (all sub-docs moved) - README: update all doc links plus new Documentation section - GitHub Actions: extract GIT_TAG_VERSION in each build job (was missing, causing empty FIRMWARE_VERSION in builds); rename output files to solo-VERSION-oled.uf2 / solo-VERSION-eink.uf2; release title → "Solo VERSION" Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@@ -1,5 +0,0 @@
|
||||
### Clock Screen
|
||||
|
||||
A dedicated clock page on the home screen shows the current time and date, synchronized from GPS or via Bluetooth. Timezone offset is applied from Settings.
|
||||
|
||||
Up to three configurable data fields are displayed below the clock. Available fields: battery voltage, temperature, humidity, pressure, GPS coordinates, altitude, luminosity, CO₂, contact count, and total unread message count.
|
||||
@@ -1,21 +0,0 @@
|
||||
### Favourites Dial
|
||||
|
||||
A dedicated home page showing a 2×3 grid of pinned contacts. Navigate tiles with the joystick; press Enter on a filled tile to open that contact's DM directly.
|
||||
|
||||
```
|
||||
╔══════════════════════════════╗
|
||||
║ Favourites ║
|
||||
╠══════════════════════════════╣
|
||||
║ ┌──────┐ ┌──────┐ ┌──────┐ ║
|
||||
║ │Alice │ │Bob 3│ │ + │ ║
|
||||
║ └──────┘ └──────┘ └──────┘ ║
|
||||
║ ┌──────┐ ┌──────┐ ┌──────┐ ║
|
||||
║ │Carol │ │ + │ │ + │ ║
|
||||
║ └──────┘ └──────┘ └──────┘ ║
|
||||
╚══════════════════════════════╝
|
||||
```
|
||||
|
||||
- Unread badge shown on filled tiles
|
||||
- Enter on an empty tile (`+`) opens a contact picker (upstream-favourited contacts first, then recent DMs)
|
||||
- **Pin / unpin** — open a DM, then Hold Enter › options menu › "Pin to dial" to choose a slot; selecting a contact already pinned elsewhere moves it to the new slot
|
||||
- LEFT/RIGHT in the Home Pages settings reorders the Favourites page in the navigation sequence
|
||||
@@ -1,109 +0,0 @@
|
||||
## Messages Screen
|
||||
[Go back](../../../README.md)
|
||||
|
||||
### Overview
|
||||
|
||||
| OLED | E-Ink |
|
||||
|:----:|:-----:|
|
||||
|  | |
|
||||
|
||||
The Messages screen is split into three modes — **DMs**, **Channels**, and **Rooms** — selectable with UP/DOWN on the mode-select screen. Each mode shows the corresponding list of conversations with unread counters.
|
||||
|
||||
---
|
||||
|
||||
### Sending messages
|
||||
|
||||
| OLED | E-Ink |
|
||||
|:----:|:-----:|
|
||||
|  | |
|
||||
|
||||
Press **Enter** on a contact or channel to open its history, then press **Enter** again (or select an empty send row) to compose a message. Choose between:
|
||||
|
||||
- **Custom message** — opens the on-screen keyboard
|
||||
- **Q1–Q10** — quick reply templates editable in Settings › Messages
|
||||
|
||||
The keyboard supports placeholders that insert live data at send time:
|
||||
|
||||
| Placeholder | Value | Availability |
|
||||
|-------------|-------|--------------|
|
||||
| `{time}` | current time (HH:MM) | always |
|
||||
| `{loc}` | GPS coordinates | always ("no GPS" if no fix) |
|
||||
| `{temp}` | temperature | sensor connected |
|
||||
| `{hum}` | humidity | sensor connected |
|
||||
| `{pres}` | barometric pressure | sensor connected |
|
||||
| `{alt}` | altitude | sensor connected |
|
||||
| `{lux}` | luminosity | sensor connected |
|
||||
| `{co2}` | CO₂ concentration | sensor connected |
|
||||
|
||||
Sensor placeholders appear automatically in the placeholder picker when the corresponding sensor is active. `{time}` and `{loc}` are always shown.
|
||||
|
||||
---
|
||||
|
||||
### Message history
|
||||
|
||||
| OLED | E-Ink |
|
||||
|:----:|:-----:|
|
||||
|  ||
|
||||
|
||||
Each entry in the history list shows the sender name and a compact age indicator (`3m`, `2h`, `>1d`) in the top-right corner.
|
||||
|
||||
**Short Enter** on a message opens it in fullscreen. **Hold Enter** opens the context menu (Reply option).
|
||||
|
||||
---
|
||||
|
||||
### Fullscreen message view
|
||||
|
||||
| OLED | E-Ink |
|
||||
|:----:|:-----:|
|
||||
|  | |
|
||||
|
||||
Navigate between messages with **LEFT** (newer) and **RIGHT** (older). Long messages scroll with **UP/DOWN**.
|
||||
|
||||
If the message is a reply addressed to someone (`@[nick]`), a **To: nick** bar is shown below the sender name and the body is displayed without the address prefix.
|
||||
| OLED | E-Ink |
|
||||
|:----:|:-----:|
|
||||
|  | |
|
||||
**Hold Enter** in fullscreen opens the Reply option.
|
||||
|
||||
---
|
||||
|
||||
### Context menu — contact list
|
||||
|
||||
|
||||
|
||||
**Hold Enter** on a contact entry opens a context menu:
|
||||
| OLED | E-Ink |
|
||||
|:----:|:-----:|
|
||||
|  |  |
|
||||
|
||||
| Item | Action |
|
||||
|------|--------|
|
||||
| Mark as read | Clears unread counter for this contact |
|
||||
| Notif: default / OFF / ON | Per-contact notification override — **LEFT/RIGHT** to cycle |
|
||||
| Melody: global / M1 / M2 | Per-contact melody override — **LEFT/RIGHT** to cycle |
|
||||
| Pin to dial / Unpin (slot N) | Pin this contact to a Favourites Dial slot; if already pinned shows which slot |
|
||||
|
||||
When **Pin to dial** is selected, a slot picker opens (Slot 1–6 showing current occupant name or "empty"). Choosing a slot that already holds another contact moves the new contact there.
|
||||
|
||||
---
|
||||
|
||||
### Context menu — channel list
|
||||
|
||||
| OLED | E-Ink |
|
||||
|:----:|:-----:|
|
||||
|  |  |
|
||||
|
||||
**Hold Enter** on a channel entry opens a context menu:
|
||||
|
||||
| Item | Action |
|
||||
|------|--------|
|
||||
| Mark all read | Clears all unread for this channel |
|
||||
| Notif: default / OFF / ON | Per-channel notification override — **LEFT/RIGHT** to cycle |
|
||||
| Melody: global / M1 / M2 | Per-channel melody override — **LEFT/RIGHT** to cycle |
|
||||
| Fav: yes / no | Add or remove this channel from favourites — **LEFT/RIGHT** to toggle |
|
||||
|
||||
---
|
||||
|
||||
### Mark all read
|
||||
|
||||
**Hold Enter** on the DM / Channels / Rooms mode-select screen to clear all unread counters for the highlighted category at once.
|
||||
@@ -1,8 +0,0 @@
|
||||
### Screen Lock
|
||||
|
||||
Hold **Back** and press **Enter** three times to lock or unlock the device. While locked:
|
||||
|
||||
- The display turns off and ignores incoming keypresses
|
||||
- A brief button press shows the lock screen: current time, date, and up to two sensor values (reuses the Dashboard Config fields)
|
||||
- A hint popup guides through the unlock sequence
|
||||
- **Auto-lock** (configurable in Settings → System) locks automatically when the display turns off
|
||||
@@ -1,31 +0,0 @@
|
||||
### Settings Screen
|
||||
|
||||
All settings are saved to flash and restored on next boot. Settings are organised into collapsible sections — press Enter on a section header to expand or collapse it. All sections start collapsed for faster navigation.
|
||||
|
||||
- **Display**
|
||||
- Brightness
|
||||
- Auto-off timeout
|
||||
- Battery display mode (icon, %, V)
|
||||
- Clock seconds (show/hide — hiding reduces display refresh from 1 s to 60 s)
|
||||
- Clock format (12 h / 24 h)
|
||||
- Font — **Default** (5×7 Adafruit, ASCII + transliteration) or **Lemon** (native Unicode, pixel-accurate wrap)
|
||||
- Display rotation *(e-ink only)* — 0 ° / 90 ° / 180 ° / 270 °; applied immediately
|
||||
- Joystick rotation *(e-ink only)* — rotates the joystick input mapping independently of the display rotation; useful when mounting the device in a custom enclosure
|
||||
- Full refresh interval *(e-ink only)* — how many partial refreshes before a cleansing full refresh (off / 5 / 10 / 20 / 30); reduces ghosting on long sessions
|
||||
- **Sound**
|
||||
- Buzzer: On / Off / **Auto** — Auto mode silences the device while connected via Bluetooth, and re-enables sound when the connection drops
|
||||
- Volume (1–5; preview tone plays on each change)
|
||||
- DM Melody — notification sound for incoming private messages: built-in, Melody 1, or Melody 2
|
||||
- Channel Melody — notification sound for incoming channel messages: built-in, Melody 1, or Melody 2
|
||||
- **Home Pages** — toggle visibility and reorder individual home screen pages; press LEFT / RIGHT on any entry to move it earlier or later in the navigation sequence; press ENTER to toggle ON / OFF (Settings and Messages are always visible and cannot be disabled)
|
||||
- **Radio**
|
||||
- TX power
|
||||
- **System**
|
||||
- Timezone (UTC offset in hours)
|
||||
- Low battery shutdown threshold
|
||||
- Auto-lock — automatically locks the device when the display turns off
|
||||
- **Contacts**
|
||||
- Show all DMs or favourites only
|
||||
- Show all room servers or favourites only
|
||||
- **Messages**
|
||||
- Edit up to 10 quick reply templates (Q1–Q10)
|
||||
@@ -1,90 +0,0 @@
|
||||
## Settings Screen
|
||||
[Go back](../../../README.md)
|
||||
|
||||
### Overview
|
||||
|
||||
| OLED | E-Ink |
|
||||
|:----:|:-----:|
|
||||
|  |  |
|
||||
|
||||
All settings are saved to flash and restored on next boot. Settings are organised into collapsible sections. Press **Enter** on a section header to expand or collapse it — all sections start collapsed for faster navigation. Press **LEFT/RIGHT** to change a value, or **Enter** for toggle items.
|
||||
|
||||
Press **Cancel/Back** to save and return to the home screen.
|
||||
|
||||
---
|
||||
|
||||
### Display
|
||||
|
||||
| Setting | Options | Notes |
|
||||
|---------|---------|-------|
|
||||
| Brightness | 1–5 | LEFT/RIGHT; preview applies immediately |
|
||||
| Auto-off | 5 s / 15 s / 30 s / 60 s / never | LEFT/RIGHT |
|
||||
| Auto-lock | on / off | Locks device when display turns off |
|
||||
| Battery | icon / % / V | Display mode for the top-bar battery indicator |
|
||||
| Clock seconds | show / hide | Hiding reduces OLED refresh from 1 s to 60 s |
|
||||
| Clock format | 24 h / 12 h | 12 h appends AM/PM |
|
||||
| Font | Default / Lemon | Default: 5×7 Adafruit with ASCII transliteration; Lemon: native Unicode with pixel-accurate line wrap |
|
||||
| Display rotation *(e-ink only)* | 0° / 90° / 180° / 270° | Applied immediately |
|
||||
| Joystick rotation *(e-ink only)* | 0° / 90° / 180° / 270° | Rotates input mapping independently of display rotation; useful for custom enclosures |
|
||||
| Full refresh interval *(e-ink only)* | off / 5 / 10 / 20 / 30 | Partial refreshes between full clears; reduces ghosting on long sessions |
|
||||
|
||||
---
|
||||
|
||||
### Sound
|
||||
|
||||
| Setting | Options | Notes |
|
||||
|---------|---------|-------|
|
||||
| Buzzer | On / Off / Auto | Auto: silences while BLE connected, re-enables on disconnect |
|
||||
| Volume | 1–5 | LEFT/RIGHT; preview tone plays on each change |
|
||||
| DM Melody | built-in / Melody 1 / Melody 2 | Notification sound for incoming private messages |
|
||||
| Channel Melody | built-in / Melody 1 / Melody 2 | Notification sound for incoming channel messages |
|
||||
|
||||
Melody 1 and Melody 2 are custom sequences editable in **Tools › Ringtone Editor**.
|
||||
|
||||
---
|
||||
|
||||
### Home Pages
|
||||
|
||||
| OLED | E-Ink |
|
||||
|:----:|:-----:|
|
||||
|  |  |
|
||||
|
||||
Lists all available home screen pages. For each entry:
|
||||
|
||||
- **LEFT / RIGHT** — move the page earlier or later in the navigation sequence
|
||||
- **Enter** — toggle the page ON / OFF
|
||||
|
||||
**Settings** and **Messages** are always visible and cannot be disabled.
|
||||
|
||||
---
|
||||
|
||||
### Radio
|
||||
|
||||
| Setting | Options | Notes |
|
||||
|---------|---------|-------|
|
||||
| TX power | 2–22 dBm | LEFT/RIGHT |
|
||||
|
||||
---
|
||||
|
||||
### System
|
||||
|
||||
| Setting | Options | Notes |
|
||||
|---------|---------|-------|
|
||||
| Timezone | −12 h … +14 h | UTC offset in whole hours |
|
||||
| Low battery | off / 3.0 V / 3.1 V / 3.2 V / 3.3 V / 3.4 V / 3.5 V | Auto-shutdown threshold; also sets the 0 % anchor for the battery percentage indicator |
|
||||
|
||||
---
|
||||
|
||||
### Contacts
|
||||
|
||||
| Setting | Options | Notes |
|
||||
|---------|---------|-------|
|
||||
| DMs | all / favourites | Show all chat contacts or only upstream-starred ones |
|
||||
| Channels | all / favourites | Show all channels or only favourited ones |
|
||||
| Rooms | all / favourites | Show all room servers or only favourited ones |
|
||||
|
||||
---
|
||||
|
||||
### Messages
|
||||
|
||||
Up to 10 quick reply templates (Q1–Q10). Press **Enter** on a slot to open the keyboard editor. Supports the same placeholders as the main keyboard (`{time}`, `{loc}`, and sensor placeholders when connected).
|
||||
@@ -1,100 +0,0 @@
|
||||
### Nearby Nodes
|
||||
|
||||
Browse nodes that have recently advertised on the mesh. Filter by category (Favourites, All, Companion, Repeater, Room, Sensor). Select a node to see its coordinates, distance, bearing with cardinal direction, type, and last-heard time.
|
||||
|
||||
```
|
||||
╔══════════════════════════════╗
|
||||
║▓▓▓▓▓ WioTracker-Alice ▓▓▓▓▓▓ ║ ← node name
|
||||
╠══════════════════════════════╣
|
||||
║ Lat: 50.06190 ║
|
||||
║ Lon: 19.94090 ║
|
||||
║ Dist: 2.3km ║
|
||||
║ Az: 145d (SE) ║
|
||||
║ Type: Companion ║
|
||||
║ Seen: 5m ago ║
|
||||
╚══════════════════════════════╝
|
||||
```
|
||||
|
||||
Use **Send my advert** (hold Enter → context menu) to broadcast your position and prompt nearby nodes to respond with theirs.
|
||||
|
||||
#### Active Discovery
|
||||
|
||||
Press **Enter** from the Nearby screen to send a live `NODE_DISCOVER_REQ` ping. All reachable repeaters, sensors and room servers within zero-hop range respond immediately with their name, type and signal data. Results appear as 2-line boxed cards with RSSI, SNR and the remote SNR (signal quality at the responder's end).
|
||||
|
||||
```
|
||||
╔═══════════════════════════════╗
|
||||
║▓▓▓▓▓▓▓ DISCOVER (2 found) ▓▓ ║
|
||||
╠═══════════════════════════════╣
|
||||
║▓▓▓▓▓▓▓▓▓▓▓▓▓ Rptr-A Rpt ▓▓▓▓║ ← selected
|
||||
║▓▓▓▓▓▓▓▓ RSSI:-79 SNR:9 ▓▓▓▓▓▓▓║
|
||||
║┌────────────────────────────┐ ║
|
||||
║│▓▓▓▓▓▓▓▓▓▓▓▓ Sensor-B Snsr │ ║
|
||||
║│ RSSI:-94 SNR:3 │ ║
|
||||
║└────────────────────────────┘ ║
|
||||
╚═══════════════════════════════╝
|
||||
```
|
||||
|
||||
Navigate with **UP/DOWN**. Press **Enter** on a node to open a full-screen detail view showing the public key, RSSI, SNR, remote SNR and whether the node is already in your contacts.
|
||||
|
||||
Hold **Enter** from the discovery list to rescan. Press **Cancel** or **Back** to return.
|
||||
|
||||
### Tools Screen
|
||||
|
||||
#### GPS Trail
|
||||
|
||||
Records your route in a RAM ring buffer (up to 512 points). Sampling runs in the background whenever tracking is active — a blinking **G** indicator appears in the status bar. The trail survives display auto-off but is lost on reboot unless saved to flash first.
|
||||
|
||||
Three views cycle with **LEFT / RIGHT**:
|
||||
|
||||
| View | Content |
|
||||
|------|---------|
|
||||
| **Summary** | Total distance, elapsed time, avg speed or pace, point count, tracking status |
|
||||
| **Map** | Auto-fit dot-and-line plot with cos(lat) aspect correction; segment breaks marked with open/filled dots; north arrow; scale grid (toggle with Enter) |
|
||||
| **List** | Per-point rows showing local time (HH:MM) and delta distance from the previous point; segment-start rows show `start` |
|
||||
|
||||
**Hold Enter** opens the action menu:
|
||||
|
||||
| Item | Action |
|
||||
|------|--------|
|
||||
| Min dist | Cycle min-distance gate: 5 m / 10 m / 25 m / 100 m (LEFT/RIGHT while focused) |
|
||||
| Units | Cycle speed/pace units: km/h / mph / min/km / min/mi (LEFT/RIGHT while focused) |
|
||||
| Start / Stop tracking | Begin or end a recording session |
|
||||
| Save trail | Write the current RAM ring to flash (`/trail`) |
|
||||
| Load trail | Restore the saved flash trail into RAM |
|
||||
| Export GPX | Stream the live RAM trail as GPX 1.1 over USB Serial |
|
||||
| Export saved | Stream the saved flash trail as GPX 1.1 over USB Serial without loading it into RAM |
|
||||
| Reset trail | Clear the RAM ring and elapsed time |
|
||||
|
||||
#### Downloading GPX to your computer
|
||||
|
||||
1. Connect the device to your computer with a USB cable.
|
||||
2. Open a serial terminal at **115200 baud** on the device's serial port:
|
||||
- **macOS / Linux** — `screen /dev/tty.usbmodem* 115200` or `cat /dev/tty.usbmodem*` (replace with your port, e.g. `/dev/ttyACM0` on Linux); to save directly to a file use `cat /dev/tty.usbmodem* > track.gpx` and stop with Ctrl-C after the dump completes
|
||||
- **Windows** — open PuTTY (Connection type: Serial, Speed: 115200), or use Arduino IDE › Tools › Serial Monitor (set line ending to "No line ending")
|
||||
3. On the device, navigate to **Tools › Trail**, then **Hold Enter** and select **Export GPX** (live ring) or **Export saved** (flash slot).
|
||||
4. The device streams a GPX 1.1 XML document to the serial port. Copy the output starting from `<?xml` to `</gpx>` and save it as a `.gpx` file.
|
||||
5. Import the file into any GPX-compatible application — OsmAnd, Garmin BaseCamp, GPX Studio, Google Earth, etc.
|
||||
|
||||
> **Note:** If the companion app is connected over **BLE**, the export is safe — the app ignores USB input while BLE is active and the device alert will read *"GPX N B (USB)"*. If you are using the app over **USB**, disconnect from the app first before exporting; the raw XML stream will otherwise disrupt the app's serial framing. The alert *"GPX N B - disc. app"* indicates no BLE link was detected and serves as a reminder to reconnect the app afterwards.
|
||||
|
||||
#### Auto-Advert
|
||||
|
||||
Periodically broadcasts a 0-hop advert with your GPS position so nearby nodes can track your location automatically. Configurable interval: off / 30 s / 1 min / 2 min / 5 min / 10 min / 30 min / 1 h.
|
||||
|
||||
A blinking **A** indicator appears in the status bar while Auto-Advert is active.
|
||||
|
||||
#### Ringtone Editor
|
||||
|
||||
A step sequencer for composing custom notification melodies stored on the device. Two independent melody slots are available — **Melody 1** and **Melody 2** — switchable from within the editor. Each melody supports up to 32 notes with adjustable pitch (C–B + pause), octave (4–7), duration (1/4 / 1/8 / 1/16 / 1/32), and BPM (60 / 90 / 120 / 150 / 180). Playback preview is available directly from the editor.
|
||||
|
||||
Melodies can be assigned as notification sounds per message type (DM / channel) in Settings, and individually overridden per channel or per contact from the message screen context menu.
|
||||
|
||||
#### Auto-Reply Bot
|
||||
|
||||
Automatically replies to incoming messages that contain a configured trigger word (case-insensitive).
|
||||
|
||||
- **DM mode** — when enabled, the bot listens to all incoming private messages and replies with the DM reply text.
|
||||
- **Channel mode** — optionally, select a channel for the bot to monitor. When a trigger is matched, it replies with a separate channel reply text.
|
||||
- Both modes can be active simultaneously and share the same trigger word but use independent reply texts.
|
||||
- Replies support placeholders (`{time}`, `{loc}`).
|
||||
- A 10-second cooldown prevents repeated replies in quick succession.
|
||||
BIN
docs/solo_features/clock_screen/clk_scr_1_eink.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
docs/solo_features/clock_screen/clk_scr_1_oled.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
docs/solo_features/clock_screen/clk_scr_2_eink.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
docs/solo_features/clock_screen/clk_scr_2_oled.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
55
docs/solo_features/clock_screen/clock_screen.md
Normal file
@@ -0,0 +1,55 @@
|
||||
## Clock Screen
|
||||
|
||||
[Go back](../../../README.md)
|
||||
|
||||
### Overview
|
||||
|
||||
| OLED | E-Ink |
|
||||
| :-----------------------: | :-----------------------: |
|
||||
|  |  |
|
||||
|
||||
A full-screen clock page on the home screen. Shows the current time and date, with up to three configurable data fields below.
|
||||
|
||||
Time is synchronized from GPS or via the companion app. Timezone offset is applied from **Settings › System**.
|
||||
|
||||
If no time source is available, the screen shows _"! No time sync"_ with a hint to enable GPS or connect the app.
|
||||
|
||||
---
|
||||
|
||||
### Time display
|
||||
|
||||
- **Format** — 24 h or 12 h with AM/PM; configurable in **Settings › Display**
|
||||
- **Seconds** — shown by default on OLED; hidden on e-ink (always) and optionally on OLED via **Settings › Display › Clock seconds**; hiding reduces the refresh rate from 1 s to 60 s
|
||||
|
||||
---
|
||||
|
||||
### Data fields
|
||||
|
||||
| OLED | E-Ink |
|
||||
| :-----------------------: | :-----------------------: |
|
||||
|  |  |
|
||||
|
||||
Up to three data fields are shown below the date separator. Each field displays a label and a value on the same line.
|
||||
|
||||
| Field | Label | Value |
|
||||
| ----------- | ----- | ------------------------------------------------------------------------- |
|
||||
| None | — | — |
|
||||
| Batt V | Batt | Battery voltage (e.g. `3.92V`) |
|
||||
| Batt % | Batt | Battery percentage using LiPo curve anchored at the low-battery threshold |
|
||||
| Temperature | Temp | °C from onboard sensor |
|
||||
| Humidity | Hum | % from onboard sensor |
|
||||
| Pressure | Pres | hPa from onboard sensor |
|
||||
| GPS | GPS | `lat lon` decimal degrees, or `no fix` |
|
||||
| Altitude | Alt | metres from GPS |
|
||||
| Luminosity | Lux | lux from onboard sensor |
|
||||
| CO₂ | CO2 | ppm from onboard sensor |
|
||||
| Contacts | Nodes | Total contacts in the mesh |
|
||||
| Messages | Msgs | Total unread message count |
|
||||
|
||||
Sensor fields show `--` when the sensor is not connected or has no data.
|
||||
|
||||
---
|
||||
|
||||
### Configuring fields
|
||||
|
||||
**Hold Enter** (or press the **Context menu** key) on the Clock page to open the Dashboard Config screen, where each of the three field slots can be cycled with **LEFT/RIGHT**.
|
||||
BIN
docs/solo_features/favourites_dial/fav_dial_1_eink.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
docs/solo_features/favourites_dial/fav_dial_1_oled.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
@@ -1,10 +1,11 @@
|
||||
## Favourites Dial
|
||||
|
||||
[Go back](../../../README.md)
|
||||
|
||||
### Overview
|
||||
|
||||
| OLED | E-Ink |
|
||||
|:----:|:-----:|
|
||||
| OLED | E-Ink |
|
||||
| :------------------------: | :------------------------: |
|
||||
|  |  |
|
||||
|
||||
A dedicated home page showing a grid of up to 6 pinned contacts for quick access. The layout adapts to the display orientation:
|
||||
@@ -26,10 +27,6 @@ Navigate tiles with **UP / DOWN / LEFT / RIGHT**. Pressing a directional key at
|
||||
|
||||
### Unread badge
|
||||
|
||||
| OLED | E-Ink |
|
||||
|:----:|:-----:|
|
||||
|  |  |
|
||||
|
||||
Filled tiles show an unread message count in the top-right corner when there are unread DMs from that contact. The contact name is ellipsized to make room for the badge.
|
||||
|
||||
If a pinned contact has been removed from the contacts list, the tile shows `(gone)` until the slot is reassigned.
|
||||
@@ -39,6 +36,7 @@ If a pinned contact has been removed from the contacts list, the tile shows `(go
|
||||
### Pinning a contact
|
||||
|
||||
**From the Favourites Dial** — press **Enter** on an empty tile (`+`). A picker opens showing:
|
||||
|
||||
1. Contacts marked as favourites in the upstream app (starred contacts) — listed first
|
||||
2. Recent DM contacts — listed after
|
||||
|
||||
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
108
docs/solo_features/message_screen/message_screen.md
Normal file
@@ -0,0 +1,108 @@
|
||||
## Messages Screen
|
||||
|
||||
[Go back](../../../README.md)
|
||||
|
||||
### Overview
|
||||
|
||||
| OLED | E-Ink |
|
||||
| :-----------------------: | :-----------------------: |
|
||||
|  |  |
|
||||
|
||||
The Messages screen is split into three modes — **DMs**, **Channels**, and **Rooms** — selectable with UP/DOWN on the mode-select screen. Each mode shows the corresponding list of conversations with unread counters.
|
||||
|
||||
---
|
||||
|
||||
### Sending messages
|
||||
|
||||
| OLED | E-Ink |
|
||||
| :-----------------------: | :-----------------------: |
|
||||
|  |  |
|
||||
|
||||
Press **Enter** on a contact or channel to open its history, then press **Enter** again (or select an empty send row) to compose a message. Choose between:
|
||||
|
||||
- **Custom message** — opens the on-screen keyboard
|
||||
- **Q1–Q10** — quick reply templates editable in Settings › Messages
|
||||
|
||||
The keyboard supports placeholders that insert live data at send time:
|
||||
|
||||
| Placeholder | Value | Availability |
|
||||
| ----------- | -------------------- | --------------------------- |
|
||||
| `{time}` | current time (HH:MM) | always |
|
||||
| `{loc}` | GPS coordinates | always ("no GPS" if no fix) |
|
||||
| `{temp}` | temperature | sensor connected |
|
||||
| `{hum}` | humidity | sensor connected |
|
||||
| `{pres}` | barometric pressure | sensor connected |
|
||||
| `{alt}` | altitude | sensor connected |
|
||||
| `{lux}` | luminosity | sensor connected |
|
||||
| `{co2}` | CO₂ concentration | sensor connected |
|
||||
|
||||
Sensor placeholders appear automatically in the placeholder picker when the corresponding sensor is active. `{time}` and `{loc}` are always shown.
|
||||
|
||||
---
|
||||
|
||||
### Message history
|
||||
|
||||
| OLED | E-Ink |
|
||||
| :-----------------------: | :-----------------------: |
|
||||
|  |  |
|
||||
|
||||
Each entry in the history list shows the sender name and a compact age indicator (`3m`, `2h`, `>1d`) in the top-right corner.
|
||||
|
||||
**Short Enter** on a message opens it in fullscreen. **Hold Enter** opens the context menu (Reply option).
|
||||
|
||||
---
|
||||
|
||||
### Fullscreen message view
|
||||
|
||||
| OLED | E-Ink |
|
||||
| :-----------------------: | :-----------------------: |
|
||||
|  |  |
|
||||
|
||||
Navigate between messages with **LEFT** (newer) and **RIGHT** (older). Long messages scroll with **UP/DOWN**.
|
||||
|
||||
If the message is a reply addressed to someone (`@[nick]`), a **To: nick** bar is shown below the sender name and the body is displayed without the address prefix.
|
||||
| OLED | E-Ink |
|
||||
|:----:|:-----:|
|
||||
|  | |
|
||||
**Hold Enter** in fullscreen opens the Reply option.
|
||||
|
||||
---
|
||||
|
||||
### Context menu — contact list
|
||||
|
||||
**Hold Enter** on a contact entry opens a context menu:
|
||||
| OLED | E-Ink |
|
||||
|:----:|:-----:|
|
||||
|  |  |
|
||||
|
||||
| Item | Action |
|
||||
| ---------------------------- | ------------------------------------------------------------------------------ |
|
||||
| Mark as read | Clears unread counter for this contact |
|
||||
| Notif: default / OFF / ON | Per-contact notification override — **LEFT/RIGHT** to cycle |
|
||||
| Melody: global / M1 / M2 | Per-contact melody override — **LEFT/RIGHT** to cycle |
|
||||
| Pin to dial / Unpin (slot N) | Pin this contact to a Favourites Dial slot; if already pinned shows which slot |
|
||||
|
||||
When **Pin to dial** is selected, a slot picker opens (Slot 1–6 showing current occupant name or "empty"). Choosing a slot that already holds another contact moves the new contact there.
|
||||
|
||||
---
|
||||
|
||||
### Context menu — channel list
|
||||
|
||||
| OLED | E-Ink |
|
||||
| :-----------------------: | :-----------------------: |
|
||||
|  |  |
|
||||
|
||||
**Hold Enter** on a channel entry opens a context menu:
|
||||
|
||||
| Item | Action |
|
||||
| ------------------------- | --------------------------------------------------------------------- |
|
||||
| Mark all read | Clears all unread for this channel |
|
||||
| Notif: default / OFF / ON | Per-channel notification override — **LEFT/RIGHT** to cycle |
|
||||
| Melody: global / M1 / M2 | Per-channel melody override — **LEFT/RIGHT** to cycle |
|
||||
| Fav: yes / no | Add or remove this channel from favourites — **LEFT/RIGHT** to toggle |
|
||||
|
||||
---
|
||||
|
||||
### Mark all read
|
||||
|
||||
**Hold Enter** on the DM / Channels / Rooms mode-select screen to clear all unread counters for the highlighted category at once.
|
||||
BIN
docs/solo_features/screen_lock/lck_scr_1_eink.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
docs/solo_features/screen_lock/lck_scr_1_oled.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
docs/solo_features/screen_lock/lck_scr_2_eink.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
docs/solo_features/screen_lock/lck_scr_2_oled.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
51
docs/solo_features/screen_lock/screen_lock.md
Normal file
@@ -0,0 +1,51 @@
|
||||
## Screen Lock
|
||||
|
||||
[Go back](../../../README.md)
|
||||
|
||||
### Overview
|
||||
|
||||
| OLED | E-Ink |
|
||||
| :-----------------------: | :-----------------------: |
|
||||
|  |  |
|
||||
|
||||
Screen lock prevents accidental keypresses. While locked the display turns off and all input is ignored.
|
||||
|
||||
---
|
||||
|
||||
### Locking and unlocking
|
||||
|
||||
**Hold Back** and press **Enter** three times within 3 seconds. The sequence works in both directions — the same combination locks and unlocks.
|
||||
|
||||
If the display is off when the sequence begins, it turns on automatically so the hint is visible. Each press in the sequence extends the display-on timer by 5 seconds.
|
||||
|
||||
The hint popup at the bottom of the lock screen guides through the sequence:
|
||||
|
||||
| Step | Hint |
|
||||
| -------------- | --------------------- |
|
||||
| Not started | _Hold Back + 3×Enter_ |
|
||||
| 1 press done | _Enter ×2 more…_ |
|
||||
| 2 presses done | _Enter ×1 more…_ |
|
||||
|
||||
If no press is made for 3 seconds, the counter resets.
|
||||
|
||||
---
|
||||
|
||||
### Lock screen
|
||||
|
||||
| OLED | E-Ink |
|
||||
| :-----------------------: | :-----------------------: |
|
||||
|  |  |
|
||||
|
||||
A brief press of any button wakes the display and shows the lock screen. It displays:
|
||||
|
||||
- **Time** — large, same format as the Clock page (24 h / 12 h from Settings)
|
||||
- **Date** — day-of-week, day, month
|
||||
- **Two sensor values** — the first two Dashboard Config fields (same values configured for the Clock page); shown side by side if both are set
|
||||
|
||||
The display turns off again automatically after 5 seconds of inactivity (or 2 seconds immediately after locking).
|
||||
|
||||
---
|
||||
|
||||
### Auto-lock
|
||||
|
||||
Enable **Auto-lock** in **Settings › Display** to lock the device automatically whenever the display turns off due to auto-off timeout. With auto-lock on, the device is always locked after the screen goes dark — no manual lock needed.
|
||||
BIN
docs/solo_features/settings_screen/set_scr_1_eink copy.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
docs/solo_features/settings_screen/set_scr_1_eink.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
docs/solo_features/settings_screen/set_scr_1_oled.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
docs/solo_features/settings_screen/set_scr_2_eink.png
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
BIN
docs/solo_features/settings_screen/set_scr_2_oled.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
91
docs/solo_features/settings_screen/settings_screen.md
Normal file
@@ -0,0 +1,91 @@
|
||||
## Settings Screen
|
||||
|
||||
[Go back](../../../README.md)
|
||||
|
||||
### Overview
|
||||
|
||||
| OLED | E-Ink |
|
||||
| :-----------------------: | :-----------------------: |
|
||||
|  |  |
|
||||
|
||||
All settings are saved to flash and restored on next boot. Settings are organised into collapsible sections. Press **Enter** on a section header to expand or collapse it — all sections start collapsed for faster navigation. Press **LEFT/RIGHT** to change a value, or **Enter** for toggle items.
|
||||
|
||||
Press **Cancel/Back** to save and return to the home screen.
|
||||
|
||||
---
|
||||
|
||||
### Display
|
||||
|
||||
| Setting | Options | Notes |
|
||||
| ------------------------------------ | -------------------------------- | ----------------------------------------------------------------------------------------------------- |
|
||||
| Brightness | 1–5 | LEFT/RIGHT; preview applies immediately |
|
||||
| Auto-off | 5 s / 15 s / 30 s / 60 s / never | LEFT/RIGHT |
|
||||
| Auto-lock | on / off | Locks device when display turns off |
|
||||
| Battery | icon / % / V | Display mode for the top-bar battery indicator |
|
||||
| Clock seconds | show / hide | Hiding reduces OLED refresh from 1 s to 60 s |
|
||||
| Clock format | 24 h / 12 h | 12 h appends AM/PM |
|
||||
| Font | Default / Lemon | Default: 5×7 Adafruit with ASCII transliteration; Lemon: native Unicode with pixel-accurate line wrap |
|
||||
| Display rotation _(e-ink only)_ | 0° / 90° / 180° / 270° | Applied immediately |
|
||||
| Joystick rotation _(e-ink only)_ | 0° / 90° / 180° / 270° | Rotates input mapping independently of display rotation; useful for custom enclosures |
|
||||
| Full refresh interval _(e-ink only)_ | off / 5 / 10 / 20 / 30 | Partial refreshes between full clears; reduces ghosting on long sessions |
|
||||
|
||||
---
|
||||
|
||||
### Sound
|
||||
|
||||
| Setting | Options | Notes |
|
||||
| -------------- | ------------------------------ | ------------------------------------------------------------ |
|
||||
| Buzzer | On / Off / Auto | Auto: silences while BLE connected, re-enables on disconnect |
|
||||
| Volume | 1–5 | LEFT/RIGHT; preview tone plays on each change |
|
||||
| DM Melody | built-in / Melody 1 / Melody 2 | Notification sound for incoming private messages |
|
||||
| Channel Melody | built-in / Melody 1 / Melody 2 | Notification sound for incoming channel messages |
|
||||
|
||||
Melody 1 and Melody 2 are custom sequences editable in **Tools › Ringtone Editor**.
|
||||
|
||||
---
|
||||
|
||||
### Home Pages
|
||||
|
||||
| OLED | E-Ink |
|
||||
| :-----------------------: | :-----------------------: |
|
||||
|  |  |
|
||||
|
||||
Lists all available home screen pages. For each entry:
|
||||
|
||||
- **LEFT / RIGHT** — move the page earlier or later in the navigation sequence
|
||||
- **Enter** — toggle the page ON / OFF
|
||||
|
||||
**Settings** and **Messages** are always visible and cannot be disabled.
|
||||
|
||||
---
|
||||
|
||||
### Radio
|
||||
|
||||
| Setting | Options | Notes |
|
||||
| -------- | -------- | ---------- |
|
||||
| TX power | 2–22 dBm | LEFT/RIGHT |
|
||||
|
||||
---
|
||||
|
||||
### System
|
||||
|
||||
| Setting | Options | Notes |
|
||||
| ----------- | --------------------------------------------------- | -------------------------------------------------------------------------------------- |
|
||||
| Timezone | −12 h … +14 h | UTC offset in whole hours |
|
||||
| Low battery | off / 3.0 V / 3.1 V / 3.2 V / 3.3 V / 3.4 V / 3.5 V | Auto-shutdown threshold; also sets the 0 % anchor for the battery percentage indicator |
|
||||
|
||||
---
|
||||
|
||||
### Contacts
|
||||
|
||||
| Setting | Options | Notes |
|
||||
| -------- | ---------------- | ---------------------------------------------------- |
|
||||
| DMs | all / favourites | Show all chat contacts or only upstream-starred ones |
|
||||
| Channels | all / favourites | Show all channels or only favourited ones |
|
||||
| Rooms | all / favourites | Show all room servers or only favourited ones |
|
||||
|
||||
---
|
||||
|
||||
### Messages
|
||||
|
||||
Up to 10 quick reply templates (Q1–Q10). Press **Enter** on a slot to open the keyboard editor. Supports the same placeholders as the main keyboard (`{time}`, `{loc}`, and sensor placeholders when connected).
|
||||
BIN
docs/solo_features/tools_screen/tls_scr_1_eink.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
docs/solo_features/tools_screen/tls_scr_1_oled.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
docs/solo_features/tools_screen/tls_scr_2_eink.png
Normal file
|
After Width: | Height: | Size: 8.5 KiB |
BIN
docs/solo_features/tools_screen/tls_scr_2_oled.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
docs/solo_features/tools_screen/tls_scr_3_eink.png
Normal file
|
After Width: | Height: | Size: 8.5 KiB |
BIN
docs/solo_features/tools_screen/tls_scr_3_oled.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
docs/solo_features/tools_screen/tls_scr_4_eink.png
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
BIN
docs/solo_features/tools_screen/tls_scr_4_oled.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
docs/solo_features/tools_screen/tls_scr_5_eink.png
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
docs/solo_features/tools_screen/tls_scr_5_oled.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
docs/solo_features/tools_screen/tls_scr_6_eink.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
docs/solo_features/tools_screen/tls_scr_6_oled.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
docs/solo_features/tools_screen/tls_scr_7_eink.png
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
BIN
docs/solo_features/tools_screen/tls_scr_7_oled.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
173
docs/solo_features/tools_screen/tools_screen.md
Normal file
@@ -0,0 +1,173 @@
|
||||
## Tools Screen
|
||||
|
||||
[Go back](../../../README.md)
|
||||
|
||||
### Overview
|
||||
|
||||
| OLED | E-Ink |
|
||||
| :-----------------------: | :-----------------------: |
|
||||
|  |  |
|
||||
|
||||
The Tools screen is a hub for GPS trail recording, nearby node browsing, ringtone editing, auto-reply bot, and auto-advert. Navigate the tool list with **UP/DOWN** and press **Enter** to open a tool.
|
||||
|
||||
---
|
||||
|
||||
## Nearby Nodes
|
||||
|
||||
| OLED | E-Ink |
|
||||
| :-----------------------: | :-----------------------: |
|
||||
|  |  |
|
||||
|
||||
Browse nodes that have recently advertised on the mesh. Filter by category with **LEFT/RIGHT**:
|
||||
|
||||
| Filter | Shows |
|
||||
| ------ | ------------------------------ |
|
||||
| Fav | Upstream-starred contacts only |
|
||||
| ALL | All known nodes |
|
||||
| Comp | Companion (chat) nodes |
|
||||
| Rpt | Repeaters |
|
||||
| Room | Room servers |
|
||||
| Snsr | Sensors |
|
||||
|
||||
Select a node to see its coordinates, distance, bearing with cardinal direction, type, and last-heard time.
|
||||
|
||||
**Hold Enter** → context menu → **Discover nearby** to send a live `NODE_DISCOVER_REQ` ping.
|
||||
|
||||
> [!TIP]
|
||||
> Combined with **Auto-Advert** on the other device, Nearby Nodes becomes a passive location tracker — as long as the tracked device periodically broadcasts its GPS position, you can see its current distance and bearing without any manual interaction on either end.
|
||||
|
||||
---
|
||||
|
||||
### Active Discovery
|
||||
|
||||
| OLED | E-Ink |
|
||||
| :-----------------------: | :-----------------------: |
|
||||
|  |  |
|
||||
|
||||
Sends a `NODE_DISCOVER_REQ` ping. Repeaters, sensors and room servers within zero-hop range respond immediately with name, type and signal data.
|
||||
|
||||
Results show as 2-line cards: node name + type, then RSSI / SNR / remote SNR.
|
||||
|
||||
- **UP/DOWN** — navigate results
|
||||
- **Enter** — open full-screen detail (public key, signal data, contact status)
|
||||
- **Hold Enter** — rescan
|
||||
- **Cancel / Back** — return to nearby list
|
||||
|
||||
---
|
||||
|
||||
## GPS Trail
|
||||
|
||||
| OLED | E-Ink |
|
||||
| :-----------------------: | :-----------------------: |
|
||||
|  |  |
|
||||
|
||||
Records your route in a RAM ring buffer (up to 512 points, sampled every 1 s). Tracking runs in the background — a blinking **G** appears in the status bar. The trail survives display auto-off but is lost on reboot unless saved to flash first.
|
||||
|
||||
Cycle views with **LEFT / RIGHT**:
|
||||
|
||||
| View | Content |
|
||||
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| **Summary** | Distance, elapsed time, avg speed or pace, point count, tracking status |
|
||||
| **Map** | Auto-fit dot-and-line plot with cos(lat) aspect correction; segment breaks marked; north arrow; scale grid (toggle with **LEFT/RIGHT** on the Grid row in the menu) |
|
||||
| **List** | Per-point rows showing local time (HH:MM) and delta distance from the previous point; segment-start rows show `start`; scroll with **UP/DOWN** |
|
||||
|
||||
| OLED | E-Ink |
|
||||
| :-----------------------: | :-----------------------: |
|
||||
|  |  |
|
||||
|
||||
**Hold Enter** opens the action menu:
|
||||
|
||||
| Item | Interaction | Action |
|
||||
| --------------------- | ------------------- | --------------------------------------------------- |
|
||||
| Min dist | LEFT/RIGHT | Filter gate: 5 m / 10 m / 25 m / 100 m |
|
||||
| Units | LEFT/RIGHT | Speed/pace: km/h / mph / min/km / min/mi |
|
||||
| Grid | LEFT/RIGHT or Enter | Toggle scale grid on the map |
|
||||
| Start / Stop tracking | Enter | Begin or end a recording session |
|
||||
| Save trail | Enter | Write RAM ring to flash (`/trail`) |
|
||||
| Load trail | Enter | Restore flash trail into RAM |
|
||||
| Export (live) | Enter | Stream live RAM trail as GPX 1.1 over USB Serial |
|
||||
| Export (saved) | Enter | Stream saved flash trail as GPX 1.1 over USB Serial |
|
||||
| Reset trail | Enter | Clear RAM ring and elapsed time |
|
||||
|
||||
### Downloading GPX
|
||||
|
||||
1. Connect the device via USB cable
|
||||
2. Open a serial terminal at **115200 baud**:
|
||||
- **macOS/Linux** — `cat /dev/tty.usbmodem* > track.gpx` (stop with Ctrl-C after dump completes)
|
||||
- **Windows** — PuTTY (Serial, 115200) or Arduino IDE Serial Monitor (no line ending)
|
||||
3. On the device: **Tools › Trail** → **Hold Enter** → **Export (live)** or **Export (saved)**
|
||||
4. The device streams a GPX 1.1 XML document. Save the output from `<?xml` to `</gpx>` as a `.gpx` file
|
||||
5. Import into OsmAnd, Garmin BaseCamp, GPX Studio, Google Earth, etc.
|
||||
|
||||
> [!NOTE]
|
||||
> If the companion app is connected via **BLE**, the export is safe — BLE and USB operate independently. If connected via **USB**, disconnect the app before exporting.
|
||||
|
||||
---
|
||||
|
||||
## Auto-Advert
|
||||
|
||||
Periodically broadcasts a 0-hop advert with your GPS position. Configurable interval: off / 30 s / 1 min / 2 min / 5 min / 10 min / 30 min / 1 h. A blinking **A** appears in the status bar while active.
|
||||
|
||||
---
|
||||
|
||||
## Ringtone Editor
|
||||
|
||||
| OLED | E-Ink |
|
||||
| :-----------------------: | :-----------------------: |
|
||||
|  |  |
|
||||
|
||||
A step sequencer for composing custom notification melodies. Two slots — **Melody 1** and **Melody 2** — switchable from within the editor.
|
||||
|
||||
Each melody supports up to 32 notes:
|
||||
|
||||
| Parameter | Options |
|
||||
| --------- | --------------------------------- |
|
||||
| Pitch | C / D / E / F / G / A / B / pause |
|
||||
| Octave | 4 – 7 |
|
||||
| Duration | 1/4 / 1/8 / 1/16 / 1/32 |
|
||||
| BPM | 60 / 90 / 120 / 150 / 180 |
|
||||
|
||||
**Navigation in the editor:**
|
||||
|
||||
- **LEFT/RIGHT** — move between notes
|
||||
- **UP/DOWN** — change pitch of selected note
|
||||
- **Enter** — cycle octave of selected note
|
||||
- **Hold Enter** (or context menu) — open options menu
|
||||
|
||||
**Options menu:**
|
||||
|
||||
| Item | Interaction | Action |
|
||||
| ------------ | ----------- | -------------------------------------- |
|
||||
| Play / Stop | Enter | Preview the melody |
|
||||
| Melody 1 / 2 | Enter | Switch to the other slot |
|
||||
| Duration | LEFT/RIGHT | Cycle duration for selected note |
|
||||
| BPM | LEFT/RIGHT | Cycle tempo |
|
||||
| Insert | Enter | Insert a new note after the cursor |
|
||||
| Delete | Enter | Delete the note at cursor |
|
||||
| Save & Exit | Enter | Persist the melody and return to Tools |
|
||||
| Discard | Enter | Return to Tools without saving |
|
||||
|
||||
Melodies can be assigned in **Settings › Sound** (global default) or overridden per contact or channel from the Messages screen context menu.
|
||||
|
||||
---
|
||||
|
||||
## Auto-Reply Bot
|
||||
|
||||
| OLED | E-Ink |
|
||||
| :-----------------------: | :-----------------------: |
|
||||
|  |  |
|
||||
|
||||
Automatically replies to incoming messages that contain a configured trigger word (case-insensitive, contains match).
|
||||
|
||||
When the bot is enabled it listens to DMs by default. Channel monitoring is an optional addition — select a channel separately to activate it alongside DM mode.
|
||||
|
||||
| Setting | Description |
|
||||
| ------------- | -------------------------------------------------------------------------------- |
|
||||
| Bot | ON / OFF — enables DM listening |
|
||||
| Channel mode | ON / OFF — additionally monitors a selected channel |
|
||||
| Channel | Which channel to monitor (only relevant when channel mode is ON) |
|
||||
| Trigger | Word or phrase that activates the reply (shared by both modes, case-insensitive) |
|
||||
| DM reply | Reply text for DMs; supports `{time}` and `{loc}` placeholders |
|
||||
| Channel reply | Reply text for channel messages; supports `{time}` and `{loc}` placeholders |
|
||||
|
||||
A 10-second cooldown prevents repeated replies in quick succession.
|
||||