{
  "name": "Canadaverse MeshCore direct MQTT observer firmware",
  "status": "published",
  "version": "v1.15-meshcoreCA-0516",
  "updated_at": "2026-05-16T16:49:19+01:00",
  "boards": {
    "heltec_v3": {
      "label": "Heltec V3 OLED",
      "status": "field-tested",
      "validation": "Flashed on local Heltec V3 and observed through MeshCore.ca."
    },
    "heltec_v4_oled": {
      "label": "Heltec V4 OLED",
      "status": "published",
      "validation": "Build-verified; hardware smoke test recommended before fleet rollout."
    },
    "lilygo_t3s3_sx1262": {
      "label": "LILYGO T3S3 SX1262",
      "status": "published",
      "validation": "Build-verified; hardware smoke test recommended before fleet rollout."
    },
    "lilygo_t_beam_s3_supreme_sx1262": {
      "label": "LILYGO T-Beam S3 Supreme SX1262",
      "status": "published",
      "validation": "Build-verified with PSRAM target profile; hardware smoke test recommended before fleet rollout."
    },
    "lilygo_tbeam_sx1262": {
      "label": "LILYGO T-Beam SX1262",
      "status": "published",
      "validation": "Build-verified; hardware smoke test recommended before fleet rollout."
    },
    "rak3112": {
      "label": "RAK3112 SX1262",
      "status": "published",
      "validation": "Build-verified; hardware smoke test recommended because the PlatformIO board profile reports no PSRAM."
    },
    "seeed_xiao_s3_wio_sx1262": {
      "label": "Seeed XIAO ESP32S3 + Wio-SX1262",
      "status": "published",
      "validation": "Build-verified; hardware smoke test recommended before fleet rollout."
    }
  },
  "planned_boards": [
    {
      "label": "Heltec Wireless Paper",
      "status": "planned",
      "note": "Needs a dedicated observer MQTT target and hardware validation."
    },
    {
      "label": "Heltec Wireless Tracker / Tracker V2",
      "status": "planned",
      "note": "Needs a dedicated observer MQTT target and hardware validation."
    },
    {
      "label": "LILYGO T-LoRa C6",
      "status": "planned",
      "note": "Needs a dedicated ESP32-C6 observer MQTT target and hardware validation."
    },
    {
      "label": "M5Stack Unit C6L / Stamp C6 LoRa",
      "status": "planned",
      "note": "Needs a dedicated ESP32-C6 observer MQTT target and hardware validation."
    },
    {
      "label": "LILYGO T-Deck / T-Deck Plus",
      "status": "planned",
      "note": "Needs a dedicated observer MQTT target and hardware validation."
    }
  ],
  "broker": {
    "preset": "meshcore-ca",
    "host": "mqtt1.meshcore.ca",
    "port": 443,
    "path": "/mqtt",
    "transport": "websockets",
    "auth": "MeshCore signed token",
    "topic_style": "meshcore/{IATA}/{PUBLIC_KEY}/{status|packets|raw}"
  },
  "brokers": [
    {
      "id": "meshcore-ca-1",
      "label": "MeshCore.ca MQTT 1",
      "host": "mqtt1.meshcore.ca",
      "uri": "mqtt1.meshcore.ca:443/mqtt",
      "port": 443,
      "path": "/mqtt",
      "transport": "websockets",
      "audience": "mqtt1.meshcore.ca"
    },
    {
      "id": "meshcore-ca-2",
      "label": "MeshCore.ca MQTT 2",
      "host": "mqtt2.meshcore.ca",
      "uri": "mqtt2.meshcore.ca:443/mqtt",
      "port": 443,
      "path": "/mqtt",
      "transport": "websockets",
      "audience": "mqtt2.meshcore.ca"
    }
  ],
  "defaults": {
    "heltec_v3": ["meshcore-ca-1", "meshcore-ca-2"],
    "heltec_v4_oled": ["meshcore-ca-1", "meshcore-ca-2"],
    "lilygo_t3s3_sx1262": ["meshcore-ca-1", "meshcore-ca-2"],
    "lilygo_t_beam_s3_supreme_sx1262": ["meshcore-ca-1", "meshcore-ca-2"],
    "lilygo_tbeam_sx1262": ["meshcore-ca-1", "meshcore-ca-2"],
    "rak3112": ["meshcore-ca-1", "meshcore-ca-2"],
    "seeed_xiao_s3_wio_sx1262": ["meshcore-ca-1", "meshcore-ca-2"]
  },
  "notes": [
    "Direct observer firmware is for supported Wi-Fi MeshCore boards with LoRa radios.",
    "Use the merged image for first flash or partition changes.",
    "Set Wi-Fi, IATA, radio region, and name after flashing in MeshCore Config or CLI.",
    "Broker server strings are stored scheme-less and normalized internally to secure WebSocket MQTT.",
    "This build defaults slot 1 to mqtt1.meshcore.ca and slot 2 to mqtt2.meshcore.ca; slots 3-6 are not prefilled.",
    "Heltec V3 is field-tested locally. Newly expanded board targets are build-verified and should be smoke-tested over serial before fleet rollout."
  ],
  "artifacts": [
    {
      "target": "Heltec V3 OLED repeater observer",
      "role": "repeater",
      "board": "heltec_v3",
      "version": "v1.15-meshcoreCA-0516",
      "update_bin": "/firmware/canadaverse-heltec-v3-repeater-observer-mqtt-v1.15-meshcoreCA-0516-20260516.bin",
      "update_sha256": "64399893dcec491db1bcfe437554a4f33d457d88e04bc88b927045969aa8b1ef",
      "merged_bin": "/firmware/canadaverse-heltec-v3-repeater-observer-mqtt-v1.15-meshcoreCA-0516-20260516-merged.bin",
      "merged_sha256": "348c9e04691dbbc7adc5e4e8b1c7537b8c198dc0d3bc2ba6b32e7e305d84fc53",
      "default_brokers": ["meshcore-ca-1", "meshcore-ca-2"]
    },
    {
      "target": "Heltec V3 OLED room server observer",
      "role": "room_server",
      "board": "heltec_v3",
      "version": "v1.15-meshcoreCA-0516",
      "update_bin": "/firmware/canadaverse-heltec-v3-room-server-observer-mqtt-v1.15-meshcoreCA-0516-20260516.bin",
      "update_sha256": "bf4c241195a5499a57b760c8c38827abc86fbc0270c60c142a2aee29a7b182ee",
      "merged_bin": "/firmware/canadaverse-heltec-v3-room-server-observer-mqtt-v1.15-meshcoreCA-0516-20260516-merged.bin",
      "merged_sha256": "599741fdcfe23040d6a888d64aebe74fdee45bdb98e6823622eac9d7a5588b0e",
      "default_brokers": ["meshcore-ca-1", "meshcore-ca-2"]
    },
    {
      "target": "Heltec V4 OLED repeater observer",
      "role": "repeater",
      "board": "heltec_v4_oled",
      "version": "v1.15-meshcoreCA-0516",
      "update_bin": "/firmware/canadaverse-heltec-v4-oled-repeater-observer-mqtt-v1.15-meshcoreCA-0516-20260516.bin",
      "update_sha256": "8a0dead2cde21356af6bb992906320053995cf8c043c228360c2b44320640dff",
      "merged_bin": "/firmware/canadaverse-heltec-v4-oled-repeater-observer-mqtt-v1.15-meshcoreCA-0516-20260516-merged.bin",
      "merged_sha256": "edaeb1a981289ce66f5f0b7f842cafd94838537f6a100d5339dd6405fca5b576",
      "default_brokers": ["meshcore-ca-1", "meshcore-ca-2"]
    },
    {
      "target": "Heltec V4 OLED room server observer",
      "role": "room_server",
      "board": "heltec_v4_oled",
      "version": "v1.15-meshcoreCA-0516",
      "update_bin": "/firmware/canadaverse-heltec-v4-oled-room-server-observer-mqtt-v1.15-meshcoreCA-0516-20260516.bin",
      "update_sha256": "dd0f525bc128b63497c3c5aafdad5366ee4563df64e95136e5d91c1f9f9cfdfa",
      "merged_bin": "/firmware/canadaverse-heltec-v4-oled-room-server-observer-mqtt-v1.15-meshcoreCA-0516-20260516-merged.bin",
      "merged_sha256": "ce800881a1ef4266630ea7f1db97d103fca580edbba6a62fc472f8e8e8024639",
      "default_brokers": ["meshcore-ca-1", "meshcore-ca-2"]
    },
    {
      "target": "LILYGO T3S3 SX1262 repeater observer",
      "role": "repeater",
      "board": "lilygo_t3s3_sx1262",
      "version": "v1.15-meshcoreCA-0516",
      "update_bin": "/firmware/canadaverse-lilygo-t3s3-sx1262-repeater-observer-mqtt-v1.15-meshcoreCA-0516-20260516.bin",
      "update_sha256": "ca6acd4475dd52ab43dddedac85c54e3a2064364fff0bc80233b577099775fc2",
      "merged_bin": "/firmware/canadaverse-lilygo-t3s3-sx1262-repeater-observer-mqtt-v1.15-meshcoreCA-0516-20260516-merged.bin",
      "merged_sha256": "0fc0bcd6d3d6409c239a002c94feaa25fde05a1ea1e30d5ee55ca23033ea20b2",
      "default_brokers": ["meshcore-ca-1", "meshcore-ca-2"]
    },
    {
      "target": "LILYGO T3S3 SX1262 room server observer",
      "role": "room_server",
      "board": "lilygo_t3s3_sx1262",
      "version": "v1.15-meshcoreCA-0516",
      "update_bin": "/firmware/canadaverse-lilygo-t3s3-sx1262-room-server-observer-mqtt-v1.15-meshcoreCA-0516-20260516.bin",
      "update_sha256": "ff28b651402708dba927a53ba4869facb11fc6173c4ca52636624d21af496062",
      "merged_bin": "/firmware/canadaverse-lilygo-t3s3-sx1262-room-server-observer-mqtt-v1.15-meshcoreCA-0516-20260516-merged.bin",
      "merged_sha256": "17a99d87084be0820b460de2b96ad6426e8e463daca30ed2758259c0db6ec9a9",
      "default_brokers": ["meshcore-ca-1", "meshcore-ca-2"]
    },
    {
      "target": "LILYGO T-Beam S3 Supreme SX1262 repeater observer",
      "role": "repeater",
      "board": "lilygo_t_beam_s3_supreme_sx1262",
      "version": "v1.15-meshcoreCA-0516",
      "update_bin": "/firmware/canadaverse-lilygo-t-beam-s3-supreme-sx1262-repeater-observer-mqtt-v1.15-meshcoreCA-0516-20260516.bin",
      "update_sha256": "2859fc527b84a10b382607ff8891765781700b6c312dce8f5523561ecf53cda2",
      "merged_bin": "/firmware/canadaverse-lilygo-t-beam-s3-supreme-sx1262-repeater-observer-mqtt-v1.15-meshcoreCA-0516-20260516-merged.bin",
      "merged_sha256": "64f6408c109e8793d1806b6f15331fb019148b73be6fd50930deca368e969488",
      "default_brokers": ["meshcore-ca-1", "meshcore-ca-2"]
    },
    {
      "target": "LILYGO T-Beam S3 Supreme SX1262 room server observer",
      "role": "room_server",
      "board": "lilygo_t_beam_s3_supreme_sx1262",
      "version": "v1.15-meshcoreCA-0516",
      "update_bin": "/firmware/canadaverse-lilygo-t-beam-s3-supreme-sx1262-room-server-observer-mqtt-v1.15-meshcoreCA-0516-20260516.bin",
      "update_sha256": "6240ddd12b96aafef96e7998787f8005298bb269eda5f7837f2576963aba4001",
      "merged_bin": "/firmware/canadaverse-lilygo-t-beam-s3-supreme-sx1262-room-server-observer-mqtt-v1.15-meshcoreCA-0516-20260516-merged.bin",
      "merged_sha256": "7ca3d6db5670f40b1cb015e8398e8835e4ce9193af2eb3cee675c709c2337227",
      "default_brokers": ["meshcore-ca-1", "meshcore-ca-2"]
    },
    {
      "target": "LILYGO T-Beam SX1262 repeater observer",
      "role": "repeater",
      "board": "lilygo_tbeam_sx1262",
      "version": "v1.15-meshcoreCA-0516",
      "update_bin": "/firmware/canadaverse-lilygo-tbeam-sx1262-repeater-observer-mqtt-v1.15-meshcoreCA-0516-20260516.bin",
      "update_sha256": "60411943f8814ea0d3de10e5f32bad5afd11e1337e8282f16c078ad583ff55ce",
      "merged_bin": "/firmware/canadaverse-lilygo-tbeam-sx1262-repeater-observer-mqtt-v1.15-meshcoreCA-0516-20260516-merged.bin",
      "merged_sha256": "8304e3448a9c81a9ce6736e11154fe4e1f02db45f28d2d9616b75a210cb21442",
      "default_brokers": ["meshcore-ca-1", "meshcore-ca-2"]
    },
    {
      "target": "LILYGO T-Beam SX1262 room server observer",
      "role": "room_server",
      "board": "lilygo_tbeam_sx1262",
      "version": "v1.15-meshcoreCA-0516",
      "update_bin": "/firmware/canadaverse-lilygo-tbeam-sx1262-room-server-observer-mqtt-v1.15-meshcoreCA-0516-20260516.bin",
      "update_sha256": "ba25c522970642722d25c2b75e3f67e2afb38c42a040474a159832055cbf858f",
      "merged_bin": "/firmware/canadaverse-lilygo-tbeam-sx1262-room-server-observer-mqtt-v1.15-meshcoreCA-0516-20260516-merged.bin",
      "merged_sha256": "a3c76351149f8c3f3b2c1f2ac338c937b5028a5c923c916ce21a08178abba048",
      "default_brokers": ["meshcore-ca-1", "meshcore-ca-2"]
    },
    {
      "target": "RAK3112 SX1262 repeater observer",
      "role": "repeater",
      "board": "rak3112",
      "version": "v1.15-meshcoreCA-0516",
      "update_bin": "/firmware/canadaverse-rak3112-repeater-observer-mqtt-v1.15-meshcoreCA-0516-20260516.bin",
      "update_sha256": "e146000d18b9963d69d763099b7c3aaa025c7927771573d6bd3c414266030d10",
      "merged_bin": "/firmware/canadaverse-rak3112-repeater-observer-mqtt-v1.15-meshcoreCA-0516-20260516-merged.bin",
      "merged_sha256": "e7efef070cd49d1b991b0dcdd4efe7931c1ba70c53ee539ef1e2da2b67ec806c",
      "default_brokers": ["meshcore-ca-1", "meshcore-ca-2"]
    },
    {
      "target": "RAK3112 SX1262 room server observer",
      "role": "room_server",
      "board": "rak3112",
      "version": "v1.15-meshcoreCA-0516",
      "update_bin": "/firmware/canadaverse-rak3112-room-server-observer-mqtt-v1.15-meshcoreCA-0516-20260516.bin",
      "update_sha256": "8cc0ab3710b0cb4484a68ed06232212f96c84889e360489e70352912c2bb2e7f",
      "merged_bin": "/firmware/canadaverse-rak3112-room-server-observer-mqtt-v1.15-meshcoreCA-0516-20260516-merged.bin",
      "merged_sha256": "0ae65b7058bf08af08b768a0d06199f65518000a8757a9484359ed4d78559517",
      "default_brokers": ["meshcore-ca-1", "meshcore-ca-2"]
    },
    {
      "target": "Seeed XIAO ESP32S3 + Wio-SX1262 repeater observer",
      "role": "repeater",
      "board": "seeed_xiao_s3_wio_sx1262",
      "version": "v1.15-meshcoreCA-0516",
      "update_bin": "/firmware/canadaverse-seeed-xiao-s3-wio-sx1262-repeater-observer-mqtt-v1.15-meshcoreCA-0516-20260516.bin",
      "update_sha256": "c89185bfb58d1320fede469b99058ac539dd0a8508161f02c8c9b06ba63e2fbb",
      "merged_bin": "/firmware/canadaverse-seeed-xiao-s3-wio-sx1262-repeater-observer-mqtt-v1.15-meshcoreCA-0516-20260516-merged.bin",
      "merged_sha256": "1a57c455b34ca02c6c692cf2b114bf84d8207070f162249bcca64b57d9b29016",
      "default_brokers": ["meshcore-ca-1", "meshcore-ca-2"]
    },
    {
      "target": "Seeed XIAO ESP32S3 + Wio-SX1262 room server observer",
      "role": "room_server",
      "board": "seeed_xiao_s3_wio_sx1262",
      "version": "v1.15-meshcoreCA-0516",
      "update_bin": "/firmware/canadaverse-seeed-xiao-s3-wio-sx1262-room-server-observer-mqtt-v1.15-meshcoreCA-0516-20260516.bin",
      "update_sha256": "b08f69d7f67146271e5b31526966453ff4725e48119e896232af4621dd67a0c1",
      "merged_bin": "/firmware/canadaverse-seeed-xiao-s3-wio-sx1262-room-server-observer-mqtt-v1.15-meshcoreCA-0516-20260516-merged.bin",
      "merged_sha256": "6e88fe7d4649ee6f53666387592594a4de99696cbde9a041c3ade68e75e1635b",
      "default_brokers": ["meshcore-ca-1", "meshcore-ca-2"]
    }
  ]
}
