Summary
This issue tracks initial hardware support for M5Stack Cardputer ADV used with M5Stack Cap LoRa-1262.
The current upstream tree does not appear to provide dedicated handling for this exact hardware combination. As a result, Cardputer ADV can be brought up partially, but LoRa RF behavior may be inconsistent compared with hardware-specific builds tested on the same device.
The goal is to add a minimal, reviewable bring-up path for this device combination without changing MeshCore protocol behavior, routing, BLE logic, or UI behavior.
Hardware
Tested hardware:
- M5Stack Cardputer ADV
- M5Stack Cap LoRa-1262
- SX1262-based LoRa path
Problem
During real-device testing with Cardputer ADV + Cap LoRa-1262, the radio could initialize and operate, but RF behavior was not as consistent as expected.
The issue appears to be related to the low-level hardware bring-up path for the LoRa cap, especially around:
- IO expander initialization
- RF path control
- SX1262 PA configuration timing
This does not appear to require changes in MeshCore application logic, routing, protocol behavior, BLE behavior, or UI behavior.
Expected behavior
The Cardputer ADV with Cap LoRa-1262 should have a clean and hardware-appropriate radio bring-up path where:
- the LoRa cap IO expander is initialized without unnecessarily driving the whole expander bank high
- only the required output is enabled during startup
- TX/RX RF switching is left to the SX1262 DIO2 RF switch control path
- PA configuration is applied only after successful radio initialization
Proposed scope
The initial support should be intentionally narrow and limited to hardware bring-up.
Proposed changes:
- Update the
0x43 IO expander setup for the Cardputer LoRa cap path so that only the required output is enabled.
- Avoid driving the entire IO expander bank high during startup.
- Keep TX/RX RF switching handled by the SX1262 DIO2 RF switch control path.
- Apply SX1262 PA configuration only after
std_init() completes successfully.
Out of scope
This issue should not introduce:
- protocol changes
- routing changes
- BLE changes
- UI changes
- experimental AGC tuning
- broad refactoring of other board variants
- behavior changes unrelated to Cardputer ADV LoRa hardware bring-up
Files likely affected
The initial implementation is expected to touch only the existing Cardputer variant files:
variants/m5stack_cardputer/M5CardputerBoard.h
variants/m5stack_cardputer/target.cpp
Open questions
Feedback from maintainers would be helpful on:
- whether the proposed IO expander initialization matches expectations for Cap LoRa-1262 hardware
- whether the SX1262 PA configuration is appropriate for upstream inclusion
- whether Cardputer ADV support should continue under the current
m5stack_cardputer variant path
- whether a separate ADV-specific variant should be introduced later
Related pull request
A small initial PR is being prepared/opened to address this issue with a minimal hardware-focused patch set.
Summary
This issue tracks initial hardware support for M5Stack Cardputer ADV used with M5Stack Cap LoRa-1262.
The current upstream tree does not appear to provide dedicated handling for this exact hardware combination. As a result, Cardputer ADV can be brought up partially, but LoRa RF behavior may be inconsistent compared with hardware-specific builds tested on the same device.
The goal is to add a minimal, reviewable bring-up path for this device combination without changing MeshCore protocol behavior, routing, BLE logic, or UI behavior.
Hardware
Tested hardware:
Problem
During real-device testing with Cardputer ADV + Cap LoRa-1262, the radio could initialize and operate, but RF behavior was not as consistent as expected.
The issue appears to be related to the low-level hardware bring-up path for the LoRa cap, especially around:
This does not appear to require changes in MeshCore application logic, routing, protocol behavior, BLE behavior, or UI behavior.
Expected behavior
The Cardputer ADV with Cap LoRa-1262 should have a clean and hardware-appropriate radio bring-up path where:
Proposed scope
The initial support should be intentionally narrow and limited to hardware bring-up.
Proposed changes:
0x43IO expander setup for the Cardputer LoRa cap path so that only the required output is enabled.std_init()completes successfully.Out of scope
This issue should not introduce:
Files likely affected
The initial implementation is expected to touch only the existing Cardputer variant files:
variants/m5stack_cardputer/M5CardputerBoard.hvariants/m5stack_cardputer/target.cppOpen questions
Feedback from maintainers would be helpful on:
m5stack_cardputervariant pathRelated pull request
A small initial PR is being prepared/opened to address this issue with a minimal hardware-focused patch set.