Просмотр исходного кода

docs: simplify board tables and clean up published markdown rendering

Jared Dohrman 4 месяцев назад
Родитель
Сommit
b29436eb62
5 измененных файлов с 95 добавлено и 142 удалено
  1. 6 0
      docs/_stylesheets/extra.css
  2. 44 43
      docs/boards.md
  3. 37 78
      docs/custom-cli.md
  4. 2 7
      docs/releases.md
  5. 6 14
      docs/web-panel.md

+ 6 - 0
docs/_stylesheets/extra.css

@@ -119,6 +119,12 @@ body {
     background: transparent;
     background: transparent;
 }
 }
 
 
+@media screen and (min-width: 76.25em) {
+    .md-grid {
+        max-width: 80rem;
+    }
+}
+
 .md-content__inner {
 .md-content__inner {
     background: linear-gradient(180deg, var(--web-surface-2), var(--web-surface-1));
     background: linear-gradient(180deg, var(--web-surface-2), var(--web-surface-1));
     border: 1px solid var(--web-border);
     border: 1px solid var(--web-border);

+ 44 - 43
docs/boards.md

@@ -14,7 +14,6 @@ The tables below are built from the repo's PlatformIO board metadata and variant
 - `Target` is the short board name used in this comparison page. Release filenames and local build commands still use the full env names such as `heltec_v4_repeater_mqtt`.
 - `Target` is the short board name used in this comparison page. Release filenames and local build commands still use the full env names such as `heltec_v4_repeater_mqtt`.
 - `RAM` is the MCU's built-in RAM.
 - `RAM` is the MCU's built-in RAM.
 - `PSRAM` is extra memory on some boards. More PSRAM usually means more headroom for UI, MQTT, and future features.
 - `PSRAM` is extra memory on some boards. More PSRAM usually means more headroom for UI, MQTT, and future features.
-- `Web UI` means the local repeater web panel is enabled in that build.
 
 
 If a board enables PSRAM but the repo does not declare the exact size, it is shown as `Yes (size not declared)`.
 If a board enables PSRAM but the repo does not declare the exact size, it is shown as `Yes (size not declared)`.
 
 
@@ -32,48 +31,50 @@ If a board enables PSRAM but the repo does not declare the exact size, it is sho
 
 
 This table includes all repeater MQTT targets currently defined in `variants/eastmesh_mqtt/platformio.ini`.
 This table includes all repeater MQTT targets currently defined in `variants/eastmesh_mqtt/platformio.ini`.
 
 
-| Target | CPU | RAM | PSRAM | Flash | LoRa | Display | GPS | Web UI | Notes |
-| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
-| Ebyte_EoRa-S3 | ESP32S3 / 240 MHz | 512 KB | Yes (size not declared) | 4MB | SX1262 | OLED (SSD1306) | No | Yes | more memory headroom |
-| Generic_E22_sx1262 | ESP32 / 240 MHz | 520 KB | No | 4 MB | SX1262 | None | No | Yes | headless |
-| Generic_E22_sx1268 | ESP32 / 240 MHz | 520 KB | No | 4 MB | SX1268 | None | No | Yes | headless |
-| Heltec_ct62 | ESP32C3 / 160 MHz | 400 KB | No | 4 MB | SX1262 | None | No | Yes | headless |
-| Heltec_E213 | ESP32S3 / 240 MHz | 512 KB | 8 MB | 16MB | SX1262 | E-paper (2.13") | No | Yes | low-power display, more memory headroom |
-| Heltec_E290 | ESP32S3 / 240 MHz | 512 KB | 8 MB | 16MB | SX1262 | E-paper (2.9") | No | Yes | low-power display, more memory headroom |
-| Heltec_T190 | ESP32S3 / 240 MHz | 512 KB | 8 MB | 16MB | SX1262 | TFT (ST7789) | No | Yes | richer UI, more memory headroom |
-| heltec_tracker_v2 | ESP32S3 / 240 MHz | 512 KB | No | 8MB | SX1262 | TFT (ST7735) | Yes | Yes | richer UI, GPS |
-| Heltec_v2 | ESP32 / 240 MHz | 520 KB | No | 8 MB | SX1276 | OLED (SSD1306) | No | Yes |  |
-| Heltec_v3 | ESP32S3 / 240 MHz | 512 KB | No | 8 MB | SX1262 | OLED (SSD1306) | Yes | Yes | GPS |
-| heltec_v4 | ESP32S3 / 240 MHz | 512 KB | 2 MB | 16MB | SX1262 | OLED (SSD1306) | Yes | Yes | GPS, more memory headroom |
-| heltec_v4_tft | ESP32S3 / 240 MHz | 512 KB | 2 MB | 16MB | SX1262 | TFT (ST7789) | Yes | Yes | richer UI, GPS, more memory headroom |
-| Heltec_Wireless_Paper | ESP32S3 / 240 MHz | 512 KB | No | 8 MB | SX1262 | E-paper (2.13") | No | Yes | low-power display |
-| Heltec_Wireless_Tracker | ESP32S3 / 240 MHz | 512 KB | No | 8 MB | SX1262 | TFT (ST7735) | Yes | Yes | richer UI, GPS |
-| Heltec_WSL3 | ESP32S3 / 240 MHz | 512 KB | No | 8 MB | SX1262 | None | Yes | Yes | headless, GPS |
-| LilyGo_T3S3_sx1262 | ESP32S3 / 240 MHz | 512 KB | Yes (size not declared) | 4MB | SX1262 | OLED (SSD1306) | No | Yes | more memory headroom |
-| LilyGo_T3S3_sx1276 | ESP32S3 / 240 MHz | 512 KB | Yes (size not declared) | 4MB | SX1276 | OLED (SSD1306) | No | Yes | more memory headroom |
-| LilyGo_TBeam_1W | ESP32S3 / 240 MHz | 512 KB | Yes (size not declared) | 16MB | SX1262 | OLED (SH1106) | Yes | Yes | GPS, more memory headroom |
-| LilyGo_TDeck | ESP32S3 / 240 MHz | 512 KB | No | 16MB | SX1262 | TFT (ST7789) | Yes | Yes | richer UI, GPS |
-| LilyGo_Tlora_C6 | ESP32C6 / 160 MHz | 512 KB | No | 4 MB | SX1262 | None | No | Yes | headless |
-| LilyGo_TLora_V2_1_1_6 | ESP32 / 240 MHz | 520 KB | No | 4 MB | SX1276 | OLED (SSD1306) | Yes | Yes | GPS |
-| M5Stack_Unit_C6L | ESP32C6 / 160 MHz | 512 KB | No | 4 MB | SX1262 | None | Yes | Yes | headless, GPS |
-| Meshadventurer_sx1262 | ESP32 / 240 MHz | 520 KB | No | 4 MB | SX1262 | OLED (SSD1306) | Yes | Yes | GPS |
-| Meshadventurer_sx1268 | ESP32 / 240 MHz | 520 KB | No | 4 MB | SX1268 | OLED (SSD1306) | Yes | Yes | GPS |
-| Meshimi | ESP32C6 / 160 MHz | 512 KB | No | 4 MB | SX1262 | None | No | Yes | headless |
-| nibble_screen_connect | ESP32S3 / 240 MHz | 512 KB | No | 4MB | SX1262 | OLED (SSD1306) | No | Yes |  |
-| RAK_3112 | ESP32S3 / 240 MHz | 512 KB | No | 8 MB | SX1262 | None | Yes | Yes | headless, GPS |
-| Station_G2 | ESP32S3 / 240 MHz | 512 KB | Yes (size not declared) | 16MB | SX1262 | OLED (SH1106) | Yes | Yes | GPS, more memory headroom |
-| Station_G2_logging | ESP32S3 / 240 MHz | 512 KB | Yes (size not declared) | 16MB | SX1262 | OLED (SH1106) | Yes | Yes | GPS, more memory headroom |
-| T_Beam_S3_Supreme_SX1262 | ESP32S3 / 240 MHz | 512 KB | 8 MB | 8MB | SX1262 | OLED (SH1106) | Yes | Yes | GPS, more memory headroom |
-| Tbeam_SX1262 | ESP32 / 240 MHz | 520 KB | No | 4 MB | SX1262 | OLED (SSD1306) | Yes | Yes | GPS |
-| Tbeam_SX1276 | ESP32 / 240 MHz | 520 KB | No | 4 MB | SX1276 | OLED (SSD1306) | Yes | Yes | GPS |
-| Tenstar_C3_sx1262 | ESP32C3 / 160 MHz | 400 KB | No | 4 MB | SX1262 | None | No | Yes | headless |
-| Tenstar_C3_sx1268 | ESP32C3 / 160 MHz | 400 KB | No | 4 MB | SX1268 | None | No | Yes | headless |
-| ThinkNode_M2 | ESP32S3 / 240 MHz | 512 KB | No | 4MB | SX1262 | OLED (SH1106) | No | Yes |  |
-| ThinkNode_M5 | ESP32S3 / 240 MHz | 512 KB | No | 4MB | SX1262 | E-paper (GxEPD) | Yes | Yes | low-power display, GPS |
-| WHY2025_badge | ESP32C6 / 160 MHz | 512 KB | No | 4 MB | SX1262 | None | No | Yes | headless |
-| Xiao_C3 | ESP32C3 / 160 MHz | 400 KB | No | 4 MB | SX1262 | None | Yes | No | headless, GPS, web panel off |
-| Xiao_C6 | ESP32C6 / 160 MHz | 512 KB | No | 4 MB | SX1262 | None | No | Yes | headless |
-| Xiao_S3_WIO | ESP32S3 / 240 MHz | 512 KB | No | 8 MB | SX1262 | None | Yes | Yes | headless, GPS |
+| Target | CPU | RAM | PSRAM | Flash | LoRa | Display | GPS | Notes |
+| --- | --- | --- | --- | --- | --- | --- | --- | --- |
+| Ebyte_EoRa-S3 | ESP32S3 / 240 MHz | 512 KB | Yes (size not declared) | 4MB | SX1262 | OLED (SSD1306) | No | more memory headroom |
+| Generic_E22_sx1262 | ESP32 / 240 MHz | 520 KB | No | 4 MB | SX1262 | None | No | headless |
+| Generic_E22_sx1268 | ESP32 / 240 MHz | 520 KB | No | 4 MB | SX1268 | None | No | headless |
+| Heltec_ct62 | ESP32C3 / 160 MHz | 400 KB | No | 4 MB | SX1262 | None | No | headless |
+| Heltec_E213 | ESP32S3 / 240 MHz | 512 KB | 8 MB | 16MB | SX1262 | E-paper (2.13") | No | low-power display, more memory headroom |
+| Heltec_E290 | ESP32S3 / 240 MHz | 512 KB | 8 MB | 16MB | SX1262 | E-paper (2.9") | No | low-power display, more memory headroom |
+| Heltec_T190 | ESP32S3 / 240 MHz | 512 KB | 8 MB | 16MB | SX1262 | TFT (ST7789) | No | richer UI, more memory headroom |
+| heltec_tracker_v2 | ESP32S3 / 240 MHz | 512 KB | No | 8MB | SX1262 | TFT (ST7735) | Yes | richer UI, GPS |
+| Heltec_v2 | ESP32 / 240 MHz | 520 KB | No | 8 MB | SX1276 | OLED (SSD1306) | No |  |
+| Heltec_v3 | ESP32S3 / 240 MHz | 512 KB | No | 8 MB | SX1262 | OLED (SSD1306) | Yes | GPS |
+| heltec_v4 | ESP32S3 / 240 MHz | 512 KB | 2 MB | 16MB | SX1262 | OLED (SSD1306) | Yes | GPS, more memory headroom |
+| heltec_v4_tft | ESP32S3 / 240 MHz | 512 KB | 2 MB | 16MB | SX1262 | TFT (ST7789) | Yes | richer UI, GPS, more memory headroom |
+| Heltec_Wireless_Paper | ESP32S3 / 240 MHz | 512 KB | No | 8 MB | SX1262 | E-paper (2.13") | No | low-power display |
+| Heltec_Wireless_Tracker | ESP32S3 / 240 MHz | 512 KB | No | 8 MB | SX1262 | TFT (ST7735) | Yes | richer UI, GPS |
+| Heltec_WSL3 | ESP32S3 / 240 MHz | 512 KB | No | 8 MB | SX1262 | None | Yes | headless, GPS |
+| LilyGo_T3S3_sx1262 | ESP32S3 / 240 MHz | 512 KB | Yes (size not declared) | 4MB | SX1262 | OLED (SSD1306) | No | more memory headroom |
+| LilyGo_T3S3_sx1276 | ESP32S3 / 240 MHz | 512 KB | Yes (size not declared) | 4MB | SX1276 | OLED (SSD1306) | No | more memory headroom |
+| LilyGo_TBeam_1W | ESP32S3 / 240 MHz | 512 KB | Yes (size not declared) | 16MB | SX1262 | OLED (SH1106) | Yes | GPS, more memory headroom |
+| LilyGo_TDeck | ESP32S3 / 240 MHz | 512 KB | No | 16MB | SX1262 | TFT (ST7789) | Yes | richer UI, GPS |
+| LilyGo_Tlora_C6 | ESP32C6 / 160 MHz | 512 KB | No | 4 MB | SX1262 | None | No | headless |
+| LilyGo_TLora_V2_1_1_6 | ESP32 / 240 MHz | 520 KB | No | 4 MB | SX1276 | OLED (SSD1306) | Yes | GPS |
+| M5Stack_Unit_C6L | ESP32C6 / 160 MHz | 512 KB | No | 4 MB | SX1262 | None | Yes | headless, GPS |
+| Meshadventurer_sx1262 | ESP32 / 240 MHz | 520 KB | No | 4 MB | SX1262 | OLED (SSD1306) | Yes | GPS |
+| Meshadventurer_sx1268 | ESP32 / 240 MHz | 520 KB | No | 4 MB | SX1268 | OLED (SSD1306) | Yes | GPS |
+| Meshimi | ESP32C6 / 160 MHz | 512 KB | No | 4 MB | SX1262 | None | No | headless |
+| nibble_screen_connect | ESP32S3 / 240 MHz | 512 KB | No | 4MB | SX1262 | OLED (SSD1306) | No |  |
+| RAK_3112 | ESP32S3 / 240 MHz | 512 KB | No | 8 MB | SX1262 | None | Yes | headless, GPS |
+| Station_G2 | ESP32S3 / 240 MHz | 512 KB | Yes (size not declared) | 16MB | SX1262 | OLED (SH1106) | Yes | GPS, more memory headroom |
+| Station_G2_logging | ESP32S3 / 240 MHz | 512 KB | Yes (size not declared) | 16MB | SX1262 | OLED (SH1106) | Yes | GPS, more memory headroom |
+| T_Beam_S3_Supreme_SX1262 | ESP32S3 / 240 MHz | 512 KB | 8 MB | 8MB | SX1262 | OLED (SH1106) | Yes | GPS, more memory headroom |
+| Tbeam_SX1262 | ESP32 / 240 MHz | 520 KB | No | 4 MB | SX1262 | OLED (SSD1306) | Yes | GPS |
+| Tbeam_SX1276 | ESP32 / 240 MHz | 520 KB | No | 4 MB | SX1276 | OLED (SSD1306) | Yes | GPS |
+| Tenstar_C3_sx1262 | ESP32C3 / 160 MHz | 400 KB | No | 4 MB | SX1262 | None | No | headless |
+| Tenstar_C3_sx1268 | ESP32C3 / 160 MHz | 400 KB | No | 4 MB | SX1268 | None | No | headless |
+| ThinkNode_M2 | ESP32S3 / 240 MHz | 512 KB | No | 4MB | SX1262 | OLED (SH1106) | No |  |
+| ThinkNode_M5 | ESP32S3 / 240 MHz | 512 KB | No | 4MB | SX1262 | E-paper (GxEPD) | Yes | low-power display, GPS |
+| WHY2025_badge | ESP32C6 / 160 MHz | 512 KB | No | 4 MB | SX1262 | None | No | headless |
+| Xiao_C3 | ESP32C3 / 160 MHz | 400 KB | No | 4 MB | SX1262 | None | Yes | headless, GPS, web panel off |
+| Xiao_C6 | ESP32C6 / 160 MHz | 512 KB | No | 4 MB | SX1262 | None | No | headless |
+| Xiao_S3_WIO | ESP32S3 / 240 MHz | 512 KB | No | 8 MB | SX1262 | None | Yes | headless, GPS |
+
+Note: all current `repeater_mqtt` boards support the local web panel except `Xiao_C3`, where it is disabled to preserve limited board resources.
 
 
 ## `companion_radio_wifi` Boards With A Display
 ## `companion_radio_wifi` Boards With A Display
 
 

+ 37 - 78
docs/custom-cli.md

@@ -10,47 +10,29 @@ These commands are available on `*_repeater_mqtt` firmware targets.
 
 
 ### MQTT Status And Routing
 ### MQTT Status And Routing
 
 
-- `get mqtt.status`
-  - shows WiFi, NTP, IATA, endpoint status, status publishing state, and TX state
-- `get mqtt.statuscfg`
-  - shows whether periodic status messages are enabled as a simple `on` or `off` value
-  - most users can just use `get mqtt.status`
-- `get mqtt.iata`
-  - shows the IATA/location code used in MQTT topics
-- `set mqtt.iata <code>`
-  - sets the IATA/location code, for example `MEL`
+- `get mqtt.status`: shows WiFi, NTP, IATA, endpoint status, status publishing state, and TX state.
+- `get mqtt.statuscfg`: shows whether periodic status messages are enabled as a simple `on` or `off` value. Most users can just use `get mqtt.status`.
+- `get mqtt.iata`: shows the IATA/location code used in MQTT topics.
+- `set mqtt.iata <code>`: sets the IATA/location code, for example `MEL`.
 
 
 ### MQTT Identity
 ### MQTT Identity
 
 
-- `get mqtt.owner`
-  - shows the configured owner public key
-- `set mqtt.owner <64-hex-char-public-key>`
-  - sets the owner public key used in JWT metadata
-- `mqtt.owner <64-hex-char-public-key>`
-  - shorthand for setting the owner public key
-- `get mqtt.email`
-  - shows the configured owner email
-- `set mqtt.email <email>`
-  - sets the owner email used in JWT metadata
-- `mqtt.email <email>`
-  - shorthand for setting the owner email
+- `get mqtt.owner`: shows the configured owner public key.
+- `set mqtt.owner <64-hex-char-public-key>`: sets the owner public key used in JWT metadata.
+- `mqtt.owner <64-hex-char-public-key>`: shorthand for setting the owner public key.
+- `get mqtt.email`: shows the configured owner email.
+- `set mqtt.email <email>`: sets the owner email used in JWT metadata.
+- `mqtt.email <email>`: shorthand for setting the owner email.
 
 
 ### MQTT Message Controls
 ### MQTT Message Controls
 
 
-- `get mqtt.packets`
-  - shows whether packet messages are published
-- `set mqtt.packets on|off`
-  - enables or disables packet publishing
-- `get mqtt.raw`
-  - shows whether raw packet payloads are published
-- `set mqtt.raw on|off`
-  - enables or disables the separate `raw` MQTT topic
-- `set mqtt.status on|off`
-  - enables or disables periodic MQTT status publishing
-- `get mqtt.tx`
-  - shows whether TX packets are included
-- `set mqtt.tx on|off`
-  - enables or disables TX packet publishing
+- `get mqtt.packets`: shows whether packet messages are published.
+- `set mqtt.packets on|off`: enables or disables packet publishing.
+- `get mqtt.raw`: shows whether raw packet payloads are published.
+- `set mqtt.raw on|off`: enables or disables the separate `raw` MQTT topic.
+- `set mqtt.status on|off`: enables or disables periodic MQTT status publishing.
+- `get mqtt.tx`: shows whether TX packets are included.
+- `set mqtt.tx on|off`: enables or disables TX packet publishing.
 
 
 ### MQTT Endpoints
 ### MQTT Endpoints
 
 
@@ -69,48 +51,31 @@ Legacy dotted aliases are also accepted:
 
 
 ### WiFi Settings For MQTT Repeaters
 ### WiFi Settings For MQTT Repeaters
 
 
-- `get wifi.status`
-  - shows SSID, connection state, raw WiFi status code, and IP when connected
-- `get wifi.ssid`
-  - shows the configured WiFi SSID
-- `set wifi.ssid <ssid>`
-  - sets the WiFi SSID
-- `set wifi.pwd <password>`
-  - sets the WiFi password
-- `get wifi.powersaving`
-  - shows the current WiFi power save mode
-- `set wifi.powersaving none|min|max`
-  - sets WiFi power saving mode
+- `get wifi.status`: shows SSID, connection state, raw WiFi status code, and IP when connected.
+- `get wifi.ssid`: shows the configured WiFi SSID.
+- `set wifi.ssid <ssid>`: sets the WiFi SSID.
+- `set wifi.pwd <password>`: sets the WiFi password.
+- `get wifi.powersaving`: shows the current WiFi power save mode.
+- `set wifi.powersaving none|min|max`: sets WiFi power saving mode.
 
 
 ### Web Panel Controls
 ### Web Panel Controls
 
 
 - `get web`
 - `get web`
-- `get web.status`
-  - shows whether the local HTTPS panel is available
+- `get web.status`: shows whether the local HTTPS panel is available.
 - `set web on|off`
 - `set web on|off`
-- `set.web on|off`
-  - enables or disables the local HTTPS panel
+- `set.web on|off`: enables or disables the local HTTPS panel.
 
 
 ### Runtime Diagnostics
 ### Runtime Diagnostics
 
 
-- `memory`
-  - shows current heap and PSRAM usage
-- `stats-core`
-  - shows battery, uptime, sticky error count, and outbound queue depth
-- `stats-radio`
-  - shows radio noise floor, last RSSI, last SNR, and TX/RX airtime
-- `stats-packets`
-  - shows packet receive/send totals, flood/direct breakdown, and receive errors
+- `memory`: shows current heap and PSRAM usage.
+- `stats-core`: shows battery, uptime, sticky error count, and outbound queue depth.
+- `stats-radio`: shows radio noise floor, last RSSI, last SNR, and TX/RX airtime.
+- `stats-packets`: shows packet receive/send totals, flood/direct breakdown, and receive errors.
 
 
 ### Board Battery Reporting
 ### Board Battery Reporting
 
 
-- `get battery.reporting`
-  - shows whether board battery reporting is enabled
-  - support is board-dependent
-- `set battery.reporting on|off`
-  - enables or disables battery voltage reporting on supported boards
-  - currently useful for Heltec V3 boards where USB-only power can produce misleading battery readings
-  - if your board needs this too, open an issue and support can be added board-by-board
+- `get battery.reporting`: shows whether board battery reporting is enabled. Support is board-dependent.
+- `set battery.reporting on|off`: enables or disables battery voltage reporting on supported boards. This is currently useful for Heltec V3 boards where USB-only power can produce misleading battery readings. If your board needs this too, open an issue and support can be added board-by-board.
 
 
 ## Web Panel Allowlisted Commands
 ## Web Panel Allowlisted Commands
 
 
@@ -181,18 +146,12 @@ To enter `CLI Rescue`:
 - long-press the user button within the first 8 seconds after boot
 - long-press the user button within the first 8 seconds after boot
 - wait for `========= CLI Rescue =========`
 - wait for `========= CLI Rescue =========`
 
 
-- `get wifi.status`
-  - shows configured SSID, connection status, raw WiFi status code, and IP when connected
-- `get wifi.ssid`
-  - shows the configured WiFi SSID
-- `get wifi.powersaving`
-  - shows the current WiFi power saving mode
-- `set wifi.ssid <ssid>`
-  - saves a WiFi SSID and immediately retries connection
-- `set wifi.pwd <password>`
-  - saves a WiFi password and immediately retries connection
-- `set wifi.powersaving none|min|max`
-  - changes the WiFi power save mode
+- `get wifi.status`: shows configured SSID, connection status, raw WiFi status code, and IP when connected.
+- `get wifi.ssid`: shows the configured WiFi SSID.
+- `get wifi.powersaving`: shows the current WiFi power saving mode.
+- `set wifi.ssid <ssid>`: saves a WiFi SSID and immediately retries connection.
+- `set wifi.pwd <password>`: saves a WiFi password and immediately retries connection.
+- `set wifi.powersaving none|min|max`: changes the WiFi power save mode.
 
 
 Companion WiFi builds also still support the existing rescue commands such as:
 Companion WiFi builds also still support the existing rescue commands such as:
 
 

+ 2 - 7
docs/releases.md

@@ -39,9 +39,7 @@ Practical rule:
 
 
 1. Open the release page and download the file for your board.
 1. Open the release page and download the file for your board.
 2. Confirm the board name in the filename matches your hardware.
 2. Confirm the board name in the filename matches your hardware.
-3. Choose one of the following:
-   - update existing firmware with the normal `.bin`
-   - erase the device first, then flash the `-merged.bin`
+3. Choose one of the following: update existing firmware with the normal `.bin`, or erase the device first and flash the `-merged.bin`.
 4. Reboot the device and complete any post-flash setup such as WiFi, MQTT, or radio settings.
 4. Reboot the device and complete any post-flash setup such as WiFi, MQTT, or radio settings.
 
 
 ## Recommended Flasher
 ## Recommended Flasher
@@ -66,10 +64,7 @@ Recommended usage:
 If this is your first time flashing EastMesh firmware, the easiest path is:
 If this is your first time flashing EastMesh firmware, the easiest path is:
 
 
 1. Open <https://flasher.eastmesh.au/>.
 1. Open <https://flasher.eastmesh.au/>.
-2. Select the firmware type you want:
-   - `Companion WiFi`
-   - `Repeater MQTT`
-   - or `Custom`
+2. Select the firmware type you want: `Companion WiFi`, `Repeater MQTT`, or `Custom`.
 3. Flash the correct firmware for your board.
 3. Flash the correct firmware for your board.
 4. Use the built-in setup tools in the flasher site to finish first-time configuration.
 4. Use the built-in setup tools in the flasher site to finish first-time configuration.
 
 

+ 6 - 14
docs/web-panel.md

@@ -50,10 +50,8 @@ Some constrained targets disable the web panel to stay within flash limits. If y
 
 
 Useful CLI commands:
 Useful CLI commands:
 
 
-- `get wifi.status`
-  - shows WiFi state and IP address when connected
-- `get web.status`
-  - shows whether the web panel is up and which URL to use
+- `get wifi.status`: shows WiFi state and IP address when connected.
+- `get web.status`: shows whether the web panel is up and which URL to use.
 
 
 Example:
 Example:
 
 
@@ -137,16 +135,10 @@ Notes:
 
 
 This section includes:
 This section includes:
 
 
-- `mqtt.iata`
-  - selected from a curated east-coast/south-east list
-- `mqtt.owner`
-  - owner public key
-- `mqtt.email`
-  - owner contact email
-- MQTT server toggles
-  - `eastmesh-au`
-  - `letsmesh-eu`
-  - `letsmesh-us`
+- `mqtt.iata`: selected from a curated east-coast/south-east list.
+- `mqtt.owner`: owner public key.
+- `mqtt.email`: owner contact email.
+- MQTT server toggles: `eastmesh-au`, `letsmesh-eu`, and `letsmesh-us`.
 
 
 `MEL` is used as the default dropdown option until the repeater's saved value is loaded.
 `MEL` is used as the default dropdown option until the repeater's saved value is loaded.