Skip to content

Conversation

@vidplace7
Copy link
Member

@vidplace7 vidplace7 commented Oct 7, 2025

Naming (no more renames!)

  • Sets output firmware name via platformio-pre.py (rather than renaming later with build-*.sh)
    • Standard firmware: firmware-$env-$version
    • Linux native: meshtasticd
  • Updates Actions to use new artifact names
  • Updates Linux packaging to use new artifact names
  • Updates various scripts in bin/ to use new artifact names
  • Remove redundant .zip extension in actions/upload-artifact and actions/download-artifact

Meshtastic Manifest Target! 🎯

  • Adds new custom PlatformIO target mtjson
    • simple json manifest for the firmware build process created via platformio-custom.py.
    • Ex: pio run -e heltec-v3 -t mtjson
    • Added at the end of all build-*.sh scripts.
    • Also: Try it in VS Code!
      image
  • Moved platform-specific extra_scripts to separate scripts (platformio-custom.py was getting too big)
  • ESP32: Generate json partitiontable as a pre: step, store as a custom_ platformio variable for use in the manifest later.
  • Rewrote bin/install-* and bin/update-* scripts to leverage the manifest.
    • device-install.sh: Parse json using jq (available in every package manager)
    • device-install.bat: Parse json using powershell

The intent is to use this manifest to simplify flasher / install script board support, and to better support DIY boards (uploading zip to the flasher manually).


Examples

All examples reflect testing in my fork, which is why "repo": "vidplace7/meshtastic-firmware"

Additional examples in Artifacts at https://github.com/vidplace7/meshtastic-firmware/actions/runs/18390265721
👀 Look for firmware-*.mt.json files.

Ex t-deck-tft:

{
  "version": "2.7.12.4fd74ee",
  "build_epoch": 1759968000,
  "board": "t-deck-tft",
  "mcu": "esp32s3",
  "repo": "vidplace7/meshtastic-firmware",
  "files": [
    {
      "name": "firmware-t-deck-tft-2.7.12.4fd74ee.elf",
      "md5": "146db6494304dc1c86fcb5802ca1cb45",
      "bytes": 25519552
    },
    {
      "name": "firmware-t-deck-tft-2.7.12.4fd74ee.bin",
      "md5": "3d26cb7b38b430f1f832dd82c7bb0444",
      "bytes": 3518656
    },
    {
      "name": "firmware-t-deck-tft-2.7.12.4fd74ee.factory.bin",
      "md5": "800c35b8acaf73c2ad424b0cf0ac761b",
      "bytes": 3584192
    },
    {
      "name": "littlefs-t-deck-tft-2.7.12.4fd74ee.bin",
      "md5": "a65d67cc295107aa50ce7fbedc852a0e",
      "bytes": 3538944
    }
  ],
  "part": [
    {
      "name": "nvs",
      "type": "data",
      "subtype": "nvs",
      "offset": "0x9000",
      "size": "0x5000",
      "flags": ""
    },
    {
      "name": "otadata",
      "type": "data",
      "subtype": "ota",
      "offset": "0xe000",
      "size": "0x2000",
      "flags": ""
    },
    {
      "name": "app0",
      "type": "app",
      "subtype": "ota_0",
      "offset": "0x10000",
      "size": "0x640000",
      "flags": ""
    },
    {
      "name": "app1",
      "type": "app",
      "subtype": "ota_1",
      "offset": "0x650000",
      "size": "0x640000",
      "flags": ""
    },
    {
      "name": "spiffs",
      "type": "data",
      "subtype": "spiffs",
      "offset": "0xc90000",
      "size": "0x360000",
      "flags": ""
    },
    {
      "name": "coredump",
      "type": "data",
      "subtype": "coredump",
      "offset": "0xFF0000",
      "size": "0x10000",
      "flags": ""
    }
  ],
  "has_mui": true,
  "has_inkhud": false
}

@vidplace7 vidplace7 requested a review from thebentern October 7, 2025 16:33
@vidplace7 vidplace7 added enhancement New feature or request hardware-support Hardware related: new devices or modules, problems specific to hardware github_actions Pull requests that update GitHub Actions code labels Oct 7, 2025
@vidplace7 vidplace7 force-pushed the meshtastic_manifest branch 9 times, most recently from 7498e6a to 8d09c2e Compare October 7, 2025 22:39
@vidplace7
Copy link
Member Author

vidplace7 commented Oct 8, 2025

Drafting to add some more info to the manifest (bin names, bin hashes) per @thebentern
Done! The scope be creepin!

@vidplace7 vidplace7 marked this pull request as draft October 8, 2025 19:21
@vidplace7 vidplace7 force-pushed the meshtastic_manifest branch 13 times, most recently from a48db7b to a608877 Compare October 9, 2025 16:32
@vidplace7 vidplace7 force-pushed the meshtastic_manifest branch 2 times, most recently from ee6ea4b to 4fd74ee Compare October 9, 2025 17:59
@vidplace7 vidplace7 requested a review from thebentern October 9, 2025 18:22
@vidplace7 vidplace7 force-pushed the meshtastic_manifest branch 4 times, most recently from 5967efc to c4415c5 Compare October 9, 2025 20:36
@vidplace7 vidplace7 requested a review from fifieldt October 9, 2025 20:40
@vidplace7 vidplace7 force-pushed the meshtastic_manifest branch 4 times, most recently from 00a04da to b5cfd68 Compare October 9, 2025 22:01
@vidplace7 vidplace7 force-pushed the meshtastic_manifest branch 3 times, most recently from 2abe5c0 to fa04940 Compare October 9, 2025 23:21
@vidplace7 vidplace7 force-pushed the meshtastic_manifest branch 4 times, most recently from 2dd6436 to 9507b16 Compare October 10, 2025 02:14
@vidplace7
Copy link
Member Author

❗ DO NOT merge this until @thebentern is ready to implement support in the Flasher ❗
This is a breaking change thanks to the naming differences.

@vidplace7 vidplace7 force-pushed the meshtastic_manifest branch 4 times, most recently from 4747aaf to 030e724 Compare October 11, 2025 22:36
@vidplace7 vidplace7 force-pushed the meshtastic_manifest branch from 030e724 to 23deac1 Compare October 12, 2025 17:02
@mrekin
Copy link
Contributor

mrekin commented Oct 23, 2025

Hi @vidplace7 !
Just found this PR and want to be ready for changes with my ci/cd and custom flasher too ))

Just to be clear - does the regular pio run -e <env> will generate manifest file or I have to and new step with new target?

I'm currently build something like manifest (mcu, version, enviroment and few other flags) in ci/cd and your manifest covers 80% mine :)
And partitiontable will be very helpfull.

Additionally, can you provide naming changes (like AsIs->ToBe table for different files )?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request github_actions Pull requests that update GitHub Actions code hardware-support Hardware related: new devices or modules, problems specific to hardware

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants