Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ This is the **Elektr0Vodka fork** of [ALLFATHER-BV/meshcomod](https://github.com
| [Receive filter](docs/companion_receive_filter.md) | `filter` CLI that drops junk group text (malformed, too old, relayed by a blocked repeater) and hides channel text by sender or content. Off by default. | Builds, not tested on hardware. |
| [SNMP agent](docs/companion_snmp.md) | Read-only SNMPv2c on UDP 161, same OID layout as the Dutch-MeshCore observer. Off by default (`set snmp on`). Not in the touch build. | Builds, not tested on hardware. |
| [Manifest OTA](docs/companion_manifest_ota.md) | `ota check` and `ota update` against the DutchMeshCore OTA server. Never downgrades, refuses a partition layout change. | Builds, not tested on hardware. |
| Extra boards | `usb_tcp` builds for V4 R8, V4 R8 TFT, V4 TFT (no touch), Wireless Stick Lite V3 and Wireless Tracker. BLE and USB builds for the Seeed Wio Tracker L1 / L1 Pro. | Builds, not tested on hardware. |
| Extra boards | `usb_tcp` builds for V4 R8, V4 R8 TFT, V4 TFT (no touch), Wireless Stick Lite V3 and Wireless Tracker, plus experimental ones for Wireless Tracker V2, Vision Master E213, Xiao S3, RAK3112, T-ETH Elite and T-Beam S3 Supreme. BLE and USB builds for the Seeed Wio Tracker L1 / L1 Pro. | Builds, not tested on hardware. |
| CI | One runner per board, cached toolchains, pre-releases for test builds. | In use. |

A build with the receive filter reports it in `ver`, e.g. `v1.18.0.1-<sha>-dmc-filter (Build: ...)`.
Expand Down Expand Up @@ -52,6 +52,8 @@ Otherwise this is the same codebase as MeshCore; upstream meshcomod syncs from M

"Hardware tested" means a fork build has run on that board. Boards marked "build only" compile and are released, but nobody has flashed this fork's build on one yet.

Boards marked **experimental** go one step further out: their env is the board's stock companion build moved onto the meshcomod multi-transport stack, and nobody working on the fork owns one. Beyond the general fork caveats, nothing board specific has been checked on them: display and button handling, battery reading and power off, Wi-Fi range, and free heap with Wi-Fi, BLE and SNMP all running. Flash one only if you can recover the board over USB, and please report what works and what does not.

| Device | MCU | Display | Build env | Fork build |
|---|---|---|---|---|
| **Heltec WiFi LoRa 32 V4** | ESP32-S3 | 128×64 OLED | `heltec_v4_companion_radio_usb_tcp` | Hardware tested (v1.17.0.4-DMC-EV) |
Expand All @@ -63,6 +65,12 @@ Otherwise this is the same codebase as MeshCore; upstream meshcomod syncs from M
| **Heltec WiFi LoRa 32 V4 TFT** | ESP32-S3 | 240×320 TFT (button UI, no touch) | `heltec_v4_tft_companion_radio_usb_tcp` | Build only, new in fork |
| **Heltec Wireless Stick Lite V3** | ESP32-S3 | none | `Heltec_WSL3_companion_radio_usb_tcp` | Build only, new in fork |
| **Heltec Wireless Tracker** | ESP32-S3 | 160×80 TFT, GPS | `Heltec_Wireless_Tracker_companion_radio_usb_tcp` | Build only, new in fork |
| **Heltec Wireless Tracker V2** | ESP32-S3 | 160×80 TFT, GPS | `heltec_tracker_v2_companion_radio_usb_tcp` | **Experimental**, build only, new in fork |
| **Heltec Vision Master E213** | ESP32-S3 | 250×122 e-ink | `Heltec_E213_companion_radio_usb_tcp` | **Experimental**, build only, new in fork |
| **Seeed Xiao S3** (Wio-SX1262 kit) | ESP32-S3 | optional 128×64 OLED | `Xiao_S3_companion_radio_usb_tcp` | **Experimental**, build only, new in fork |
| **RAK3112** (WisBlock) | ESP32-S3 | none | `RAK_3112_companion_radio_usb_tcp` | **Experimental**, build only, new in fork |
| **LilyGo T-ETH Elite** | ESP32-S3 | none | `LilyGo_TETH_Elite_sx1262_companion_radio_usb_tcp` | **Experimental**, build only, new in fork (Wi-Fi, not Ethernet) |
| **LilyGo T-Beam S3 Supreme** | ESP32-S3 | 128×64 OLED, GPS | `T_Beam_S3_Supreme_SX1262_companion_radio_usb_tcp` | **Experimental**, build only, new in fork |
| **Seeed Wio Tracker L1 / L1 Pro** | nRF52840 | 128×64 OLED, GPS | `WioTrackerL1_companion_radio_ble`, `WioTrackerL1_companion_radio_usb` | Build only, new in fork |

The SNMP, receive filter and manifest OTA features are not hardware tested on any board yet, including V4 and V3.
Expand Down
6 changes: 6 additions & 0 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -328,6 +328,12 @@ MESHCOMOD_COMPANION_ENVS=(
"heltec_v4_tft_companion_radio_usb_tcp" # Heltec V4 TFT without the touch UI
"Heltec_WSL3_companion_radio_usb_tcp" # Heltec Wireless Stick Lite V3, headless
"Heltec_Wireless_Tracker_companion_radio_usb_tcp" # Heltec Wireless Tracker (ST7735 TFT, GPS)
"heltec_tracker_v2_companion_radio_usb_tcp" # Heltec Wireless Tracker V2 (ST7735 TFT, GPS, FEM)
"Heltec_E213_companion_radio_usb_tcp" # Heltec Vision Master E213 (e-ink)
"Xiao_S3_companion_radio_usb_tcp" # Seeed Xiao S3 + Wio-SX1262 kit, optional SSD1306 OLED
"RAK_3112_companion_radio_usb_tcp" # RAK3112 (WisBlock ESP32-S3), headless
"LilyGo_TETH_Elite_sx1262_companion_radio_usb_tcp" # LilyGo T-ETH Elite, headless, Wi-Fi only
"T_Beam_S3_Supreme_SX1262_companion_radio_usb_tcp" # LilyGo T-Beam S3 Supreme (SH1106 OLED, GPS)
# Elecrow ThinkNode M7 (ESP32-S3 + LR1110). No _usb_tcp multi-transport variant
# exists for this board, so these are the stock single-transport companions.
# Hardware-validated by @ptr727 in #47; we hold none, so treat regressions here
Expand Down
1 change: 1 addition & 0 deletions changelog_ev.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ Newest first. Each entry names the PR that landed it.

### Added

- **Six more multi-transport companion boards (experimental)**: `usb_tcp` envs (USB + TCP + WebSocket + BLE, SNMP, manifest OTA) for the Heltec Wireless Tracker V2, Heltec Vision Master E213, Seeed Xiao S3, RAK3112, LilyGo T-ETH Elite and LilyGo T-Beam S3 Supreme, all added to the release list. Each is an ESP32-S3 with at least 8 MB flash on its existing partition table and reuses the display driver of the board's stock companion builds (RAK3112 and T-ETH Elite are headless). The T-ETH Elite build runs over Wi-Fi; its Ethernet port is not used, as upstream has no Ethernet companion for it either. Marked experimental in the README: nobody working on the fork owns these boards, so beyond building, nothing board specific (display, buttons, battery, free heap) has been checked. Builds, not tested on hardware.
- **Seeed Wio Tracker L1 / L1 Pro companions**: the existing upstream `WioTrackerL1_companion_radio_ble` and `WioTrackerL1_companion_radio_usb` envs are now in the release list, so the fork builds and releases them (`.uf2` + DFU `.zip`). The nRF52840 has no Wi-Fi, so these are single-transport (BLE or USB) with no TCP, SNMP or manifest OTA. The CAD toggle and receive filter build in. Builds, not tested on hardware.

### CI and build
Expand Down
2 changes: 1 addition & 1 deletion docs/CI_RELEASES.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ releases on that track (keeping the newest 5).

| Track | Tag prefix | Example tag | Workflow | Builds |
|-------|-----------|-------------|----------|--------|
| Companion | `companion-` | `companion-v1.16.0.1` | build-companion-firmwares | the envs in `MESHCOMOD_COMPANION_ENVS` in `build.sh` (V4, V3, Wireless Paper, Xiao, V4 R8, V4 R8 TFT, V4 TFT, Wireless Stick Lite V3 and Wireless Tracker `_usb_tcp`, ThinkNode M7 BLE and Ethernet, Wio Tracker L1 BLE and USB) |
| Companion | `companion-` | `companion-v1.16.0.1` | build-companion-firmwares | the envs in `MESHCOMOD_COMPANION_ENVS` in `build.sh` (V4, V3, Wireless Paper, Xiao, V4 R8, V4 R8 TFT, V4 TFT, Wireless Stick Lite V3, Wireless Tracker, Wireless Tracker V2, E213, Xiao S3, RAK3112, T-ETH Elite and T-Beam S3 Supreme `_usb_tcp`, ThinkNode M7 BLE and Ethernet, Wio Tracker L1 BLE and USB) |
| Room server | `room-server-` | `room-server-v1.16.0.1` | build-room-server-firmwares | `*_room_server` |
| Repeater | — | (manual `workflow_dispatch`) | build-repeater-firmwares | `*_repeater_tcp` |

Expand Down
25 changes: 25 additions & 0 deletions docs/companion_snmp.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,12 @@ Builds with the agent (compile flag `-D WITH_SNMP=1`):
* `heltec_v4_tft_companion_radio_usb_tcp` (V4 TFT without touch, `ui-new` screens)
* `Heltec_WSL3_companion_radio_usb_tcp`
* `Heltec_Wireless_Tracker_companion_radio_usb_tcp`
* `heltec_tracker_v2_companion_radio_usb_tcp`
* `Heltec_E213_companion_radio_usb_tcp`
* `Xiao_S3_companion_radio_usb_tcp`
* `RAK_3112_companion_radio_usb_tcp`
* `LilyGo_TETH_Elite_sx1262_companion_radio_usb_tcp`
* `T_Beam_S3_Supreme_SX1262_companion_radio_usb_tcp`

The touch build does not include it yet: it needs a heap reading on hardware
first, because BLE co-init there is already gated on free heap.
Expand Down Expand Up @@ -228,6 +234,25 @@ The Wireless Tracker sits with Wireless Paper and Xiao at about 150 KB static
RAM (the 256-entry offline queue), so it is another board to check for free
heap on hardware.

The experimental boards (see the README device table) were measured with a
plain `pio run -e <env>`, so without `DISABLE_DEBUG=1` and without the OTA
variant that `build.sh` bakes in. Expect the `build.sh` figures to differ by a
few KB:

| Env | Flash | Static RAM | App slot used |
| --- | --- | --- | --- |
| `heltec_tracker_v2_companion_radio_usb_tcp` | 1,678,605 B | 164,904 B | 50.2% of 3.19 MB |
| `Heltec_E213_companion_radio_usb_tcp` | 1,611,609 B | 162,476 B | 24.6% of 6.25 MB |
| `Xiao_S3_companion_radio_usb_tcp` | 1,604,285 B | 152,456 B | 48.0% of 3.19 MB |
| `RAK_3112_companion_radio_usb_tcp` | 1,607,765 B | 152,880 B | 48.1% of 3.19 MB |
| `LilyGo_TETH_Elite_sx1262_companion_radio_usb_tcp` | 1,517,865 B | 149,872 B | 23.2% of 6.25 MB |
| `T_Beam_S3_Supreme_SX1262_companion_radio_usb_tcp` | 1,608,273 B | 151,616 B | 48.1% of 3.19 MB |

All six use the 256-entry offline queue, so they start at 150 to 165 KB static
RAM like Wireless Paper and Xiao S3 WIO. The Wireless Tracker V2 and E213 are
the highest; the Tracker V2 has no PSRAM, so it is the first to check for free
heap with Wi-Fi, BLE and the agent running.

These deltas were measured when the agent first went in, before the
observer-aligned OIDs (`.1.5.0` onwards, `.9`, `.10`). With the full current
OID set, `Heltec_v3_companion_radio_usb_tcp` builds to 1,627,545 B flash and
Expand Down
37 changes: 37 additions & 0 deletions variants/heltec_e213/platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,43 @@ lib_deps =
densaugeo/base64 @ ~1.4.0
bakercp/CRC32 @ ^2.0.0

; Heltec E213: meshcomod USB + TCP + WebSocket + BLE companion on the ui-new e-ink screens.
[env:Heltec_E213_companion_radio_usb_tcp]
extends = Heltec_E213_base
extra_scripts = pre:scripts/inject_wifi_env.py, merge-bin.py
build_flags =
${Heltec_E213_base.build_flags}
-I examples/companion_radio/ui-new
-D MAX_CONTACTS=350
-D MAX_GROUP_CHANNELS=40
-D DISPLAY_CLASS=E213Display
-D AUTO_OFF_MILLIS=0
-D OFFLINE_QUEUE_SIZE=256
-D ADMIN_PASSWORD='"password"'
-D MULTI_TRANSPORT_COMPANION=1
-D TCP_PORT=5000
-D WS_PORT=8765
-D BLE_PIN_CODE=123456
; Plain ws:// only (no WSS): smaller image, more internal RAM for HTTPS OTA.
-D CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=1
-D CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384
-D CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096
; Optional SNMPv2c agent, off until `set snmp on` (docs/companion_snmp.md).
-D WITH_SNMP=1
; -D MESH_PACKET_LOGGING=1
; -D MESH_DEBUG=1
build_src_filter = ${Heltec_E213_base.build_src_filter}
+<helpers/ui/E213Display.cpp>
+<helpers/esp32/*.cpp>
+<../examples/companion_radio/*.cpp>
+<../examples/companion_radio/ui-new/*.cpp>
lib_deps =
${Heltec_E213_base.lib_deps}
${esp32_ota.lib_deps}
densaugeo/base64 @ ~1.4.0
0neblock/SNMP_Agent @ 2.1.0
bakercp/CRC32 @ ^2.0.0

[env:Heltec_E213_repeater]
extends = Heltec_E213_base
build_flags =
Expand Down
37 changes: 37 additions & 0 deletions variants/heltec_tracker_v2/platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,43 @@ lib_deps =
${Heltec_tracker_v2.lib_deps}
densaugeo/base64 @ ~1.4.0

; Wireless Tracker V2: meshcomod USB + TCP + WebSocket + BLE companion on the ui-new ST7735 screens.
[env:heltec_tracker_v2_companion_radio_usb_tcp]
extends = Heltec_tracker_v2
extra_scripts = pre:scripts/inject_wifi_env.py, merge-bin.py
build_flags =
${Heltec_tracker_v2.build_flags}
-I examples/companion_radio/ui-new
-D MAX_CONTACTS=350
-D MAX_GROUP_CHANNELS=40
-D DISPLAY_CLASS=ST7735Display
-D AUTO_SHUTDOWN_MILLIVOLTS=3400
-D OFFLINE_QUEUE_SIZE=256
-D ADMIN_PASSWORD='"password"'
-D MULTI_TRANSPORT_COMPANION=1
-D TCP_PORT=5000
-D WS_PORT=8765
-D BLE_PIN_CODE=123456
; Plain ws:// only (no WSS): smaller image, more internal RAM for HTTPS OTA.
-D CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=1
-D CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384
-D CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096
; Optional SNMPv2c agent, off until `set snmp on` (docs/companion_snmp.md).
-D WITH_SNMP=1
; -D MESH_PACKET_LOGGING=1
; -D MESH_DEBUG=1
build_src_filter = ${Heltec_tracker_v2.build_src_filter}
+<helpers/ui/ST7735Display.cpp>
+<helpers/ui/MomentaryButton.cpp>
+<helpers/esp32/*.cpp>
+<../examples/companion_radio/*.cpp>
+<../examples/companion_radio/ui-new/*.cpp>
lib_deps =
${Heltec_tracker_v2.lib_deps}
${esp32_ota.lib_deps}
densaugeo/base64 @ ~1.4.0
0neblock/SNMP_Agent @ 2.1.0

[env:heltec_tracker_v2_sensor]
extends = Heltec_tracker_v2
build_flags =
Expand Down
34 changes: 34 additions & 0 deletions variants/lilygo_tbeam_supreme_SX1262/platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,40 @@ lib_deps =
${T_Beam_S3_Supreme_SX1262.lib_deps}
densaugeo/base64 @ ~1.4.0

; T-Beam S3 Supreme: meshcomod USB + TCP + WebSocket + BLE companion on the ui-new SH1106 screens.
[env:T_Beam_S3_Supreme_SX1262_companion_radio_usb_tcp]
extends = T_Beam_S3_Supreme_SX1262
extra_scripts = pre:scripts/inject_wifi_env.py, merge-bin.py
build_flags =
${T_Beam_S3_Supreme_SX1262.build_flags}
-I examples/companion_radio/ui-new
-D MAX_CONTACTS=350
-D MAX_GROUP_CHANNELS=40
-D OFFLINE_QUEUE_SIZE=256
-D ADMIN_PASSWORD='"password"'
-D MULTI_TRANSPORT_COMPANION=1
-D TCP_PORT=5000
-D WS_PORT=8765
-D BLE_PIN_CODE=123456
; Plain ws:// only (no WSS): smaller image, more internal RAM for HTTPS OTA.
-D CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=1
-D CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384
-D CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096
; Optional SNMPv2c agent, off until `set snmp on` (docs/companion_snmp.md).
-D WITH_SNMP=1
; -D MESH_PACKET_LOGGING=1
; -D MESH_DEBUG=1
build_src_filter = ${T_Beam_S3_Supreme_SX1262.build_src_filter}
+<helpers/esp32/*.cpp>
+<helpers/ui/MomentaryButton.cpp>
+<../examples/companion_radio/*.cpp>
+<../examples/companion_radio/ui-new/*.cpp>
lib_deps =
${T_Beam_S3_Supreme_SX1262.lib_deps}
${esp32_ota.lib_deps}
densaugeo/base64 @ ~1.4.0
0neblock/SNMP_Agent @ 2.1.0

[env:T_Beam_S3_Supreme_SX1262_kiss_modem]
extends = T_Beam_S3_Supreme_SX1262
build_src_filter = ${T_Beam_S3_Supreme_SX1262.build_src_filter}
Expand Down
33 changes: 33 additions & 0 deletions variants/lilygo_teth_elite/platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,39 @@ lib_deps =
${LilyGo_TETH_Elite_sx1262.lib_deps}
densaugeo/base64 @ ~1.4.0

; T-ETH Elite: meshcomod USB + TCP + WebSocket + BLE companion, headless. Wi-Fi only, the Ethernet port is not used.
[env:LilyGo_TETH_Elite_sx1262_companion_radio_usb_tcp]
extends = LilyGo_TETH_Elite_sx1262
extra_scripts = pre:scripts/inject_wifi_env.py, merge-bin.py
build_flags =
${LilyGo_TETH_Elite_sx1262.build_flags}
-I examples/companion_radio/ui-new
-D MAX_CONTACTS=350
-D MAX_GROUP_CHANNELS=40
-D OFFLINE_QUEUE_SIZE=256
-D ADMIN_PASSWORD='"password"'
-D MULTI_TRANSPORT_COMPANION=1
-D TCP_PORT=5000
-D WS_PORT=8765
-D BLE_PIN_CODE=123456
; Plain ws:// only (no WSS): smaller image, more internal RAM for HTTPS OTA.
-D CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=1
-D CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384
-D CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096
; Optional SNMPv2c agent, off until `set snmp on` (docs/companion_snmp.md).
-D WITH_SNMP=1
; -D MESH_PACKET_LOGGING=1
; -D MESH_DEBUG=1
build_src_filter = ${LilyGo_TETH_Elite_sx1262.build_src_filter}
+<helpers/ui/NullDisplayDriver.cpp>
+<helpers/esp32/*.cpp>
+<../examples/companion_radio/*.cpp>
lib_deps =
${LilyGo_TETH_Elite_sx1262.lib_deps}
${esp32_ota.lib_deps}
densaugeo/base64 @ ~1.4.0
0neblock/SNMP_Agent @ 2.1.0

[env:LilyGo_TETH_Elite_sx1262_kiss_modem]
extends = LilyGo_TETH_Elite_sx1262
build_src_filter = ${LilyGo_TETH_Elite_sx1262.build_src_filter}
Expand Down
34 changes: 34 additions & 0 deletions variants/rak3112/platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,40 @@ lib_deps =
${rak3112.lib_deps}
densaugeo/base64 @ ~1.4.0

; RAK3112: meshcomod USB + TCP + WebSocket + BLE companion, headless (no display).
[env:RAK_3112_companion_radio_usb_tcp]
extends = rak3112
extra_scripts = pre:scripts/inject_wifi_env.py, merge-bin.py
build_flags =
${rak3112.build_flags}
-I examples/companion_radio/ui-new
-D MAX_CONTACTS=350
-D MAX_GROUP_CHANNELS=40
-D AUTO_SHUTDOWN_MILLIVOLTS=3400
-D OFFLINE_QUEUE_SIZE=256
-D ADMIN_PASSWORD='"password"'
-D MULTI_TRANSPORT_COMPANION=1
-D TCP_PORT=5000
-D WS_PORT=8765
-D BLE_PIN_CODE=123456
; Plain ws:// only (no WSS): smaller image, more internal RAM for HTTPS OTA.
-D CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=1
-D CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384
-D CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096
; Optional SNMPv2c agent, off until `set snmp on` (docs/companion_snmp.md).
-D WITH_SNMP=1
; -D MESH_PACKET_LOGGING=1
; -D MESH_DEBUG=1
build_src_filter = ${rak3112.build_src_filter}
+<helpers/ui/NullDisplayDriver.cpp>
+<helpers/esp32/*.cpp>
+<../examples/companion_radio/*.cpp>
lib_deps =
${rak3112.lib_deps}
${esp32_ota.lib_deps}
densaugeo/base64 @ ~1.4.0
0neblock/SNMP_Agent @ 2.1.0

[env:RAK_3112_sensor]
extends = rak3112
build_flags =
Expand Down
37 changes: 37 additions & 0 deletions variants/xiao_s3/platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,43 @@ lib_deps =
densaugeo/base64 @ ~1.4.0
adafruit/Adafruit SSD1306 @ ^2.5.13

; Xiao S3: meshcomod USB + TCP + WebSocket + BLE companion, ui-new on the optional SSD1306 OLED.
[env:Xiao_S3_companion_radio_usb_tcp]
extends = Xiao_S3
extra_scripts = pre:scripts/inject_wifi_env.py, merge-bin.py
build_flags =
${Xiao_S3.build_flags}
-I examples/companion_radio/ui-new
-D MAX_CONTACTS=350
-D MAX_GROUP_CHANNELS=40
-D DISPLAY_CLASS=SSD1306Display
-D OFFLINE_QUEUE_SIZE=256
-D ADMIN_PASSWORD='"password"'
-D MULTI_TRANSPORT_COMPANION=1
-D TCP_PORT=5000
-D WS_PORT=8765
-D BLE_PIN_CODE=123456
; Plain ws:// only (no WSS): smaller image, more internal RAM for HTTPS OTA.
-D CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=1
-D CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384
-D CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096
; Optional SNMPv2c agent, off until `set snmp on` (docs/companion_snmp.md).
-D WITH_SNMP=1
; -D MESH_PACKET_LOGGING=1
; -D MESH_DEBUG=1
build_src_filter = ${Xiao_S3.build_src_filter}
+<helpers/ui/SSD1306Display.cpp>
+<helpers/esp32/*.cpp>
+<helpers/ui/MomentaryButton.cpp>
+<../examples/companion_radio/*.cpp>
+<../examples/companion_radio/ui-new/*.cpp>
lib_deps =
${Xiao_S3.lib_deps}
${esp32_ota.lib_deps}
densaugeo/base64 @ ~1.4.0
adafruit/Adafruit SSD1306 @ ^2.5.13
0neblock/SNMP_Agent @ 2.1.0

[env:Xiao_S3_sensor]
extends = Xiao_S3
build_src_filter = ${Xiao_S3.build_src_filter}
Expand Down
Loading