Skip to content

Feature request: in-app SD Card Firmware Update (re-flash fallback) for USB-locked X4 units #28

Description

@RogerVeiga

Summary

Please consider restoring/porting the in-app SD Card Firmware Update feature
from upstream CrossPoint (also present in the CrossInk fork). On X4 units with USB
serial flashing permanently disabled, this is currently the only non-hardware way
to re-flash — and CrossPet doesn't expose it.

Background

A number of grey-market X4 units ship with the ESP32-C3 USB serial download mode
permanently disabled (eFuse burned). On these units the device never enumerates as
a serial port ("USB device not recognized"), so both the web/browser installer
and the PlatformIO CLI are unusable — they both depend on USB serial.

For these users, OTA is the only available flashing channel:

  • CrossPet's own OTA (CrossPet → CrossPet) works fine.
  • OTA cross-flashing to a different firmware (back to CrossPoint/CrossInk, or to
    stock) downloads the image fully, but then fails at the device-side
    install/finalize step ("Update failed").

Net effect: once CrossPet is installed on a USB-locked unit, the user can update
CrossPet but cannot switch to another fork or revert. There is no working exit.

The upstream workaround that's missing

Upstream CrossPoint and the CrossInk fork expose an in-app "SD Card Firmware
Update"
option (place update.bin at the SD root, flash from within the
firmware). This is the documented escape hatch for exactly this locked-device
scenario. CrossPet appears to have dropped it — there's no equivalent under
Settings → System, and the docs only describe reverting via USB (browser installer
/ PlatformIO), which locked units can't use.

Request

Port/restore the SD-card firmware update path so users on USB-locked X4 hardware
have a non-USB way to re-flash (switch forks or revert to stock). Since the feature
already exists upstream, this is hopefully a low-effort restore rather than new work.

Why it matters

Without it, installing CrossPet on a USB-locked unit is effectively a one-way door.
Restoring the SD-flash fallback makes CrossPet safe to try on this (fairly common)
locked hardware.

I have a USB-locked X4 currently stuck on CrossPet and am happy to test any build.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions