Skip to content

[Feature request] Add initial support for M5Stack Cardputer ADV with Cap LoRa-1262 #2458

@kucharz96

Description

@kucharz96

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:

  1. Update the 0x43 IO expander setup for the Cardputer LoRa cap path so that only the required output is enabled.
  2. Avoid driving the entire IO expander bank high during startup.
  3. Keep TX/RX RF switching handled by the SX1262 DIO2 RF switch control path.
  4. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions