Merge PR #26: add M5Stack Cardputer-Adv support

Integrate mjgodat's keyboard/display Companion, USB Companion, Repeater and
Room Server support for Cardputer-Adv with Cap LoRa-1262.

Fix UI retry dispatch and ACK ownership, packet/storage bounds, numeric
input validation, sparse channel selection, optional-display shutdown,
keyboard layout limits, reserved GPIOs and Windows cross-drive includes.
Retain all 350 contacts and queue capacity using the existing contact cache;
account for the custom UI's runtime allocations in the RAM admission gate.
Carry the MultiMote and DejaVu notices with firmware packages and add CI
coverage for all four board roles plus the shared T-Deck Companion.

Validation: all four Cardputer roles and the T-Deck BLE Companion build;
Cardputer sanitizer, UI, layout, ownership, licensing and storage tests;
65 RAM-policy tests and 14 contact-cache tests. PlatformIO ran serially.

PR: https://github.com/mikecarper/MeshCore/pull/26
This commit is contained in:
mikecarper committed 2026-10-27 22:25:35 -07:00
commit 64a068506b
76 files changed
+27802 -4

No files matched your search

+20
View File
@@ -207,6 +207,20 @@ jobs:
pio run -e Xiao_rp2040_companion_radio_usb
-e LilyGo_Tlora_C6_room_server_ -e Generic_ESPNOW_comp_radio_usb
cardputer-smoke:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Build Environment
uses: ./.github/actions/setup-build-environment
- name: Compile Cardputer-Adv roles and shared T-Deck Companion
# One process: PlatformIO environments share the checkout build tree.
run: >-
pio run -e M5Stack_Cardputer_Adv_companion_radio_ble
-e M5Stack_Cardputer_Adv_companion_radio_usb
-e M5Stack_Cardputer_Adv_repeater -e M5Stack_Cardputer_Adv_room_server
-e LilyGo_TDeck_companion_radio_ble
management-reports:
runs-on: ubuntu-latest
steps:
@@ -383,6 +397,12 @@ jobs:
- name: Verify parser, delivery, storage, permissions, clock and radio stability
run: |
python3 -B test/test_cardputer_board_policy.py -v
python3 -B test/test_cardputer_layout.py -v
python3 -B test/test_cardputer_ui.py -v
python3 -B test/test_cardputer_mesh_storage.py -v
python3 -B test/test_cardputer_runtime_memory.py -v
python3 -B test/test_cardputer_license.py -v
python3 -B test/test_protocol_parser_bounds.py -v
python3 -B test/test_region_map_transactions.py -v
python3 -B test/test_region_name_export.py -v