Skip to content

Meshtastic build manifest#8248

Merged
thebentern merged 1 commit into
meshtastic:developfrom
vidplace7:meshtastic_manifest
Dec 8, 2025
Merged

Meshtastic build manifest#8248
thebentern merged 1 commit into
meshtastic:developfrom
vidplace7:meshtastic_manifest

Conversation

@vidplace7

@vidplace7 vidplace7 commented Oct 7, 2025

Copy link
Copy Markdown
Member

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
Comment thread .github/workflows/main_matrix.yml Outdated
@vidplace7

vidplace7 commented Oct 8, 2025

Copy link
Copy Markdown
Member Author

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 4 times, most recently from 2dd6436 to 9507b16 Compare October 10, 2025 02:14
@vidplace7

Copy link
Copy Markdown
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 5 times, most recently from 030e724 to 23deac1 Compare October 12, 2025 17:02
@mrekin

mrekin commented Oct 23, 2025

Copy link
Copy Markdown
Contributor

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 )?

@vidplace7 vidplace7 force-pushed the meshtastic_manifest branch 6 times, most recently from 1919394 to 74e67d8 Compare December 3, 2025 22:25
@vidplace7 vidplace7 force-pushed the meshtastic_manifest branch from 74e67d8 to dacde24 Compare December 8, 2025 22:18
@thebentern thebentern merged commit 66ff153 into meshtastic:develop Dec 8, 2025
76 of 78 checks passed
scobert969 pushed a commit to zeropt/meshtastic-firmware that referenced this pull request Dec 22, 2025
jeek pushed a commit to jeek/Meshtastic-Exploiteers-Hacker-Pager that referenced this pull request Jun 30, 2026
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