docs: simplify board tables and clean up published markdown rendering

This commit is contained in:
Jared Dohrman
2026-04-13 16:24:08 +10:00
bovenliggende 631fcc67fb
commit b29436eb62
5 gewijzigde bestanden met toevoegingen van 95 en 142 verwijderingen
+6
Bestand weergeven
@@ -119,6 +119,12 @@ body {
background: transparent;
}
@media screen and (min-width: 76.25em) {
.md-grid {
max-width: 80rem;
}
}
.md-content__inner {
background: linear-gradient(180deg, var(--web-surface-2), var(--web-surface-1));
border: 1px solid var(--web-border);
+44 -43
Bestand weergeven
@@ -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`.
- `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.
- `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)`.
@@ -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`.
| 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
+37 -78
Bestand weergeven
@@ -10,47 +10,29 @@ These commands are available on `*_repeater_mqtt` firmware targets.
### 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
- `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
- `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
@@ -69,48 +51,31 @@ Legacy dotted aliases are also accepted:
### 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
- `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`
- enables or disables the local HTTPS panel
- `set.web on|off`: enables or disables the local HTTPS panel.
### 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
- `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
@@ -181,18 +146,12 @@ To enter `CLI Rescue`:
- long-press the user button within the first 8 seconds after boot
- 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:
+2 -7
Bestand weergeven
@@ -39,9 +39,7 @@ Practical rule:
1. Open the release page and download the file for your board.
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.
## Recommended Flasher
@@ -66,10 +64,7 @@ Recommended usage:
If this is your first time flashing EastMesh firmware, the easiest path is:
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.
4. Use the built-in setup tools in the flasher site to finish first-time configuration.
+6 -14
Bestand weergeven
@@ -50,10 +50,8 @@ Some constrained targets disable the web panel to stay within flash limits. If y
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:
@@ -137,16 +135,10 @@ Notes:
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.